第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > linux背光子系统(backlight)

linux背光子系统(backlight)

时间:2019-03-07 22:49:27

相关推荐

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

/yuanlulu

版权没有,但是转载请保留此段声明

============================================

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。