From 3970502067f625f41f96ae9d155270b0f50bfaba Mon Sep 17 00:00:00 2001 From: Patrick Georgi Date: Thu, 24 Aug 2017 10:51:43 +0200 Subject: 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 Reviewed-on: https://chromium-review.googlesource.com/633925 Commit-Ready: Patrick Georgi Tested-by: Patrick Georgi Reviewed-by: Aseda Aboagye Reviewed-by: Aaron Durbin Reviewed-by: Vincent Palatin (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 Commit-Queue: Joel Kitching Tested-by: Joel Kitching Trybot-Ready: Joel Kitching --- common/build.mk | 2 +- common/ec_features.c | 114 +++++++++++++++++++++++++++++++++++++++++++++++++ common/host_command.c | 98 +----------------------------------------- include/host_command.h | 4 ++ 4 files changed, 121 insertions(+), 97 deletions(-) create mode 100644 common/ec_features.c 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 */ -- cgit v1.2.1