怎么驱动板子的GPIO口呢?有相关例程吗?
可以使用Linux标准的gpio sys接口去控制
以GPIO47_2为例,计算 实际的gpio number:120 + 47 * 8 + 2 = 498
(每个port对应8个pin)
下面是将该pin配置 gpio out为高的例子:
root@gx-qsb-rzg2l:~# cd /sys/class/gpio/ root@gx-qsb-rzg2l:/sys/class/gpio# ls export gpiochip120 unexport root@gx-qsb-rzg2l:/sys/class/gpio# echo 498 > export root@gx-qsb-rzg2l:/sys/class/gpio# cd gpio498/ root@gx-qsb-rzg2l:/sys/class/gpio/gpio498# ls active_low device direction edge power subsystem uevent value root@gx-qsb-rzg2l:/sys/class/gpio/gpio498# cat direction in root@gx-qsb-rzg2l:/sys/class/gpio/gpio498# echo out > direction root@gx-qsb-rzg2l:/sys/class/gpio/gpio498# cat value 0 root@gx-qsb-rzg2l:/sys/class/gpio/gpio498# echo 1 > value root@gx-qsb-rzg2l:/sys/class/gpio/gpio498# cat value 1 root@gx-qsb-rzg2l:/sys/class/gpio/gpio498#
如果其他pin在export的报错,有可能是该pin被使用成其他功能。
gpio和pinctrl驱动参考:
drivers/pinctrl/sh-pfc/pfc-r9a07g044l.c
drivers/pinctrl/sh-pfc/pinctrl-rzg2l.c