summaryrefslogtreecommitdiff
path: root/include/power/skylake.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/power/skylake.h')
-rw-r--r--include/power/skylake.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/include/power/skylake.h b/include/power/skylake.h
new file mode 100644
index 0000000000..c8a656c6c5
--- /dev/null
+++ b/include/power/skylake.h
@@ -0,0 +1,57 @@
+/* Copyright 2016 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.
+ */
+
+/* Skylake IMVP8 / ROP PMIC chipset power control module for Chrome EC */
+
+#ifndef __CROS_EC_SKYLAKE_H
+#define __CROS_EC_SKYLAKE_H
+
+/*
+ * Input state flags.
+ * TODO: Normalize the power signal masks from board defines to SoC headers.
+ */
+#define IN_PCH_SLP_S3_DEASSERTED POWER_SIGNAL_MASK(X86_SLP_S3_DEASSERTED)
+#define IN_PCH_SLP_S4_DEASSERTED POWER_SIGNAL_MASK(X86_SLP_S4_DEASSERTED)
+#define IN_PCH_SLP_SUS_DEASSERTED POWER_SIGNAL_MASK(X86_SLP_SUS_DEASSERTED)
+
+#define IN_ALL_PM_SLP_DEASSERTED (IN_PCH_SLP_S3_DEASSERTED | \
+ IN_PCH_SLP_S4_DEASSERTED | \
+ IN_PCH_SLP_SUS_DEASSERTED)
+
+/*
+ * DPWROK is NC / stuffing option on initial boards.
+ * TODO(shawnn): Figure out proper control signals.
+ */
+#define IN_PGOOD_ALL_CORE 0
+
+#define IN_ALL_S0 (IN_PGOOD_ALL_CORE | IN_ALL_PM_SLP_DEASSERTED)
+
+#define CHIPSET_G3S5_POWERUP_SIGNAL IN_PCH_SLP_SUS_DEASSERTED
+
+#define CHARGER_INITIALIZED_DELAY_MS 100
+#define CHARGER_INITIALIZED_TRIES 40
+
+/* Power signals list */
+enum power_signal {
+#ifdef CONFIG_POWER_S0IX
+ X86_SLP_S0_DEASSERTED,
+#endif
+ X86_SLP_S3_DEASSERTED,
+ X86_SLP_S4_DEASSERTED,
+ X86_SLP_SUS_DEASSERTED,
+ X86_RSMRST_L_PWRGD,
+ X86_PMIC_DPWROK,
+
+ /* Number of X86 signals */
+ POWER_SIGNAL_COUNT
+};
+
+/*
+ * Board can define this function to indicate to the skylake
+ * power code that it does not have working reset flags.
+ */
+int board_has_working_reset_flags(void);
+
+#endif /* __CROS_EC_SKYLAKE_H */