我是靠谱客的博主 懵懂豌豆,最近开发中收集的这篇文章主要介绍高通 ADSP sensor SSC,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1、添加入口函数: adspsensorsddqcomincsns_dd.h

extern sns_ddf_driver_if_s sns_dd_<new_sensor_model>_if; 例: sns_dd_mpu6050_if

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

增加新文件:sensorsddqcomsrc

增加DD_SOURCES包含源文件:sensorsddqcombuilddd_qcom.scons

或者:sensorsddvendorsrc和sensorsddvendorbuilddd_vendor.scons

3、修改编译配置文件:sensorsbuildSensors.scons

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

4、保证两个UUID一致:

Sensorscommonincsns_reg_common.h

vendorqcomproprietarysensorsdspssensordaemoncommoninc

sns_reg_common.h

#define SNS_REG_UUID_<NEW_SENSOR_MODEL>

{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

 

vendorqcomproprietarysensorsdspsreg_defaultssensor_def_qcomdev.conf

 

增加厂家定义:

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

 

sensorsddqcomincsns_dd.h (声明结构体变量)

sensorsddqcomsrc(添加新文件)

sensorsddqcombuilddd_qcom.scons(把.c文件编进去)

 

sensorsbuildSensors.scons(定义一个宏)

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

Sensorscommonincsns_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

 

 

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

 

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

最后

以上就是懵懂豌豆为你收集整理的高通 ADSP sensor SSC的全部内容,希望文章能够帮你解决高通 ADSP sensor SSC所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部