diff options
-rw-r--r-- | common/build.mk | 2 | ||||
-rw-r--r-- | common/ec_features.c | 114 | ||||
-rw-r--r-- | common/host_command.c | 98 | ||||
-rw-r--r-- | include/host_command.h | 4 |
4 files changed, 121 insertions, 97 deletions
diff --git a/common/build.mk b/common/build.mk index fe751979f8..ba8dee4c5d 100644 --- a/common/build.mk +++ b/common/build.mk @@ -124,7 +124,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 912a7b0ff4..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 -#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 - ; + 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 */ |