[LED]如何配置LCD背光和LED,调试方法
[DESCRIPTION]
LCD背光和LED配置文件
alps/custom/<proj name>lk/cust_leds.c
alps/custom/<proj name>/kernel/leds/mt65xx/cust_leds.c
drvgen.exe编辑修改codegen.dws
{"red", MT65XX_LED_MODE_NONE, -1,{0}},
{"green", MT65XX_LED_MODE_NONE, -1,{0}},
{"blue", MT65XX_LED_MODE_NONE, -1,{0}},
{"jogball-backlight", MT65XX_LED_MODE_NONE, -1,{0}},
{"keyboard-backlight",MT65XX_LED_MODE_NONE, -1,{0}},
{"button-backlight", MT65XX_LED_MODE_PMIC, MT65XX_LED_PMIC_BUTTON,{0}},
{"lcd-backlight", MT65XX_LED_MODE_CUST_BLS_PWM, (int)disp_bls_set_backlight,{0}},
};
(PWM5~7在PMIC6320)
频率计算:52M/(1+1)/64/32=12.695KHz
{"lcd-backlight", MT65XX_LED_MODE_GPIO, (int)Cust_SetBacklight,{0}},
通过实现Cust_SetBacklight(level,div)函数操作GPIO动作
{"lcd-backlight", MT65XX_LED_MODE_CUST, (int)Cust_SetBacklight,{0}},
通过实现
unsigned int Cust_SetBacklight(int level, int div)
{
mtkfb_set_backlight_level(level);
}
通过mtkfb_set_backlight_level(level);实现的函数指针将level传到LCM driver
在LCM的driver中实现.set_backlight=lcm_setbacklight,
MT6320只有3个Isink,应该不能满足要求
和Mt6589有区别的:
1.PWM1~PWM5
{"lcd-backlight", MT65XX_LED_MODE_PWM, PWM1,{0,0,0,0,0}},
{0,0,0,0,0}表示src_clk=32k时钟,div=0,HDuration=4; LDuration=4,pmic_pad=0
频率计算:32K/(0+1)/64/4=125Hz
{"lcd-backlight", MT65XX_LED_MODE_PWM, PWM1,{1,1,32,32,0}},
{1,1,30,30,0}表示src_clk=66M时钟,div=1,HDuration=32; LDuration=32,pmic_pad=0
频率计算:66M/(1+1)/64/32=16.111KHz
MT6323有4个Isink,每路24mA电流,可以double为48mA,可以接8个LED
{"lcd-backlight", MT65XX_LED_MODE_PMIC, MT65XX_LED_PMIC_LCD_ISINK,{0}},
{"button-backlight", MT65XX_LED_MODE_PMIC, MT65XX_LED_PMIC_BUTTON,{0}},
MT6572
ISink0和Isink1合并做Button LED
{"button-backlight", MT65XX_LED_MODE_PMIC, MT65XX_LED_PMIC_NLED_ISINK01,{0}},
注意:如果需要修改电流等级和double current,请修改leds.c
brightness_set_pmic()和led_blink_pmic()
电流等级接口:upmu_set_isinks_chx_step(0x0);//0x0 4mA;0x01 8mA;0x2 12mA;0x03 16mA 0x04 20mA;0x05 24mA
double current接口:upmu_set_isinks_chx_double_en(0x1);
{"button-backlight", MT65XX_LED_MODE_PWM, PWM1,{0,0,0,0,0}},
MT6589
1.Pre-charger(PCH_DET) LED
主要使用由于关机充电LED,插USB charger点亮,lk阶段关闭
如果需要打开PCH_DET:
在mt_leds.c(lk)和leds.c 中要打开pre-charger LED 的控制
Upmu_chr_chrind_on(1);//开启
Upmu_chr_chrind_on(0);//关闭
{"red", MT65XX_LED_MODE_PMIC,MT65XX_LED_PMIC_NLED_ISINK0,{0}},
{"green", MT65XX_LED_MODE_PMIC,MT65XX_LED_PMIC_NLED_ISINK1,{0}},
{"blue", MT65XX_LED_MODE_PMIC,MT65XX_LED_PMIC_NLED_ISINK2,{0}},
{"red", MT65XX_LED_MODE_PWM,PWM5,{0,0,0,0,1}},
{"green", MT65XX_LED_MODE_PWM,PWM6,{0,0,0,0,1}},
{"blue", MT65XX_LED_MODE_PWM,PWM7,{0,0,0,0,1}},
注意:Mt6589上的PWM在sleep的时候没有波形输出的,如果sleep需要闪烁设计,请使用PMIC Mt6320上的PWM(PWM5~PWM7)
与Mt6589的区别:
1.mt6572没有pre-charger LED的PCH_DET pin
文件:alps/mediatek/custom/<proj name>/kernel/flashlight/constant_flashlight/leds_stobe.c
实现FL_enable()和FL_disable()
MT6572没有Flash LDO,可以通过控制PWM,GPIO,ISINK等控制Flash light
alps/mediatek/hardware/liblights/lights.c
如果需要同时打开2个以上的LED,请修改set_speaker_light_locked()里面的逻辑
cd /sys/class/leds/xxx/brightness
(xxx表示的是light的名字,例如green,blue,red分别表示绿灯、蓝灯和红灯,lcd-backlight表示的是lcd背光。)
echo brightness_level > brightness 检查是否按照你设置的亮度显示。
cd /sys/class/leds/xxx/
echo timer > trigger 这个命令会创建delay_on和delay_off两个文件。
echo on_time > delay_on 这个命令用于设置LED on的时间
echo off_time > delay_on 这个命令用于设置LED off的时间(On和off的时间都是以毫秒为单位的。)
echo timer > trigger 命令清除delay_on和delay_off时间,让led off。
echo none > trigger 删除delay_on/delay_off 节点
如 printk("mt65xx_leds_set_cust: set brightness, name:%s, mode:%d, level:%d\n", cust->name, cust->mode, level);
[LED]如何配置LCD背光和LED,调试方法的更多相关文章
- 如何配置LCD背光和LED,调试方法
LCD背光和LED配置文件 alps/custom/<proj name>lk/cust_leds.c alps/custom/<proj name>/kernel/leds/ ...
- [转帖]LCD与LED的区别之背光原理与优缺点对比介绍
LCD与LED的区别之背光原理与优缺点对比介绍 http://m.elecfans.com/article/620376.html 时下液晶面板与液晶电视技术已经达到炉火纯青的境界,并已经成为大屏幕平 ...
- amba H2平台用PWM控制LCD背光
ambarella H2系列Soc的GPIO口能作PWM使用的个数有限(GPIO0-GPIO3),从PRM里GPIO: Function Selection章节可以得到如何配置GPIO为PWM功能. ...
- 使用IOCTL代码实现LCD背光调节
国内这种代码找不到.于是參考了相关代码后完好例如以下代码,且实现方式通过IOCTL代码实现LCD背光调节的功能. 适合场合为平板电脑或者笔记本.主要还是要靠BIOS支持与否. 编译环境使用:Dev-c ...
- LED Magic Light - How Does The LED Light Change Color?
The LED Magic Light states that the color-changing LED is not an LED in the package, but three ...
- 【STM32H7教程】第7章 STM32H7下载和调试方法(IAR8)
完整教程下载地址:http://forum.armfly.com/forum.php?mod=viewthread&tid=86980 第7章 STM32H7下载和调试方法(IAR8) 本 ...
- 【STM32H7教程】第5章 STM32H7下载和调试方法(MDK5)
完整教程下载地址:http://forum.armfly.com/forum.php?mod=viewthread&tid=86980 第5章 STM32H7下载和调试方法(MDK5) 本 ...
- FreeRTOS 调试方法(printf---打印任务执行情况)
以下转载自安富莱电子: http://forum.armfly.com/forum.php 本章节为大家介绍 FreeRTOS 的调试方法,这里的调试方法主要是教会大家如何获取任务的执行情况,通过获取 ...
- kernel启动console_init之前console不可用时发生crash的调试方法
http://code.google.com/p/innosoc/wiki/KernelBootCrashDebug 注: 如在i386_start_kernel中加入:early_printk(&q ...
随机推荐
- 使用Symfony 2在三小时内开发一个寻人平台
简介 Symfony2是一个基于PHP语言的Web开发框架,有着开发速度快.性能高等特点.但Symfony2的学习曲线也比 较陡峭,没有经验的初学者往往需要一些练习才能掌握其特性. 本文通过一个快速开 ...
- hdwiki 编码规范
编码规范 命名规范 1.1.主要的目录 control 里面是控制类 ,前台命名为something.php,则后台对应的是admin_+前台名称,名称应选有意义的英文单词,例如 前台 ...
- 使用percona xtradb cluster的IST方式添加新节点
使用percona xtradb cluster的IST(Incremental State Transfer)特性添加新节点,防止新节点加入时使用SST(State SnapShop Transfe ...
- LeetCode----204. Count Primes(Java)
package countPrimes204; /* * Description: * Count the number of prime numbers less than a non-negati ...
- jquery 实现页面局部刷新ajax做法
这个方法就多了去了,常见的有以下几种:下面介绍全页面刷新方法:有时候可能会用到 window.location.reload()刷新当前页面. parent.location.reload()刷新父亲 ...
- CentOS安装solr 4.10.3
Solr是什么? Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器.Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置.可扩展,并对索 ...
- Thread的六种状态
线程共有6种状态:在某一时刻只能是这6种状态之一.这些状态由Thread.State这个枚举类型表示,并且可以通过getState()方法获得当前具体的状态类型. 包括(new,runnable,bl ...
- JqueryEasyUI 解决IE下datagrid无法刷新的问题
问题描述: 在使用JqueryEasyUI 时,发现在IE下$('#table').datagrid('reload');无效,数据并没有被刷新,究其原因,是因为刷新时,datagrid请求的url没 ...
- Mysql-学习笔记(==》函数的建立与使用 十)
函数的建立与使用 USE db;SELECT sname,sscore,CASE WHEN sscore>=90 THEN '优秀'WHEN sscore>=70 THEN '良好'WHE ...
- CentOS6.6系统源代码安装mysql5.5.28教程(附源码包下载地址)+sysbench的安装
mysql从5.5版本开始,不再使用./configure编译,而是使用cmake编译器,具体的cmake编译参数可以参考mysql官网文档(※ 非常重要) http://dev.mysql.com/ ...