summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLi Feng <li1.feng@intel.com>2022-05-06 23:36:09 -0700
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-05-12 05:45:14 +0000
commitf550485ca9ac264bcac9a0b4ba0d951d60cc8e61 (patch)
treea2956e103efc339c4270c0ca8ec2dc4d53466fed
parente626edc57887a4d4956c3f311838d88b578fd701 (diff)
downloadchrome-ec-f550485ca9ac264bcac9a0b4ba0d951d60cc8e61.tar.gz
zephyr: check power rails is platform specific
BUG=none BRANCH=none TEST=zmake build nivviks, flash, boot up. Signed-off-by: Li Feng <li1.feng@intel.com> Change-Id: I991569d50728e0c07292bc134dffa433e36a66a4 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3633268 Reviewed-by: Vijay P Hiremath <vijay.p.hiremath@intel.com> Reviewed-by: Peter Marheine <pmarheine@chromium.org>
-rw-r--r--zephyr/projects/nissa/src/board_power.c7
-rw-r--r--zephyr/subsys/ap_pwrseq/include/ap_power_override_functions.h8
-rw-r--r--zephyr/subsys/ap_pwrseq/x86_non_dsx_common_pwrseq_sm_handler.c13
-rw-r--r--zephyr/test/ap_power/src/board.c5
4 files changed, 22 insertions, 11 deletions
diff --git a/zephyr/projects/nissa/src/board_power.c b/zephyr/projects/nissa/src/board_power.c
index b4906179ad..8180b2c8af 100644
--- a/zephyr/projects/nissa/src/board_power.c
+++ b/zephyr/projects/nissa/src/board_power.c
@@ -129,6 +129,13 @@ int board_ap_power_assert_pch_power_ok(void)
return 0;
}
+bool board_ap_power_check_power_rails_enabled(void)
+{
+ return power_signal_get(PWR_EN_PP3300_A) &&
+ power_signal_get(PWR_EN_PP5000_A) &&
+ power_signal_get(PWR_EC_SOC_DSW_PWROK);
+}
+
int board_power_signal_get(enum power_signal signal)
{
switch (signal) {
diff --git a/zephyr/subsys/ap_pwrseq/include/ap_power_override_functions.h b/zephyr/subsys/ap_pwrseq/include/ap_power_override_functions.h
index 6dae924d5a..229bfb7e60 100644
--- a/zephyr/subsys/ap_pwrseq/include/ap_power_override_functions.h
+++ b/zephyr/subsys/ap_pwrseq/include/ap_power_override_functions.h
@@ -65,6 +65,14 @@ void board_ap_power_action_s0(void);
int board_ap_power_assert_pch_power_ok(void);
/**
+ * @brief Check board power rails enabled or not
+ *
+ * @return true Enabled
+ * @return false Not enabled
+ */
+bool board_ap_power_check_power_rails_enabled(void);
+
+/**
* @brief macro to access configuration properties from DTS
*/
#define AP_PWRSEQ_DT_VALUE(p) \
diff --git a/zephyr/subsys/ap_pwrseq/x86_non_dsx_common_pwrseq_sm_handler.c b/zephyr/subsys/ap_pwrseq/x86_non_dsx_common_pwrseq_sm_handler.c
index 5639e719a9..2f38c36684 100644
--- a/zephyr/subsys/ap_pwrseq/x86_non_dsx_common_pwrseq_sm_handler.c
+++ b/zephyr/subsys/ap_pwrseq/x86_non_dsx_common_pwrseq_sm_handler.c
@@ -76,16 +76,6 @@ static inline bool signals_valid_and_off(power_signal_mask_t signals)
return signals_valid(signals) && power_signals_off(signals);
}
-static int check_power_rails_enabled(void)
-{
- int out = 1;
-
- out &= power_signal_get(PWR_EN_PP3300_A);
- out &= power_signal_get(PWR_EN_PP5000_A);
- out &= power_signal_get(PWR_EC_SOC_DSW_PWROK);
- return out;
-}
-
enum power_states_ndsx pwr_sm_get_state(void)
{
return pwrseq_ctx.power_state;
@@ -225,7 +215,8 @@ static int common_pwr_sm_run(int state)
case SYS_POWER_STATE_S5:
/* In S5 make sure no more signal lost */
/* If A-rails are stable then move to higher state */
- if (check_power_rails_enabled() && rsmrst_power_is_good()) {
+ if (board_ap_power_check_power_rails_enabled()
+ && rsmrst_power_is_good()) {
/* rsmrst is intact */
rsmrst_pass_thru_handler();
if (signals_valid_and_off(IN_PCH_SLP_S5)) {
diff --git a/zephyr/test/ap_power/src/board.c b/zephyr/test/ap_power/src/board.c
index 5745f4008e..96b30d21d3 100644
--- a/zephyr/test/ap_power/src/board.c
+++ b/zephyr/test/ap_power/src/board.c
@@ -78,6 +78,11 @@ void board_ap_power_action_s0(void)
{
}
+bool board_ap_power_check_power_rails_enabled(void)
+{
+ return false;
+}
+
int extpower_is_present(void)
{
return 0;