Pinctrl开发指南
1. 引脚命名规则
Rockchip Pin的ID按照 控制器(bank)+端口(port)+索引序号(pin) 组成。
1.1 GPIO(通⽤输⼊输出)
- 控制器和GPIO控制器数量⼀致
- 端口固定 A、B、C和D
- 索引序号固定 0、1、2、3、4、5、6、7
举例RK3588,从RK3588-TRM.pdf的Chapter 20 GPIO章节看到
There are five GPIOs (GPIO0 in PD_PMU,GPIO1/GPIO2/GPIO3/GPIO4 in PD_BUS)
有5个GPIO控制器,每个控制器可以控制32个IO,作为GPIO功能时,端口⾏为由GPIO控制器寄存器配 置。
1.2 IOMUX(输⼊输出复⽤)
Rockchip Pin可以复⽤成多种功能,同⼀个控制器如果存在多种复⽤引脚,⼀般叫做m0、m1、m2等等,如I2C控制器有两组复⽤引脚,分别是2cm0、i2cm1。
引脚复⽤配置的寄存器是在GRF/PMUGRF(RK3588叫做IOC)。
举例RK3588 BUS_IOC_GPIO1B_IOMUX_SEL_H Address: Operational Base + offset(0x002C)
gpio1b7_sel 4'h0: GPIO 4'h2: MIPI_CAMERA2_CLK_M0 4'h3: SPDIF1_TX_M0 4'h4: PCIE30X2_PERSTN_M3 4'h5: HDMI_RX_CEC_M2 4'h6: SATA2_ACT_LED_M1 4'h9: I2C5_SDA_M3 4'ha: UART1_RX_M1 4'hb: PWM13_M2
如下是RK3588 I2C5的IOMUX:
多通路复⽤⽀持硬件设计更为灵活,当外设⼯作电压是1.8V或3.3V,可以选择不同电压域VCCIO的引脚。
注意:多通路复⽤的寄存器配置,对TX类的引脚没有⽤,对RX类的引脚起作⽤。
1.3 PULL(端口上下拉)
Rockchip IO PAD的bias⼀般⽀持3种模式
- bias-disable
- bias-pull-up
- bias-pull-down
上下拉配置是作⽤于IO PAD,配置对GPIO/IOMUX都起作⽤。