gpt4 book ai didi

linux - 在触摸屏 Linux 驱动程序上设置 GPIO 引脚

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:19:05 24 4
gpt4 key购买 nike

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

我知道 linux 内核在 "/drivers/input/touchscreen/edt-ft5x06.c" 中有一些针对此类屏幕的特定驱动程序,可以通过以下方式调用modprobe 命令的手段;但我不知道如何指定从哪些引脚接收信息。

到目前为止,我已经能够收集一些文档,如屏幕数据表和一些关于驱动程序的信息,但我无法做更多的事情。

在此先感谢您的帮助。

最佳答案

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

#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 覆盖。

关于linux - 在触摸屏 Linux 驱动程序上设置 GPIO 引脚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46304756/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com