1、前言
什么叫做驅動框架?
內核中驅動維護者針對每種驅動設計一套【成熟的、標準的、典型的】驅動實現(xiàn),并把不同廠家的同類硬件驅動中相同的部分抽出來實現(xiàn)好,再把不同部分留出接口給具體的驅動工程師來實現(xiàn),這就叫驅動框架。
2、概述
led 子系統(tǒng)驅動框架:
所有 led 共性:
- 有和用戶通信的設備節(jié)點
- 亮和滅
不同點:
- 有的 led 可能是接在 gpio 管腳上,不同的 led 有不同的 gpio 來控制
- 有的 led 可能由其他的芯片來控制(節(jié)約 cpu 的 pin,或者為了控制 led 的電流等)
- 可以設置亮度
- 可以閃爍
所以 Linux led 子系統(tǒng)把所有 led 的共性給實現(xiàn)了,把不同的地方留給驅動工程師去做。
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)相關描述可在內核源碼 Documentation/leds/leds-class.txt 了解。
led 子系統(tǒng)是一個簡單的 Linux 子系統(tǒng) ,在目錄 /sys/class/leds 下展示該子系統(tǒng)設備,每個設備都有自己的屬性:
brightness:設置 LED 亮度,范圍 0 ~ max_brightness
max_brightness:最大亮度(255 或其他數字)
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, //最大亮度
};
-
led
+關注
關注
242文章
23845瀏覽量
674057 -
驅動
+關注
關注
12文章
1918瀏覽量
86930 -
Linux
+關注
關注
87文章
11511瀏覽量
213795
發(fā)布評論請先 登錄
關于Linux設備驅動中input子系統(tǒng)的介紹
linux驅動-Input輸入子系統(tǒng)
AW-A33 Linux驅動開發(fā)之藍牙子系統(tǒng)驅動程序的五個版本概述
介紹下input子系統(tǒng)
RK3399開發(fā)板的pinctrl和gpio子系統(tǒng)相關資料介紹
基于Linux內核輸入子系統(tǒng)的驅動研究
存放OpenHarmony驅動子系統(tǒng)源碼信息的HDF驅動框架

鴻蒙開發(fā)學習:【驅動子系統(tǒng)】

RK3568驅動指南|第十二篇 GPIO子系統(tǒng)-第135章 GPIO子系統(tǒng)與pinctrl子系統(tǒng)相結合實驗

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

評論