1、前言
什么叫做驅(qū)動(dòng)框架?
內(nèi)核中驅(qū)動(dòng)維護(hù)者針對(duì)每種驅(qū)動(dòng)設(shè)計(jì)一套【成熟的、標(biāo)準(zhǔn)的、典型的】驅(qū)動(dòng)實(shí)現(xiàn),并把不同廠家的同類硬件驅(qū)動(dòng)中相同的部分抽出來(lái)實(shí)現(xiàn)好,再把不同部分留出接口給具體的驅(qū)動(dòng)工程師來(lái)實(shí)現(xiàn),這就叫驅(qū)動(dòng)框架。
2、概述
led 子系統(tǒng)驅(qū)動(dòng)框架:
所有 led 共性:
- 有和用戶通信的設(shè)備節(jié)點(diǎn)
- 亮和滅
不同點(diǎn):
- 有的 led 可能是接在 gpio 管腳上,不同的 led 有不同的 gpio 來(lái)控制
- 有的 led 可能由其他的芯片來(lái)控制(節(jié)約 cpu 的 pin,或者為了控制 led 的電流等)
- 可以設(shè)置亮度
- 可以閃爍
所以 Linux led 子系統(tǒng)把所有 led 的共性給實(shí)現(xiàn)了,把不同的地方留給驅(qū)動(dòng)工程師去做。
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)是一個(gè)簡(jiǎn)單的 Linux 子系統(tǒng) ,在目錄 /sys/class/leds 下展示該子系統(tǒng)設(shè)備,每個(gè)設(shè)備都有自己的屬性:
brightness:設(shè)置 LED 亮度,范圍 0 ~ max_brightness
max_brightness:最大亮度(255 或其他數(shù)字)
trigger:觸發(fā)方式,如 heartbeat、mmc0、backlight、gpio
delay_off、delay_on:trigger為timer時(shí),LED亮滅的時(shí)間,單位ms
kernel/include/linux/leds.h
enum led_brightness {
LED_OFF = 0, //全暗
LED_HALF = 127, //一半亮度
LED_FULL = 255, //最大亮度
};
-
led
+關(guān)注
關(guān)注
242文章
23843瀏覽量
674038 -
驅(qū)動(dòng)
+關(guān)注
關(guān)注
12文章
1918瀏覽量
86927 -
Linux
+關(guān)注
關(guān)注
87文章
11511瀏覽量
213778
發(fā)布評(píng)論請(qǐng)先 登錄
關(guān)于Linux設(shè)備驅(qū)動(dòng)中input子系統(tǒng)的介紹
迅為RK3568開發(fā)板驅(qū)動(dòng)指南GPIO子系統(tǒng)三級(jí)節(jié)點(diǎn)操作函數(shù)實(shí)驗(yàn)

linux驅(qū)動(dòng)-Input輸入子系統(tǒng)
AW-A33 Linux驅(qū)動(dòng)開發(fā)之藍(lán)牙子系統(tǒng)驅(qū)動(dòng)程序的五個(gè)版本概述
介紹下input子系統(tǒng)
RK3399開發(fā)板的pinctrl和gpio子系統(tǒng)相關(guān)資料介紹
基于Linux內(nèi)核輸入子系統(tǒng)的驅(qū)動(dòng)研究
Linux內(nèi)核輸入子系統(tǒng)的驅(qū)動(dòng)研究

存放OpenHarmony驅(qū)動(dòng)子系統(tǒng)源碼信息的HDF驅(qū)動(dòng)框架

鴻蒙開發(fā)學(xué)習(xí):【驅(qū)動(dòng)子系統(tǒng)】

RK3568驅(qū)動(dòng)指南|第十二篇 GPIO子系統(tǒng)-第135章 GPIO子系統(tǒng)與pinctrl子系統(tǒng)相結(jié)合實(shí)驗(yàn)

迅為RK3568開發(fā)板驅(qū)動(dòng)指南GPIO子系統(tǒng)GPIO子系統(tǒng)API函數(shù)的引入

評(píng)論