summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulius Werner <jwerner@chromium.org>2021-01-15 17:45:04 -0800
committerJulius Werner <jwerner@chromium.org>2021-01-19 23:43:47 +0000
commite1383d39d794278b6e88b1658c620ad016bef05d (patch)
tree41b2f2ce6239b0015aa9e92d38d58df67c18bbe2
parent4338ae31949a67c39b6daeb4b74c6c876e3a9122 (diff)
trogdor: Initialize BACKLIGHT_ENABLE to 0, only turn it on in payload
The BACKLIGHT_ENABLE pin on this board unfortunately defaults to a pull-up on power on, meaning the backlight is immediately enabled. Best we can do about that is to turn it off again early and wait until it is actually correct in the panel power sequence to turn it back on. Some panels want an explicit 80ms delay after training the eDP connection before the backlight is turned on (this is probably just to avoid temporary display artifacts, but whatever). We don't want to busy-wait that extra time, so instead just delegate turning on that GPIO to the payload (which is also in charge of the backlight PWM already). Signed-off-by: Julius Werner <jwerner@chromium.org> Change-Id: Id8dafbdcb40175fbc9205276eee698583b971873 Reviewed-on: https://review.coreboot.org/c/coreboot/+/49495 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Douglas Anderson <dianders@chromium.org>
-rw-r--r--src/mainboard/google/trogdor/chromeos.c3
-rw-r--r--src/mainboard/google/trogdor/mainboard.c3
2 files changed, 3 insertions, 3 deletions
diff --git a/src/mainboard/google/trogdor/chromeos.c b/src/mainboard/google/trogdor/chromeos.c
index 989bf6902e..e93432f853 100644
--- a/src/mainboard/google/trogdor/chromeos.c
+++ b/src/mainboard/google/trogdor/chromeos.c
@@ -12,6 +12,7 @@ void setup_chromeos_gpios(void)
gpio_input_pullup(GPIO_SD_CD_L);
gpio_input_irq(GPIO_H1_AP_INT, IRQ_TYPE_RISING_EDGE, GPIO_PULL_UP);
gpio_output(GPIO_AMP_ENABLE, 0);
+ gpio_output(GPIO_BACKLIGHT_ENABLE, 0);
}
void fill_lb_gpios(struct lb_gpios *gpios)
@@ -27,6 +28,8 @@ void fill_lb_gpios(struct lb_gpios *gpios)
"SD card detect"},
{GPIO_AMP_ENABLE.addr, ACTIVE_HIGH, gpio_get(GPIO_AMP_ENABLE),
"speaker enable"},
+ {GPIO_BACKLIGHT_ENABLE.addr, ACTIVE_HIGH,
+ gpio_get(GPIO_BACKLIGHT_ENABLE), "backlight"},
};
lb_add_gpios(gpios, chromeos_gpios, ARRAY_SIZE(chromeos_gpios));
diff --git a/src/mainboard/google/trogdor/mainboard.c b/src/mainboard/google/trogdor/mainboard.c
index 0f469e065b..7465c63627 100644
--- a/src/mainboard/google/trogdor/mainboard.c
+++ b/src/mainboard/google/trogdor/mainboard.c
@@ -102,9 +102,6 @@ static void display_startup(void)
return;
printk(BIOS_INFO, "display init!\n");
-
- /* Configure backlight */
- gpio_output(GPIO_BACKLIGHT_ENABLE, 1);
display_init(&ed);
fb_new_framebuffer_info_from_edid(&ed, (uintptr_t)0);
} else