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.

[参考译文] Linux:向 AM335x SDK 添加 GT9xx 触摸屏驱动程序

Guru**** 2540720 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/635772/linux-adding-gt9xx-touchscreen-drivers-to-am335x-sdk

工具/软件:Linux

您好!

我不熟悉 Linux、也构建了此 SDK。 对于我们的项目、我们需要包含 GT9XX 触控驱动程序。 我尝试了谷歌上的许多方法,但不能成功。 我的目标是将驱动程序添加到操作系统并使其始终运行。 我已将文件添加到"drivers/input/toucher"中、然后修改了位于同一文件夹中的 makefile 和 Kconfig。 但是、当我使用"make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage"命令构建映像时、这些对象未被创建。 在.config 文件中、即使在 makefile 和 Kconfig 中进行了更改、我也无法看到任何与 GT9相关的内容。 我还尝试添加"tisdk_AM335x-evm_defconfig"文件。 它们似乎都不起作用。 请帮我解决这个问题。

谢谢、

Vinod

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您做了一个

    使 tisdk_AM335x-evm_defconfig

    在修改 tisdk_AM335x-evm_defconfig 之后?

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

    尊敬的 Vinod:

    自2.0.0版(内核4.1.6)起、Processor SKD 中就包含了 GT9xx 触摸屏驱动程序。

    我将使用最新 的 Processor SDK 向您展示如何将此驱动程序包含在操作系统中。

    驱动器处于的位置 /board-support/linux- /drivers/input/touchscreen/goodix.c
    如果您检查 Makefile 文件、您将看到以下行:
    obj-$(CONFIG_Touchscreen _GOODIX)   += godix.o

    在中 /board-support/linux- /arch/arm/configs/tisdk_am335x-evm_defconfig config_Touchscreen _GOODIX=m 将其指定为模块构建。

    在 menuconfig 中、您可以看到其位置和选择:
    $ CD /board-support/linux- /
    $ arch=arm make menuconfig


    要使驱动程序始终运行,必须设置设备树节点。
    您可以在以下位置找到设备树绑定和节点示例:
    /board-support/linux- /Documentation/devicetree/bindings/input/touchscreen/goodix.txt

    Goodix GT9xx 系列触摸屏控制器的设备树绑定

    所需属性:

     -兼容      :应为"goodix,gt911"
                或"goodix、gt9110"
                或"goodix、gt912 "
                或"goodix、gt927"
                或"goodix、gt9271"
                或"goodix、gt928"
                或"goodix、gt967"
     -reg         :芯片的 I2C 地址。 应为0x5d 或0x14
     -interrupt-parent   :连接芯片的中断控制器
     -中断      :芯片连接到的中断

    可选属性:

     -IRQ-GPIO      :用于 IRQ 的 GPIO 引脚。 驱动程序使用
              将 GPIO 引脚中断为输出以复位器件。
     -RESET-GPIO      :用于复位的 GPIO 引脚

     -触摸屏反转 x :X 轴反转(布尔值)
     -触摸屏反转 y :Y 轴反转(布尔值)
     -触摸屏交换-x-y:X 和 Y 轴交换(布尔值)
                                (交换是在反转轴后完成的)

    示例:

       I2C@00000000{
          /*... *

          gt928@5d{
             兼容="goodix、gt928";
             reg =<0x5d>;
             interrupt-parent =<&GPIO>;
             中断=<0 0>;

             IRQ-GPIO =<&GPIO1 0 0>;
             RESET-GPIO =<&GPIO1 0>;
          };

          /*... *
       };

    此致、
    Kemal

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是... 我已经完成了。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Kemal、

    感谢您的回答。 我已经完成了这个文件。 但我找不到可以指定 I2C 总线和从器件地址详细信息的位置。 它是否会从@"gt928@5d {兼容="goodix、gt928";..."的器件树中获取? 。 如果是、我可以在哪里指定 I2C 总线详细信息?

    2) 2)我可以在哪里添加它
    I2C@00000000{
    /*... *

    gt928@5d{
    兼容="goodix、gt928";
    reg =<0x5d>;
    interrupt-parent =<&GPIO>;
    中断=<0 0>;

    IRQ-GPIO =<&GPIO1 0 0>;
    RESET-GPIO =<&GPIO1 0>;
    };

    /*... *
    };
    我的 DTS 文件?。

    很抱歉、如果我问的是基本问题、但我在 AM335x-blacbone.dts 文件中添加了错误。 请帮帮我。

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

    首先检查触摸屏物理连接的 i2c 线路、然后将触摸屏节点置于该 i2c 节点内。

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

    该器件已连接到 i2c0、因此我已根据此进行了更改。 现在、DTS 文件正在构建、但触摸屏不起作用。

    下面是配置:
    I2C@0{
    goodix_ts@14{
    兼容="goodix、gt9xx;
    reg =<0x14>;
    interrupt-parent =<&clkout2_pin>;
    中断=<31>;
    /* VDD_ANA-SUPPLY =<&pm8226_L19>;
    VCC_i2c-supply =<&pm8226_lvs1>;
    goodix、rst-gpio =<&msgpio 16 0x00>;
    goodix、IRQ-GPIO =<&msgpio 17 0x00>;*
    goodix、cfg-group0 =[
    42 D0 02 00 05 75 01 0F 24
    0f 64 3C 03 05 00 00 02 00
    00 16 19 1C 14 8C 0E 0E 24 00 31
    0D 00 00 83 33 1D 00 41 00 00 00 00
    00 00 00 08 0A 00 2B 1C 3C 94 D5
    03 08 00 04 93 1E 00 82 23 00
    74 29 00 69 2F 00 5F 37 00 5F 20
    40 60 00 F0 40 30 55 50 27 00
    00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 14 19 00 00
    50 50 02 04 06 08 0A 0C 0E 10 12
    14 16 18 1A 1C 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 1D
    1E 1F 20 21 22 24 26 28 29 2A 1C
    18 16 14 13 12 10 0F 0C 0A 08 06
    04 02 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 9C 01];
    goodix、cfg-group2 =[
    48 D0 02 00 05 75 01 0F 24
    0f 64 3C 03 05 00 00 02 00
    00 16 19 1C 14 8C 0E 0E 24 00 31
    0D 00 00 83 33 1D 00 41 00 00 00 00
    3c 0A 14 08 0A 00 2B 1C 3C 94 D5
    03 08 00 04 93 1E 00 82 23 00
    74 29 00 69 2F 00 5F 37 00 5F 20
    40 60 00 F0 40 30 55 50 27 00
    00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 14 19 00 00
    50 50 02 04 06 08 0A 0C 0E 10 12
    14 16 18 1A 1C 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 1D
    1E 1F 20 21 22 24 26 28 29 2A 1C
    18 16 14 13 12 10 0F 0C 0A 08 06
    04 02 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 3C 01];
    };
    };

    您能告诉我这里发生了什么错误吗?

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

    您好、Kemal、

    驱动程序正在加载,但显示“Invalid config,using defaults”(无效配置,使用默认值)。 这是否意味着 DTS 中的配置错误? 您能不能帮助配置正确的数据。

    我已复制邮件供您参考。

    [35.927901] Goodix-TS 0-0014:ID 928、版本:1040
    [35.958914] Goodix-TS 0-0014:配置无效、使用默认值
    [35.986554]输入:Goodix 电容式触摸屏、如/devices/platform/ocp/44e0b000.i2c/i2c-0/0-0014/input/input0所示

    oot@AM335x-EVM:/# i2cdetect -r 0
    警告! 该程序会使您的 I2C 总线混淆、导致数据丢失和更糟糕的情况!
    我将使用读取字节命令探测文件/dev/i2c-0。
    我将探测地址范围0x03-0x77。
    继续? [y/n] y
        0 1 2 3 4 5 6 7 8 9 A b c d e f
    00:------------ ------------ ------
    10:------ UU ---------------- ------------ --
    20:------ UU -------------- ------------ --
    30:------------ ------------ ------------ --
    40:------------ ------------ ------------ --
    50:---------- ------------ ------------ --
    60:------------ ------------ ------------ --
    70:------------ ------

    请在这方面帮助我。

    谢谢、此致、
    Vinod

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

    再次检查您的原理图并查看 IRQ-GPIO 和 RESET-GPIO 连接在哪个 gpioX 上。 然后在器件树中输入正确的 GPIO。