RK3568 GPIO计算方法
RK3568总共有5组GPIO bank,GPIO0 – GPIO4,每组又以A0~A7, B0~B7, C0~C7, D0~D7作为编号区分。
linux kernel启动时,可以看到驱动加载信息如下
[ 0.402639] rockchip-gpio fdd60000.gpio: probed gpio0 (fdd60000.gpio)
[ 0.410237] rockchip-gpio fe740000.gpio: probed gpio1 (fe740000.gpio)
[ 0.417814] rockchip-gpio fe750000.gpio: probed gpio2 (fe750000.gpio)
[ 0.425385] rockchip-gpio fe760000.gpio: probed gpio3 (fe760000.gpio)
[ 0.432957] rockchip-gpio fe770000.gpio: probed gpio4 (fe770000.gpio)
RK3568的GPIO引脚计算公式如下
GPIO Pin = bank * 32 + number
bank是分组,number是编号。number计算如下
number = group * 8 + X
group是小组号,分别为Group A,Group B,Group C,Group D组。起始序号为0,依次类推。
X是序号。
下面以GPIO4_D5来举例
GPIO4_D5分析
GPIO4表示bank = 4
D5表示,group=3,X = 5。
所以,最终计算为4 x 32 + (3×8 + 5) = 128 + 29 = 157
所以Linux系统中的GPIO4_D5的序号为157,在/sys/class/gpio
目录中就可以使用157来导出这个GPIO来使用。