RK3399 Linux设备树DTS中gpio编号计算方法
DTS 中 GPIO 编号的计算方法
RK3399的GPIO在Linux设备树(Device Tree,简称DT)中的编号映射遵循一定的规则。
RK3399有5组GPIO bank,分别是GPIO0到GPIO4。每组GPIO bank由多个GPIO引脚组成,
这些引脚以A0到A7、B0到B7、C0到C7、D0到D7进行编号区分。
在设备树源文件(DTS)中,这些GPIO引脚的编号是通过特定的计算得出的。
例如,我在用的Firefly-RK3399开发板:
GPIO0_B4
对应DTS中的描述 :<&gpio0 12 GPIO_ACTIVE_HIGH>
。
这里的12
是通过计算得出的:
首先确定GPIO0_B4
属于B组,B组的起始编号是8(A组起始编号是0,C组是16,D组是24);
然后加上B4中的4,即8+4=12。
在DTS中配置GPIO时,设置GPIO的工作模式,如输入输出模式、中断触发模式等。
设置GPIO为普通输出:
GPIO_ACTIVE_HIGH
表示高电平有效;
GPIO_ACTIVE_LOW
表示低电平有效。