lenovo/x60: add GPIOs initialisation before dock check
authorAntonello Dettori <dev@dettori.io>
Wed, 10 Aug 2016 12:32:07 +0000 (14:32 +0200)
committerMartin Roth <martinroth@google.com>
Thu, 11 Aug 2016 18:51:18 +0000 (20:51 +0200)
Add GPIOs initialisation before dock check.

Needed in order to properly detect the presence or absence of the lenovo
dock.
Previously the check always reported the dock as connected and currently
it always reports it as disconnected since the GPIOs are not properly
initialised during the check.

Tested and confirmed working.

Change-Id: I7fbf8c2262a1eb5dee9cbe5e23bf44f7f8181009
Signed-off-by: Antonello Dettori <dev@dettori.io>
Reviewed-on: https://review.coreboot.org/16139
Tested-by: build bot (Jenkins)
Reviewed-by: Alexander Couzens <lynxis@fe80.eu>
Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
src/mainboard/lenovo/x60/romstage.c

index 1f249a6..35d9345 100644 (file)
@@ -224,6 +224,11 @@ void mainboard_romstage_entry(unsigned long bist)
        udelay(200 * 1000);
        pci_write_config16(PCI_DEV(0, 0x1e, 0), BCTRL, 0);
 
+       /* Enable GPIOs */
+       pci_write_config32(PCI_DEV(0, 0x1f, 0), GPIOBASE, DEFAULT_GPIOBASE | 1);
+       pci_write_config8(PCI_DEV(0, 0x1f, 0), 0x4c, 0x10);  /* 0x4c == GC */
+       setup_ich7_gpios();
+
        ich7_enable_lpc();
 
        dlpc_init();