天天看點

I.MX6Q(TQIMX6Q/TQE9)學習筆記——新版BSP之UART移植

我們在核心啟動時候已經配置系統了UART,但是tqimx6q這塊開發闆上引出了imx6q的5路TTL接口,其中,uart1和uart2轉成232接口,本文将配置這5路Uart接口。

DTS配置

由于核心中已經有imx6q的uart控制器驅動,是以,我們隻需要配置各端口的pinctrl即可。根據tqimx6q的原理圖,我們對我們的DTS作如下修改:

...

&uart1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart1_2>;
	status = "okay";
};

&uart2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart2_3>;
	status = "okay";
};

&uart3 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart3_2>;
	status = "okay";
};

&uart4 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart4_1>;
	status = "okay";
};

&uart5 {
	pintctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart5_1>;
	status = "okay";
};

...

&iomuxc {
	pinctrl-names = "default";

	uart1 {
		pinctrl_uart1_2: uart1grp-2 {
			fsl,pins = <
				MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x1b0b1
				MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA 0x1b0b1
				MX6QDL_PAD_EIM_D20__UART1_RTS_B 0x1b0b1
				MX6QDL_PAD_EIM_D19__UART1_CTS_B 0x1b0b1
			>;
		};
	};

	uart2 {
		pinctrl_uart2_3: uart2grp-3 {
			fsl,pins = <
				MX6QDL_PAD_EIM_D26__UART2_TX_DATA   0x1b0b1
				MX6QDL_PAD_EIM_D27__UART2_RX_DATA   0x1b0b1
				MX6QDL_PAD_EIM_D28__UART2_CTS_B 0x1b0b1
				MX6QDL_PAD_EIM_D29__UART2_RTS_B 0x1b0b1
			>;
		};
	};

	uart3 {
		pinctrl_uart3_2: uart3grp-2 {
			fsl,pins = <
				MX6QDL_PAD_EIM_D24__UART3_TX_DATA 0x1b0b1
				MX6QDL_PAD_EIM_D25__UART3_RX_DATA 0x1b0b1
			>;
		};
	};

	uart5 {
		pinctrl_uart5_1: uart5grp-1 {
			fsl,pins = <
				MX6QDL_PAD_KEY_COL1__UART5_TX_DATA 0x1b0b1
				MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA 0x1b0b1
			>;
		};
	};
};
           

修改之後重新編譯并燒寫DTB,新的DTB可以正常啟動核心。

測試方法

測試序列槽的方式有很多,可以編寫專門的測試程式來測試,這方面的資料網上可以找到很多,我這裡就不舉例了。本文使用了偷懶的方式,在uboot中将bootargs臨時修改為如下内容:

setenv bootargs 'noinitrd console=ttymxc1,115200 root=/dev/mmcblk0p1 rw rootfstype=ext4 init=/linuxrc'
           

然後執行boot指令,這時,連接配接到uart2的序列槽終端就可以看到核心的啟動log了,當然也可以正常的進入linux控制台。其它三個序列槽都是TTL方式的,我手頭上沒有這種電平轉換子產品,就不測試了。

至此,tqimx6q的全部序列槽都移植好了。有任何疑問可以留言讨論。

本文作者:girlkoo

本文連結:http://blog.csdn.net/girlkoo/article/details/45608249

繼續閱讀