自己总结和参考了这篇文章的内容:http://blog.csdn.net/zhufuronglovewenzhen/article/details/46627767
以及大神的文章:http://blog.csdn.net/loongembedded/article/details/41409251 对整个从应用层到底层的分析非常详细。
在frameworks下面修改背光初始值:http://www.2cto.com/kf/201303/196486.html
应用层修改屏幕亮度:http://blog.csdn.net/wilsonboliu/article/details/17164421
————————————————————————————————————————————————————————
接手的MTK65XX平台,现在需要调节lcd背光亮度,之前只接触过arm stm32 的我硬着头皮去看代码和框架流程。
大致明白了Java--jni--hal--driver的流程。然后打算开始作相应的修改测试一下,通过adb调试去拿到当前的brightness的亮度,发现是80,然后接着找到frameworks下:frameworks/base/packages/SettingsProvider/res/values/defaults.xml的值果然也是80。但是adb调试的时候改变这个值对应的lcd亮度根本没有变化,只有输入0的时候能够直接关闭背光,其他的值都不会改变背光的亮度。于是我想之前配置的背光模式是不能够梯度改变背光亮度的,只有两种状态:0---关闭背光;大于0---屏幕背光亮。接着,看了之前工程师做的配置,在kernel和lk相应路径下面均有背光部分代码,是这样的:
#define GPIO_BACKLIGHT_GPIO_PIN GPIO134
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] = {
#if 1
{"red", MT65XX_LED_MODE_PMIC, MT65XX_LED_PMIC_NLED_ISINK0,{0}},
{"green", MT65XX_LED_MODE_PMIC, MT65XX_LED_PMIC_NLED_ISINK2,{0}},
{"blue", MT65XX_LED_MODE_PMIC, MT65XX_LED_PMIC_NLED_ISINK1,{0}},
{"button-backlight", MT65XX_LED_MODE_PMIC, MT65XX_LED_PMIC_NLED_ISINK3,{0}},
{"jogball-backlight", MT65XX_LED_MODE_NONE, -1, {0}},
{"keyboard-backlight",MT65XX_LED_MODE_NONE, -1, {0}},
{"lcd-backlight", MT65XX_LED_MODE_GPIO, (int)LB_Cust_SetBacklight,{0}},
#else
{"red", MT65XX_LED_MODE_PMIC, MT65XX_LED_PMIC_NLED_ISINK2,{0}},
{"green", MT65XX_LED_MODE_PMIC, MT65XX_LED_PMIC_NLED_ISINK1,{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_NONE, -1, {0}},
{"lcd-backlight", MT65XX_LED_MODE_PMIC, MT65XX_LED_PMIC_LCD_ISINK, {0}},
#endif
};
目前还没有搞清楚GPIO134引脚作用是什么,应该就是个使能脚,如果是这样的话,那岂不是就不能够梯度调节LCD亮度了?按照这样只能是开和关两种状态了。
————————————————————————————————————————————————
现在尝试着通过修改lcd文件来实现屏幕的背光调节,在上述的参考链接当中,讲述了好几种模式,目前使用的应该就是GPIO脉冲模式了。
修改为PWM模式~~ 但是在没有了解清楚底层代码以及个方法的调用情况下,还是没有搞定,等接下来慢慢研究后再继续更新。