backlight 子系统

来源:互联网 发布:java 什么是包 编辑:程序博客网 时间:2024/06/10 02:50
(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]#
阅读(189) | 评论(0) | 转发(0) |
0

上一篇:Linux基础: 解密module_init幕后的故事

下一篇:uboot中nand flash控制器参数TACLS、TWRPH0和TWRPH1的确定(基于K9F2G08U0B)

相关热门文章
  • linux 常见服务端口
  • 【ROOTFS搭建】busybox的httpd...
  • xmanager 2.0 for linux配置
  • 什么是shell
  • linux socket的bug??
  • linux dhcp peizhi roc
  • 关于Unix文件的软链接
  • 求教这个命令什么意思,我是新...
  • sed -e "/grep/d" 是什么意思...
  • 谁能够帮我解决LINUX 2.6 10...
评论热议
0 0