<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://www.mywiki.cn/Hovercool/index.php?action=history&amp;feed=atom&amp;title=MTK6515_%E9%85%8D%E7%BD%AElcd%E8%83%8C%E5%85%89</id>
	<title>MTK6515 配置lcd背光 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://www.mywiki.cn/Hovercool/index.php?action=history&amp;feed=atom&amp;title=MTK6515_%E9%85%8D%E7%BD%AElcd%E8%83%8C%E5%85%89"/>
	<link rel="alternate" type="text/html" href="https://www.mywiki.cn/Hovercool/index.php?title=MTK6515_%E9%85%8D%E7%BD%AElcd%E8%83%8C%E5%85%89&amp;action=history"/>
	<updated>2026-09-01T06:52:22Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://www.mywiki.cn/Hovercool/index.php?title=MTK6515_%E9%85%8D%E7%BD%AElcd%E8%83%8C%E5%85%89&amp;diff=825&amp;oldid=prev</id>
		<title>2015年5月6日 (三) 11:52 Hovercool</title>
		<link rel="alternate" type="text/html" href="https://www.mywiki.cn/Hovercool/index.php?title=MTK6515_%E9%85%8D%E7%BD%AElcd%E8%83%8C%E5%85%89&amp;diff=825&amp;oldid=prev"/>
		<updated>2015-05-06T11:52:28Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= 配置lcm背光的控制脚 =&lt;br /&gt;
&lt;br /&gt;
lcm背光控制主要有两个引脚：使能脚EN和亮度控制引脚VFB。使能脚用来控制背光的使能与否，比如这里是1为enable，0为disable；亮度控制引脚则是用来接PWM输出，通过PWM的占空比来控制背光亮度，这里是低为亮，高为灭。&lt;br /&gt;
&lt;br /&gt;
所以在这两个引脚的连接和配置上要保证EN连接至gpio上，而VFB则连接至BB的PWM输出口，然后通过dct工具将上述引脚配置成对应的mode。&lt;br /&gt;
&lt;br /&gt;
= 配置uboot =&lt;br /&gt;
&lt;br /&gt;
== mediatek/custom/bbk75_ics/uboot/cust_leds.c ==&lt;br /&gt;
&lt;br /&gt;
在 cust_led_list数组中更改 lcd-backlight的配置为pwm：&lt;br /&gt;
&amp;lt;pre class=&amp;quot;prettyprint&amp;quot;&amp;gt;&lt;br /&gt;
static struct cust_mt65xx_led cust_led_list[MT65XX_LED_TYPE_TOTAL] = {&lt;br /&gt;
...&lt;br /&gt;
	//{&amp;quot;lcd-backlight&amp;quot;,     MT65XX_LED_MODE_CUST, (int)DISP_SetBacklight,{0}},&lt;br /&gt;
	{&amp;quot;lcd-backlight&amp;quot;,     MT65XX_LED_MODE_PWM, PWM1,{0}},&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== mediatek/platform/mt6575/uboot/mt65xx_leds.c ==&lt;br /&gt;
&lt;br /&gt;
在 mt65xx_led_set_cust中添加对lcm使能脚的控制，以更好地对屏幕的亮灭进行控制：&lt;br /&gt;
&amp;lt;pre class=&amp;quot;prettyprint&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
		case MT65XX_LED_MODE_PWM:&lt;br /&gt;
			if(strcmp(cust-&amp;gt;name,&amp;quot;lcd-backlight&amp;quot;) == 0)&lt;br /&gt;
			{&lt;br /&gt;
				if(level == 0)&lt;br /&gt;
				{&lt;br /&gt;
					mt_set_gpio_out(BACKLIGHT_EN_PIN,GPIO_OUT_ZERO);	&lt;br /&gt;
				&lt;br /&gt;
				}else&lt;br /&gt;
				{&lt;br /&gt;
					if (level &amp;lt; 80) level =80;&lt;br /&gt;
					level = level/4;&lt;br /&gt;
					brightness_set_pwm(cust-&amp;gt;data, level,&amp;amp;(cust-&amp;gt;config_data));&lt;br /&gt;
					udelay(10000);&lt;br /&gt;
					mt_set_gpio_out(BACKLIGHT_EN_PIN,GPIO_OUT_ONE);&lt;br /&gt;
				}&lt;br /&gt;
            &lt;br /&gt;
			//return brightness_set_pwm(cust-&amp;gt;data, level,&amp;amp;cust-&amp;gt;config_data);&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				return led_set_pwm(cust-&amp;gt;data, level);&lt;br /&gt;
			}&lt;br /&gt;
			return 1;&lt;br /&gt;
		case MT65XX_LED_MODE_GPIO:&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
以下两个函数同步更改：&lt;br /&gt;
&amp;lt;pre class=&amp;quot;prettyprint&amp;quot;&amp;gt;&lt;br /&gt;
void mt65xx_backlight_on(void)&lt;br /&gt;
{&lt;br /&gt;
	printf(&amp;quot;[LEDS]uboot: mt65xx_backlight_on \n\r&amp;quot;);&lt;br /&gt;
	mt_set_gpio_mode(BACKLIGHT_EN_PIN, GPIO_MODE_00);// GPIO MODE&lt;br /&gt;
	mt_set_gpio_dir(BACKLIGHT_EN_PIN, GPIO_DIR_OUT);&lt;br /&gt;
	mt_set_gpio_out(BACKLIGHT_EN_PIN, GPIO_OUT_ONE); &lt;br /&gt;
	mt65xx_leds_brightness_set(MT65XX_LED_TYPE_LCD, LED_FULL);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void mt65xx_backlight_off(void)&lt;br /&gt;
{&lt;br /&gt;
	printf(&amp;quot;[LEDS]uboot: mt65xx_backlight_off \n\r&amp;quot;);&lt;br /&gt;
	mt_set_gpio_mode(BACKLIGHT_EN_PIN, GPIO_MODE_00);// GPIO MODE&lt;br /&gt;
	mt_set_gpio_dir(BACKLIGHT_EN_PIN, GPIO_DIR_OUT);&lt;br /&gt;
	mt_set_gpio_out(BACKLIGHT_EN_PIN, GPIO_OUT_ZERO);    &lt;br /&gt;
	mt65xx_leds_brightness_set(MT65XX_LED_TYPE_LCD, LED_OFF);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 配置kernel =&lt;br /&gt;
&lt;br /&gt;
== mediatek/custom/bbk75_ics/kernel/leds/mt65xx/cust_leds.c ==&lt;br /&gt;
&lt;br /&gt;
将背光led的控制方式更改为pwm：&lt;br /&gt;
&amp;lt;pre class=&amp;quot;prettyprint&amp;quot;&amp;gt;&lt;br /&gt;
static struct cust_mt65xx_led cust_led_list[MT65XX_LED_TYPE_TOTAL] = {&lt;br /&gt;
...&lt;br /&gt;
	///{&amp;quot;lcd-backlight&amp;quot;,     MT65XX_LED_MODE_CUST, (int)Cust_SetBacklight,{0}},&lt;br /&gt;
	{&amp;quot;lcd-backlight&amp;quot;,     MT65XX_LED_MODE_PWM, PWM1,{0}},    &lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== mediatek/source/kernel/drivers/leds/leds.c ==&lt;br /&gt;
&lt;br /&gt;
和uboot一样，在 mt65xx_led_set_cust中添加对lcm使能脚的控制，以更好地对屏幕的亮灭进行控制：&lt;br /&gt;
&amp;lt;pre class=&amp;quot;prettyprint&amp;quot;&amp;gt;&lt;br /&gt;
	if (level &amp;gt; LED_FULL)&lt;br /&gt;
		level = LED_FULL;&lt;br /&gt;
	else if (level &amp;lt; 0)&lt;br /&gt;
		level = 0;&lt;br /&gt;
	mt_set_gpio_mode(BACKLIGHT_EN_PIN, GPIO_MODE_GPIO);&lt;br /&gt;
	mt_set_gpio_dir(BACKLIGHT_EN_PIN, GPIO_DIR_OUT);&lt;br /&gt;
	mt_set_gpio_mode(BACKLIGHT_VFB_PIN, GPIO_MODE_01);&lt;br /&gt;
	mt_set_gpio_dir(BACKLIGHT_VFB_PIN, GPIO_DIR_OUT); //GPIO_PWM_1_PIN_M_PWM&lt;br /&gt;
&lt;br /&gt;
    printk(&amp;quot;mt65xx_leds_set_cust: set brightness, name:%s, mode:%d, level:%d\n&amp;quot;, &lt;br /&gt;
		cust-&amp;gt;name, cust-&amp;gt;mode, level);&lt;br /&gt;
	switch (cust-&amp;gt;mode) {&lt;br /&gt;
		case MT65XX_LED_MODE_PWM:&lt;br /&gt;
			if(strcmp(cust-&amp;gt;name,&amp;quot;lcd-backlight&amp;quot;) == 0)&lt;br /&gt;
			{&lt;br /&gt;
				bl_brightness = level;&lt;br /&gt;
				if(level == 0)&lt;br /&gt;
				{&lt;br /&gt;
					mt_set_gpio_out(BACKLIGHT_EN_PIN,GPIO_OUT_ZERO);&lt;br /&gt;
					mt_set_pwm_disable(cust-&amp;gt;data);&lt;br /&gt;
					mt_power_off (cust-&amp;gt;data);&lt;br /&gt;
				}else&lt;br /&gt;
				{&lt;br /&gt;
					level = brightness_mapping(tmp_level);&lt;br /&gt;
					if(level &amp;gt; 0 &amp;amp;&amp;amp; level &amp;lt; 20 ) level = 20;//45&lt;br /&gt;
						if ( level &amp;lt; 195 ) &lt;br /&gt;
						{&lt;br /&gt;
							level=(level-20)/7;&lt;br /&gt;
						}&lt;br /&gt;
						else&lt;br /&gt;
						{&lt;br /&gt;
							level=level - 20 ;&lt;br /&gt;
							level=(level-175)/4; &lt;br /&gt;
							level=level+25;&lt;br /&gt;
						}&lt;br /&gt;
					if (level &amp;gt; 244 &amp;amp;&amp;amp; level &amp;lt; 255) level =244; //level 37&lt;br /&gt;
					//if (level &amp;gt; 54) level = 54;&lt;br /&gt;
					backlight_set_pwm(cust-&amp;gt;data, level, bl_div,&amp;amp;(cust-&amp;gt;config_data));&lt;br /&gt;
					mt_set_gpio_out(BACKLIGHT_EN_PIN,GPIO_OUT_ONE);&lt;br /&gt;
				}&lt;br /&gt;
                bl_duty = level;	&lt;br /&gt;
				&lt;br /&gt;
			}else&lt;br /&gt;
			{&lt;br /&gt;
				if(level == 0)&lt;br /&gt;
				{&lt;br /&gt;
					led_tmp_setting.nled_mode = NLED_OFF;&lt;br /&gt;
				}else&lt;br /&gt;
				{&lt;br /&gt;
					led_tmp_setting.nled_mode = NLED_ON;&lt;br /&gt;
				}&lt;br /&gt;
				led_set_pwm(cust-&amp;gt;data,&amp;amp;led_tmp_setting);&lt;br /&gt;
			}&lt;br /&gt;
			return 1;&lt;br /&gt;
            &lt;br /&gt;
		case MT65XX_LED_MODE_GPIO:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= 注意事项 =&lt;br /&gt;
&lt;br /&gt;
如果uboot中将VFB配置成了gpio并且输出低使背光一直保持全亮，在进入kernel后通过代码再将其设置为pwm模式，这理应是ok的；但现实就是不行，这样会导致背光不能调节（不过由于没有量波形，故不知是有波形输出还是仍一直输出低电平），就在这里耗时较长，所以关注一下这点。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
附修改记录：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Modified : /trunk/ALPS.ICS.MP.V1_T_20120405/mediatek/custom/bbk15_td_ics/kernel/leds/mt65xx/cust_leds.c&lt;br /&gt;
Modified : /trunk/ALPS.ICS.MP.V1_T_20120405/mediatek/custom/bbk15_td_ics/uboot/cust_leds.c&lt;br /&gt;
Modified : /trunk/ALPS.ICS.MP.V1_T_20120405/mediatek/platform/mt6575/uboot/mt65xx_leds.c&lt;br /&gt;
Modified : /trunk/ALPS.ICS.MP.V1_T_20120405/mediatek/source/kernel/drivers/leds/leds.c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hovercool</name></author>
	</entry>
</feed>