summaryrefslogtreecommitdiff
path: root/include/board_config.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/board_config.h')
-rw-r--r--include/board_config.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/include/board_config.h b/include/board_config.h
index 0a97b8a181..f3f42ea795 100644
--- a/include/board_config.h
+++ b/include/board_config.h
@@ -1,6 +1,8 @@
/* Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
+ *
+ * Extra hooks for board and chip initialization/configuration
*/
#ifndef __CROS_EC_BOARD_CONFIG_H
@@ -32,4 +34,37 @@ void board_config_pre_init(void);
void board_config_post_gpio_init(void);
#endif
+#ifdef CONFIG_BOARD_HAS_BEFORE_RSMRST
+/**
+ * Configure board before RSMRST# state change
+ *
+ * This board function allows workarounds to be applied to a board after all
+ * power rails are up but before the AP is out of reset.
+ *
+ * Most workarounds for power sequencing can go in board init hooks, but for
+ * devices where the power sequencing is driven by external PMIC the EC may
+ * not get interrupts in time to handle workarounds. For x86 platforms and
+ * boards which support RSMRST# passthrough this hook will allow the board
+ * to apply workarounds despite the PMIC sequencing.
+ */
+void board_before_rsmrst(int rsmrst);
+#endif
+
+/**
+ * Configure chip early in main(), just after board_config_pre_init().
+ *
+ * Most chip configuration is not particularly timing critical and can be done
+ * in other chip driver initialization such as system_pre_init() or HOOK_INIT
+ * handlers. Chip pre-init should be reserved for small amounts of critical
+ * functionality that can't wait that long. Think very hard before putting
+ * code here.
+ */
+void chip_pre_init(void);
+
+#ifdef CONFIG_EC_FEATURE_BOARD_OVERRIDE
+/* function for board specific overrides to default feature flags */
+uint32_t board_override_feature_flags0(uint32_t flags0);
+uint32_t board_override_feature_flags1(uint32_t flags1);
+#endif
+
#endif /* __CROS_EC_BOARD_CONFIG_H */