DTS File для отключения LCD и использования его GPIO в iMX6ULL

Я использую Toradex система на модуле колибри imx6ULL с нестандартной доской. Я пытаюсь отключить ЖК-дисплей и использовать его GPIO для своих датчиков. Я следовал за ответом в этой ссылке. Я застрял с одним предложением в ответе.

В дополнение к назначению этих эхо-запросов группе iomuxc pinctrl вам также необходимо назначить группу pinctrl включенному узлу, чтобы они могли инициализироваться. Вы можете создать новый узел специально для этой цели, если хотите.

  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 можно найти здесь.

Дерево устройства imx6ull-colibri-eval-v3.dtsi можно найти здесь.

РЕДАКТИРОВАТЬ:

Я пробовал несколько раз самостоятельно, прочитав некоторые документы в Интернете на 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 ответ

Решение

1) Это означает, что вам нужно добавить группу pinctrl, например ту, которую вы создали pinctrl_additionalgpio в узел.

Я возьму, например, узел lcdif, который вы отключили в своем дереве устройств, чтобы проиллюстрировать группу pinctrl, добавленную к узлу. В этом примере pinctrl_lcdif_dat а также pinctrl_lcdif_ctrl добавлены в lcdif узел:

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

Вы должны либо создать свой собственный узел и добавить группу pinctrl, либо найти подходящий узел, например:

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

2) Я так и не дошел до того, как сменил название устройства. Если все, что вам нужно, это иметь альтернативное имя, вы можете использовать правило udev для создания символической ссылки:

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

Тогда у вас будет /dev/test_serial устройство, которое указывает на /dev/ttymxc0,

3) Вы можете взглянуть на общую документацию JTAG Toradex https://developer.toradex.com/knowledge-base/jtag.

Другие вопросы по тегам