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.

am4379配置GPIO

Other Parts Discussed in Thread: AM4379

大家好,请教一个问题,am4379配置GPIO修改437x-gp-evm.dts文件之后,有个别IO不起作用。这是为什么呢?同样的配置,用devmem2命令查看寄存器值,也跟我修改的配置能对应上,但是有些引脚不好使。

这些是在&am43xx_pinmux里面的增加的GPIO配置

gpio0_pins: gpio0_pins {
pinctrl-single,pins = <
0x150 (PIN_OUTPUT | MUX_MODE7) /* DO2 -> GPIO0_2 */
0x154 (PIN_OUTPUT | MUX_MODE7) /* DO3 -> GPIO0_3 */
0x278 (PIN_INPUT | MUX_MODE7) /* DI5 -> GPIO0_24 */
0x15c (PIN_INPUT | MUX_MODE7) /* DI4 -> GPIO0_5 */
/*0x274 (PIN_INPUT | MUX_MODE7)*/ /* DI1 -> GPIO0_20 */
>;
};

gpio3_pins: gpio3_pins {
pinctrl-single,pins = <
0x190 (PIN_OUTPUT | MUX_MODE7) /* DO16 -> GPIO3_14 */
0x198 (PIN_OUTPUT | MUX_MODE7) /* DO14 -> GPIO3_16 */
0x19c (PIN_OUTPUT | MUX_MODE7) /* DO6 -> GPIO3_17 */
0x1a0 (PIN_OUTPUT | MUX_MODE7) /* D011 -> GPIO3_18 */
0x1a4 (PIN_OUTPUT | MUX_MODE7) /* D012 -> GPIO3_19 */
0x1a8 (PIN_OUTPUT | MUX_MODE7) /* DO8 -> GPIO3_20 */
0x1ac (PIN_OUTPUT | MUX_MODE7) /* DO10 -> GPIO3_21 */
>;
};

gpio5_pins: gpio5_pins {
pinctrl-single,pins = <
0x230 (PIN_INPUT | MUX_MODE7) /* DI3 -> GPIO5_0 */
0x234 (PIN_INPUT | MUX_MODE7) /* DI2 -> GPIO5_1 */
0x20c (PIN_INPUT | MUX_MODE7) /* DI7 -> GPIO5_20 */
0x250 (PIN_OUTPUT | MUX_MODE7) /* DO4 -> GPIO5_4 */
0x254 (PIN_OUTPUT | MUX_MODE7) /* DO5 -> GPIO5_5 */
0x258 (PIN_OUTPUT | MUX_MODE7) /* DO1 -> GPIO5_6 */
0x274 (PIN_INPUT | MUX_MODE9) /* DI1 -> GPIO5_29 */
>;
};

gpio4_pins: gpio4_pins {
pinctrl-single,pins = <
0x1b0 (PIN_OUTPUT | MUX_MODE7) /* DO9 -> GPIO4_0 */
0x1b8 (PIN_OUTPUT | MUX_MODE7) /* DO13 -> GPIO4_2 */
0x1bc (PIN_OUTPUT | MUX_MODE7) /* DO15 -> GPIO4_3 */
0x1c4 (PIN_OUTPUT | MUX_MODE7) /* DO7 -> GPIO4_5 */
0x1b4 (PIN_INPUT | MUX_MODE7) /* DI6 -> GPIO4_1 */
0x1c0 (PIN_INPUT | MUX_MODE7) /* DI8 -> GPIO4_4 */
>;
};

下面是在各个GPIO chip里面的引用管脚配置

&gpio0 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&gpio0_pins>;
};

&gpio3 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&gpio3_pins>;
};

&gpio4 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&gpio4_pins>;
};

&gpio5 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&gpio5_pins>;
ti,no-reset-on-init;
};