/*********************************************************************
* I.MX6 U-boot Kernel backlight setting
* 说明:
* 本文主要记录I.MX6 U-boot、Kernel中如何打开、关闭背光设置。
*
* 2016-3-7 深圳 南山平山村 曾剑锋
********************************************************************/
1. cat bootable/bootloader/uboot-imx/board/freescale/mx6q_sabresd/mx6q_sabresd.c
......
#ifdef CONFIG_LCD
void lcd_enable(void)
{
......
/*
* Set LVDS panel CABC_EN0 to low to disable
* CABC function. This function will turn backlight
* automatically according to display content, so
* simply disable it to get rid of annoying unstable
* backlight phenomena.
*
* • GPIO direction register (GPIO_GDIR)
* • Data register (GPIO_DR)
*
* 2015-10-8 zengjf modify fot lvds backlight
*/
reg = readl(GPIO6_BASE_ADDR + GPIO_GDIR);
reg |= (1 << 15);
writel(reg, GPIO6_BASE_ADDR + GPIO_GDIR);
reg = readl(GPIO6_BASE_ADDR + GPIO_DR);
//reg &= ~(1 << 15);
reg |= (1 << 15);
writel(reg, GPIO6_BASE_ADDR + GPIO_DR);
/*
* Set LVDS panel CABC_EN1 to low to disable
* CABC function.
*/
reg = readl(GPIO6_BASE_ADDR + GPIO_GDIR);
reg |= (1 << 16);
writel(reg, GPIO6_BASE_ADDR + GPIO_GDIR);
reg = readl(GPIO6_BASE_ADDR + GPIO_DR);
//reg &= ~(1 << 16);
reg |= (1 << 16);
writel(reg, GPIO6_BASE_ADDR + GPIO_DR);
......
}
......
2. cat arch/arm/mach-mx6/board-mx6q_sabresd.c
......
/*!
* Board specific initialization.
*/
static void __init mx6_sabresd_board_init(void)
{
......
/*
* Disable HannStar touch panel CABC function,
* this function turns the panel's backlight automatically
* according to the content shown on the panel which
* may cause annoying unstable backlight issue.
*
* zengjf 2015-10-8 this also has down in uboot
*/
gpio_request(SABRESD_CABC_EN0, "cabc-en0");
gpio_direction_output(SABRESD_CABC_EN0, 1);
gpio_request(SABRESD_CABC_EN1, "cabc-en1");
gpio_direction_output(SABRESD_CABC_EN1, 1);
......
}
......