RK平台计算GPIO对应的整型数

GPIO是比较常用的资源,比如说控制LED灯亮灭,控制LCD上电,控制模块的复位电路,做外设的中断脚等等,这些都有对GPIO的操作和使用,所以说,GPIO开发是驱动开发中必不可少的操作,而且也是最基础的东西。

我们在驱动开发过程中,有时候我们不能确定自己使用和申请的gpio是否对了,我们可以把它对应的数值给打印出来,通过对比对应的数值可以确定我们具体使用的是哪个数值;下面依旧是拿rk平台来举例:

RK平台计算GPIO对应的整型数

这里使用的是 GPIO7_C5 来举例。首先,需要计算出代表 GPIO7_C5 的值,算法如下:

GPIO7_C5 = 7x32 + (C-A)x8 + 5 = 7x32+2x8+5 = 245;

(注:最前面和 32 相乘的数字因为是 gpio7,所以是 732。如果是 gpio3,那就是 332;
括号里面的 A、B、C、D 分别代表数值 0、1、2、3,在计算时候分别对应去减即可。
这里因为是 C5,所以用 C-A,如果是 B3,就是 B-A;最后的+5 是因为是 GPIO7_C5,
如果是 GPIO7_C4,那么最后就+4。)

此外,我们还可以通过以下两个命令来查看确认:
cat /d/pinctrl/pinctrl/pinmux-pins

cat /sys/kernel/debug/gpio