请问,如何添加设备树中断引脚!!!!!

  • ywk wrote: 2024-07-17 14:15 你好,我使用的ili9488的屏幕+plus开发板,想加个触摸屏的中断,但添加设备树遇到了问题。具体添加的中断设备树新内容如下图。这么添加是有问题的。但我查看相关的设备树文件,没有发现中断的父节点可以引用;因此自己添加了intc的父节点,结果编译失败了!请问官方能否给出正确的中断写法,感谢!!!
    您好,设备树中的设置最后都是被对应驱动给获取并设置的包括中断,ili9488是显示芯片,我在内核中找了一下并没有对应的compatible可以对应上的驱动,您可能需要更换一下compatible属性(有部分厂商的显示芯片之间的兼容性较好可以通用,我不确定ilitek是否也可以通用),或者重新移植一份(对应fbtft的地址在<luckfox-pico SDK>/sysdrv/source/kernel/drivers/staging/fbtft 下),而fbtft的驱动源码并没有触摸中断的相关信息,触摸屏需要额外创建节点来配置,比如Luckfox Pico Ultra适配的4寸屏使用的触摸芯片GT911配置就是与显示分开的

    Code: Select all

    &i2c3 {
        status  = "okay";
        clock-frequency = <100000>;
        pinctrl-0 =< &i2c3m2_xfer &tp_rst &tp_irq>;
        GT911:touchscreen {
          compatible = "goodix,gt911";
          reg = <0x14>;
    
          interrupt-parent = <&gpio0>;
          interrupts = <RK_PA3 IRQ_TYPE_EDGE_FALLING>;
    
          reset-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
          pinctrl-names = "default";
        };
    };
    
    &pinctrl{
    	touchscreen {
    		tp_rst:tp-rst {
    			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
    		};
    
    		tp_irq:tp-irq {
    			rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
    		};
    	};
    };
    
    其中将GPIO作为中断引脚,当触摸电容屏时该引脚会出现下拉信号(由电容屏控制),随后luckfox pico 就会与其进行i2c 通信获取坐标信息,您使用的如果时电阻屏工作模式可能不太一样
  • 如下图是我的在自己的设备树中引用rv1106中的中断父节点写的设备树;问题1是:我的芯片是1103的plus开发板,直接引用没问题吗?问题2是:我中断引脚是gpio3_pa7,所以在引用时引用的是父节点的gpio0还是gpio3;问题3是:我gpio0/3都引用了测试了,但获取软中断失败了。是不是rv1103的中断引用的父节点不是rv1106的中断呢?
    我的触控屏是xpt2046,中断引脚是支持的,对应plus的引脚就是gpio3_pa7。
    Attachments
    4.png
    3.png
    2.png
    1.png
  • 1.rv1103 的设备树引用的 rv1103.dtsi 中还引用了 rv1106.dtsi ,rv1103 是基于rv110 6作调整的,具体可以看 rv1103.dtsi ,在gpio 上删除了gpio2 这个bank ,您使用的是gpio3的引脚不受影响;
    2.gpio3_pa7中断引用的父节点用gpio3
    3.自行测试的部分我们不提供技术支持,从截图上看您使用的驱动也不是 kernel 5.10 已有的驱动,我能提供的建议就是触摸屏的驱动和显示屏的驱动分开,xpt2046的驱动在5.10的内核版本已经被移除了,你可以参考之前内核的版本源码进行移植,确保能够正常移植后再进行其他的实验。或者想单独研究设备树中断的话从简单的驱动入手,我们的精力有限,相关细节请自行研究