项目场景:
SOC:NXP imx8mq Android 10平台移植触摸屏touch驱动:atmel_mxt_ts.c流程及debug记录
流程:
由于NXP平台自带atmel_mxt_ts.c驱动文件,所以移植方式较简单
驱动位置:
./drivers/input/touchscreen/atmel_mxt_ts.c
- 添加相关信息到dts文件中
文件位置:
./arch/arm64/boot/dts/freescale/imx8mq-evk-pcie1-m2.dts
&i2c2 {
clock-frequency = <100000>; //i2c协议,时钟100K
pinctrl-names = "default"; //Pinctrl子系统设置为default状态
pinctrl-0 = <&pinctrl_i2c2>; //i2c使用的引脚2 ,初始化i2c2 pin脚,设置驱动电流,默认输出等信息,可以用nxp工具来生成
status = "okay"; //默认状态为使能状态
touchscreen@4b { //被驱动文件调用的data
compatible = "atmel,maxtouch"; //在驱动中的of_device_id列表
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ts>;
reg = <0x4b>; //地址
reset-gpios = <&gpio3 5 GPIO_ACTIVE_LOW>; //表示GPIO3-5低有效,那么 1 表示有效就是低电平, 0 表示无效 就是高电平 (物理电平)
interrupt-parent = <&gpio1>;
interrupts = <1 IRQ_TYPE_LEVEL_LOW>; //gpio1-1为中断管脚,低电平出发中断
};
};
- 在
android_build/vendor/nxp-opensource/kernel_imx/arch/arm64/configs/imx_v8_android_defconfig
中将atmel的驱动设置成y即可 - 编译烧录:
source build/envsetup.sh
lunch evk_8mq-userdebug 或者是lunch 42
./imx-make.sh bootimage -j4
./imx-make.sh dtboimage -j4
烧录使用:
adb reboot bootloader
fastboot flash boot boot.img
fastboot flash dtbo dtbo-imx8mq.img