GPIO
GPIO常用配置一般是配成LED输出或者key输入,下面是对设备树这部分修改的示例,供参考修改
注意:任何IO都只能配置一种功能,如果要修改已经有使用的IO需要找到对应位置注释掉原本的使用
拓展引脚 GPIO
Extend Pin 接口包含多路PWM,具体引脚见对应主板扩展引脚。
K1 / K1B / K3 / K8 扩展引脚
kickpi-book/rk356x-rk3588/zh/02-入门必读/04-扩展引脚
K7 / K7C 扩展引脚
kickpi-book/rk3576/zh/02-入门必读/04-扩展引脚
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