文章目录
前言
对于驱动工程师来说,sensor是很基础的东西,很多人刚开始接触驱动都是从sensor开始的。这篇记录其实是很久之前的了,这段时间正好在整理以前的一些文章,于是重新梳理一下。
背景
工作环境:linux,platform_version=android 5.1,mt6580;
工作任务:在原有的项目基础上兼容msensor AF8133J;
步骤
移植、编译
此款msensor以前没有在Android 5.1中使用过,我只找到应用在Android 7.1上的一套代码,因为msensor的代码量不大,把Android 5.1中和Android 7.1中msensor的代码都看了一遍,发现除了获取i2c_address、i2c_num、direction、power_id、power_vol等属性的方式不一样,其它地方基本上一样,于是决定就采用Android 7.1中的代码,初期完成得很顺利,修改代码->编译->修改编译报错;修改了st480_init()函数中部分代码,如下:
原代码:
static int __init afx133_init(void)
{
const char *name = "mediatek,afx133";
hw = get_mag_dts_func(name, hw);
#if 1 //def CONFIG_MTK_LEGACY
struct i2c_board_info i2c_afx133={
I2C_BOARD_INFO("afx133", hw->i2c_addr[0]);
i2c_register_board_info(hw->i2c_num, &i2c_afx133, 1);
#endif
if(mag_driver_add(&afx133_init_info) < 0