diff options
author | Edward Hill <ecgh@chromium.org> | 2018-12-04 12:28:16 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-12-05 01:13:32 -0800 |
commit | 0034f8f365e647514e16c61031f661753089cf66 (patch) | |
tree | 3803572b3aa026d8e9d9f99487cc83c5f61228d2 /baseboard/grunt | |
parent | 2b9ee186544863f29a84477aa46a80a57d8f09e0 (diff) | |
download | chrome-ec-0034f8f365e647514e16c61031f661753089cf66.tar.gz |
aleena/kasumi: Add support for motion sensors
Adjust Grunt baseboard to allow for per-sku support for motion sensors.
Use this to enable motion sensors for SKU 82 (Kasumi360).
Only enable the interrupt if the sensor is present.
BUG=b:119795894
BRANCH=grunt
TEST=Kasumi360 `ectool motionsense lid_angle` shows correct angles.
Change-Id: Icb34359d7ac4cd894776e134c2c1fb7032741f03
Signed-off-by: Edward Hill <ecgh@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1361987
Tested-by: Ryan Zhang <ryan.zhang@quanta.corp-partner.google.com>
Reviewed-by: Ryan Zhang <ryan.zhang@quanta.corp-partner.google.com>
Reviewed-by: Jett Rink <jettrink@chromium.org>
Reviewed-by: Diana Z <dzigterman@chromium.org>
Diffstat (limited to 'baseboard/grunt')
-rw-r--r-- | baseboard/grunt/baseboard.c | 28 | ||||
-rw-r--r-- | baseboard/grunt/baseboard.h | 2 |
2 files changed, 18 insertions, 12 deletions
diff --git a/baseboard/grunt/baseboard.c b/baseboard/grunt/baseboard.c index 579b7758c5..032ae55076 100644 --- a/baseboard/grunt/baseboard.c +++ b/baseboard/grunt/baseboard.c @@ -49,8 +49,6 @@ #define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args) #define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args) -static int board_is_convertible(void); - const enum gpio_signal hibernate_wake_pins[] = { GPIO_LID_OPEN, GPIO_AC_PRESENT, @@ -348,6 +346,8 @@ const struct temp_sensor_t temp_sensors[] = { }; BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT); +#ifdef HAS_TASK_MOTIONSENSE + /* Motion sensors */ static struct mutex g_lid_mutex; static struct mutex g_base_mutex; @@ -441,6 +441,8 @@ struct motion_sensor_t motion_sensors[] = { unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors); +#endif /* HAS_TASK_MOTIONSENSE */ + #ifndef TEST_BUILD void lid_angle_peripheral_enable(int enable) { @@ -532,6 +534,10 @@ static void cbi_init(void) } #endif +#ifdef HAS_TASK_MOTIONSENSE + board_update_sensor_config_from_sku(); +#endif + ccprints("Board Version: %d (0x%x)", board_version, board_version); ccprints("SKU: %d (0x%x)", sku_id, sku_id); } @@ -555,9 +561,11 @@ int board_get_version(void) * Returns 1 for boards that are convertible into tablet mode, and zero for * clamshells. */ -static int board_is_convertible(void) +int board_is_convertible(void) { - return system_get_sku_id() == 6; + /* Grunt: 6 */ + /* Kasumi360: 82 */ + return (sku_id == 6 || sku_id == 82); } int board_is_lid_angle_tablet_mode(void) @@ -567,16 +575,12 @@ int board_is_lid_angle_tablet_mode(void) uint32_t board_override_feature_flags0(uint32_t flags0) { - uint32_t sku = system_get_sku_id(); - /* - * We always compile in backlight support for grunt baseboard, - * but only some models come with the hardware. Therefore, - * check if the current device is one of them and return - * the default value - with backlight here. + * Remove keyboard backlight feature for devices that don't support it. */ - if (sku == 16 || sku == 17 || sku == 20 || sku == 21 || sku == 32 - || sku == 33) + if (sku_id == 16 || sku_id == 17 || + sku_id == 20 || sku_id == 21 || + sku_id == 32 || sku_id == 33) return (flags0 & ~EC_FEATURE_MASK_0(EC_FEATURE_PWM_KEYB)); else return flags0; diff --git a/baseboard/grunt/baseboard.h b/baseboard/grunt/baseboard.h index 8fe386fdb0..e5e3a681c1 100644 --- a/baseboard/grunt/baseboard.h +++ b/baseboard/grunt/baseboard.h @@ -248,6 +248,8 @@ void board_reset_pd_mcu(void); void tcpc_alert_event(enum gpio_signal signal); int board_get_version(void); +int board_is_convertible(void); +void board_update_sensor_config_from_sku(void); #endif /* !__ASSEMBLER__ */ |