简单的gpio-keys按键和gpio-leds工作灯配置。
GPIO按键
配置要点
- 按键端子在按键按下时,将GPIO与地短路,因此
低电平有效,默认拉高
DTS配置
- autorepeat: 一直按着按键时,不断重复触发
- label: 显示的按键名称
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
/ { gpio-keys { compatible = "gpio-keys"; autorepeat; pinctrl-names = "default"; pinctrl-0 = <&gpio_keys>;
volume-up { label = "volume up"; gpios = <&gpio3 RK_PC7 GPIO_ACTIVE_LOW>; linux,code = <KEY_VOLUMEUP>; };
volume-down { label = "volume down"; gpios = <&gpio3 RK_PD0 GPIO_ACTIVE_LOW>; linux,code = <KEY_VOLUMEDOWN>; }; }; };
&pinctrl { gpio-group { gpio_keys: gpio-keys { rockchip,pins = <3 RK_PC7 RK_FUNC_GPIO &pcfg_pull_up>, <3 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>; }; }; };
|
板载状态灯
- 其他触发器可以从
sdk/kernel/Documentation/devicetree/bindings/leds/common.txt中查找
- Android 8.1默认没加载驱动,要手动加一下
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
1 2 3 4 5 6 7 8 9 10 11 12
|
&work_led { gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_HIGH>; linux,default-trigger = "heartbeat"; # 默认是根据CPU的负载改变频率的呼吸灯 };
# 添加新的状态灯 &leds { disk_led: disk { gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>; linux,default-trigger = "disk-activity"; }; };
|