board: toradex: turn off lcd backlight before OS handover

U-Boot typically tears down the display controller before handing
control over to Linux. On LCD displays disabling pixel clock leads to a
fading out effect with vertical/horizontal lines. Make sure to disable
back light before booting Linux.

Signed-off-by: Gerard Salvatella <gerard.salvatella@toradex.com>
Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
This commit is contained in:
Gerard Salvatella 2018-11-19 15:54:10 +01:00 committed by Tom Warren
parent 146680003a
commit a3c9021771
8 changed files with 74 additions and 1 deletions

View File

@ -240,3 +240,12 @@ void tegra_pcie_board_port_reset(struct tegra_pcie_port *port)
}
}
#endif /* CONFIG_PCI_TEGRA */
/*
* Backlight off before OS handover
*/
void board_preboot_os(void)
{
gpio_request(TEGRA_GPIO(BB, 5), "BL_ON");
gpio_direction_output(TEGRA_GPIO(BB, 5), 0);
}

View File

@ -745,6 +745,15 @@ static void setup_display(void)
gpio_direction_output(RGB_BACKLIGHTPWM_OE, 0);
gpio_direction_output(RGB_BACKLIGHT_GP, 1);
}
/*
* Backlight off before OS handover
*/
void board_preboot_os(void)
{
gpio_direction_output(RGB_BACKLIGHTPWM_GP, 1);
gpio_direction_output(RGB_BACKLIGHT_GP, 0);
}
#endif /* defined(CONFIG_VIDEO_IPUV3) */
int board_early_init_f(void)

View File

@ -164,3 +164,12 @@ void tegra_pcie_board_port_reset(struct tegra_pcie_port *port)
#endif /* CONFIG_APALIS_T30_PCIE_EVALBOARD_INIT */
}
#endif /* CONFIG_PCI_TEGRA */
/*
* Backlight off before OS handover
*/
void board_preboot_os(void)
{
gpio_request(TEGRA_GPIO(V, 2), "BKL1_ON");
gpio_direction_output(TEGRA_GPIO(V, 2), 0);
}

View File

@ -622,6 +622,15 @@ static void setup_display(void)
gpio_direction_output(RGB_BACKLIGHTPWM_GP, 0);
gpio_direction_output(RGB_BACKLIGHT_GP, 1);
}
/*
* Backlight off before OS handover
*/
void board_preboot_os(void)
{
gpio_direction_output(RGB_BACKLIGHTPWM_GP, 1);
gpio_direction_output(RGB_BACKLIGHT_GP, 0);
}
#endif /* defined(CONFIG_VIDEO_IPUV3) */
int board_early_init_f(void)

View File

@ -150,6 +150,15 @@ static int setup_lcd(void)
}
#endif
/*
* Backlight off before OS handover
*/
void board_preboot_os(void)
{
gpio_direction_output(GPIO_PWM_A, 1);
gpio_direction_output(GPIO_BL_ON, 0);
}
#ifdef CONFIG_FEC_MXC
static iomux_v3_cfg_t const fec1_pads[] = {
#ifndef CONFIG_COLIBRI_IMX7_EXT_PHYCLK

View File

@ -150,4 +150,13 @@ void pin_mux_display(void)
pinmux_set_func(PMUX_PINGRP_SDC, PMUX_FUNC_PWM);
pinmux_tristate_disable(PMUX_PINGRP_SDC);
}
/*
* Backlight off before OS handover
*/
void board_preboot_os(void)
{
gpio_request(TEGRA_GPIO(T, 4), "BL_ON");
gpio_direction_output(TEGRA_GPIO(T, 4), 0);
}
#endif

View File

@ -66,3 +66,12 @@ void pin_mux_usb(void)
udelay(5);
gpio_set_value(TEGRA_GPIO(DD, 0), 1);
}
/*
* Backlight off before OS handover
*/
void board_preboot_os(void)
{
gpio_request(TEGRA_GPIO(V, 2), "BL_ON");
gpio_direction_output(TEGRA_GPIO(V, 2), 0);
}

View File

@ -38,8 +38,9 @@ DECLARE_GLOBAL_DATA_PTR;
#define ENET_PAD_CTRL (PAD_CTL_PUS_47K_UP | PAD_CTL_SPEED_HIGH | \
PAD_CTL_DSE_50ohm | PAD_CTL_OBE_IBE_ENABLE)
#define USB_PEN_GPIO 83
#define USB_PEN_GPIO 83
#define USB_CDET_GPIO 102
#define PTC0_GPIO_45 45
static struct ddrmc_cr_setting colibri_vf_cr_settings[] = {
/* AXI */
@ -632,3 +633,12 @@ int board_usb_phy_mode(int port)
}
}
#endif
/*
* Backlight off before OS handover
*/
void board_preboot_os(void)
{
gpio_request(PTC0_GPIO_45, "BL_ON");
gpio_direction_output(PTC0_GPIO_45, 0);
}