1、前言什么叫做驱动框架?
内核中驱动维护者针对每种驱动设计一套【成熟的、标准的、典型的】驱动实现,并把不同厂家的同类硬件驱动中相同的部分抽出来实现好,再把不同部分留出接口给具体的驱动工程师来实现,这就叫驱动框架。
2、概述led 子系统驱动框架:
所有 led 共性:
有和用户通信的设备节点亮和灭不同点:
有的 led 可能是接在 gpio 管脚上,不同的 led 有不同的 gpio 来控制有的 led 可能由其他的芯片来控制(节约 cpu 的 pin,或者为了控制 led 的电流等)可以设置亮度可以闪烁所以 linux led 子系统把所有 led 的共性给实现了,把不同的地方留给驱动工程师去做。
led 子系统核心文件:
driver/leds/led-class.cdriver/leds/led-core.cdriver/leds/led-triggers.cinclude/linux/leds.h其他文件(按需)
driver/leds/led-gpio.cdriver/leds/wm8350.cdriver/leds/led-xxx.cdriver/leds/trigger/ledtrig-backlight.cdriver/leds/trigger/ledtrig-camera.cdriver/leds/trigger/ledtrig-cpu.cdriver/leds/trigger/ledtrig-default-on.cdriver/leds/trigger/ledtrig-gpio.cdriver/leds/trigger/ledtrig-heartbeat.cdriver/leds/trigger/ledtrig-ide-disk.cdriver/leds/trigger/ledtrig-multi-control.cdriver/leds/trigger/ledtrig-oneshot.cdriver/leds/trigger/ledtrig-timer.cdriver/leds/trigger/ledtrig-transient.cled 子系统相关描述可在内核源码 documentation/leds/leds-class.txt 了解。
led 子系统是一个简单的 linux 子系统 ,在目录 /sys/class/leds 下展示该子系统设备,每个设备都有自己的属性:
brightness:设置 led 亮度,范围 0 ~ max_brightnessmax_brightness:最大亮度(255 或其他数字)trigger:触发方式,如 heartbeat、mmc0、backlight、gpiodelay_off、delay_on:trigger为timer时,led亮灭的时间,单位mskernel/include/linux/leds.h
enum led_brightness { led_off = 0, //全暗 led_half = 127, //一半亮度 led_full = 255, //最大亮度};
弹簧天线如何选购
魅族16s真机谍照曝光 6.2英寸屏幕售价或超过3000元
环境空气在线监测设备功能特点介绍
大Bug:Win10激活有问题?微软:即将推出修复工具
一加5和华为荣耀9哪个好?荣耀9和一加5配置参数对比评测
linuxled驱动开发 子系统介绍
制氧机/呼吸机语音芯片,医疗设备语音ic方案——NV040D
特瑞仕半导体推出模拟式温度传感器XC3101系列产品
网络通信技术:IP地址和MAC地址的差异
基于Verilog的UART串行通信接口电路设计
空调保养不当,或成新冠疫情反扑的帮凶
微软工程师透露Win10 21H1正式版6月推送 21H2中会有大量新功能
国产处理器超快进展!龙芯新产品发布
中颖电子发布2018年业绩预告 家电芯片营收占比最大锂电池管理芯片的销售同比增速最快
同步器的作用
首期交付并不代表已经在市场站稳脚跟 小鹏汽车还有几场硬仗要打
关于mysql存储引擎你知道多少
在Linux下touch的9个命令示例
鹏辉能源第四季度订单充足,加快产能扩张步伐
在线土壤墒情监测系统的特点是什么