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
+關注
關注
242文章
23312瀏覽量
661640 -
驅動
+關注
關注
12文章
1844瀏覽量
85367 -
Linux
+關注
關注
87文章
11322瀏覽量
209862
發布評論請先 登錄
相關推薦
關于Linux設備驅動中input子系統的介紹
對于輸入類設備如鍵盤、鼠標、觸摸屏之類的Linux驅動,內核提供input子系統,使得這類設備的處理變得非常便捷。總體上來講,input子系統由三部分組成: 事件驅動input核心設備
發表于 01-09 16:06
?2710次閱讀
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次下載
評論