GPIO

GPIO常用配置一般是配成LED输出或者key输入,下面是对设备树这部分修改的示例,供参考修改

注意:任何IO都只能配置一种功能,如果要修改已经有使用的IO需要找到对应位置注释掉原本的使用

拓展引脚 GPIO

Extend Pin 接口包含多路PWM,具体引脚见对应主板扩展引脚。

K1 / K1B / K3 / K8 扩展引脚

kickpi-book/rk356x-rk3588/zh/02-入门必读/04-扩展引脚arrow-up-right

K7 / K7C 扩展引脚

kickpi-book/rk3576/zh/02-入门必读/04-扩展引脚arrow-up-right

LED配置

RK3568

例如:将K1拓展引脚上的GPIO1_D4配置成LED,可以参考下面的修改

--- a/kernel/arch/arm64/boot/dts/rockchip/rk3568-kickpi-extend-40pin.dtsi
+++ b/kernel/arch/arm64/boot/dts/rockchip/rk3568-kickpi-extend-40pin.dtsi
@@ -29,10 +29,10 @@ gpio1d0 {
         gpios = <&gpio1 RK_PD0 GPIO_ACTIVE_HIGH>;
         default-state = "off";
     };
+    gpio1d4 {
+        gpios = <&gpio1 RK_PD4 GPIO_ACTIVE_HIGH>;
+        default-state = "off";
+    };
     gpio3b5 {
         gpios = <&gpio3 RK_PB5 GPIO_ACTIVE_HIGH>;
         default-state = "off";

测试

  • 查看GPIO注册列表

  • 命令行控制GPIO

RK3562

RK3576

RK3588

gpio-key配置

例如:将K1拓展引脚上的GPIO1_D4配置成KEY_1,可以参考下面的修改

其中code值可以参考驱动中的宏定义

测试

  • Android测试使用命令getevent:

  • Linux测试使用evtest:

sys gpio控制

当GPIO没有任何使用时,可以通过 /sys/class/gpio 进行控制

PIN 脚计算

GPIO1-D0 (gpio1-24)为例:

步骤一 确保GPIO没有任何使用

先将对应GPIO引脚注释,/sys/class/gpio/export 只能导入未注册的 gpio,将设备树对应IO取消使能

步骤二 编译镜像,重新烧录

步骤三 确认gpio未被注册

未注册如下:pin 56 (gpio1-24): (MUX UNCLAIMED) (GPIO UNCLAIMED)

步骤四 对IO口进行控制

通过 /sys/class/gpio/export 注册 56并进行控制

注册

查看是否生成

注册后的结点内容

通过结点下的内容控制 gpio , 常用如下

GPIO 模式

in:输入

out:输出

GPIO读取及高低控制

0:低

1:高

Last updated