aboutsummaryrefslogtreecommitdiff
path: root/src/soc/intel/cannonlake/include
diff options
context:
space:
mode:
authorFurquan Shaikh <furquan@google.com>2019-02-05 13:59:47 -0800
committerPatrick Georgi <pgeorgi@google.com>2019-02-07 08:51:53 +0000
commit86d2afb86b5c76fe8da719ce7746609eb1109ff0 (patch)
treeaec6533a08164e050740937c5bbf8ec14b7558ae /src/soc/intel/cannonlake/include
parent6527b1acc7a020e1f0594a7ea30daed0978dd5fd (diff)
soc/intel/cannonlake: Configure GPIOs again after FSP-S is done
FSP-S is currently configuring GPIOs that it should not. This results in issues where mainboard devices don't behave as expected e.g. host unable to receive TPM interrupts as the pad for the interrupt is re-configured as something else. Until FSP-S is fixed, this change adds a workaround by reconfiguring GPIOs after FSP-S is run. All mainboards need to call cnl_configure_pads instead of gpio_configure_pads so that SoC code can maintain a reference to the GPIO table and use that to re-configure GPIOs after FSP-S is run. BUG=b:123721147 BRANCH=None TEST=Verified that there are no TPM IRQ timeouts in boot log on hatch. Change-Id: I7787aa8f185f633627bcedc7f23504bf4a5250b4 Signed-off-by: Furquan Shaikh <furquan@google.com> Reviewed-on: https://review.coreboot.org/c/31250 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
Diffstat (limited to 'src/soc/intel/cannonlake/include')
-rw-r--r--src/soc/intel/cannonlake/include/soc/gpio.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/soc/intel/cannonlake/include/soc/gpio.h b/src/soc/intel/cannonlake/include/soc/gpio.h
index cbc230a6a4..718372ddc1 100644
--- a/src/soc/intel/cannonlake/include/soc/gpio.h
+++ b/src/soc/intel/cannonlake/include/soc/gpio.h
@@ -16,7 +16,6 @@
#ifndef _SOC_CANNONLAKE_GPIO_H_
#define _SOC_CANNONLAKE_GPIO_H_
-
#if IS_ENABLED(CONFIG_SOC_INTEL_CANNONLAKE_PCH_H)
#include <soc/gpio_defs_cnp_h.h>
#define CROS_GPIO_DEVICE_NAME "INT3450:00"
@@ -26,4 +25,9 @@
#endif
#include <intelblocks/gpio.h>
+#ifndef __ACPI__
+struct pad_config;
+void cnl_configure_pads(const struct pad_config *cfg, size_t num_pads);
+#endif
+
#endif