网站默认极速模式,电脑平面设计软件,安图县建设局网站,无主体网站是什么意思设备树中节点配置
设备树中的LED驱动一般是这样写#xff0c;LED驱动可以控制GPIO的电平变化#xff0c;生成文件节点很方便
leds: leds {compatible gpio-leds;gpio_demo: gpio_demo {label gpio_demo;gpios gpio0 RK_PC0 GPIO_ACTIV…设备树中节点配置
设备树中的LED驱动一般是这样写LED驱动可以控制GPIO的电平变化生成文件节点很方便
leds: leds {compatible gpio-leds;gpio_demo: gpio_demo {label gpio_demo;gpios gpio0 RK_PC0 GPIO_ACTIVE_HIGH;linux,default-trigger default-off;default-state on;};
}
字段解释 compatible gpio-leds; 对应了驱动中 drivers/leds/leds-gpio.c这个驱动文件 label gpio_demo; 这个名字会在文件系统中生成对应的设备节点 /sys/class/leds/gpio_demo linux,default-trigger default-off; 指的是led的触发方式 default-off是默认none作为普通的功能来使用 gpios gpio0 RK_PC0 GPIO_ACTIVE_HIGH; 前面两个参数是设置哪个GPIO 后面一个参数是指的高低电平有效 default-state on; 默认状态 on或者off
设置方式和电平的关系
设置方式 默认电平 brightness0 brightness0 gpios gpio0 RK_PC0 GPIO_ACTIVE_HIGH; linux,default-trigger default-off; default-state on 高 低高 gpios gpio0 RK_PC0 GPIO_ACTIVE_HIGH; linux,default-trigger default-off; default-state off 低低高 gpios gpio0 RK_PC0 GPIO_ACTIVE_LOW; linux,default-trigger default-off; default-state on 低高低 gpios gpio0 RK_PC0 GPIO_ACTIVE_LOW; linux,default-trigger default-off; default-state off 高高低
触发方式
触发方式linux,default-trigger default-off;
触发方式类型可以参考使用内核里面的支持项源码在drivers\leds\trigger下面 drivers/leds/trigger/ledtrig-activity.c
drivers/leds/trigger/ledtrig-audio.c
drivers/leds/trigger/ledtrig-backlight.c
drivers/leds/trigger/ledtrig-camera.c
drivers/leds/trigger/ledtrig-cpu.c
drivers/leds/trigger/ledtrig-default-on.c
drivers/leds/trigger/ledtrig-disk.c
drivers/leds/trigger/ledtrig-gpio.c
drivers/leds/trigger/ledtrig-heartbeat.c
drivers/leds/trigger/ledtrig-mtd.c
drivers/leds/trigger/ledtrig-multi-control.c
drivers/leds/trigger/ledtrig-netdev.c
drivers/leds/trigger/ledtrig-oneshot.c
drivers/leds/trigger/ledtrig-panic.c
drivers/leds/trigger/ledtrig-pattern.c
drivers/leds/trigger/ledtrig-timer.c
drivers/leds/trigger/ledtrig-transient.c 常用的有timer heartbeat oneshot 使用的时候需要检测内核config中是否有开启使用哪个就开启哪个
CONFIG_LEDS_TRIGGER_TIMERy
CONFIG_LEDS_TRIGGER_HEARTBEATy
CONFIG_LEDS_TRIGGER_BACKLIGHTy
CONFIG_LEDS_TRIGGER_DEFAULT_ONy
CONFIG_LEDS_TRIGGER_ONESHOTy 以timer和oneshot举例 timer leds: leds { compatible gpio-leds; gpio_demo: gpio_demo { label gpio_demo; gpios gpio0 RK_PC0 GPIO_ACTIVE_HIGH; linux,default-trigger timer; default-state on; };
} echo 500 /sys/class/leds/gpio_demo/delay_on
echo 500 /sys/class/leds/gpio_demo/delay_off 这样操作后GPIO电平就会高500ms低500ms oneshot leds: leds { compatible gpio-leds; gpio_demo: gpio_demo { label gpio_demo; gpios gpio0 RK_PC0 GPIO_ACTIVE_HIGH; linux,default-trigger oneshot; default-state on; };
} echo 1000 /sys/class/leds/gpio_demo/delay_on
echo 1 /sys/class/leds/gpio_demo/short
这样就会让电平变高1秒后变低 如果invert设置1后那么就是变低1秒后变高