1.添加驱动文件
路径:adsp_proc/ssc/sensors 此次项目路径:ADSP.VT.5.4.3/adsp_proc/ssc_driver/driver 注:driver为自己新建的目录,以传感器名字命名 把驱动文件放到该路劲下
驱动 stk3329b (光感)bmi26x (A+G)以这两个为例子
2.添加编译
路径:adsp/ssc/chipset/por.py 此次项目路径:ADSP.VT.5.4.3/adsp_proc/ssc/chipset/divar/por.py 注:在por.py文件中添加驱动文件中build目录下.scons文件的名字 修改如下图
3.配置json文件
路径:LINUX/android/vendor/qcom/proprietarysensors-see/registry/config/bengal 注:不同平台放不同目录,需要跟平台确认。
注:这边I2c地址是根据IC数据手册进行了进制转换得到的 注:上文图片是此项目要配置的,下文是高通文档相关属性及配置根据需求配置
4.高通默认配置
路径:adsp_proc/core/settings/buses/i2c/config/agatti/i2c_devcfg.c 注:上文是此次项目修改,下文是高通文档的参考模板
5.部分sensor外挂电源
大部分sensor是pmic长供电,但是也有例外 注:在上文的json配置中以及编译脚本por.py中进行修改
6.遇到的问题
1.添加bmi26x的时候,编译报错,报错log显示island overflow ,问了高通之后把por. py文件中的一些不用的island flag注释掉就可以了。
2.添加bmi26x的时候,因为项目原理图上显示bmi26x用的是i3c协议,我没有怀疑bmi26x这个传感器本身是不是支持i3c,所以就把它配置成i3c,结果无法bring up成功,最后询问了厂商之后才知道,该传感器不支持i3c,只支持i2c和spi,根据原理图,最后把它配置成i2c后bring up 成功。
3.平台不同,代码目录也会有不少差异,一开始不知道驱动文件放在哪个目录下,导致无法注册成功,后来看了该平台传感器文档后才知道目录。
|