summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDevin Lu <devin.lu@quantatw.com>2017-09-04 16:58:06 +0800
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2017-09-05 06:35:59 +0000
commitc87227c68d49ae5308ad989246d8ec05523b986a (patch)
tree4380ba36591a23840b33939cc7262c822cd40882
parent030b0bb43cc25d4ac65896e67cdfbe413d86bd6f (diff)
downloadchrome-ec-c87227c68d49ae5308ad989246d8ec05523b986a.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. This CL is referring to: 6844e4c2793b736b873f97510238ae6ed03c0772 BUG=none BRANCH=reef TEST=builds and returns the same value Change-Id: I66eabebe0d039fdcd14d11b9ecf77c0f1040d006 Signed-off-by: Signed-off-by: Devin Lu <Devin.Lu@quantatw.com> Reviewed-on: https://chromium-review.googlesource.com/648892 Reviewed-by: Patrick Georgi <pgeorgi@chromium.org> Commit-Queue: Patrick Georgi <pgeorgi@chromium.org> Tested-by: Patrick Georgi <pgeorgi@chromium.org> Trybot-Ready: Patrick Georgi <pgeorgi@chromium.org>
-rw-r--r--common/build.mk2
-rw-r--r--common/ec_features.c102
-rw-r--r--common/host_command.c86
-rw-r--r--include/host_command.h4
4 files changed, 109 insertions, 85 deletions
diff --git a/common/build.mk b/common/build.mk
index ea27f3b817..8834915396 100644
--- a/common/build.mk
+++ b/common/build.mk
@@ -106,7 +106,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..6570e52240
--- /dev/null
+++ b/common/ec_features.c
@@ -0,0 +1,102 @@
+/* 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
+ ;
+}
+
+uint32_t get_feature_flags1(void)
+{
+ return 0;
+}
diff --git a/common/host_command.c b/common/host_command.c
index 3034419503..5a1a0ec4ab 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"
@@ -675,90 +676,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
- ;
+ 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 720492158e..13b12e6deb 100644
--- a/include/host_command.h
+++ b/include/host_command.h
@@ -260,4 +260,8 @@ int pd_host_command(int command, int version,
*/
int host_get_vboot_mode(void);
+/* 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 */