(资料图片仅供参考)
/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子系统详解
显示器销量TOP10公布:AOC第一 小米第二
日本个人信息保护委员会向OpenAI发出警告,要求停止未经许可的数据收集 全球最资讯
“五彩湘茶”九大品牌进京推介,与合作茶企达成产销对接
办学理念是什么(办学理念)
足坛年薪排行榜:姆巴佩跌至第4,第2和第3来自亚洲,第1实至名归|环球微速讯
天天快播:“三夏”机收快速推进
《仙剑三》翻拍:情怀有多不值钱?
关于铁路计次票、定期票 如何购买使用
播报:“十年一遇”!数万人被疏散,加拿大山林野火为何失控?
《海边魔术师》 极具南洋风情的世界|世界速讯
樊纲:今年5%以上经济增长可以期待 当前视讯
湖北广水:“公证+司法”模式破解轻微刑事案件“和解难”_全球热头条
陕西“文化和自然遗产日”惠民福利券来啦|当前时讯
看完心里酸溜溜的文案
每日讯息!足球即时比分即时倍率(足球即时指数即时赔率)
社保缴纳时间规定(社保缴纳时间)
2023年5月天津市小客车摇号配置结果情况表
【全球速看料】加强基层妇联组织建设的思考和建议(妇联组织如何加强组织建设)
中企承建柬埔寨柏威夏省瑞萨水库项目完工交付后效益显著 环球微速讯
每日消息!只爱西经歌词粤语谐音歌词_只爱西经歌词粤语谐音
全球微速讯:浪潮信息:6月8日获融资买入4.45亿元,占当日流入资金比例21.81%
要拆了!无锡市中心 这座著名大厦 世界聚看点 每日时讯
联合国总部首次因空气污染放弃升旗-热文
当前动态:管理制度和操作指引有什么不同之处(管理制度和操作指引有什么不同)
萍乡租房子纠纷律师费用一般怎么计算
全球观察:又一家,获批!外资巨头 加速布局中国
鲁北化工:业绩说明会定于6月16日举行 环球新要闻
2023中国硅藻泥行业市场格局及供需现状分析_焦点速递
惠民保2023:保障升级持续拓面,短期内不会“凉凉”