器件树GPIO引脚多重值计算

时间:2018-04-17 05:22:21

标签: linux embedded-linux device-tree

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

任何人都可以告诉我这个值是如何计算的

MX6QDL_PAD_GPIO_0__CCM_CLKO1    0x130b0

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

MX6QDL_PAD_SD1_DAT2__GPIO1_IO19          0x80000000
MX6QDL_PAD_SD1_DAT2__GPIO1_IO19         0x030b0

我所知道的是我们将PAD SDA1_DAT2配置为GPIO1_IO19模式..但为什么值不同..

感谢您的时间

1 个答案:

答案 0 :(得分:1)

要了解该值的实际含义,您必须参考IMX6Q参考手册第36.4.457节焊盘控制寄存器(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转换为信号GPIO1_IO19并将Pad控制寄存器值设置为0x8000000(或0x30b0,但您必须设置更方便的内容)。