mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2025-12-27 18:25:05 +00:00
oak: Add kx022 lid accelerometer for rev5.
refer to commit574c806571, adds the lid accelerometer to the list of motion sensors on the rev5. Since commitbc404c94b4, math_util.c is no longer to include "math.h" header file. BUG=chrome-os-partner:50312 BRANCH=none TEST=Build Oak EC with driver enabled and verify that valid accelerometer data is read, and that range, resolution, and odr can all be modified. TEST=Verified that signs of accelerometer data conform to those shown in the doc. TEST=make buildall tests Change-Id: I8df1b2331a1fbea82015b97985541e2ebc393d10 Signed-off-by: Ben Lok <ben.lok@mediatek.com> Reviewed-on: https://chromium-review.googlesource.com/319332 Commit-Ready: Rong Chang <rongchang@chromium.org> Reviewed-by: Rong Chang <rongchang@chromium.org>
This commit is contained in:
@@ -16,6 +16,8 @@
|
||||
#include "chipset.h"
|
||||
#include "common.h"
|
||||
#include "console.h"
|
||||
#include "driver/accel_kionix.h"
|
||||
#include "driver/accel_kx022.h"
|
||||
#include "driver/als_opt3001.h"
|
||||
#include "driver/temp_sensor/tmp432.h"
|
||||
#include "extpower.h"
|
||||
@@ -25,6 +27,9 @@
|
||||
#include "i2c.h"
|
||||
#include "keyboard_raw.h"
|
||||
#include "lid_switch.h"
|
||||
#include "math_util.h"
|
||||
#include "motion_lid.h"
|
||||
#include "motion_sense.h"
|
||||
#include "pi3usb9281.h"
|
||||
#include "power.h"
|
||||
#include "power_button.h"
|
||||
@@ -550,3 +555,51 @@ static void board_chipset_suspend(void)
|
||||
#endif
|
||||
}
|
||||
DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
|
||||
|
||||
#ifdef HAS_TASK_MOTIONSENSE
|
||||
/* Motion sensors */
|
||||
/* Mutexes */
|
||||
static struct mutex g_lid_mutex;
|
||||
|
||||
/* KX022 private data */
|
||||
struct kionix_accel_data g_kx022_data = {
|
||||
.variant = KX022,
|
||||
};
|
||||
|
||||
struct motion_sensor_t motion_sensors[] = {
|
||||
{.name = "Lid Accel",
|
||||
.active_mask = SENSOR_ACTIVE_S0,
|
||||
.chip = MOTIONSENSE_CHIP_KX022,
|
||||
.type = MOTIONSENSE_TYPE_ACCEL,
|
||||
.location = MOTIONSENSE_LOC_LID,
|
||||
.drv = &kionix_accel_drv,
|
||||
.mutex = &g_lid_mutex,
|
||||
.drv_data = &g_kx022_data,
|
||||
.addr = KX022_ADDR1,
|
||||
.rot_standard_ref = NULL, /* Identity matrix. */
|
||||
.default_range = 2, /* g, enough for laptop. */
|
||||
.config = {
|
||||
/* AP: by default use EC settings */
|
||||
[SENSOR_CONFIG_AP] = {
|
||||
.odr = 10000 | ROUND_UP_FLAG,
|
||||
.ec_rate = 100 * MSEC,
|
||||
},
|
||||
/* EC use accel for angle detection */
|
||||
[SENSOR_CONFIG_EC_S0] = {
|
||||
.odr = 10000 | ROUND_UP_FLAG,
|
||||
.ec_rate = 100 * MSEC,
|
||||
},
|
||||
/* unused */
|
||||
[SENSOR_CONFIG_EC_S3] = {
|
||||
.odr = 0,
|
||||
.ec_rate = 0,
|
||||
},
|
||||
[SENSOR_CONFIG_EC_S5] = {
|
||||
.odr = 0,
|
||||
.ec_rate = 0,
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
|
||||
#endif /* defined(HAS_TASK_MOTIONSENSE) */
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
/* board revision */
|
||||
#include "board_revs.h"
|
||||
|
||||
#define CONFIG_ACCEL_KX022
|
||||
#define CONFIG_ADC
|
||||
#undef CONFIG_ADC_WATCHDOG
|
||||
|
||||
@@ -132,15 +133,16 @@
|
||||
#define KB_OUT_PORT_LIST GPIO_A, GPIO_B, GPIO_C, GPIO_D
|
||||
|
||||
/* 2 I2C master ports, connect to battery, charger, pd and USB switches */
|
||||
#define I2C_PORT_MASTER 0
|
||||
#define I2C_PORT_MASTER 0
|
||||
#define I2C_PORT_ACCEL 0
|
||||
#define I2C_PORT_ALS 0
|
||||
#define I2C_PORT_BATTERY 0
|
||||
#define I2C_PORT_CHARGER 0
|
||||
#define I2C_PORT_PERICOM 0
|
||||
#define I2C_PORT_THERMAL 0
|
||||
#define I2C_PORT_PD_MCU 1
|
||||
#define I2C_PORT_PD_MCU 1
|
||||
#define I2C_PORT_USB_MUX 1
|
||||
#define I2C_PORT_TCPC 1
|
||||
#define I2C_PORT_ALS I2C_PORT_MASTER
|
||||
#define I2C_PORT_TCPC 1
|
||||
|
||||
/* Ambient Light Sensor address */
|
||||
#define OPT3001_I2C_ADDR OPT3001_I2C_ADDR1
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
|
||||
TASK_VBUS(VBUS, vbus_task, NULL, TASK_STACK_SIZE) \
|
||||
TASK_ALWAYS(ALS, als_task, NULL, TASK_STACK_SIZE) \
|
||||
TASK_NOTEST(MOTIONSENSE, motion_sense_task, NULL, TASK_STACK_SIZE) \
|
||||
TASK_ALWAYS(USB_CHG_P0, usb_charger_task, NULL, TASK_STACK_SIZE) \
|
||||
TASK_ALWAYS(USB_CHG_P1, usb_charger_task, NULL, TASK_STACK_SIZE) \
|
||||
TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
/* Common math functions. */
|
||||
|
||||
#include "common.h"
|
||||
#include "math.h"
|
||||
#include "math_util.h"
|
||||
#include "util.h"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user