android_kernel_xiaomi_sm8350/include/linux/mmhardware_sysfs.h
Giovanni Ricca 8b3bf3a3b9
misc: Import mmhardware detection
From branch: redwood-s-oss

Change-Id: I03d8e19d51e7519abb57450a67a18031f727529d
2024-12-20 23:01:26 +01:00

59 lines
2 KiB
C

#ifndef __MMHARDWARE_SYSFS_H__
#define __MMHARDWARE_SYSFS_H__
#define MM_HARDWARE_SYSFS_ROOT_FOLDER "mm_hardware"
#define MM_HARDWARE_SYSFS_ADSP_FOLDER "adsp"
#define MM_HARDWARE_SYSFS_CODEC_FOLDER "codec"
#define MM_HARDWARE_SYSFS_PA_1_FOLDER "pa1"
#define MM_HARDWARE_SYSFS_PA_2_FOLDER "pa2"
#define MM_HARDWARE_SYSFS_PA_3_FOLDER "pa3"
#define MM_HARDWARE_SYSFS_PA_4_FOLDER "pa4"
#define MM_HARDWARE_SYSFS_PA_5_FOLDER "pa5"
#define MM_HARDWARE_SYSFS_PA_6_FOLDER "pa6"
#define MM_HARDWARE_SYSFS_PA_7_FOLDER "pa7"
#define MM_HARDWARE_SYSFS_PA_8_FOLDER "pa8"
enum hardware_id {
MM_HW_FINE = 0x1,
MM_HW_ADSP = 0x2,
MM_HW_CODEC = 0x4,
MM_HW_PA_1 = 0x8,
MM_HW_PA_2 = 0x10,
MM_HW_PA_3 = 0x20,
MM_HW_PA_4 = 0x40,
MM_HW_PA_5 = 0x80,
MM_HW_PA_6 = 0x100,
MM_HW_PA_7 = 0x200,
MM_HW_PA_8 = 0x400
};
struct mm_info {
struct kobj_attribute k_attr;
enum hardware_id mm_id;
int on_register;
int on_calibration;
};
#define __MMHW(_id, _mm_name) { \
.k_attr = { \
.attr = { \
.name = __stringify(_mm_name), \
.mode = 0644, \
}, \
.show = mm_register_show, \
.store = mm_register_store, \
}, \
.mm_id = _id, \
.on_register = 0, \
.on_calibration = 0, \
}
/* create sysfs node */
#define MM_INFO(_id, _mm_name) \
struct mm_info _mm_name##_info = __MMHW(_id, _mm_name)
int mmhardware_initialize_sysfs(void);
void mmhardware_cleanup_sysfs(void);
int register_kobj_under_mmsysfs(enum hardware_id mm_id, const char *name);
int on_calibration_under_mmsysfs(enum hardware_id mm_id, const char *name);
#endif