Colibri IMX6 UART4

Hello I am using Colibri iMX6DL with IRISv2.0A

with Angstrom v2017.12 - Kernel 4.9.87-rt62-2.8.4+g3bb6e32 image

I customized the devicetree as;

Pin defs

Index: kernel-source/arch/arm/boot/dts/imx6qdl-colibri.dtsi
===================================================================
--- kernel-source.orig/arch/arm/boot/dts/imx6qdl-colibri.dtsi
+++ kernel-source/arch/arm/boot/dts/imx6qdl-colibri.dtsi
@@ -772,7 +772,8 @@
 	};
 
 	uart2 {
-		pinctrl_uart2_dte: uart2grp-dte { /* DTE mode */			fsl,pins = <
+		pinctrl_uart2_dte: uart2grp-dte { /* DTE mode */			
+			fsl,pins = <
 				MX6QDL_PAD_SD4_DAT4__UART2_TX_DATA   0x1b0b1
 				MX6QDL_PAD_SD4_DAT7__UART2_RX_DATA   0x1b0b1
 				MX6QDL_PAD_SD4_DAT6__UART2_RTS_B 0x1b0b1
@@ -790,6 +791,18 @@
 		};
 	};
 
+
+	uart4 {
+		pinctrl_uart4_dte: uart4grp-dte { /* DTE mode */
+			fsl,pins = <
+				MX6QDL_PAD_CSI0_DAT13__UART4_TX_DATA 0x1b0b12
+				MX6QDL_PAD_CSI0_DAT12__UART4_RX_DATA 0x1b0b1
+			>;
+		};
+	};
+
+
+
 	usdhc {
 		pinctrl_mmc_cd: gpio_mmc_cd {
 			fsl,pins = <
@@ -837,8 +850,6 @@
 				MX6QDL_PAD_CSI0_DAT7__EIM_DATA05 0x1b0b0
 				MX6QDL_PAD_CSI0_DAT8__EIM_DATA06 0x1b0b0
 				MX6QDL_PAD_CSI0_DAT9__EIM_DATA07 0x1b0b0
-				MX6QDL_PAD_CSI0_DAT12__EIM_DATA08 0x1b0b0
-				MX6QDL_PAD_CSI0_DAT13__EIM_DATA09 0x1b0b0
 				MX6QDL_PAD_CSI0_DAT14__EIM_DATA10 0x1b0b0
 				MX6QDL_PAD_CSI0_DAT15__EIM_DATA11 0x1b0b0
 				MX6QDL_PAD_CSI0_DAT16__EIM_DATA12 0x1b0b0
@@ -1004,6 +1015,16 @@
 	status = "disabled";
 };
 
+
+/* UART_4 */
+&uart4 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart4_dte>;
+	fsl,dte-mode;
+	status = "disabled";
+};
+
+
 &usbh1 {
 	vbus-supply = <&reg_usb_host_vbus>;
 	status = "disabled";

.dts file

Index: kernel-source/arch/arm/boot/dts/imx6qdl-colibri.dtsi
===================================================================
--- kernel-source.orig/arch/arm/boot/dts/imx6qdl-colibri.dtsi
+++ kernel-source/arch/arm/boot/dts/imx6qdl-colibri.dtsi
@@ -790,6 +790,15 @@
 		};
 	};
 
+	uart4 {
+		pinctrl_uart4_dte: uart4grp-dte { /* DTE mode */
+			fsl,pins = <
+				MX6QDL_PAD_CSI0_DAT13__UART4_TX_DATA 0x1b0b12
+				MX6QDL_PAD_CSI0_DAT12__UART4_RX_DATA 0x1b0b1
+			>;
+		};
+	};
+
 	usdhc {
 		pinctrl_mmc_cd: gpio_mmc_cd {
 			fsl,pins = <
@@ -1003,6 +1012,14 @@
 	fsl,dte-mode;
 	status = "disabled";
 };
+
+/* UART_4 */
+&uart4 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart4_dte>;
+	fsl,dte-mode;
+	status = "okay";
+};
 
 &usbh1 {
 	vbus-supply = <&reg_usb_host_vbus>;

When I transmit data from Colibri to FTDI, the received data is not correct. Packages are crashing.
But vice versa, data packets from FTDI to Colibri are perfectly received by Colibri.

When I applied pull-up (with 10k) to the transmission line (colibri to FTDI) it worked successfully.

Then I checked the board design schematics of Viola and Iris and the UART TX lines did not have pull-up resistors.

Are pull-up resistors really needed on Uart TX lines? or can i solve this in devicetree?

Hi @erdemkahraman,
I suspect your pad configuration for the TX pin is incorrect. It is 0x1b0b12, where it should be 0x1b0b1.

Sorry my bad :cry:. i fixed this issue thank you :slightly_smiling_face: