Hi there,
I have a custom imx8m nano board and we're hoping to utilize UART4 to communicate with a peripheral. I'm walking my way through board bring-up and have run into a bit of a weird issue. The TX is working, but the RX is not (fwiw, the scope shows the signal getting sent TO the RX pin, I'm just not seeing any input from within Linux).
Here's what I've done...
I've configured UART4 in imx-atf to allocate UART4 to the A53s per suggestions from this forum - notably changing the domain permissions to:
RDC_PDAPn(RDC_PDAP_UART4, D0R | D0W),
Within u-boot and Linux device trees, I've configured the pins for UART RX and TX and enabled UART4...
pinctrl_uart4: uart4grp {
fsl,pins = <
MX8MN_IOMUXC_UART4_RXD_UART4_DCE_RX 0x140
MX8MN_IOMUXC_UART4_TXD_UART4_DCE_TX 0x140
>;
};
...
&uart4 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart4>;
assigned-clocks = <&clk IMX8MN_CLK_UART4>;
assigned-clock-parents = <&clk IMX8MN_SYS_PLL1_80M>;
status = "okay";
};
I have started the clock within u-boot...
static iomux_v3_cfg_t const uart4_pads[] = {
IMX8MN_PAD_UART4_RXD__UART4_DCE_RX | MUX_PAD_CTRL(UART_PAD_CTRL),
IMX8MN_PAD_UART4_TXD__UART4_DCE_TX | MUX_PAD_CTRL(UART_PAD_CTRL),
};
...
imx_iomux_v3_setup_multiple_pads(uart4_pads, ARRAY_SIZE(uart4_pads));
init_uart_clk(3);
From the Linux side, I'm just doing a loopback on the UART4 line to see if I can echo back the data I'm sending...
Am I missing something obvious? Is it possible the M7 is still assigned somehow or there's a conflict due to the M7 usually owning UART4?
Thanks in advance!!