This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] SK-AM62B-P1:GPIO 作为外设中断线路

Guru**** 2445440 points
Other Parts Discussed in Thread: SK-AM62B-P1

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1536974/sk-am62b-p1-gpio-as-peripheral-interrupt-line

器件型号:SK-AM62B-P1


工具/软件:

您好、

我正在开发 SK-AM62B-P1、集成了触摸显示屏。

我正在努力执行以下操作:如果我使用 GPIO 扩展器的引脚作为触摸芯片的中断线路、则驱动程序可以正常工作。

如果我使用 MPU 本身的引脚作为中断、则不会检测到手指触摸。

Belo 工作设备树部分:

&main_i2c2 {
    i2c-switch@71 {
        i2c@0 {
            touchscreen: focaltech@38 {
                compatible = "edt,edt-ft5206";
                reg = <0x38>;
 
                interrupt-parent = <&exp1>;
                interrupts = <22 GPIO_ACTIVE_LOW>;              // TS_INT#
 
                reset-gpios = <&main_gpio0 33 GPIO_ACTIVE_LOW>; // EXP_GPIO0_33
 
                touchscreen-size-x = <1024>;
                touchscreen-size-y = <600>;
            };
        };
    };
};

以下为非工作器件

&main_i2c2 {
    i2c-switch@71 {
        i2c@0 {
            touchscreen: focaltech@38 {
                compatible = "edt,edt-ft5206";
                reg = <0x38>;
 
                interrupt-parent = <&main_gpio1>;
                interrupts = <22 GPIO_ACTIVE_LOW>;              // EXP_GPIO1_22
 
                reset-gpios = <&main_gpio0 42 GPIO_ACTIVE_LOW>; // EXP_GPIO0_42
 
                touchscreen-size-x = <1024>;
                touchscreen-size-y = <600>;
            };
        };
    };
};

是否有一些 GPIO 不能用作中断?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:

    我不知道 GPIO 用作中断的任何限制、因此我假设所有 GPIO 都应支持中断。  


    您能否说明是否计划同时连接两个面板? 如果是、两个 DTS 嗅探器表明您在同一 i2c 总线上对两者使用相同的 i2c 地址。

    如果只有一个面板、则中断父级不同。 exp1 引用的是什么?  

    此致、

    Anshu

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:

    我只使用一个面板。 第一个 DTS 使用开发套件的 GPIO 扩展器 1 (&exp1) 的引脚 22 作为 CTP 中断线路。  在第二个 DTS 中、我尝试执行相同的操作、但 将 MPU 的 GPIO 1 引脚 22 用作 CTP 的中断线路。 在该配置中、不会检测到触摸。

    此致

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Balthazar、

    CTP 在这种情况下意味着什么?

    从硬件的角度来看、两种 DTS 配置下面板的连接方式是否相同?

    谢谢、

    Anshu

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:

    CTP 表示触摸面板控制器。

    是的、硬件连接方式相同两次、唯一的区别是用于中断线路的 GPIO:GPIO 扩展器、 工作情况下的引脚 2、故障情况下的主 GPIO 1 引脚 22。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我终于找到了这个问题、这绝对是我的错。 我没有在引脚配置中将引脚设置为输入。 下面的 DTS 工作原理:

    &main_pmx0 {
    	disp_pins_default: disp-pins-default {
    		bootph-all;
    		pinctrl-single,pins = <
    			AM62X_IOPAD(0x01d0, PIN_INPUT_PULLUP, 7) 	/* (B15) UART0_CTSn.GPIO1_22, used for interrupt 	*/
    			AM62X_IOPAD(0x00ac, PIN_OUTPUT_PULLUP, 7)	/* (H17) GPMC0_CSn1.GPIO0_42, used for reset 		*/
    		>;
    	};
    };
    
    &main_i2c2 {
    	i2c-switch@71 {
    		i2c@0 {
    			touchscreen: focaltech@38 {
    				compatible = "edt,edt-ft5206";
    				reg = <0x38>;
    
    				interrupt-parent = <&main_gpio1>;
    				interrupts = <22 GPIO_ACTIVE_LOW>;				// EXP_GPIO1_22
    
    				reset-gpios = <&main_gpio0 42 GPIO_ACTIVE_LOW>;	// EXP_GPIO0_42
    
    				touchscreen-size-x = <1024>;
    				touchscreen-size-y = <600>;
    
    				pinctrl-names = "default";
    				pinctrl-0 = <&disp_pins_default>;
    			};
    		};
    	};
    };