当前位置: 代码迷 >> 综合 >> imx6q yocto修改device tree中uart管脚配置
  详细解决方案

imx6q yocto修改device tree中uart管脚配置

热度:56   发布时间:2023-12-11 20:59:39.0

因自己做的板子上把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烧录即可。


??
??
  相关解决方案