linux背光子系统(backlight)
生活随笔
收集整理的這篇文章主要介紹了
linux背光子系统(backlight)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?? (基于linux2.6.34)
??概述 ===== linux的背光(backlight)子系統用于在/sys目錄下提供用戶空間控制LCD或者其他顯示設備的背光亮度的接口。這里的亮度并不是亮和滅兩個狀態,可有很多個等級的亮度,便于用戶空間根據節能、可視范圍等需求調節背光的亮度。相關代碼 ======
背光子系統的代碼在/driver/video/backlight目錄中。 其中重要的文件是:generic_bl.c ?backlight.c ?lcd.c
為了支持背光子系統需要在內核中使用以下配置: Device Drives ?---> Graphics Support ---> [*]Backlight & LCD device support ---> <*>Platform LCD controls <*>Lowlevel Backlight controls
重要的數據結構 ========== include/linux/backlight.h ---------------------------- /* 單詞解釋:來自星際譯王 <--- 簡明英漢袖珍辭典 --->
intensity
[in'tensiti]?
n.強烈,劇烈,強度 亮度 */ struct generic_bl_info {
???? const char *name; ? ? ? ? ? ? ? ??????????//名字字符指針,這個名字會出現在/sys/class/backlight/中
???? int max_intensity; ? ? ? ? ? ? ? ? ???????????//最大亮度?
???? int default_intensity; ? ? ? ? ? ? ??????????? //默認亮度
???? int limit_mask; ? ? ? ? ? ? ? ? ? ? ? ???????????//亮度值的掩碼,如0xff
???? void (*set_bl_intensity)(int intensity);?????//設置亮度的函數
???? void (*kick_battery)(void); ? ? ? ? ? ? ? ? ? ?//設置亮度之后調用的函數,與電池相關,可以不定義
};
如何使用背光子系統 ================= 這是一個例子 http://lxr.linux.no/linux+v3.1.6/arch/arm/mach-imx/eukrea_mbimx27-baseboard.c#L205?? static void eukrea_mbimx27_bl_set_intensity(int intensity)
{
? ? ?/*在這個函數中根據參數intensity的值設置背光,具體通過PWM還是其它手段,要根據硬件了*/
}
static struct generic_bl_info eukrea_mbimx27_bl_info = {
? ? ? ? .name ? ? ? ? ? ? ? ? ? ? ?= "eukrea_mbimx27-bl",
? ? ? ? .max_intensity????????? = 0xff,
? ? ? ? .default_intensity????? = 0xff,
? ? ? ? .set_bl_intensity?????? = eukrea_mbimx27_bl_set_intensity,
};
static struct platform_device eukrea_mbimx27_bl_dev = {
? ? ? ? .name?????????????????? = "generic-bl", //這個名字必須是"generic-bl"
? ? ? ? .id???????????????????? ?????= 1,
? ? ? ? .dev = {
? ? ? ? ? ? ? ? .platform_data? = &eukrea_mbimx27_bl_info,
? ? ? ? },
}; 注冊?eukrea_mbimx27_bl_dev?之后就可以在/sys/class/backlight/eukrea_mbimx27-bl/下看到背光的屬性文件了。
sys文件屬性說明 ============== 背光子系統的文件在/sys/class/backlight/XXX/中,其中XXX是背光設備的名字,這個名字是注冊的時候指定的.
/sys/class/backlight/XXX/下的屬性文件有: actual_brightness? brightness???????? max_brightness???? subsystem@
bl_power?????????? device@??????????? power/???????????? uevent
重要的文件有兩個: max_brightness :最大亮度值 brightness:當前實際的亮度值(內核中記錄的值)
可以使用 "cat?/sys/class/backlight/XXX/brightness"查看當前背光亮度,使用?"echo ?_數字_ ?>> ?/sys/class/backlight/XXX/brightness"設置背光亮度。 如: [root@M3250 zhiyuan_backlight]# pwd
/sys/class/backlight/zhiyuan_backlight
[root@M3250 zhiyuan_backlight]# ls
actual_brightness? brightness???????? max_brightness???? subsystem@
bl_power?????????? device@??????????? power/???????????? uevent
[root@M3250 zhiyuan_backlight]# cat brightness
200
[root@M3250 zhiyuan_backlight]# echo 255 >> brightness
[root@M3250 zhiyuan_backlight]# cat brightness
255
[root@M3250 zhiyuan_backlight]# cat max_brightness
255
[root@M3250 zhiyuan_backlight]#
============================================
作者:yuanlulu
http://blog.csdn.net/yuanlulu
版權沒有,但是轉載請保留此段聲明
============================================?
總結
以上是生活随笔為你收集整理的linux背光子系统(backlight)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 台湾厂商未来三个月全面上调主板价格
- 下一篇: 排课软件