aboutsummaryrefslogtreecommitdiff
path: root/src/mainboard/google/trogdor/chromeos.c
diff options
context:
space:
mode:
authorJulius Werner <jwerner@chromium.org>2021-02-10 14:25:21 -0800
committerJulius Werner <jwerner@chromium.org>2021-02-12 22:17:53 +0000
commita39c5772572dff6f324ef5437d36223afa0f7f69 (patch)
tree2c83e3a1bb2baa525dea5ebc568345b10a25e814 /src/mainboard/google/trogdor/chromeos.c
parent43ccd6a4ad09343dd914b9f4beb904768e191e74 (diff)
trogdor: Add fingerprint power sequencing
Some Trogdor variants will include a fingerprint sensor, so this patch adds support for its power sequencing. There is a requirement that the fingerprint power needs to be *off* for at least 200ms, and when it is turned back on it needs to stabilize for at least 3.5ms before taking the FPMCU out of reset. We meet these timing requirements by splitting the sequence across bootblock, romstage and ramstage. On current Trogdor boards we measured <end of bootblock> to <end of romstage> at ~430ms and <end of romstage> to <start of ramstage> at 12ms, so we easily meet the required numbers this way. BRANCH=trogdor BUG=b:170284663 Signed-off-by: Julius Werner <jwerner@chromium.org> Change-Id: Iccd77e6e1c378110fca2b2b7ff1f534fce54f8ea Reviewed-on: https://review.coreboot.org/c/coreboot/+/50504 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Shelley Chen <shchen@google.com>
Diffstat (limited to 'src/mainboard/google/trogdor/chromeos.c')
-rw-r--r--src/mainboard/google/trogdor/chromeos.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/mainboard/google/trogdor/chromeos.c b/src/mainboard/google/trogdor/chromeos.c
index d6b1836f9d..2136da32e1 100644
--- a/src/mainboard/google/trogdor/chromeos.c
+++ b/src/mainboard/google/trogdor/chromeos.c
@@ -12,9 +12,16 @@ 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);
gpio_output(GPIO_EN_PP3300_DX_EDP, 0);
gpio_output(GPIO_EDP_BRIDGE_ENABLE, 0);
+
+ if (CONFIG(TROGDOR_HAS_FINGERPRINT)) {
+ gpio_output(GPIO_FPMCU_BOOT0, 0);
+ gpio_output(GPIO_FP_RST_L, 0);
+ gpio_output(GPIO_EN_FP_RAILS, 0);
+ }
}
void fill_lb_gpios(struct lb_gpios *gpios)