Update STM3210E-EVAL backlight controls
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4549 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
parent
c13f709233
commit
86439f613d
@ -967,6 +967,43 @@ static int stm3210e_getpower(struct lcd_dev_s *dev)
|
|||||||
return g_lcddev.power;
|
return g_lcddev.power;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**************************************************************************************
|
||||||
|
* Name: stm3210e_poweroff
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Enable/disable LCD panel power (0: full off - CONFIG_LCD_MAXPOWER: full on). On
|
||||||
|
* backlit LCDs, this setting may correspond to the backlight setting.
|
||||||
|
*
|
||||||
|
**************************************************************************************/
|
||||||
|
|
||||||
|
static int stm3210e_poweroff(void)
|
||||||
|
{
|
||||||
|
/* Turn the display off */
|
||||||
|
|
||||||
|
stm3210e_writereg(LCD_REG_7, 0);
|
||||||
|
|
||||||
|
/* Disable timer 1 clocking */
|
||||||
|
|
||||||
|
#if defined(CONFIG_LCD_BACKLIGHT)
|
||||||
|
# if defined(CONFIG_LCD_PWM)
|
||||||
|
modifyreg32(STM32_RCC_APB2ENR, RCC_APB2ENR_TIM1EN, 0);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Configure the PA8 pin as an output */
|
||||||
|
|
||||||
|
stm32_configgpio(GPIO_LCD_BACKLIGHT);
|
||||||
|
|
||||||
|
/* Turn the backlight off */
|
||||||
|
|
||||||
|
stm32_gpiowrite(GPIO_LCD_BACKLIGHT, false);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Remember the power off state */
|
||||||
|
|
||||||
|
g_lcddev.power = 0;
|
||||||
|
return OK;
|
||||||
|
}
|
||||||
|
|
||||||
/**************************************************************************************
|
/**************************************************************************************
|
||||||
* Name: stm3210e_setpower
|
* Name: stm3210e_setpower
|
||||||
*
|
*
|
||||||
@ -990,6 +1027,20 @@ static int stm3210e_setpower(struct lcd_dev_s *dev, int power)
|
|||||||
uint32_t frac;
|
uint32_t frac;
|
||||||
uint32_t duty;
|
uint32_t duty;
|
||||||
|
|
||||||
|
/* If we are coming up from the power off state, then re-configure the timer */
|
||||||
|
|
||||||
|
if (g_lcddev.power == 0)
|
||||||
|
{
|
||||||
|
stm3210e_backlight();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Make sure that the power value is within range */
|
||||||
|
|
||||||
|
if (power > CONFIG_LCD_MAXPOWER)
|
||||||
|
{
|
||||||
|
power = CONFIG_LCD_MAXPOWER;
|
||||||
|
}
|
||||||
|
|
||||||
/* Caclulate the new backlight duty. It is a faction of the timer1
|
/* Caclulate the new backlight duty. It is a faction of the timer1
|
||||||
* period based on the ration of the current power setting to the
|
* period based on the ration of the current power setting to the
|
||||||
* maximum power setting.
|
* maximum power setting.
|
||||||
@ -1025,14 +1076,7 @@ static int stm3210e_setpower(struct lcd_dev_s *dev, int power)
|
|||||||
{
|
{
|
||||||
/* Turn the display off */
|
/* Turn the display off */
|
||||||
|
|
||||||
stm3210e_writereg(LCD_REG_7, 0);
|
stm3210e_poweroff();
|
||||||
|
|
||||||
/* Turn the backlight off */
|
|
||||||
|
|
||||||
#if defined(CONFIG_LCD_BACKLIGHT) && !defined(CONFIG_LCD_PWM)
|
|
||||||
stm32_gpiowrite(GPIO_LCD_BACKLIGHT, true);
|
|
||||||
#endif
|
|
||||||
g_lcddev.power = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return OK;
|
return OK;
|
||||||
@ -1522,8 +1566,6 @@ static void stm3210e_backlight(void)
|
|||||||
lcddbg("CCR3: %04x\n", getreg32(STM32_TIM1_CCR3));
|
lcddbg("CCR3: %04x\n", getreg32(STM32_TIM1_CCR3));
|
||||||
lcddbg("CCR4: %04x\n", getreg32(STM32_TIM1_CCR4));
|
lcddbg("CCR4: %04x\n", getreg32(STM32_TIM1_CCR4));
|
||||||
lcddbg("DMAR: %04x\n", getreg32(STM32_TIM1_DMAR));
|
lcddbg("DMAR: %04x\n", getreg32(STM32_TIM1_DMAR));
|
||||||
#else
|
|
||||||
stm32_configgpio(GPIO_LCD_BACKLIGHT);
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -1559,9 +1601,9 @@ int up_lcdinitialize(void)
|
|||||||
|
|
||||||
stm3210e_lcdclear(0);
|
stm3210e_lcdclear(0);
|
||||||
|
|
||||||
/* Configure the backlight */
|
/* Turn the backlight off */
|
||||||
|
|
||||||
stm3210e_backlight();
|
stm3210e_poweroff();
|
||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1590,7 +1632,7 @@ FAR struct lcd_dev_s *up_lcdgetdev(int lcddev)
|
|||||||
|
|
||||||
void up_lcduninitialize(void)
|
void up_lcduninitialize(void)
|
||||||
{
|
{
|
||||||
stm3210e_setpower(&g_lcddev.dev, 0);
|
stm3210e_poweroff();
|
||||||
stm32_deselectlcd();
|
stm32_deselectlcd();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user