0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

linuxled驱动开发 子系统介绍

麦辣鸡腿堡 来源:嵌入式Linux系统开发 作者:嵌入式Linux系统开 2023-07-20 10:31 次阅读

1、前言

什么叫做驱动框架?

内核中驱动维护者针对每种驱动设计一套【成熟的、标准的、典型的】驱动实现,并把不同厂家的同类硬件驱动中相同的部分抽出来实现好,再把不同部分留出接口给具体的驱动工程师来实现,这就叫驱动框架。

2、概述

led 子系统驱动框架:

图片

所有 led 共性:

  1. 有和用户通信的设备节点
  2. 亮和灭

不同点:

  1. 有的 led 可能是接在 gpio 管脚上,不同的 led 有不同的 gpio 来控制
  2. 有的 led 可能由其他的芯片来控制(节约 cpupin,或者为了控制 led 的电流等)
  3. 可以设置亮度
  4. 可以闪烁

所以 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
    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

    AW-A33 Linux驱动开发之蓝牙子系统驱动程序的五个版本概述

    ㉒AW-A33 Linux驱动开发之蓝牙子系统驱动程序
    发表于 07-18 13:56

    介绍下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次下载

    Linux内核输入子系统驱动研究

    Linux内核输入子系统驱动研究
    发表于 10-31 14:41 14次下载
    Linux内核输入<b class='flag-5'>子系统</b>的<b class='flag-5'>驱动</b>研究

    驱动电源模块的子系统设计

    1.3 驱动子系统设计
    的头像 发表于 04-11 09:03 2762次阅读
    <b class='flag-5'>驱动</b>电源模块的<b class='flag-5'>子系统</b>设计

    OpenHarmony显示子系统介绍

    OpenHarmony显示子系统介绍 审核编辑:金巧
    的头像 发表于 12-28 15:19 2094次阅读
    OpenHarmony显示<b class='flag-5'>子系统</b><b class='flag-5'>介绍</b>

    存放OpenHarmony驱动子系统源码信息的HDF驱动框架

    简介 该仓主要存放OpenHarmony驱动子系统核心源码信息(包括驱动框架、配置管理、配置解析、驱动通用框架模型、硬件通用平台能力接口等),旨在为
    发表于 04-13 11:13 8次下载
    存放OpenHarmony<b class='flag-5'>驱动</b><b class='flag-5'>子系统</b>源码信息的HDF<b class='flag-5'>驱动</b>框架

    迅为RK3568开发驱动开发指南-输入子系统

    迅为RK3568开发驱动开发指南-输入子系统
    的头像 发表于 02-23 15:11 734次阅读
    迅为RK3568<b class='flag-5'>开发</b>板<b class='flag-5'>驱动</b><b class='flag-5'>开发</b>指南-输入<b class='flag-5'>子系统</b>

    鸿蒙开发学习:【驱动子系统

    OpenHarmony驱动子系统采用C面向对象编程模型构建,通过平台解耦、内核解耦,兼容不同内核,提供了归一化的驱动平台底座,旨在为开发者提供更精准、更高效的
    的头像 发表于 03-17 22:05 528次阅读
    鸿蒙<b class='flag-5'>开发</b>学习:【<b class='flag-5'>驱动</b><b class='flag-5'>子系统</b>】