MTK平台LCD背光调节问题
{"lcd-backlight", MT65XX_LED_MODE_GPIO, (int)LB_Cust_SetBacklight,{0}},
也就是脉冲模式,这样只能实现背光的点亮和熄灭两种状态,而不能够调节亮度的变化,那么如何根据现在的硬件来改变亮度变化呢?
是不是只有PWM模式才能够调节亮度变化?如何配置呢?请教各位高手指点,感激之至。
肯定要PWM才可以调亮度。PWM主要是调占空比呢。
具体怎么配,MTK的代码默认应当就有的。
恩 PWM通过占空比这个我是知道,但是我只在static struct cust_mt65xx_led cust_led_list[MT65XX_LED_TYPE_TOTAL]这里面做配置的话,比如我直接使用PWM1,编译直接报错: 这个PWM1 没有定义。你指的MTK默认代码就有的话,应该不会出现这种报错吧? 是我没有include某个PWM定义的头文件吗?
#include <cust_leds.h>
#include <mach/mt_pwm.h>
#include <linux/kernel.h>
#include <mach/pmic_mt6329_hw_bank1.h>
#include <mach/pmic_mt6329_sw_bank1.h>
#include <mach/pmic_mt6329_hw.h>
#include <mach/pmic_mt6329_sw.h>
#include <mach/upmu_common_sw.h>
#include <mach/upmu_hw.h>
ddp_pwm.c里面的level_1024 old_pwm = atomic_xchg(&g_pwm_backlight[index], level_1024);
不过改的不合适可能有背光不休眠的问题
你如果 是有背光IC的,并且EN_PIN 是用的gppo控制的,可以通过作方波来调节背光亮度,也是一线脉冲的方式
“ddp_pwm.” 这个文件在哪个路径下面? 找不到啊!
你的PWM没有定义呢。自己定义一下。
是这样的:
unsigned int LB_Cust_SetBacklight(int level)
{
if(level == 0)
{
mt_set_gpio_mode(GPIO_BACKLIGHT_GPIO_PIN, GPIO_MODE_00);
mt_set_gpio_dir(GPIO_BACKLIGHT_GPIO_PIN, GPIO_DIR_OUT);
mt_set_gpio_out(GPIO_BACKLIGHT_GPIO_PIN, 0);
}
else
{
mt_set_gpio_mode(GPIO_BACKLIGHT_GPIO_PIN, GPIO_MODE_00);
mt_set_gpio_dir(GPIO_BACKLIGHT_GPIO_PIN, GPIO_DIR_OUT);
mt_set_gpio_out(GPIO_BACKLIGHT_GPIO_PIN, 1);
}
return 0;
}
static struct cust_mt65xx_led cust_led_list[MT65XX_LED_TYPE_TOTAL] = {
{"lcd-backlight", MT65XX_LED_MODE_GPIO, (int)LB_Cust_SetBacklight,{0}},
}
是的,当初我配置为PWM1 方式编译报错就是说PWM1 没有定义,也就是没有定义到PWM,但是我不知道应该在什么地方定义,能说详细一点吗,谢谢
你看一下PWM2有没有定义?PWM0有没有定义,找到对应的地方就行了,就是一个枚举
找到了 ,是这个 对吧?
enum PWN_NO{
PWM_MIN,
PWM1 = PWM_MIN,
PWM2,
PWM3,
PWM4,
PWM5,
PWM_NUM,
PWM_MAX=PWM_NUM
};
是的。
可是这样配置了,也看不出他是绑定到哪个引脚给出来的pwm啊,之前是通过gpio 134引脚给的高低信号。只是这样程序上定义了,也还要看lcd接了哪个引脚是吧?这样才能知道什么引脚给lcd屏的pwm信号,是吧?
MTK默认的代码就是好的。你这个看一下你没有修改的代码。
最原始的代码我也不知道了,可否发一个kernel/leds/mt65xx/ 目录下的 “cust_leds.c”文件给我参考一下,谢谢 315904145@qq.com
貌似没有
可以通过方波来调节亮度吗?还是也只是亮或者灭两种状态?
如果可以调节亮度,这个方波是不是需要自己写个线程来控制一直不停的发呢?
请问你的问题解决没有