【问题标题】:Setting GPIO pins on touchscreen Linux Driver在触摸屏 Linux 驱动程序上设置 GPIO 引脚
【发布时间】:2018-02-28 11:51:03
【问题描述】:

我需要指定 EDT-FT5206 显示器的 GPIO 引脚,但我不知道从哪里开始。

我知道linux内核有一些特定的驱动程序用于这种类型的屏幕,位于"/drivers/input/touchscreen/edt-ft5x06. c",可以通过modprobe命令调用;但我不知道如何指定从哪些引脚接收信息。

到目前为止,我已经能够收集到一些文档,例如屏幕数据表和有关驱动程序的一些信息,但除此之外我还没有做更多的事情。

提前感谢您的帮助。

【问题讨论】:

    标签: linux kernel gpio drivers touchscreen


    【解决方案1】:

    在这个驱动的最后你可以看到设备树匹配表:

    #ifdef CONFIG_OF
    static const struct of_device_id edt_ft5x06_of_match[] = {
        { .compatible = "edt,edt-ft5206", .data = &edt_ft5x06_data },
        { .compatible = "edt,edt-ft5306", .data = &edt_ft5x06_data },
        { .compatible = "edt,edt-ft5406", .data = &edt_ft5x06_data },
        { .compatible = "edt,edt-ft5506", .data = &edt_ft5506_data },
        /* Note focaltech vendor prefix for compatibility with ft6236.c */
        { .compatible = "focaltech,ft6236", .data = &edt_ft6236_data },
        { /* sentinel */ }
    };
    MODULE_DEVICE_TABLE(of, edt_ft5x06_of_match);
    #endif
    

    有了这个,您可以在您的板设备树中查找兼容属性,我使用 arch/arm/boot/dts/imx28tx.dts 作为具有节点的示例:

    polytouch: edt-ft5x06@38 {
            compatible = "edt,edt-ft5x06";
            reg = <0x38>;
            pinctrl-names = "default";
            pinctrl-0 = <&tx28_edt_ft5x06_pins>;
            interrupt-parent = <&gpio2>;
            interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
            reset-gpios = <&gpio2 6 GPIO_ACTIVE_LOW>;
            wake-gpios = <&gpio4 9 GPIO_ACTIVE_HIGH>;
            wakeup-source;
        };
    

    有了这个,我们可以使用属性pinctrl-0中使用的引用来检查屏幕正在使用的引脚:

     tx28_edt_ft5x06_pins: tx28-edt-ft5x06-pins@0 {
            reg = <0>;
            fsl,pinmux-ids = <
                MX28_PAD_SSP0_DATA6__GPIO_2_6 /* RESET */
                MX28_PAD_SSP0_DATA5__GPIO_2_5 /* IRQ */
                MX28_PAD_ENET0_RXD2__GPIO_4_9 /* WAKE */
            >;
            fsl,drive-strength = <MXS_DRIVE_4mA>;
            fsl,voltage = <MXS_VOLTAGE_HIGH>;
            fsl,pull-up = <MXS_PULL_DISABLE>;
        };
    

    如果imx28tx 不是您的主板,那么您必须在主板设备树中编写此配置,或者使用主板 GPIO 为触摸屏制作 DT Overlay。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-17
      • 1970-01-01
      • 2017-01-30
      • 2015-02-09
      • 2023-04-01
      • 1970-01-01
      • 2014-03-30
      相关资源
      最近更新 更多