diff options
Diffstat (limited to 'board/bobba/board.c')
-rw-r--r-- | board/bobba/board.c | 154 |
1 files changed, 73 insertions, 81 deletions
diff --git a/board/bobba/board.c b/board/bobba/board.c index 1ab1dad660..64e713a55e 100644 --- a/board/bobba/board.c +++ b/board/bobba/board.c @@ -1,4 +1,4 @@ -/* Copyright 2018 The Chromium OS Authors. All rights reserved. +/* Copyright 2018 The ChromiumOS Authors * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ @@ -48,11 +48,11 @@ #include "usbc_ppc.h" #include "util.h" -#define CPRINTSUSB(format, args...) cprints(CC_USBCHARGE, format, ## args) -#define CPRINTFUSB(format, args...) cprintf(CC_USBCHARGE, format, ## args) +#define CPRINTSUSB(format, args...) cprints(CC_USBCHARGE, format, ##args) +#define CPRINTFUSB(format, args...) cprintf(CC_USBCHARGE, format, ##args) -#define USB_PD_PORT_ANX7447 0 -#define USB_PD_PORT_PS8751 1 +#define USB_PD_PORT_ANX7447 0 +#define USB_PD_PORT_PS8751 1 static uint8_t sku_id; @@ -62,17 +62,16 @@ static uint8_t sku_id; * that we don't have pin 0. */ const int keyboard_factory_scan_pins[][2] = { - {-1, -1}, {0, 5}, {1, 1}, {1, 0}, {0, 6}, - {0, 7}, {-1, -1}, {-1, -1}, {1, 4}, {1, 3}, - {-1, -1}, {1, 6}, {1, 7}, {3, 1}, {2, 0}, - {1, 5}, {2, 6}, {2, 7}, {2, 1}, {2, 4}, - {2, 5}, {1, 2}, {2, 3}, {2, 2}, {3, 0}, - {-1, -1}, {0, 4}, {-1, -1}, {8, 2}, {-1, -1}, - {-1, -1}, + { -1, -1 }, { 0, 5 }, { 1, 1 }, { 1, 0 }, { 0, 6 }, { 0, 7 }, + { -1, -1 }, { -1, -1 }, { 1, 4 }, { 1, 3 }, { -1, -1 }, { 1, 6 }, + { 1, 7 }, { 3, 1 }, { 2, 0 }, { 1, 5 }, { 2, 6 }, { 2, 7 }, + { 2, 1 }, { 2, 4 }, { 2, 5 }, { 1, 2 }, { 2, 3 }, { 2, 2 }, + { 3, 0 }, { -1, -1 }, { 0, 4 }, { -1, -1 }, { 8, 2 }, { -1, -1 }, + { -1, -1 }, }; const int keyboard_factory_scan_pins_used = - ARRAY_SIZE(keyboard_factory_scan_pins); + ARRAY_SIZE(keyboard_factory_scan_pins); /* Check PPC ID Pin and Board ver to decide which one ppc is used. */ static bool support_syv_ppc(void) @@ -115,31 +114,31 @@ static void ppc_interrupt(enum gpio_signal signal) /* ADC channels */ const struct adc_t adc_channels[] = { - [ADC_TEMP_SENSOR_AMB] = { - "TEMP_AMB", NPCX_ADC_CH0, ADC_MAX_VOLT, ADC_READ_MAX+1, 0}, - [ADC_TEMP_SENSOR_CHARGER] = { - "TEMP_CHARGER", NPCX_ADC_CH1, ADC_MAX_VOLT, ADC_READ_MAX+1, 0}, + [ADC_TEMP_SENSOR_AMB] = { "TEMP_AMB", NPCX_ADC_CH0, ADC_MAX_VOLT, + ADC_READ_MAX + 1, 0 }, + [ADC_TEMP_SENSOR_CHARGER] = { "TEMP_CHARGER", NPCX_ADC_CH1, + ADC_MAX_VOLT, ADC_READ_MAX + 1, 0 }, /* Vbus sensing (1/10 voltage divider). */ - [ADC_VBUS_C0] = { - "VBUS_C0", NPCX_ADC_CH9, ADC_MAX_VOLT*10, ADC_READ_MAX+1, 0}, - [ADC_VBUS_C1] = { - "VBUS_C1", NPCX_ADC_CH4, ADC_MAX_VOLT*10, ADC_READ_MAX+1, 0}, + [ADC_VBUS_C0] = { "VBUS_C0", NPCX_ADC_CH9, ADC_MAX_VOLT * 10, + ADC_READ_MAX + 1, 0 }, + [ADC_VBUS_C1] = { "VBUS_C1", NPCX_ADC_CH4, ADC_MAX_VOLT * 10, + ADC_READ_MAX + 1, 0 }, }; BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT); const struct temp_sensor_t temp_sensors[] = { - [TEMP_SENSOR_BATTERY] = {.name = "Battery", - .type = TEMP_SENSOR_TYPE_BATTERY, - .read = charge_get_battery_temp, - .idx = 0}, - [TEMP_SENSOR_AMBIENT] = {.name = "Ambient", - .type = TEMP_SENSOR_TYPE_BOARD, - .read = get_temp_3v3_51k1_47k_4050b, - .idx = ADC_TEMP_SENSOR_AMB}, - [TEMP_SENSOR_CHARGER] = {.name = "Charger", - .type = TEMP_SENSOR_TYPE_BOARD, - .read = get_temp_3v3_13k7_47k_4050b, - .idx = ADC_TEMP_SENSOR_CHARGER}, + [TEMP_SENSOR_BATTERY] = { .name = "Battery", + .type = TEMP_SENSOR_TYPE_BATTERY, + .read = charge_get_battery_temp, + .idx = 0 }, + [TEMP_SENSOR_AMBIENT] = { .name = "Ambient", + .type = TEMP_SENSOR_TYPE_BOARD, + .read = get_temp_3v3_51k1_47k_4050b, + .idx = ADC_TEMP_SENSOR_AMB }, + [TEMP_SENSOR_CHARGER] = { .name = "Charger", + .type = TEMP_SENSOR_TYPE_BOARD, + .read = get_temp_3v3_13k7_47k_4050b, + .idx = ADC_TEMP_SENSOR_CHARGER }, }; BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT); @@ -149,17 +148,13 @@ static struct mutex g_lid_mutex; static struct mutex g_base_mutex; /* Matrix to rotate accelrator into standard reference frame */ -const mat33_fp_t base_standard_ref = { - { 0, FLOAT_TO_FP(-1), 0}, - { FLOAT_TO_FP(1), 0, 0}, - { 0, 0, FLOAT_TO_FP(1)} -}; +const mat33_fp_t base_standard_ref = { { 0, FLOAT_TO_FP(-1), 0 }, + { FLOAT_TO_FP(1), 0, 0 }, + { 0, 0, FLOAT_TO_FP(1) } }; -const mat33_fp_t base_icm_ref = { - { FLOAT_TO_FP(-1), 0, 0}, - { 0, FLOAT_TO_FP(-1), 0}, - { 0, 0, FLOAT_TO_FP(1)} -}; +const mat33_fp_t base_icm_ref = { { FLOAT_TO_FP(-1), 0, 0 }, + { 0, FLOAT_TO_FP(-1), 0 }, + { 0, 0, FLOAT_TO_FP(1) } }; /* * Sparky360 SKU ID 26 has AR Cam, and move base accel/gryo to AR Cam board. @@ -174,9 +169,9 @@ const mat33_fp_t base_icm_ref = { * |0 0.27564 0.96126| */ const mat33_fp_t base_ar_cam_ref = { - { 0, FLOAT_TO_FP(-0.96126), FLOAT_TO_FP(0.27564)}, - { FLOAT_TO_FP(1), 0, 0}, - { 0, FLOAT_TO_FP(0.27564), FLOAT_TO_FP(0.96126)} + { 0, FLOAT_TO_FP(-0.96126), FLOAT_TO_FP(0.27564) }, + { FLOAT_TO_FP(1), 0, 0 }, + { 0, FLOAT_TO_FP(0.27564), FLOAT_TO_FP(0.96126) } }; /* sensor private data */ @@ -301,20 +296,20 @@ struct motion_sensor_t icm426xx_base_accel = { }; struct motion_sensor_t icm426xx_base_gyro = { - .name = "Base Gyro", - .active_mask = SENSOR_ACTIVE_S0_S3, - .chip = MOTIONSENSE_CHIP_ICM426XX, - .type = MOTIONSENSE_TYPE_GYRO, - .location = MOTIONSENSE_LOC_BASE, - .drv = &icm426xx_drv, - .mutex = &g_base_mutex, - .drv_data = &g_icm426xx_data, - .port = I2C_PORT_SENSOR, - .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS, - .default_range = 1000, /* dps */ - .rot_standard_ref = &base_icm_ref, - .min_frequency = ICM426XX_GYRO_MIN_FREQ, - .max_frequency = ICM426XX_GYRO_MAX_FREQ, + .name = "Base Gyro", + .active_mask = SENSOR_ACTIVE_S0_S3, + .chip = MOTIONSENSE_CHIP_ICM426XX, + .type = MOTIONSENSE_TYPE_GYRO, + .location = MOTIONSENSE_LOC_BASE, + .drv = &icm426xx_drv, + .mutex = &g_base_mutex, + .drv_data = &g_icm426xx_data, + .port = I2C_PORT_SENSOR, + .i2c_spi_addr_flags = ICM426XX_ADDR0_FLAGS, + .default_range = 1000, /* dps */ + .rot_standard_ref = &base_icm_ref, + .min_frequency = ICM426XX_GYRO_MIN_FREQ, + .max_frequency = ICM426XX_GYRO_MAX_FREQ, }; static int board_is_convertible(void) @@ -323,9 +318,8 @@ static int board_is_convertible(void) * SKU ID of Bobba360, Sparky360, & unprovisioned: 9, 10, 11, 12, * 25, 26, 27, 255 */ - return sku_id == 9 || sku_id == 10 || sku_id == 11 || sku_id == 12 - || sku_id == 25 || sku_id == 26 || sku_id == 27 - || sku_id == 255; + return sku_id == 9 || sku_id == 10 || sku_id == 11 || sku_id == 12 || + sku_id == 25 || sku_id == 26 || sku_id == 27 || sku_id == 255; } static int board_with_ar_cam(void) @@ -407,8 +401,9 @@ static void board_usb_charge_mode_init(void) int i; /* - * Only overriding the USB_DISALLOW_SUSPEND_CHARGE in RO is enough because - * USB_SYSJUMP_TAG preserves the settings to RW. And we should honor to it. + * Only overriding the USB_DISALLOW_SUSPEND_CHARGE in RO is enough + * because USB_SYSJUMP_TAG preserves the settings to RW. And we should + * honor to it. */ if (system_jumped_late()) return; @@ -425,7 +420,7 @@ static void board_usb_charge_mode_init(void) */ for (i = 0; i < CONFIG_USB_PORT_POWER_SMART_PORT_COUNT; i++) usb_charge_set_mode(i, CONFIG_USB_PORT_POWER_SMART_DEFAULT_MODE, - USB_DISALLOW_SUSPEND_CHARGE); + USB_DISALLOW_SUSPEND_CHARGE); } /* * usb_charge_init() is hooked in HOOK_PRIO_DEFAULT and set inhibit_charge to @@ -462,15 +457,15 @@ __override uint32_t board_override_feature_flags0(uint32_t flags0) } static const struct ppc_config_t ppc_syv682x_port0 = { - .i2c_port = I2C_PORT_TCPC0, - .i2c_addr_flags = SYV682X_ADDR0_FLAGS, - .drv = &syv682x_drv, + .i2c_port = I2C_PORT_TCPC0, + .i2c_addr_flags = SYV682X_ADDR0_FLAGS, + .drv = &syv682x_drv, }; static const struct ppc_config_t ppc_syv682x_port1 = { - .i2c_port = I2C_PORT_TCPC1, - .i2c_addr_flags = SYV682X_ADDR0_FLAGS, - .drv = &syv682x_drv, + .i2c_port = I2C_PORT_TCPC1, + .i2c_addr_flags = SYV682X_ADDR0_FLAGS, + .drv = &syv682x_drv, }; static void board_setup_ppc(void) @@ -478,11 +473,9 @@ static void board_setup_ppc(void) if (!support_syv_ppc()) return; - memcpy(&ppc_chips[USB_PD_PORT_TCPC_0], - &ppc_syv682x_port0, + memcpy(&ppc_chips[USB_PD_PORT_TCPC_0], &ppc_syv682x_port0, sizeof(struct ppc_config_t)); - memcpy(&ppc_chips[USB_PD_PORT_TCPC_1], - &ppc_syv682x_port1, + memcpy(&ppc_chips[USB_PD_PORT_TCPC_1], &ppc_syv682x_port1, sizeof(struct ppc_config_t)); gpio_set_flags(GPIO_USB_PD_C0_INT_ODL, GPIO_INT_BOTH); @@ -490,14 +483,14 @@ static void board_setup_ppc(void) } DECLARE_HOOK(HOOK_INIT, board_setup_ppc, HOOK_PRIO_INIT_I2C + 2); -void board_hibernate_late(void) { - +void board_hibernate_late(void) +{ int i; const uint32_t hibernate_pins[][2] = { /* Turn off LEDs before going to hibernate */ - {GPIO_BAT_LED_BLUE_L, GPIO_INPUT | GPIO_PULL_UP}, - {GPIO_BAT_LED_ORANGE_L, GPIO_INPUT | GPIO_PULL_UP}, + { GPIO_BAT_LED_BLUE_L, GPIO_INPUT | GPIO_PULL_UP }, + { GPIO_BAT_LED_ORANGE_L, GPIO_INPUT | GPIO_PULL_UP }, }; for (i = 0; i < ARRAY_SIZE(hibernate_pins); ++i) @@ -528,7 +521,6 @@ void board_overcurrent_event(int port, int is_overcurrented) gpio_set_level(GPIO_USB_C_OC, !is_overcurrented); } - int ppc_get_alert_status(int port) { if (port == 0) |