imx6q yocto修改device tree中uart管腳配置
阿新 • • 發佈:2019-02-04
因自己做的板子上把SD3_DAT6和SD3_DAT7複用成uart1的除錯口,公版程式碼裡是用於usdhc3,需修改device tree中的管腳配置,方法如下:
1、修改arch/arm/boot/dts/imx6qdl-sabresd.dtsi(此檔案作為標頭檔案被imx6q-sabresd.dts包含):
在&iomuxc子結點的pinctrl_uart1: uart1grp中,修改pin腳定義(pin腳名可在kernel程式碼中imx6q-pinfunc.h查詢):
將MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA、MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA
改為:MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA、MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA
同時將子結點pinctrl_usdhc3: usdhc3grp中的MX6QDL_PAD_SD3_DAT6__SD3_DATA6、MX6QDL_PAD_SD3_DAT7__SD3_DATA7遮蔽掉,否則會有io申請失敗的報錯。
2、在imx6qdl-sabresd.dtsi後面會呼叫到:
&uart1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart1>;
status = "okay";
};
3、編譯device tree:
$make imx6q-sabresd.dtb
將生成的imx6q-sabresd.dtb燒錄即可。