设备树 GPIO 引脚多路复用值计算

Device Tree GPIO Pin Multipexing Value Calculation

我使用的是自定义 i.MX6 板,我正在设备树中配置引脚多路复用。

谁能告诉我这个值是怎么计算的

MX6QDL_PAD_GPIO_0__CCM_CLKO1    0x130b0

相同的GPIO在不同的dtsi中以不同的方式配置

MX6QDL_PAD_SD1_DAT2__GPIO1_IO19          0x80000000
MX6QDL_PAD_SD1_DAT2__GPIO1_IO19         0x030b0

我知道的是我们把PADSDA1_DAT2配置成GPIO1_IO19模式..但是为什么值不一样..

感谢您的宝贵时间

要了解该值的实际含义,您必须参考 IMX6Q 参考手册章节 36.4.457 Pad Control Register (IOMUXC_SW_PAD_CTL_PAD_SD1_DATA2)。

您还可以查看内核源文档https://www.kernel.org/doc/Documentation/devicetree/bindings/pinctrl/fsl%2Cimx-pinctrl.txt,了解有关设备树源的更多一般信息。

这个值用来控制PAD(滞后,上拉,..)。

比如要使能迟滞,就要设置寄存器的第16位,如果要开漏,就要设置第11位。

在你的情况下,你想占用 SD1_DAT2 Pad to Signal GPIO1_IO19 并将 Pad 控制寄存器值设置为 0x8000000(或 0x30b0 但你必须设置对你更方便的值) .