diff options
author | Fabio Baltieri <fabiobaltieri@google.com> | 2022-12-12 16:56:54 +0000 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-12-13 22:56:22 +0000 |
commit | d2b00dba869ff6cc90bbb5c0121c98de95174c13 (patch) | |
tree | cf8150e0e1da535fb6a368c2494988cc25b73c53 | |
parent | e7a8c5473610f8a73f391951be7203892d5f75f6 (diff) | |
download | chrome-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.txt | 14 | ||||
-rw-r--r-- | zephyr/subsys/ap_pwrseq/Kconfig | 28 | ||||
-rw-r--r-- | zephyr/subsys/ap_pwrseq/include/power_signals.h | 14 | ||||
-rw-r--r-- | zephyr/subsys/ap_pwrseq/include/signal_adc.h | 4 | ||||
-rw-r--r-- | zephyr/subsys/ap_pwrseq/include/signal_gpio.h | 6 | ||||
-rw-r--r-- | zephyr/subsys/ap_pwrseq/include/signal_vw.h | 9 | ||||
-rw-r--r-- | zephyr/subsys/ap_pwrseq/power_signals.c | 26 | ||||
-rw-r--r-- | zephyr/subsys/ap_pwrseq/signal_adc.c | 7 | ||||
-rw-r--r-- | zephyr/subsys/ap_pwrseq/signal_gpio.c | 6 | ||||
-rw-r--r-- | zephyr/subsys/ap_pwrseq/signal_vw.c | 4 |
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 */ |