低端平台:
- 合入驱动代码,chromatix文件。正确的sensor_addr、id,power_setting_array。
- 修改device-vendor.mk文件,根据Android.mk里的LOCAL_MODULE:=xxxxxxx添加
- 修改dtsi。包括flash、actuator、eeprom,gpio的控制如reset、standby,电源控制vdig、vana、vio、vaf,时钟等。
- 在sensor_init.c定义的sensor_libs[] 数组中添加传感器名称。
高端平台:
- 前三步是一样的
- 多了XML文件,把sensor的名字和相应配置加入XML
- 修改configs里的Android.mk和xxxxx-camera.xml文件
智能机总体流程:
1.kernel层解析dtsi,全部解析一遍。并保存起来。
2.vender层解析xml文件,每解析一个都会根据sensor的名字找到相应的库,读取出库里的信息,进行sensor的上下电操作,会反复进行三次,失败则读取下一个。上电后会对比id信息,正确则成功点亮。
功能机:
没有xml文件,其sensor的名字在sensor_init.c文件里作为一个宏定义保存着。
1.把lib和chromatix添加到相应位置,修改时序和地址,ID。
2.修改dtsi文件
3.在device-vendor.mk添加代码,根据Android.mk里的LOCAL_MODULE:=xxxxxxx添加
4.为config里的xxxx.xml文件添加sensor的代码 4.没有xml文件的功能机,其sensor的名字在sensor_init.c文件里作为一个宏定义保存着。
5.修改config里的Android.mk
6.添加sensor的chromatix.xml文件。
出现probe成功,但还是反复sensor already probed 可能是画质文件chromatix没有合成功,或者有问题。