summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Georgi <pgeorgi@google.com>2017-08-24 10:51:43 +0200
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2018-04-16 09:20:26 +0000
commit3970502067f625f41f96ae9d155270b0f50bfaba (patch)
treebb100c0ddf3d0a942000266645db3bb4be746272
parent47771cdaa84c9a4d24934a4459ee6b22722d996d (diff)
downloadchrome-ec-3970502067f625f41f96ae9d155270b0f50bfaba.tar.gz
ec_features: Move feature flags out of ec_command into its own unit
Prepare for exposing the feature flags through EC ACPI memory space by moving the definitions and collection function into its own unit. BUG=b:64705535 BRANCH=none TEST=builds and returns the same value Change-Id: Ie393d732612f47e547a15cc72974974e27bb4824 Signed-off-by: Patrick Georgi <pgeorgi@google.com> Reviewed-on: https://chromium-review.googlesource.com/633925 Commit-Ready: Patrick Georgi <pgeorgi@chromium.org> Tested-by: Patrick Georgi <pgeorgi@chromium.org> Reviewed-by: Aseda Aboagye <aaboagye@chromium.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-by: Vincent Palatin <vpalatin@chromium.org> (cherry picked from commit 6844e4c2793b736b873f97510238ae6ed03c0772) Leaving out change from CL:540667 in common/host_command.c (renamed in this CL to common/ec_features.c), which marks EC_FEATURE_PMU as obsolete. Reviewed-on: https://chromium-review.googlesource.com/989862 Reviewed-by: Joel Kitching <kitching@chromium.org> Commit-Queue: Joel Kitching <kitching@chromium.org> Tested-by: Joel Kitching <kitching@chromium.org> Trybot-Ready: Joel Kitching <kitching@chromium.org>
-rw-r--r--common/build.mk2
-rw-r--r--common/ec_features.c114
-rw-r--r--common/host_command.c98
-rw-r--r--include/host_command.h4
4 files changed, 121 insertions, 97 deletions
diff --git a/common/build.mk b/common/build.mk
index 126cd7a3ef..b5a670cfcc 100644
--- a/common/build.mk
+++ b/common/build.mk
@@ -112,7 +112,7 @@ common-$(CONFIG_WIRELESS)+=wireless.o
common-$(HAS_TASK_CHIPSET)+=chipset.o
common-$(HAS_TASK_CONSOLE)+=console.o console_output.o uart_buffering.o
common-$(CONFIG_CMD_MEM)+=memory_commands.o
-common-$(HAS_TASK_HOSTCMD)+=host_command.o
+common-$(HAS_TASK_HOSTCMD)+=host_command.o ec_features.o
common-$(HAS_TASK_PDCMD)+=host_command_pd.o
common-$(HAS_TASK_KEYSCAN)+=keyboard_scan.o
common-$(HAS_TASK_LIGHTBAR)+=lb_common.o lightbar.o
diff --git a/common/ec_features.c b/common/ec_features.c
new file mode 100644
index 0000000000..9a630e6f17
--- /dev/null
+++ b/common/ec_features.c
@@ -0,0 +1,114 @@
+/* Copyright 2017 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.
+ */
+
+/* Present Chrome EC device features to the outside world */
+
+#include "common.h"
+#include "ec_commands.h"
+
+uint32_t get_feature_flags0(void)
+{
+ return 0
+#ifdef CONFIG_FW_LIMITED_IMAGE
+ | EC_FEATURE_MASK_0(EC_FEATURE_LIMITED)
+#endif
+#ifdef CONFIG_FLASH
+ | EC_FEATURE_MASK_0(EC_FEATURE_FLASH)
+#endif
+#ifdef CONFIG_FANS
+ | EC_FEATURE_MASK_0(EC_FEATURE_PWM_FAN)
+#endif
+#ifdef CONFIG_PWM_KBLIGHT
+ | EC_FEATURE_MASK_0(EC_FEATURE_PWM_KEYB)
+#endif
+#ifdef HAS_TASK_LIGHTBAR
+ | EC_FEATURE_MASK_0(EC_FEATURE_LIGHTBAR)
+#endif
+#ifdef CONFIG_LED_COMMON
+ | EC_FEATURE_MASK_0(EC_FEATURE_LED)
+#endif
+#ifdef HAS_TASK_MOTIONSENSE
+ | EC_FEATURE_MASK_0(EC_FEATURE_MOTION_SENSE)
+#endif
+#ifdef HAS_TASK_KEYSCAN
+ | EC_FEATURE_MASK_0(EC_FEATURE_KEYB)
+#endif
+#ifdef CONFIG_PSTORE
+ | EC_FEATURE_MASK_0(EC_FEATURE_PSTORE)
+#endif
+#ifdef CONFIG_LPC
+ | EC_FEATURE_MASK_0(EC_FEATURE_PORT80)
+#endif
+#ifdef CONFIG_TEMP_SENSOR
+ | EC_FEATURE_MASK_0(EC_FEATURE_THERMAL)
+#endif
+/* Hack to uniquely identify Samus ec */
+#if (defined CONFIG_BACKLIGHT_LID) || (defined CONFIG_BATTERY_SAMUS)
+ | EC_FEATURE_MASK_0(EC_FEATURE_BKLIGHT_SWITCH)
+#endif
+#ifdef CONFIG_WIRELESS
+ | EC_FEATURE_MASK_0(EC_FEATURE_WIFI_SWITCH)
+#endif
+#ifdef CONFIG_HOSTCMD_EVENTS
+ | EC_FEATURE_MASK_0(EC_FEATURE_HOST_EVENTS)
+#endif
+#ifdef CONFIG_COMMON_GPIO
+ | EC_FEATURE_MASK_0(EC_FEATURE_GPIO)
+#endif
+#ifdef CONFIG_I2C_MASTER
+ | EC_FEATURE_MASK_0(EC_FEATURE_I2C)
+#endif
+#ifdef CONFIG_CHARGER
+ | EC_FEATURE_MASK_0(EC_FEATURE_CHARGER)
+#endif
+#if (defined CONFIG_BATTERY) || (defined CONFIG_BATTERY_SMART)
+ | EC_FEATURE_MASK_0(EC_FEATURE_BATTERY)
+#endif
+#ifdef CONFIG_BATTERY_SMART
+ | EC_FEATURE_MASK_0(EC_FEATURE_SMART_BATTERY)
+#endif
+#ifdef CONFIG_AP_HANG_DETECT
+ | EC_FEATURE_MASK_0(EC_FEATURE_HANG_DETECT)
+#endif
+#if 0
+ | EC_FEATURE_MASK_0(EC_FEATURE_PMU) /* Obsolete */
+#endif
+#ifdef CONFIG_HOSTCMD_PD
+ | EC_FEATURE_MASK_0(EC_FEATURE_SUB_MCU)
+#endif
+#ifdef CONFIG_CHARGE_MANAGER
+ | EC_FEATURE_MASK_0(EC_FEATURE_USB_PD)
+#endif
+#ifdef CONFIG_ACCEL_FIFO
+ | EC_FEATURE_MASK_0(EC_FEATURE_MOTION_SENSE_FIFO)
+#endif
+#ifdef CONFIG_VSTORE
+ | EC_FEATURE_MASK_0(EC_FEATURE_VSTORE)
+#endif
+#ifdef CONFIG_USB_MUX_VIRTUAL
+ | EC_FEATURE_MASK_0(EC_FEATURE_USBC_SS_MUX_VIRTUAL)
+#endif
+#ifdef CONFIG_HOSTCMD_RTC
+ | EC_FEATURE_MASK_0(EC_FEATURE_RTC)
+#endif
+#ifdef CONFIG_SPI_FP_PORT
+ | EC_FEATURE_MASK_0(EC_FEATURE_FINGERPRINT)
+#endif
+#ifdef HAS_TASK_CENTROIDING
+ | EC_FEATURE_MASK_0(EC_FEATURE_TOUCHPAD)
+#endif
+#ifdef HAS_TASK_RWSIG
+ | EC_FEATURE_MASK_0(EC_FEATURE_RWSIG)
+#endif
+#ifdef CONFIG_DEVICE_EVENT
+ | EC_FEATURE_MASK_0(EC_FEATURE_DEVICE_EVENT)
+#endif
+ ;
+}
+
+uint32_t get_feature_flags1(void)
+{
+ return 0;
+}
diff --git a/common/host_command.c b/common/host_command.c
index 68f2867cf7..812c930272 100644
--- a/common/host_command.c
+++ b/common/host_command.c
@@ -8,6 +8,7 @@
#include "ap_hang_detect.h"
#include "common.h"
#include "console.h"
+#include "ec_commands.h"
#include "host_command.h"
#include "link_defs.h"
#include "lpc.h"
@@ -713,102 +714,7 @@ static int host_command_get_features(struct host_cmd_handler_args *args)
args->response_size = sizeof(*r);
memset(r, 0, sizeof(*r));
- r->flags[0] = 0
-#ifdef CONFIG_FW_LIMITED_IMAGE
- | EC_FEATURE_MASK_0(EC_FEATURE_LIMITED)
-#endif
-#ifdef CONFIG_FLASH
- | EC_FEATURE_MASK_0(EC_FEATURE_FLASH)
-#endif
-#ifdef CONFIG_FANS
- | EC_FEATURE_MASK_0(EC_FEATURE_PWM_FAN)
-#endif
-#ifdef CONFIG_PWM_KBLIGHT
- | EC_FEATURE_MASK_0(EC_FEATURE_PWM_KEYB)
-#endif
-#ifdef HAS_TASK_LIGHTBAR
- | EC_FEATURE_MASK_0(EC_FEATURE_LIGHTBAR)
-#endif
-#ifdef CONFIG_LED_COMMON
- | EC_FEATURE_MASK_0(EC_FEATURE_LED)
-#endif
-#ifdef HAS_TASK_MOTIONSENSE
- | EC_FEATURE_MASK_0(EC_FEATURE_MOTION_SENSE)
-#endif
-#ifdef HAS_TASK_KEYSCAN
- | EC_FEATURE_MASK_0(EC_FEATURE_KEYB)
-#endif
-#ifdef CONFIG_PSTORE
- | EC_FEATURE_MASK_0(EC_FEATURE_PSTORE)
-#endif
-#ifdef CONFIG_LPC
- | EC_FEATURE_MASK_0(EC_FEATURE_PORT80)
-#endif
-#ifdef CONFIG_TEMP_SENSOR
- | EC_FEATURE_MASK_0(EC_FEATURE_THERMAL)
-#endif
-/* Hack to uniquely identify Samus ec */
-#if (defined CONFIG_BACKLIGHT_LID) || (defined CONFIG_BATTERY_SAMUS)
- | EC_FEATURE_MASK_0(EC_FEATURE_BKLIGHT_SWITCH)
-#endif
-#ifdef CONFIG_WIRELESS
- | EC_FEATURE_MASK_0(EC_FEATURE_WIFI_SWITCH)
-#endif
-#ifdef CONFIG_HOSTCMD_EVENTS
- | EC_FEATURE_MASK_0(EC_FEATURE_HOST_EVENTS)
-#endif
-#ifdef CONFIG_COMMON_GPIO
- | EC_FEATURE_MASK_0(EC_FEATURE_GPIO)
-#endif
-#ifdef CONFIG_I2C_MASTER
- | EC_FEATURE_MASK_0(EC_FEATURE_I2C)
-#endif
-#ifdef CONFIG_CHARGER
- | EC_FEATURE_MASK_0(EC_FEATURE_CHARGER)
-#endif
-#if (defined CONFIG_BATTERY) || (defined CONFIG_BATTERY_SMART)
- | EC_FEATURE_MASK_0(EC_FEATURE_BATTERY)
-#endif
-#ifdef CONFIG_BATTERY_SMART
- | EC_FEATURE_MASK_0(EC_FEATURE_SMART_BATTERY)
-#endif
-#ifdef CONFIG_AP_HANG_DETECT
- | EC_FEATURE_MASK_0(EC_FEATURE_HANG_DETECT)
-#endif
-#ifdef CONFIG_PMU_POWERINFO
- | EC_FEATURE_MASK_0(EC_FEATURE_PMU)
-#endif
-#ifdef CONFIG_HOSTCMD_PD
- | EC_FEATURE_MASK_0(EC_FEATURE_SUB_MCU)
-#endif
-#ifdef CONFIG_CHARGE_MANAGER
- | EC_FEATURE_MASK_0(EC_FEATURE_USB_PD)
-#endif
-#ifdef CONFIG_ACCEL_FIFO
- | EC_FEATURE_MASK_0(EC_FEATURE_MOTION_SENSE_FIFO)
-#endif
-#ifdef CONFIG_VSTORE
- | EC_FEATURE_MASK_0(EC_FEATURE_VSTORE)
-#endif
-#ifdef CONFIG_USB_MUX_VIRTUAL
- | EC_FEATURE_MASK_0(EC_FEATURE_USBC_SS_MUX_VIRTUAL)
-#endif
-#ifdef CONFIG_HOSTCMD_RTC
- | EC_FEATURE_MASK_0(EC_FEATURE_RTC)
-#endif
-#ifdef CONFIG_SPI_FP_PORT
- | EC_FEATURE_MASK_0(EC_FEATURE_FINGERPRINT)
-#endif
-#ifdef HAS_TASK_CENTROIDING
- | EC_FEATURE_MASK_0(EC_FEATURE_TOUCHPAD)
-#endif
-#ifdef HAS_TASK_RWSIG
- | EC_FEATURE_MASK_0(EC_FEATURE_RWSIG)
-#endif
-#ifdef CONFIG_DEVICE_EVENT
- | EC_FEATURE_MASK_0(EC_FEATURE_DEVICE_EVENT)
-#endif
- ;
+ r->flags[0] = get_feature_flags0();
return EC_RES_SUCCESS;
}
DECLARE_HOST_COMMAND(EC_CMD_GET_FEATURES,
diff --git a/include/host_command.h b/include/host_command.h
index 50466dc61d..78157231ca 100644
--- a/include/host_command.h
+++ b/include/host_command.h
@@ -313,4 +313,8 @@ int host_get_vboot_mode(void);
*/
void host_send_sysrq(uint8_t key);
+/* Return the lower/higher part of the feature flags bitmap */
+uint32_t get_feature_flags0(void);
+uint32_t get_feature_flags1(void);
+
#endif /* __CROS_EC_HOST_COMMAND_H */