(资料图片仅供参考)
/kernel/include/linux/leds.h // 重要,led相关结构体,宏定义,trigger等目录 /kernel/driver/leds/ 下led-class.c // 定义led class及相关接口led-core.c // export 了闪烁,设置亮灭等接口led-gpio.c // "leds-gpio" 驱动leds.h // 提供几个接口,如:led_init_core
trigger 框架核心文件:目录 /kernel/driver/leds/ 下 led-triggers.c // export了许多接口,包括:led_trigger_register目录 /kernel/driver/leds/trigger 下 ledtrig-backlight.c ledtrig-camera.c ledtrig-cpu.c ledtrig-default-on.c ledtrig-disk.c ledtrig-gpio.c ledtrig-heartbeat.c // 心跳灯效果 ledtrig-mtd.c ledtrig-oneshot.c ledtrig-panic.c ledtrig-timer.c // 定时器ledtrig-transient.c
以参考上面的trigger例子写自己的trigger,或者改造,需要在make menuconfig里面选上才会编译,如下:
步骤 一 : dts配置① leds节点是在rk3588-evb.dtsi文件中定义
#include "rk3588-evb.dtsi"
② 定义四个led节点: (检查gpio是否被复用)
使用命令:dmesg | grep cannot检查是否有gpio冲突,有冲突的话驱动代码会中断,后面的dts就不会生效。
&leds { status = "okay"; compatible = "gpio-leds"; pinctrl-names = "default"; pinctrl-0 = < &work1_led_gpio >, < &work2_led_gpio >,< &work3_led_gpio >,< &work4_led_gpio >; work1_led: work1{ default-state = "off"; gpios = < &gpio4 RK_PD2 GPIO_ACTIVE_HIGH >; }; work2_led: work2{ default-state = "off"; gpios = < &gpio4 RK_PD3 GPIO_ACTIVE_HIGH >; }; work3_led: work3{ default-state = "off"; gpios = < &gpio4 RK_PD4 GPIO_ACTIVE_HIGH >; }; work4_led: work4{ default-state = "off"; gpios = < &gpio4 RK_PD5 GPIO_ACTIVE_HIGH >; };};&pinctrl { leds{ work1_led_gpio: work1-led-gpio{ rockchip,pins = < 4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_down >; }; work2_led_gpio: work2-led-gpio{ rockchip,pins = < 4 RK_PD3 RK_FUNC_GPIO &pcfg_pull_down >; }; work3_led_gpio: work3-led-gpio{ rockchip,pins = < 4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_down >; }; work4_led_gpio: work4-led-gpio{ rockchip,pins = < 4 RK_PD5 RK_FUNC_GPIO &pcfg_pull_down >; }; }; }
步骤二:调试,验证:在用户空间操作led
使用了驱动框架后可以不需要编写应用程序就可以测试led是否能正常被点亮与熄灭,这些都可以在sysfs文件系统中完成。在装载驱动后可以在/sys/class/leds/目录下看到对应的led设备目录,如本文中的work1(填充设备时的设备名字段)。
brightness power ueventmax_brightness subsystem
echo 1 > brightness
echo 0 > brightness
审核编辑:汤梓红
关键词:
每日看点!Linux LED子系统详解
国铁集团6月10日起在12306网站试行在线选铺服务
天天讯息:漂亮宝贝组合戴琦(漂亮宝贝组合)
南京江宁:“智慧防线”成功上线 助力汛期监管 今日快讯
樊纲:今年5%以上经济增长可以期待
完美世界竞技平台2周年头像框详情_世界报资讯
世界焦点!诗词里的遗产:龙虎天下绝 千载玉棺探秘
天天速递!搜救犬被确诊淋巴瘤晚期,主人带它最后一次出门,小镇居民集体出动陪它散步向它告别
恐怖《午夜迷途》现身全国院线电影推介会, “翁丁原始部落”引发群体震颤
明明很漂亮,却让人不想追剧,从李沁到鞠婧祎,问题出在哪?-天天聚看点
网坛新一代缺乏大心脏!手脚都抽筋,阿卡赛后坦言对战小德太紧张-天天视点
科二练多久可以考试了呢(科三练多久可以考试了呢)
品茗升级后用不了(品茗官网升级)
北京孕妇装批发市场(北京孕妇装)|全球观点
《天空之城》:用纯真对抗贪婪_环球滚动
中阿两国央行续签双边本币互换协议 有效期三年
全球首台!特斯拉Model Y 3D解构示教平台落地上海高校 世界通讯
【天天快播报】组密钥更新周期什么意思_组密钥更新周期
最新消息:得不到就毁掉!租客拿到6万补偿后“毁坏式”退房 被判赔偿9万元!
宁德时代回应合资企业广汽时代清算注销:该公司未开展实际业务 天天快资讯
亚马逊业务过于分散?Bernstein致信:别忘老本行!
被狼咬死的羊肉能不能吃? 当前热门
特朗普私藏机密文件案起诉书公布 辩护律师同日宣布辞职_资讯推荐
热讯:美国亚裔高考近满分被六大名校拒绝 为何常青藤“不认”亚裔做题家?
世界热推荐:一女子跳河,00后男孩营救不幸溺亡,钓友划船将女子安全救回
上合示范区五年间到发中欧班列2765列 年均增长率约35%
苏宁易购南区启动618省钱风暴 助推释放年中消费潜力
动态焦点:击败阿尔卡拉斯,德约科维奇距大满贯第23冠仅一步之遥
聚四海宾朋 促贸易往来 天天速读
全球热头条丨中国5月CPI"挺住了",PPI同比连续8个月下降,中国目前的真实利率有多高?