高通 ADSP sensor SSC

1、添加入口函数: adsp\sensors\dd\qcom\inc\sns_dd.h

extern sns_ddf_driver_if_s sns_dd__if; 例: sns_dd_mpu6050_if

2、增加新文件和增加DD_SOURCES包含源文件:

增加新文件:\sensors\dd\qcom\src

增加DD_SOURCES包含源文件:\sensors\dd\qcom\build\dd_qcom.scons

或者:\sensors\dd\vendor\src和\sensors\dd\vendor\build\dd_vendor.scons

3、修改编译配置文件:\sensors\build\Sensors.scons

增加:env.Append(CPPDEFINES = [”CONFIG_SUPPORT_”])

4、保证两个UUID一致:

Sensors\common\inc\sns_reg_common.h

\vendor\qcom\proprietary\sensors\dsps\sensordaemon\common\inc\

sns_reg_common.h

#define SNS_REG_UUID_ \

{0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xAA,0xBB,0xCC,0xDD,0xE

E,0xFF,0x11}

5、update smgr_sensor_fn_ptr_map[]:

Sensors/smgr/src/common/sns_smgr_init.c, (MSM8974, MSM8x26, APQ8084,8940 )

Sensors/smgr/src/sns_smgr_reg.c, (MSM8994/MSM8992, MSM8952, and MSM8996)

6、生成UUID : uuidgen

 

vendor\qcom\proprietary\sensors\dsps\reg_defaults\sensor_def_qcomdev.conf

 

增加厂家定义:

ADSP.8953.2.8.2/adsp_proc/Sensors/ddf/inc/sns_ddf_common.h:237: SNS_DDF_VENDOR_SENSORTEK,

 

\sensors\dd\qcom\inc\sns_dd.h (声明结构体变量)

\sensors\dd\qcom\src(添加新文件)

\sensors\dd\qcom\build\dd_qcom.scons(把.c文件编进去)

 

\sensors\build\Sensors.scons(定义一个宏)

Sensors/smgr/src/sns_smgr_reg.c(根据上面定义的宏取决是否添加到列表里,列表里的项由UUID和结构体变量组成,两者挂钩)

Sensors\common\inc\sns_reg_common.h(定义UUID 宏)

 

sns_regedit_ssi -r ADSP sensor注册信息

sns_dsps_tc0001 这个可以看注册了哪些类型

 

光感调试:

ltr507:

sns_dd_ltr507_reset -> sns_dd_ltr507_alsps_init_data_struct -> sns_dd_ltr507_set_pwr_mode

sns_dd_ltr507_set_attrib -> sns_dd_ltr507_set_pwr_mode

sns_dd_ltr507_set_attrib -> 没有什么了

sns_dd_ltr507_enable_sched_data -> sns_dd_ltr507_disable_interrupt (没有exit

sns_dd_ltr507_set_attrib )

sns_dd_ltr507_set_attrib -> Set ps_odr to 5.

下面开始有数据:

sns_dd_ltr507_enable_sched_data -> sns_dd_ltr507_enable_interrupt->

-> (sensor == SNS_DDF_SENSOR_PROXIMITY)->sns_dd_ltr507_alsps_control_register->

->sns_dd_ltr507_alsps_control_register(sns_dd_ltr507_ps_setting_pri_interrupt)

sns_dd_ltr507_get_attrib->sns_dd_ltr507_ps_attrib->Get ps_odr as 5(主要获取这个值)

sns_dd_ltr507_get_attrib->sns_dd_ltr507_als_attrib->Get als_odr as 0(主要获取这个值)

下面开始有数据:

sns_dd_ltr507_handle_timer->sns_dd_ltr507_alsps_data_ready->sns_dd_ltr507_alsps_ps_data_ready

sns_dd_ltr507_handle_irq->sns_dd_ltr507_alsps_data_ready->sns_dd_ltr507_alsps_ps_data_ready

 

 

关于两个设备兼容的问题:

高通 ADSP sensor SSC_第1张图片

 

1900 1 0x00010001 #Maj Ver

1901 2 0x00010001 #Min Ver

1、用来区分是否用sns_reg_api_v02,左边的不用多个兼容的配置,右边的用多个兼容的配置

2、

2000 1 0x00010001 和 2001 1 0x00010001 代表支持ACCEL设备

2300 1 0x00010001 和 2301 2 0x00010001 代表支持PROX_LIGHT设备

参考文档:kba-170212221015_4_how_to_enable_boot_time_ssi_auto-detect.pdf

修改I2C速率:

adsp_proc/Sensors/ddf/src/sns_ddf_comm_priv.h (8998/8996 in slpi_proc/Sensors/ddf/ src/sns_ddf_comm_priv.h)

-#define SNS_DDF_DEFAULT_I2C_BUS_FREQ 400 // I2C bus frequency in KHz

+#define SNS_DDF_DEFAULT_I2C_BUS_FREQ 100 // I2C bus frequency in KHz

你可能感兴趣的:(高通,BP)