用于禁用 LCD 并在 iMX6ULL 中使用它的 GPIO 的 DTS 文件

DTS File to disable LCD and use it's GPIO in iMX6ULL

我正在使用 Toradex 模块上系统 colibri imx6ULL 和自定义板。 我正在尝试禁用 LCD 并将它的 GPIO 用于我的传感器。我已经遵循了这个 link 中的答案。我被答案中的建议之一卡住了。

In addition to assigning these pings to an iomuxc pinctrl group, you'll also need to assign the pinctrl group to an enabled node for them to get initialized. You can create a new node specifically for this purpose if you'd like.

  1. 那一行是什么意思?我是否需要创建一个 status 属性 设置为 okay 的虚拟节点?

  2. 我可以更改出现在 /dev/ 中的 uart 端口名称吗?

  3. 如何在我的自定义看板中启用 JTAG

我的设备树源文件如下:

/dts-v1/;

#include "imx6ull-colibri-nonwifi.dtsi"
#include "imx6ull-colibri-eval-v3.dtsi"

/ {
    model = "Toradex Colibri iMX6ULL 256MB on Colibri Evaluation Board V3";
    compatible = "toradex,colibri_imx6ull-eval", "fsl,imx6ull";

    &uart1 {
        status = "okay";
    };

    &uart2 {
        status = "okay";
    };

    &uart3 {
        status = "okay";
    };

    &uart4 {
        status = "disabled";
    };

    &uart5 {
        status = "disabled";
    };


    &ecspi1 {
        status = "okay";
    };

    &i2c1 {
        status = "okay";

        /* M41T0M6 real time clock on carrier board */
        rtc: m41t0m6@68 {
            status = "disabled";
        };
    };



    &pwm1 {
        status = "okay";
    };

    &pwm2 {
        status = "okay";
    };



    &lcdif {
        status = "disabled";
    };

    &iomux {
        imx6ull-colibri {
            pinctrl_additionalgpio: additionalgpios {
                fsl,pins = <
                    MX6UL_PAD_UART2_RTS_B__GPIO1_IO23 0x14      // Pin 34 => GPS SafeBoot
                    MX6UL_PAD_CSI_DATA00__GPIO4_IO21  0x14      // Pin 101 => 1V8 Power Supply Enable
                    MX6UL_PAD_LCD_ENABLE__GPIO3_IO01  0x14      // Pin 44 => GPS EXINT
                    MX6UL_PAD_LCD_DATA07__GPIO3_IO12  0x14      // Pin 46 => GPS RST
                    MX6UL_PAD_LCD_DATA09__GPIO3_IO14  0x14      // Pin 48 => UNUSED
                    MX6UL_PAD_LCD_DATA06__GPIO3_IO11  0x14      // Pin 80 => SX1301 RST
                >;
            };
        };
    };
};

设备树 imx6ull-colibri-nonwifi.dtsi 可以在 here 上找到。

设备树 imx6ull-colibri-eval-v3.dtsi 可以在 here 上找到。

编辑:

dts 上在线阅读了一些文档后,我自己尝试了几次。在下面找到我的 dts 的最新版本。我还发现 SPI 在我的板上没有工作,所以我编辑了我的 dts 以包含 spi。

我添加了一个虚拟节点来启用 gpio。

/dts-v1/;

#include "imx6ull-colibri-nonwifi.dtsi"
#include "imx6ull-colibri-eval-v3.dtsi"

/ {
    model = "Toradex Colibri iMX6ULL 256MB on Colibri Evaluation Board V3";
    compatible = "toradex,colibri_imx6ull-eval", "fsl,imx6ull";

    &uart1 {
        status = "okay";
    };

    &uart2 {
        status = "okay";
    };

    &uart3 {
        status = "okay";
    };

    &uart4 {
        status = "disabled";
    };

    &uart5 {
        status = "disabled";
    };


    &ecspi1 {
        status = "okay";
    };

    &i2c1 {
        status = "okay";

        /* M41T0M6 real time clock on carrier board */
        rtc: m41t0m6@68 {
            status = "disabled";
        };
    };



    &pwm1 {
        status = "okay";
    };

    &pwm2 {
        status = "okay";
    };



    &lcdif {
        status = "disabled";
    };

    gpio_additional {
        pinctrl-name = "default";
        pinctrl-0 = <&pinctrl_additionalgpio>;
        status = "okay";
    };

    &ecspi1 {
        status = "okay";

    };

    &iomux {
        imx6ull-colibri {
            pinctrl_additionalgpio: additionalgpios {
                fsl,pins = <
                    MX6UL_PAD_UART2_RTS_B__GPIO1_IO23 0x14      // Pin 34 => GPS SafeBoot
                    MX6UL_PAD_CSI_DATA00__GPIO4_IO21  0x14      // Pin 101 => 1V8 Power Supply Enable
                    MX6UL_PAD_LCD_ENABLE__GPIO3_IO01  0x14      // Pin 44 => GPS EXINT
                    MX6UL_PAD_LCD_DATA07__GPIO3_IO12  0x14      // Pin 46 => GPS RST
                    MX6UL_PAD_LCD_DATA09__GPIO3_IO14  0x14      // Pin 48 => UNUSED
                    MX6UL_PAD_LCD_DATA06__GPIO3_IO11  0x14      // Pin 80 => SX1301 RST
                >;
            };
        };
    };
};

1) 这意味着你需要添加pinctrl-group e.g.您创建的那个 pinctrl_additionalgpio 到一个节点。

我将以您在设备树中禁用的 lcdif 节点为例来说明添加到节点的 pinctrl 组。在此示例中,pinctrl_lcdif_datpinctrl_lcdif_ctrl 被添加到 lcdif 节点:

&lcdif {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_lcdif_dat
             &pinctrl_lcdif_ctrl>;
};

您必须创建自己的节点并添加 pinctrl-group 或找到合适的节点,例如:

myadditionalgpio {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_additionalgpio>;
};

2) 我还没有更改设备的名称。如果您只需要一个替代名称,您可以使用 udev 规则创建符号链接:

/etc/udev/rules.d/rename-uart.rules
KERNEL=="ttymxc0", SYMLINK+="test_serial"

然后您将拥有一个指向 /dev/ttymxc0/dev/test_serial 设备。

3) 您可以查看通用的 JTAG Toradex 文档 https://developer.toradex.com/knowledge-base/jtag.