1、前言
什么叫做驱动框架?
内核中驱动维护者针对每种驱动设计一套【成熟的、标准的、典型的】驱动实现,并把不同厂家的同类硬件驱动中相同的部分抽出来实现好,再把不同部分留出接口给具体的驱动工程师来实现,这就叫驱动框架。
2、概述
led 子系统驱动框架:
所有 led 共性:
- 有和用户通信的设备节点
- 亮和灭
不同点:
- 有的 led 可能是接在 gpio 管脚上,不同的 led 有不同的 gpio 来控制
- 有的 led 可能由其他的芯片来控制(节约 cpu 的 pin,或者为了控制 led 的电流等)
- 可以设置亮度
- 可以闪烁
所以 Linux led 子系统把所有 led 的共性给实现了,把不同的地方留给驱动工程师去做。
led 子系统核心文件:
driver/leds/led-class.c
driver/leds/led-core.c
driver/leds/led-triggers.c
include/linux/leds.h
其他文件(按需)
driver/leds/led-gpio.c
driver/leds/wm8350.c
driver/leds/led-xxx.c
driver/leds/trigger/ledtrig-backlight.c
driver/leds/trigger/ledtrig-camera.c
driver/leds/trigger/ledtrig-cpu.c
driver/leds/trigger/ledtrig-default-on.c
driver/leds/trigger/ledtrig-gpio.c
driver/leds/trigger/ledtrig-heartbeat.c
driver/leds/trigger/ledtrig-ide-disk.c
driver/leds/trigger/ledtrig-multi-control.c
driver/leds/trigger/ledtrig-oneshot.c
driver/leds/trigger/ledtrig-timer.c
driver/leds/trigger/ledtrig-transient.c
led 子系统相关描述可在内核源码 Documentation/leds/leds-class.txt 了解。
led 子系统是一个简单的 Linux 子系统 ,在目录 /sys/class/leds 下展示该子系统设备,每个设备都有自己的属性:
brightness:设置 LED 亮度,范围 0 ~ max_brightness
max_brightness:最大亮度(255 或其他数字)
trigger:触发方式,如 heartbeat、mmc0、backlight、gpio
delay_off、delay_on:trigger为timer时,LED亮灭的时间,单位ms
kernel/include/linux/leds.h
enum led_brightness {
LED_OFF = 0, //全暗
LED_HALF = 127, //一半亮度
LED_FULL = 255, //最大亮度
};
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
led
+关注
关注
240文章
23052浏览量
656962 -
驱动
+关注
关注
12文章
1818浏览量
85104 -
Linux
+关注
关注
87文章
11202浏览量
208694
发布评论请先 登录
相关推荐
关于Linux设备驱动中input子系统的介绍
对于输入类设备如键盘、鼠标、触摸屏之类的Linux驱动,内核提供input子系统,使得这类设备的处理变得非常便捷。总体上来讲,input子系统由三部分组成: 事件驱动input核心设备
发表于 01-09 16:06
•2683次阅读
linux驱动-Input输入子系统
以前,看过国嵌关于input子系统的视频课程,说实话,我看完后脑子里很乱,给我的印象好像是input子系统驱动是一个全新的驱动架构,疑惑相当多。前几天在网上,看到有很多人
发表于 05-21 00:05
介绍下input子系统
文章目录前言input子系统按键检测C代码微信公众号前言这是前3篇:嵌入式Linux i.MX开发板嵌入式Linux NFS嵌入式Linux 交叉编译工具链嵌入式Linux LED GPIO本篇介绍
发表于 11-04 08:14
【OpenHarmony资料合集】Sensor子系统/图形子系统/Ability子系统介绍
1、OpenHarmony资料合集之Sensor子系统 人类获取外界信息必须借助于感觉器官,而在研究自然现象和规律以及生产活动仅靠感官已经远远不够了,为了适应这种情况,出现了传感器。随着物联网
发表于 03-14 16:35
鸿蒙的驱动子系统资料汇总(一)
1、轻量系统驱动开发查看 //drivers/adapter/khdf/,这个目录下有一个 liteos_m 子目录,进入子目录查看 readme 文档: 该仓主要存放 OpenHarmony
发表于 03-29 14:53
鸿蒙的驱动子系统资料汇总(二)
3、驱动相关模块的编译打开并查看 //vendor/hisilicon/hispark_taurus/config.json, 这是小型系统 Hi3516 开发板的产品配置表,仔细查看与驱动
发表于 03-29 14:58
RK3399开发板的pinctrl和gpio子系统相关资料介绍
,驱动工程师只做驱动,应用工程师专注做应用。 linux下的pintcrl和gpio子系统就类似于ST的“BSP库”,但是linux的pinctrl和gpio系统实现的功能和过程要远
发表于 09-16 17:27
基于Linux内核输入子系统的驱动研究
Linux因其完全开放的特性和稳定优良的性能深受欢迎,当推出了内核输入子系统后,更方便了嵌入式领域的驱动开放。介绍了Linux的设备驱动基础,详细阐述了基于Linux内核输入
发表于 09-12 16:38
•23次下载
存放OpenHarmony驱动子系统源码信息的HDF驱动框架
简介 该仓主要存放OpenHarmony驱动子系统核心源码信息(包括驱动框架、配置管理、配置解析、驱动通用框架模型、硬件通用平台能力接口等),旨在为
发表于 04-13 11:13
•8次下载
评论