config文件的配置
默认情况下 config配置文件是存放在vendor/qcom/proprietary/sensors/dsps/reg_defaults路径下
全称是:sensor_def_qcomdev.conf, 默认是只存在这一个config文件,下面看下这个文件的主要内容。
根据Configuration file keys确认平台信息

根据实际调试经验,第一步需要确认平台,例如msm8953/sdm450 平台需要将对sensor的配置信息存放在 harware 为8953的字段后,
我们需要将配置信息填写到如下的配置段落之后:
#######################################################################
### 8953 Chipsets
#######################################################################
:hardware 8953
:platform
:property
:soc_id
# Orientation of sensors
Device-specific registry items配置说明
对于设备配置项的格式应按照:<Registry ID> <Value> <Version>来做具体的配置,Registry ID的定义应对应到vendor/qcom/proprietary/sensors/dsps/api/sns_reg_api_v02.h 中的具体配置。
些寄存器配置通常以成组的形式出现,不同组这些配置属性的含义是相同的,只是他们的registry ID各不相同,同一组的配置是基于同一个偏移地址,再做对应的偏移来区分不同的配置项。
对于这个配置可以参考高通文档80-n7635-1,举例如下:
基地址的选择
所有的地址信息sns_reg_api_v02.h中都有对应定义,包括每个groups的基地址偏移的信息,平台上一共有15个配置,对应的内容如下:
仔细阅读在sns_reg_api_v02.h中的定义可以发现,主要的配置分为5大组CFG0-CFG4, 每个大组又有对应的3个不同配置,
例如:CFG0,CFG0_2,CFG0_3; 一共15个地址。不考虑兼容的情况下,常用的Configuration ID就是 0-4 ,即1902,1918,1934,1950,1966。
有同种sensor需要兼容,使用的Configuration ID就是在原基础上加5,比如CFG0_2的地址就是Configuration ID = 0+5,即3602。举例如下:
/** Item IDs corresponding to group SN_REG_GROUP_SSI_SMGR_CFG (Group Id: 2690) */
......
#define SNS_REG_ITEM_SSI_SMGR_CFG0_UUID_HIGH_V02 1902
#define SNS_REG_ITEM_SSI_SMGR_CFG0_UUID_LOW_V02 1903
#define SNS_REG_ITEM_SSI_SMGR_CFG0_OFF_TO_IDLE_V02 1904
#define SNS_REG_ITEM_SSI_SMGR_CFG0_IDLE_TO_READY_V02 1905
#define SNS_REG_ITEM_SSI_SMGR_CFG0_I2C_BUS_V02 1906
#define SNS_REG_ITEM_SSI_SMGR_CFG0_REG_GROUP_ID_V02 1907
#define SNS_REG_ITEM_SSI_SMGR_CFG0_CAL_PRI_GROUP_ID_V02 1908
#define SNS_REG_ITEM_SSI_SMGR_CFG0_GPIO1_V02 1909
#define SNS_REG_ITEM_SSI_SMGR_CFG0_GPIO2_V02 1910
#define SNS_REG_ITEM_SSI_SMGR_CFG0_SENSOR_ID_V02 1911
#define SNS_REG_ITEM_SSI_SMGR_CFG0_I2C_ADDRESS_V02 1912
......
实例分析
在实际项目配置过程中,比较关心的配置,是UUID,I2c_bus,sensor_id,gpio, flags,i2c_address以及电相关的配置, 实际配置主要如下:
# SSI SMGR Cfg 3: [STK LIGHT POLL] STK3311
1951 0x8b11a21aa55e6586 0x00010001 #UUID
1950 0xa4524f726702e351 0x00010001 #UUID
1952 5700 0x00010001 #off_to_idle
1953 10000 0x00010001 #idle_to_ready
1954 4 0x00010001 #i2c_bus
1955 1040 0x00010001 #reg_group_id
1956 0xFFFF 0x00010001 #cal_grp_id
1957 0xFFFF 0x00010001 #gpio1
1958 0xFFFF 0x00010001 #gpio2
1959 40 0x00010001