[LED]LCD背光设置为PWM模式的时候,config_data里面的参数如何使用

[LED]LCD背光设置为PWM模式的时候,config_data里面的参数如何使用

[DESCRIPTION]

LCD背光设置为PWM模式的时候,config_data里面的参数如何使用

[SOLUTION]

配置cust_leds.c参数:
static struct cust_mt65xx_led cust_led_list[MT65XX_LED_TYPE_TOTAL] = {
{"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_PWM, PWM1,{0,0,0,0,0}},
};
LCD 背光
MT6589
PWMPWM frequency = src_clk/(div+1)/64/HDuration;
其中src_clk表示时钟源的频率,div表示分频的参数,HDuration表示每个bit的高电平持续的时钟周期。
在\alps\mediatek\kernel\drivers\leds\leds.c文件里面的backlight_set_pwm函数通过config_data的参数来决定上面公式里面的参数。
1. config_data->clock_source = 0表示选择32k的src_clk,config_data->clock_source> 0表示选择52M的src_clk;
2. config_data->div表示分频的参数;
3. config_data->High_duration和config_data->Low_duration分别表示每个bit持续的高电平的时钟周期和低电平持续的时钟周期。
{0,0,0,0,0}src_clk=32kdiv=0HDuration=4; LDuration=4,pmic_pad=0
32K/(0+1)/64/4=125Hz
{"lcd-backlight", MT65XX_LED_MODE_PWM, PWM5,{1,1,32,32,1}},
{1,1,32,32,1}src_clk=52Mdiv=1HDuration=32; LDuration=32,pmic_pad=1
52M/(1+1)/64/32=12.695KHz
因为底层设置的背光强度的level最大值是64,所以一个完整的PWM周期的波形如下,需要64bit来表示(T表示时钟周期),每个bit都需要High_duration这个时钟周期表示(Low_duration和High_duration在backlight_set_pwm被设置成是一样的,所以公式里面统一使用High_duration表示)。
另外PWM的占空比是由kernel层设置的背光强度的level来决定的,level越大,输出波形的占空比越大。
[LED]LCD背光设置为PWM模式的时候,config_data里面的参数如何使用_第1张图片

5.11tp-1.png (50.37 KB, 下载次数: 0 )

下载附件  保存到相册

2016-5-11 10:20 上传


MT6572
MT6572MT6589src_clkconfig_data->clock_source = 032ksrc_clk,config_data->clock_source> 066Msrc_clk;

你可能感兴趣的:(MTK)