AnsweredAssumed Answered

WaRP7: How to enable UART6 on MikroBus

Question asked by Ryan Harkin on Dec 21, 2017
Latest reply on Jan 2, 2018 by pierre-jean texier

I have an RS232 click board connected to the MikroBus on my NXP WaRP7 (iMX7 Solo) board.

 

I'm trying to enable UART6 so I can output from the linux kernel to the UART. I'm using a v4.14 linux kernel, but I've also used v4.9 with the same lack of success.

 

I've created the following patch for the kernel:

diff --git a/arch/arm/boot/dts/imx7s-warp.dts b/arch/arm/boot/dts/imx7s-warp.dts
index e3cc8a5..07e8f06 100644
--- a/arch/arm/boot/dts/imx7s-warp.dts
+++ b/arch/arm/boot/dts/imx7s-warp.dts
@@ -282,6 +282,15 @@
status = "okay";
};

+&uart6 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_uart6>;
+ assigned-clocks = <&clks IMX7D_UART6_ROOT_SRC>;
+ assigned-clock-parents = <&clks IMX7D_PLL_SYS_MAIN_240M_CLK>;
+ uart-has-rtscts;
+ status = "okay";
+};
+
&usbotg1 {
dr_mode = "peripheral";
status = "okay";
@@ -390,6 +399,15 @@
>;
};

+ pinctrl_uart6: uart6grp {
+ fsl,pins = <
+ MX7D_PAD_ECSPI1_MOSI__UART6_DCE_TX 0x79
+ MX7D_PAD_ECSPI1_SCLK__UART6_DCE_RX 0x79
+ MX7D_PAD_ECSPI1_SS0__UART6_DCE_CTS 0x79
+ MX7D_PAD_ECSPI1_MISO__UART6_DCE_RTS 0x79
+ >;
+ };
+
pinctrl_usdhc1: usdhc1grp {
fsl,pins = <
MX7D_PAD_SD1_CMD__SD1_CMD 0x59

 

I think I'm missing something, but I'm struggling to work out what! For example, I can see that page 2086 of the reference manual I am reading (IMX7SRM.pdf, Rev 0.1, 08/2016) mentions the IOMUXC_UART6_RX_DATA_SELECT_INPUT register. And I haven't touched that.

 

Has anybody here successfully created output on UART6 and/or have any advice on how I can make this work?

 

I'd also like the use the same UART in u-boot, so if anyone has it working in u-boot instead of the linux kernel, that would be interesting for me also.

Outcomes