天天看點

iomux介紹--基于imx8qm

舉例:

iomux介紹--基于imx8qm

uart0功能實作,pinctrl-0選擇的是pinctrl_lpuart0。

iomux介紹--基于imx8qm

通過查詢datesheet或者i.MX_8QuadMax_Pinmux_v0.71.xlsx得知:

iomux介紹--基于imx8qm

UART0_RX和UART0_TX兩個引腳分别複用ATL0功能。

拆分如下:

引腳名稱 複用功能名稱

SC_P_ UART0_RX _ DMA_UART0_RX

查詢SC_P_UART0_RX_DMA_UART0_RX定義在kernel_imx\include\dt-bindings\pinctrl\pads-imx8qm.h下:

#define SC_P_UART0_RX_DMA_UART0_RX SC_P_UART0_RX 0(複用功能0)
           

pads-imx8qm.h詳解:

前294行都是定義pin腳編号

比如:

SC_P_LVDS0_I2C0_SCL 52

表示LVDS0_I2C0_SCL 引腳編号是52,這個在反編譯dtb得到的dts的時候會用到,比如:

gpio3_06 {

fsl,pins = <0x34 0x3 0x21>;

linux,phandle = <0x9b>;

phandle = <0x9b>;

};
           

0x34就是52引腳,0x3指複用功能3(ATL3),0x21指寄存器值,0x9b是pinctrl-0指向的指針,完整dts如下:

[email protected] {

compatible = "cy,cyttsp6_i2c_adapter";

reg = <0x24>;

pinctrl-names = "default";

pinctrl-0 = <0x9b>;
           

而後面都是定義所有引腳的所有複用功能字元串,如上所述。