I.MX6Q(TQIMX6Q/TQE9)學習筆記——新版BSP之UART移植
阿新 • • 發佈:2019-02-14
我們在核心啟動時候已經配置系統了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
- 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
- >;
- };
- };
- };
測試方法
測試串列埠的方式有很多,可以編寫專門的測試程式來測試,這方面的資料網上可以找到很多,我這裡就不舉例了。本文使用了偷懶的方式,在uboot中將bootargs臨時修改為如下內容:
- setenv bootargs 'noinitrd console=ttymxc1,115200 root=/dev/mmcblk0p1 rw rootfstype=ext4init=/linuxrc'
至此,tqimx6q的全部串列埠都移植好了。有任何疑問可以留言討論。