summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabio Baltieri <fabiobaltieri@google.com>2022-12-12 16:56:54 +0000
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-12-13 22:56:22 +0000
commitd2b00dba869ff6cc90bbb5c0121c98de95174c13 (patch)
treecf8150e0e1da535fb6a368c2494988cc25b73c53
parente7a8c5473610f8a73f391951be7203892d5f75f6 (diff)
downloadchrome-ec-d2b00dba869ff6cc90bbb5c0121c98de95174c13.tar.gz
zephyr: ap_pwrseq: use Kconfig helper symbol for signal features
Use zephyr Kconfig symbol instead of custom HAS_ macros for compatible based files. This allows dropping some compiler guards as well. Fix some missing #include that got exposed in the process. BRANCH=none BUG=none TEST=cq dry run TEST=zmake compare-builds -a Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com> Change-Id: I1b76e66b410d01a67944504a2b9ad6651bac1d2f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4097133 Reviewed-by: Al Semjonovs <asemjonovs@google.com> Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com>
-rw-r--r--zephyr/subsys/ap_pwrseq/CMakeLists.txt14
-rw-r--r--zephyr/subsys/ap_pwrseq/Kconfig28
-rw-r--r--zephyr/subsys/ap_pwrseq/include/power_signals.h14
-rw-r--r--zephyr/subsys/ap_pwrseq/include/signal_adc.h4
-rw-r--r--zephyr/subsys/ap_pwrseq/include/signal_gpio.h6
-rw-r--r--zephyr/subsys/ap_pwrseq/include/signal_vw.h9
-rw-r--r--zephyr/subsys/ap_pwrseq/power_signals.c26
-rw-r--r--zephyr/subsys/ap_pwrseq/signal_adc.c7
-rw-r--r--zephyr/subsys/ap_pwrseq/signal_gpio.c6
-rw-r--r--zephyr/subsys/ap_pwrseq/signal_vw.c4
10 files changed, 65 insertions, 53 deletions
diff --git a/zephyr/subsys/ap_pwrseq/CMakeLists.txt b/zephyr/subsys/ap_pwrseq/CMakeLists.txt
index 0a77bc821d..e4b4ad1df9 100644
--- a/zephyr/subsys/ap_pwrseq/CMakeLists.txt
+++ b/zephyr/subsys/ap_pwrseq/CMakeLists.txt
@@ -1,17 +1,19 @@
# SPDX-License-Identifier: Apache-2.0
zephyr_library_include_directories(include)
-zephyr_library_sources(
- ap_events.c
- )
+
+zephyr_library_sources(ap_events.c)
+
zephyr_library_sources_ifdef(CONFIG_AP_PWRSEQ
ap_power_interface.c
power_host_sleep.c
power_signals.c
- signal_gpio.c
- signal_vw.c
- signal_adc.c
)
+
+zephyr_library_sources_ifdef(CONFIG_AP_PWRSEQ_SIGNAL_GPIO signal_gpio.c)
+zephyr_library_sources_ifdef(CONFIG_AP_PWRSEQ_SIGNAL_VW signal_vw.c)
+zephyr_library_sources_ifdef(CONFIG_AP_PWRSEQ_SIGNAL_ADC signal_adc.c)
+
zephyr_library_sources_ifdef(CONFIG_X86_NON_DSX_PWRSEQ
x86_non_dsx_common_pwrseq_sm_handler.c
x86_non_dsx_chipset_power_state.c)
diff --git a/zephyr/subsys/ap_pwrseq/Kconfig b/zephyr/subsys/ap_pwrseq/Kconfig
index b982d58866..3e9edcf9be 100644
--- a/zephyr/subsys/ap_pwrseq/Kconfig
+++ b/zephyr/subsys/ap_pwrseq/Kconfig
@@ -23,6 +23,34 @@ module = AP_PWRSEQ
module-str = AP power sequencing
source "subsys/logging/Kconfig.template.log_config"
+config AP_PWRSEQ_SIGNAL_ADC
+ bool
+ default y
+ depends on DT_HAS_INTEL_AP_PWRSEQ_ADC_ENABLED
+ help
+ Helper symbol to enable ADC based power sequencing.
+
+config AP_PWRSEQ_SIGNAL_EXTERNAL
+ bool
+ default y
+ depends on DT_HAS_INTEL_AP_PWRSEQ_EXTERNAL_ENABLED
+ help
+ Helper symbol to enable external signal based power sequencing.
+
+config AP_PWRSEQ_SIGNAL_GPIO
+ bool
+ default y
+ depends on DT_HAS_INTEL_AP_PWRSEQ_GPIO_ENABLED
+ help
+ Helper symbol to enable GPIO based power sequencing.
+
+config AP_PWRSEQ_SIGNAL_VW
+ bool
+ default y
+ depends on DT_HAS_INTEL_AP_PWRSEQ_VW_ENABLED
+ help
+ Helper symbol to enable virtual wire (VW) based power sequencing.
+
config AP_PWRSEQ_AUTOSTART
bool "Start the power sequence thread automatically"
default n
diff --git a/zephyr/subsys/ap_pwrseq/include/power_signals.h b/zephyr/subsys/ap_pwrseq/include/power_signals.h
index eea258a80d..bbff230e5a 100644
--- a/zephyr/subsys/ap_pwrseq/include/power_signals.h
+++ b/zephyr/subsys/ap_pwrseq/include/power_signals.h
@@ -41,16 +41,6 @@
#include <zephyr/devicetree.h>
-/*
- * Create guards so that code used for a source is only
- * included if that signal source is configured in the
- * devicetree.
- */
-#define HAS_GPIO_SIGNALS DT_HAS_COMPAT_STATUS_OKAY(intel_ap_pwrseq_gpio)
-#define HAS_VW_SIGNALS DT_HAS_COMPAT_STATUS_OKAY(intel_ap_pwrseq_vw)
-#define HAS_EXT_SIGNALS DT_HAS_COMPAT_STATUS_OKAY(intel_ap_pwrseq_external)
-#define HAS_ADC_SIGNALS DT_HAS_COMPAT_STATUS_OKAY(intel_ap_pwrseq_adc)
-
/**
* @brief Definitions for AP power sequence signals.
*
@@ -86,7 +76,7 @@ enum power_signal {
#undef PWR_SIGNAL_ENUM_COMMA
-#if HAS_EXT_SIGNALS
+#if CONFIG_AP_PWRSEQ_SIGNAL_EXTERNAL
/**
* Definitions required for external (board-specific)
* power signals.
@@ -133,7 +123,7 @@ int board_power_signal_get(enum power_signal signal);
*/
int board_power_signal_set(enum power_signal signal, int value);
-#endif /* HAS_EXT_SIGNALS */
+#endif /* CONFIG_AP_PWRSEQ_SIGNAL_EXTERNAL */
/**
* @brief Get the value of this power signal.
diff --git a/zephyr/subsys/ap_pwrseq/include/signal_adc.h b/zephyr/subsys/ap_pwrseq/include/signal_adc.h
index dea6d315d8..9e9a30ac69 100644
--- a/zephyr/subsys/ap_pwrseq/include/signal_adc.h
+++ b/zephyr/subsys/ap_pwrseq/include/signal_adc.h
@@ -6,6 +6,8 @@
#ifndef __AP_PWRSEQ_SIGNAL_ADC_H__
#define __AP_PWRSEQ_SIGNAL_ADC_H__
+#include <zephyr/devicetree.h>
+
#include <power_signals.h>
#define PWR_SIG_TAG_ADC PWR_ADC_
@@ -22,9 +24,7 @@
#define PWR_ADC_ENUM(id) TAG_ADC(PWR_SIG_TAG_ADC, PWR_SIGNAL_ENUM(id)),
enum pwr_sig_adc {
-#if HAS_ADC_SIGNALS
DT_FOREACH_STATUS_OKAY(intel_ap_pwrseq_adc, PWR_ADC_ENUM)
-#endif
PWR_SIG_ADC_COUNT
};
diff --git a/zephyr/subsys/ap_pwrseq/include/signal_gpio.h b/zephyr/subsys/ap_pwrseq/include/signal_gpio.h
index 7cdd4ec316..f6ffde2fba 100644
--- a/zephyr/subsys/ap_pwrseq/include/signal_gpio.h
+++ b/zephyr/subsys/ap_pwrseq/include/signal_gpio.h
@@ -6,6 +6,10 @@
#ifndef __AP_PWRSEQ_SIGNAL_GPIO_H__
#define __AP_PWRSEQ_SIGNAL_GPIO_H__
+#include <zephyr/devicetree.h>
+
+#include <power_signals.h>
+
#define PWR_SIG_TAG_GPIO PWR_GPIO_
/*
@@ -20,9 +24,7 @@
#define PWR_GPIO_ENUM(id) TAG_GPIO(PWR_SIG_TAG_GPIO, PWR_SIGNAL_ENUM(id)),
enum pwr_sig_gpio {
-#if HAS_GPIO_SIGNALS
DT_FOREACH_STATUS_OKAY(intel_ap_pwrseq_gpio, PWR_GPIO_ENUM)
-#endif
PWR_SIG_GPIO_COUNT
};
diff --git a/zephyr/subsys/ap_pwrseq/include/signal_vw.h b/zephyr/subsys/ap_pwrseq/include/signal_vw.h
index 55ecc73e99..e4c29521d3 100644
--- a/zephyr/subsys/ap_pwrseq/include/signal_vw.h
+++ b/zephyr/subsys/ap_pwrseq/include/signal_vw.h
@@ -6,6 +6,10 @@
#ifndef __AP_PWRSEQ_SIGNAL_VW_H__
#define __AP_PWRSEQ_SIGNAL_VW_H__
+#include <zephyr/devicetree.h>
+
+#include <power_signals.h>
+
#define PWR_SIG_TAG_VW PWR_VW_
/*
@@ -20,10 +24,7 @@
#define PWR_VW_ENUM(id) TAG_VW(PWR_SIG_TAG_VW, PWR_SIGNAL_ENUM(id)),
enum pwr_sig_vw {
-#if HAS_VW_SIGNALS
- DT_FOREACH_STATUS_OKAY(intel_ap_pwrseq_vw, PWR_VW_ENUM)
-#endif
- PWR_SIG_VW_COUNT
+ DT_FOREACH_STATUS_OKAY(intel_ap_pwrseq_vw, PWR_VW_ENUM) PWR_SIG_VW_COUNT
};
#undef PWR_VW_ENUM
diff --git a/zephyr/subsys/ap_pwrseq/power_signals.c b/zephyr/subsys/ap_pwrseq/power_signals.c
index e767cbda07..67c3328ecb 100644
--- a/zephyr/subsys/ap_pwrseq/power_signals.c
+++ b/zephyr/subsys/ap_pwrseq/power_signals.c
@@ -164,22 +164,22 @@ int power_signal_get(enum power_signal signal)
default:
return -EINVAL; /* should never happen */
-#if HAS_GPIO_SIGNALS
+#if CONFIG_AP_PWRSEQ_SIGNAL_GPIO
case PWR_SIG_SRC_GPIO:
return power_signal_gpio_get(cp->src_enum);
#endif
-#if HAS_VW_SIGNALS
+#if CONFIG_AP_PWRSEQ_SIGNAL_VW
case PWR_SIG_SRC_VW:
return power_signal_vw_get(cp->src_enum);
#endif
-#if HAS_EXT_SIGNALS
+#if CONFIG_AP_PWRSEQ_SIGNAL_EXTERNAL
case PWR_SIG_SRC_EXT:
return board_power_signal_get(signal);
#endif
-#if HAS_ADC_SIGNALS
+#if CONFIG_AP_PWRSEQ_SIGNAL_ADC
case PWR_SIG_SRC_ADC:
return power_signal_adc_get(cp->src_enum);
#endif
@@ -200,13 +200,13 @@ int power_signal_set(enum power_signal signal, int value)
default:
return -EINVAL;
-#if HAS_GPIO_SIGNALS
+#if CONFIG_AP_PWRSEQ_SIGNAL_GPIO
case PWR_SIG_SRC_GPIO:
ret = power_signal_gpio_set(cp->src_enum, value);
break;
#endif
-#if HAS_EXT_SIGNALS
+#if CONFIG_AP_PWRSEQ_SIGNAL_EXTERNAL
case PWR_SIG_SRC_EXT:
ret = board_power_signal_set(signal, value);
break;
@@ -238,11 +238,11 @@ int power_signal_enable(enum power_signal signal)
*/
return -EINVAL;
-#if HAS_GPIO_SIGNALS
+#if CONFIG_AP_PWRSEQ_SIGNAL_GPIO
case PWR_SIG_SRC_GPIO:
return power_signal_gpio_enable(cp->src_enum);
#endif
-#if HAS_ADC_SIGNALS
+#if CONFIG_AP_PWRSEQ_SIGNAL_ADC
case PWR_SIG_SRC_ADC:
return power_signal_adc_enable(cp->src_enum);
#endif
@@ -261,11 +261,11 @@ int power_signal_disable(enum power_signal signal)
default:
return -EINVAL;
-#if HAS_GPIO_SIGNALS
+#if CONFIG_AP_PWRSEQ_SIGNAL_GPIO
case PWR_SIG_SRC_GPIO:
return power_signal_gpio_disable(cp->src_enum);
#endif
-#if HAS_ADC_SIGNALS
+#if CONFIG_AP_PWRSEQ_SIGNAL_ADC
case PWR_SIG_SRC_ADC:
return power_signal_adc_disable(cp->src_enum);
#endif
@@ -282,13 +282,13 @@ const char *power_signal_name(enum power_signal signal)
void power_signal_init(void)
{
- if (IS_ENABLED(HAS_GPIO_SIGNALS)) {
+ if (IS_ENABLED(CONFIG_AP_PWRSEQ_SIGNAL_GPIO)) {
power_signal_gpio_init();
}
- if (IS_ENABLED(HAS_VW_SIGNALS)) {
+ if (IS_ENABLED(CONFIG_AP_PWRSEQ_SIGNAL_VW)) {
power_signal_vw_init();
}
- if (IS_ENABLED(HAS_ADC_SIGNALS)) {
+ if (IS_ENABLED(CONFIG_AP_PWRSEQ_SIGNAL_ADC)) {
power_signal_adc_init();
}
/*
diff --git a/zephyr/subsys/ap_pwrseq/signal_adc.c b/zephyr/subsys/ap_pwrseq/signal_adc.c
index c23cd0d30a..86ebaf02c1 100644
--- a/zephyr/subsys/ap_pwrseq/signal_adc.c
+++ b/zephyr/subsys/ap_pwrseq/signal_adc.c
@@ -3,18 +3,17 @@
* found in the LICENSE file.
*/
+#include "signal_adc.h"
+
#include <zephyr/drivers/adc.h>
#include <zephyr/drivers/sensor.h>
#include <zephyr/logging/log.h>
#include <zephyr/sys/atomic.h>
#include <power_signals.h>
-#include <signal_adc.h>
#define MY_COMPAT intel_ap_pwrseq_adc
-#if HAS_ADC_SIGNALS
-
LOG_MODULE_DECLARE(ap_pwrseq, CONFIG_AP_PWRSEQ_LOG_LEVEL);
struct adc_config {
@@ -199,5 +198,3 @@ void power_signal_adc_init(void)
power_signal_adc_enable(i);
}
}
-
-#endif /* HAS_ADC_SIGNALS */
diff --git a/zephyr/subsys/ap_pwrseq/signal_gpio.c b/zephyr/subsys/ap_pwrseq/signal_gpio.c
index f09f6b23cb..8fc8ac7a78 100644
--- a/zephyr/subsys/ap_pwrseq/signal_gpio.c
+++ b/zephyr/subsys/ap_pwrseq/signal_gpio.c
@@ -3,17 +3,15 @@
* found in the LICENSE file.
*/
+#include "signal_gpio.h"
#include "system.h"
#include <zephyr/drivers/gpio.h>
#include <power_signals.h>
-#include <signal_gpio.h>
#define MY_COMPAT intel_ap_pwrseq_gpio
-#if HAS_GPIO_SIGNALS
-
#define INIT_GPIO_SPEC(id) GPIO_DT_SPEC_GET(id, gpios),
const static struct gpio_dt_spec spec[] = { DT_FOREACH_STATUS_OKAY(
@@ -175,5 +173,3 @@ void power_signal_gpio_init(void)
}
}
}
-
-#endif /* HAS_GPIO_SIGNALS */
diff --git a/zephyr/subsys/ap_pwrseq/signal_vw.c b/zephyr/subsys/ap_pwrseq/signal_vw.c
index cee88e362d..dc5e544f9c 100644
--- a/zephyr/subsys/ap_pwrseq/signal_vw.c
+++ b/zephyr/subsys/ap_pwrseq/signal_vw.c
@@ -12,8 +12,6 @@
#define MY_COMPAT intel_ap_pwrseq_vw
-#if HAS_VW_SIGNALS
-
/*
* A callback must be registered on the ESPI device (for the
* bus events that are required to be handled) that calls
@@ -140,5 +138,3 @@ void power_signal_vw_init(void)
vw_update_all(false);
}
}
-
-#endif /* HAS_VW_SIGNALS */