summaryrefslogtreecommitdiff
path: root/baseboard/grunt
diff options
context:
space:
mode:
authorEdward Hill <ecgh@chromium.org>2018-12-04 12:28:16 -0700
committerchrome-bot <chrome-bot@chromium.org>2018-12-05 01:13:32 -0800
commit0034f8f365e647514e16c61031f661753089cf66 (patch)
tree3803572b3aa026d8e9d9f99487cc83c5f61228d2 /baseboard/grunt
parent2b9ee186544863f29a84477aa46a80a57d8f09e0 (diff)
downloadchrome-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.c28
-rw-r--r--baseboard/grunt/baseboard.h2
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__ */