Hi, Iām the Toradex AI Assistant. The Toradex Support team will follow up with you shortly!
Did you like my answer?
It looks like you are trying to enable all the UART interfaces on the Verdin AM62 module, but you are only seeing 5 UARTs listed after booting. Here are a few things to check and consider:
-
Device Tree Consistency:
- Ensure that the pinctrl settings and the UART nodes are correctly defined and consistent.
- Verify that there are no conflicting pin assignments or incorrect pin configurations.
-
Status Property:
- Make sure that the
statusproperty for each UART node is set to"okay". - In your device tree, you have some UART nodes with
status = "disabled";and then later set tostatus = "okay";. Ensure that the final status is correctly set to"okay".
- Make sure that the
-
DMA Configuration:
- Ensure that the DMA settings are correctly configured for each UART that requires DMA.
- Verify that the DMA channels are not conflicting with each other.
-
Kernel Logs:
- Check the kernel logs (
dmesg) for any errors or warnings related to UART initialization. This can provide clues if there are issues with the device tree or driver initialization.
- Check the kernel logs (
-
UART Driver Support:
- Ensure that the UART driver in the kernel supports all the UART instances you are trying to enable.
- Verify that the driver is not limited to a certain number of UARTs.
-
Pin Multiplexing:
- Double-check the pin multiplexing settings to ensure that the pins are correctly configured for UART functionality and not being used by other peripherals.
Here is a revised version of your device tree snippet with some corrections:
/* Verdin UART_0, used as the Linux console */
pinctrl_uart0: main-uart0-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x1c8, PIN_INPUT_PULLUP, 0) /* (D14) UART0_RXD */ /* SODIMM 147 */
AM62X_IOPAD(0x1cc, PIN_OUTPUT, 0) /* (E14) UART0_TXD */ /* SODIMM 149 */
>;
};
/* Verdin UART_4 */
pinctrl_uart4: main-uart4-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x00b0, PIN_INPUT_PULLUP, 3) /* (K22) GPMC0_CSn2.UART4_RXD */ /* SODIMM 53 */
AM62X_IOPAD(0x00b4, PIN_OUTPUT, 3) /* (K24) GPMC0_CSn3.UART4_TXD */ /* SODIMM 55 */
>;
};
/* Verdin UART_6 */
pinctrl_uart6: main-uart6-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x0194, PIN_INPUT_PULLUP, 3) /* (B19) MCASP0_AXR3.UART6_RXD */ /* SODIMM 21 */
AM62X_IOPAD(0x0244, PIN_OUTPUT, 1) /* (C17) MMC1_SDWP.UART6_TXD */ /* SODIMM 21 */
>;
};
/* Verdin UART_5 */
pinctrl_uart5: main-uart5-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x0074, PIN_INPUT_PULLUP, 2) /* (U25) GPMC0_AD14.UART5_RXD */ /* SODIMM 135 */
AM62X_IOPAD(0x0078, PIN_OUTPUT, 2) /* (U24) GPMC0_AD15.UART5_TXD */ /* SODIMM 17 */
>;
};
/* Verdin UART_2 */
pinctrl_uart2: main-uart2-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x0224, PIN_INPUT_PULLUP, 3) /* (D22) MMC1_DAT3.UART2_RXD */ /* SODIMM 70 */
AM62X_IOPAD(0x0228, PIN_OUTPUT, 3) /* (C21) MMC1_DAT2.UART2_TXD *//* SODIMM 72 */
>;
};
/* Verdin UART_3 */
pinctrl_uart3: main-uart3-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x0234, PIN_INPUT_PULLUP, 3) /* (B22) MMC1_CLK.UART3_RXD */ /* SODIMM 74 */
AM62X_IOPAD(0x023c, PIN_OUTPUT, 3) /* (A21) MMC1_CMD.UART
Please, also check if these links can help you solve your problem:
https://developer.toradex.com/software/linux-resources/device-tree/
https://community.toradex.com/t/enable-uart-instead-of-verdin-can-1-on-verdin-am62/21882.