1、前言
什么叫做驅(qū)動框架?
內(nèi)核中驅(qū)動維護者針對每種驅(qū)動設(shè)計一套【成熟的、標(biāo)準(zhǔn)的、典型的】驅(qū)動實現(xiàn),并把不同廠家的同類硬件驅(qū)動中相同的部分抽出來實現(xiàn)好,再把不同部分留出接口給具體的驅(qū)動工程師來實現(xiàn),這就叫驅(qū)動框架。
2、概述
led 子系統(tǒng)驅(qū)動框架:

所有 led 共性:
- 有和用戶通信的設(shè)備節(jié)點
- 亮和滅
不同點:
- 有的 led 可能是接在 gpio 管腳上,不同的 led 有不同的 gpio 來控制
- 有的 led 可能由其他的芯片來控制(節(jié)約 cpu 的 pin,或者為了控制 led 的電流等)
- 可以設(shè)置亮度
- 可以閃爍
所以 Linux led 子系統(tǒng)把所有 led 的共性給實現(xiàn)了,把不同的地方留給驅(qū)動工程師去做。
led 子系統(tǒng)核心文件:
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 子系統(tǒng)相關(guān)描述可在內(nèi)核源碼 Documentation/leds/leds-class.txt 了解。
led 子系統(tǒng)是一個簡單的 Linux 子系統(tǒng) ,在目錄 /sys/class/leds 下展示該子系統(tǒng)設(shè)備,每個設(shè)備都有自己的屬性:

brightness:設(shè)置 LED 亮度,范圍 0 ~ max_brightness
max_brightness:最大亮度(255 或其他數(shù)字)
trigger:觸發(fā)方式,如 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, //最大亮度
};
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
led
+關(guān)注
關(guān)注
243文章
24596瀏覽量
690846 -
驅(qū)動
+關(guān)注
關(guān)注
12文章
1956瀏覽量
88529 -
Linux
+關(guān)注
關(guān)注
88文章
11760瀏覽量
219030
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
關(guān)于Linux設(shè)備驅(qū)動中input子系統(tǒng)的介紹
對于輸入類設(shè)備如鍵盤、鼠標(biāo)、觸摸屏之類的Linux驅(qū)動,內(nèi)核提供input子系統(tǒng),使得這類設(shè)備的處理變得非常便捷??傮w上來講,input子系統(tǒng)由三部分組成: 事件驅(qū)動input核心設(shè)備
發(fā)表于 01-09 16:06
?3066次閱讀
迅為RK3568開發(fā)板驅(qū)動指南GPIO子系統(tǒng)三級節(jié)點操作函數(shù)實驗
迅為RK3568開發(fā)板驅(qū)動指南GPIO子系統(tǒng)三級節(jié)點操作函數(shù)實驗
linux驅(qū)動-Input輸入子系統(tǒng)
以前,看過國嵌關(guān)于input子系統(tǒng)的視頻課程,說實話,我看完后腦子里很亂,給我的印象好像是input子系統(tǒng)驅(qū)動是一個全新的驅(qū)動架構(gòu),疑惑相當(dāng)多。前幾天在網(wǎng)上,看到有很多人
發(fā)表于 05-21 00:05
AW-A33 Linux驅(qū)動開發(fā)之藍牙子系統(tǒng)驅(qū)動程序的五個版本概述
?AW-A33 Linux驅(qū)動開發(fā)之藍牙子系統(tǒng)驅(qū)動程序
發(fā)表于 07-18 13:56
介紹下input子系統(tǒng)
文章目錄前言input子系統(tǒng)按鍵檢測C代碼微信公眾號前言這是前3篇:嵌入式Linux i.MX開發(fā)板嵌入式Linux NFS嵌入式Linux 交叉編譯工具鏈嵌入式Linux LED GPIO本篇介紹
發(fā)表于 11-04 08:14
RK3399開發(fā)板的pinctrl和gpio子系統(tǒng)相關(guān)資料介紹
,驅(qū)動工程師只做驅(qū)動,應(yīng)用工程師專注做應(yīng)用?! inux下的pintcrl和gpio子系統(tǒng)就類似于ST的“BSP庫”,但是linux的pinctrl和gpio系統(tǒng)實現(xiàn)的功能和過程要遠
發(fā)表于 09-16 17:27
基于Linux內(nèi)核輸入子系統(tǒng)的驅(qū)動研究
Linux因其完全開放的特性和穩(wěn)定優(yōu)良的性能深受歡迎,當(dāng)推出了內(nèi)核輸入子系統(tǒng)后,更方便了嵌入式領(lǐng)域的驅(qū)動開放。介紹了Linux的設(shè)備驅(qū)動基礎(chǔ),詳細闡述了基于Linux內(nèi)核輸入
發(fā)表于 09-12 16:38
?23次下載
存放OpenHarmony驅(qū)動子系統(tǒng)源碼信息的HDF驅(qū)動框架
簡介 該倉主要存放OpenHarmony驅(qū)動子系統(tǒng)核心源碼信息(包括驅(qū)動框架、配置管理、配置解析、驅(qū)動通用框架模型、硬件通用平臺能力接口等),旨在為
發(fā)表于 04-13 11:13
?8次下載
鴻蒙開發(fā)學(xué)習(xí):【驅(qū)動子系統(tǒng)】
OpenHarmony驅(qū)動子系統(tǒng)采用C面向?qū)ο缶幊棠P蜆?gòu)建,通過平臺解耦、內(nèi)核解耦,兼容不同內(nèi)核,提供了歸一化的驅(qū)動平臺底座,旨在為開發(fā)者提供更精準(zhǔn)、更高效的
RK3568驅(qū)動指南|第十二篇 GPIO子系統(tǒng)-第135章 GPIO子系統(tǒng)與pinctrl子系統(tǒng)相結(jié)合實驗
RK3568驅(qū)動指南|第十二篇 GPIO子系統(tǒng)-第135章 GPIO子系統(tǒng)與pinctrl子系統(tǒng)相結(jié)合實驗
迅為RK3568開發(fā)板驅(qū)動指南GPIO子系統(tǒng)GPIO子系統(tǒng)API函數(shù)的引入
迅為RK3568開發(fā)板驅(qū)動指南GPIO子系統(tǒng)GPIO子系統(tǒng)API函數(shù)的引入
linuxled驅(qū)動開發(fā) 子系統(tǒng)介紹
評論