OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3487|回复: 0

ft5426驱动:申请中断失败 gpiochip_lock_as_irq: tried to flag a GPIO set as output for IRQ

[复制链接]

3

主题

6

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2019-5-11
在线时间
7 小时
发表于 2022-4-8 00:09:47 | 显示全部楼层 |阅读模式
3金钱
  1. [root@imx6ull]:/opt$:insmod ft5x06.ko
  2. [   98.169707] gpio gpiochip0: (209c000.gpio): gpiochip_lock_as_irq: tried to flag a GPIO set as output for IRQ
  3. [   98.179737] gpio-mxc 209c000.gpio: unable to lock HW IRQ 9 for IRQ
  4. [   98.185968] genirq: Failed to request resources for edt-ft5206 (irq 75) on irqchip gpio-mxc
  5. [   98.197837] edt_ft5x06 1-0038: Unable to request touchscreen IRQ.
  6. [   98.204316] edt_ft5x06: probe of 1-0038 failed with error -22
复制代码
这里是加载ko文件时报的错,ko来自用的教程源码01、例程源码/02、Linux驱动例程/23_multitouch编译出来的。请问这里该怎么修改。
版本5.4.70-00114-g4f2631b022d8-dirty armv7l

这是我的设备树:
  1.   edt-ft5x06@38 {
  2.                 compatible = "edt,edt-ft5206", "edt,edt-ft5x06";
  3.                 pinctrl-names = "default";
  4.                 pinctrl-0 = <&pinctrl_tsc
  5.                  &pinctrl_tsc_reset>;

  6.                 reg = <0x38>;
  7.                 interrupt-parent = <&gpio1>;
  8.                 interrupts = <9 0>;
  9.                 reset-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
  10.                 irq-gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
  11.                 status = "okay";
  12.         };
复制代码


在恩智浦相关网站上看到有类似问题,说要重新申请一下io,我看教程源码里面确实这样做了。
  1. /* 1,申请中断GPIO */
  2.         if (gpio_is_valid(dev->irq_pin)) {
  3.                 ret = devm_gpio_request_one(&client->dev, dev->irq_pin,
  4.                                         GPIOF_IN, "edt-ft5x06 irq");
  5.                 if (ret) {
  6.                         dev_err(&client->dev,
  7.                                 "Failed to request GPIO %d, error %d\n",
  8.                                 dev->irq_pin, ret);
  9.                         return ret;
  10.                 }
  11.         }

  12.         /* 2,申请中断,client->irq就是IO中断, */
  13.         ret = devm_request_threaded_irq(&client->dev, client->irq, NULL,
  14.                                         ft5x06_handler, IRQF_TRIGGER_FALLING | IRQF_ONESHOT,
  15.                                         client->name, &ft5x06);
  16.         if (ret) {
  17.                 dev_err(&client->dev, "Unable to request touchscreen IRQ.\n");
  18.                 return ret;
  19.         }
复制代码


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 12:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表