记录一下imx6ull linux 5.10.9多点电容触摸屏驱动报错问题解决方法

最近再研究如何将linux 5.10.9移植到imx6ull,用的原子的开发板,在移植电容触摸屏驱动时报错gpio gpiochip0: (209c000.gpio): gpiochip_lock_as_irq: tried to flag a GPIO set as output for IRQ,如下图:

该错误的意思就是尝试将一个被配置为输出的 GPIO 引脚设置为中断,这是不允许的。检查了设备树,没有见到该引脚被设置为输出的情况,如下图:

百度、谷歌了一圈下来,也没有找到解决方法。

后来我在想,既然被改成输出了导致报错,那我就将这个引脚在驱动中改成输入应该就可以了吧。说干就干,全文搜索edt,edt-ft5406,找到驱动文件edt-ft5x06.c。

在文件中搜索probe,找到驱动probe函数edt_ft5x06_ts_probe。

简单看了一下函数,在里面添加如下代码,重新编译后启动竟然可以了。

cpp 复制代码
tsdata->irq_gpio = devm_gpiod_get_optional(&client->dev,
						     "interrupt", GPIOD_IN);
	if (IS_ERR(tsdata->irq_gpio)) {
		error = PTR_ERR(tsdata->irq_gpio);
		dev_err(&client->dev,
			"Failed to request GPIO interrupt pin, error %d\n", error);
		return error;
	}

tsdata->irq_gpio这个是本来没有的,后增加的,如下:

重新启动后不在有报错信息,提示驱动安装成功,如下:

通过evtest /dev/input/event1和ts工具测试没有问题,如下:

相关推荐
菜鸟康19 分钟前
Linux——CMake的快速入门上手和保姆级使用介绍、一键执行shell脚本
linux·运维·服务器
卷卷的小趴菜学编程38 分钟前
Linux系统之----基础IO
linux·运维·服务器·文件·fopen·文件操作符·位图传递标志位
陈苏同学1 小时前
[已解决] VS Code / Cursor / Trae 的 PowerShell 终端 conda activate 进不去环境的常见问题
linux·windows·conda
我不是秃头sheep1 小时前
Ubuntu 安装 Docker(镜像加速)完整教程
linux·ubuntu·docker
靡樊2 小时前
网络基础概念
linux·服务器·网络·c++·学习
Kusunoki_D2 小时前
速查 Linux 常用指令 II
linux·运维·服务器
xmweisi023 小时前
Ansible内置模块之 group
linux·运维·ansible·rhce·rhca·红帽认证
小猪写代码3 小时前
Ubuntu 系统默认已安装 python,此处只需添加一个超链接即可
linux·python·ubuntu
孤寂大仙v3 小时前
【Linux笔记】——Linux线程理解与分页存储的奥秘
linux·运维·笔记
有谁看见我的剑了?4 小时前
ubuntu 22.04 wifi网卡配置地址上网
linux·运维·ubuntu