diff options
author | Jack Rosenthal <jrosenth@chromium.org> | 2021-11-04 12:11:58 -0600 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-11-05 04:22:34 +0000 |
commit | 252457d4b21f46889eebad61d4c0a65331919cec (patch) | |
tree | 01856c4d31d710b20e85a74c8d7b5836e35c3b98 /board/jacuzzi | |
parent | 08f5a1e6fc2c9467230444ac9b582dcf4d9f0068 (diff) | |
download | chrome-ec-stabilize-14395.B-ish.tar.gz |
ish: Trim down the release branchstabilize-wristpin-14469.59.B-ishstabilize-voshyr-14637.B-ishstabilize-quickfix-14695.187.B-ishstabilize-quickfix-14695.124.B-ishstabilize-quickfix-14526.91.B-ishstabilize-14695.85.B-ishstabilize-14695.107.B-ishstabilize-14682.B-ishstabilize-14633.B-ishstabilize-14616.B-ishstabilize-14589.B-ishstabilize-14588.98.B-ishstabilize-14588.14.B-ishstabilize-14588.123.B-ishstabilize-14536.B-ishstabilize-14532.B-ishstabilize-14528.B-ishstabilize-14526.89.B-ishstabilize-14526.84.B-ishstabilize-14526.73.B-ishstabilize-14526.67.B-ishstabilize-14526.57.B-ishstabilize-14498.B-ishstabilize-14496.B-ishstabilize-14477.B-ishstabilize-14469.9.B-ishstabilize-14469.8.B-ishstabilize-14469.58.B-ishstabilize-14469.41.B-ishstabilize-14442.B-ishstabilize-14438.B-ishstabilize-14411.B-ishstabilize-14396.B-ishstabilize-14395.B-ishstabilize-14388.62.B-ishstabilize-14388.61.B-ishstabilize-14388.52.B-ishstabilize-14385.B-ishstabilize-14345.B-ishstabilize-14336.B-ishstabilize-14333.B-ishrelease-R99-14469.B-ishrelease-R98-14388.B-ishrelease-R102-14695.B-ishrelease-R101-14588.B-ishrelease-R100-14526.B-ishfirmware-cherry-14454.B-ishfirmware-brya-14505.B-ishfirmware-brya-14505.71.B-ishfactory-kukui-14374.B-ishfactory-guybrush-14600.B-ishfactory-cherry-14455.B-ishfactory-brya-14517.B-ish
In the interest of making long-term branch maintenance incur as little
technical debt on us as possible, we should not maintain any files on
the branch we are not actually using.
This has the added effect of making it extremely clear when merging CLs
from the main branch when changes have the possibility to affect us.
The follow-on CL adds a convenience script to actually pull updates from
the main branch and generate a CL for the update.
BUG=b:204206272
BRANCH=ish
TEST=make BOARD=arcada_ish && make BOARD=drallion_ish
Signed-off-by: Jack Rosenthal <jrosenth@chromium.org>
Change-Id: I17e4694c38219b5a0823e0a3e55a28d1348f4b18
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3262038
Reviewed-by: Jett Rink <jettrink@chromium.org>
Reviewed-by: Tom Hughes <tomhughes@chromium.org>
Diffstat (limited to 'board/jacuzzi')
-rw-r--r-- | board/jacuzzi/battery.c | 128 | ||||
-rw-r--r-- | board/jacuzzi/board.c | 571 | ||||
-rw-r--r-- | board/jacuzzi/board.h | 172 | ||||
-rw-r--r-- | board/jacuzzi/build.mk | 15 | ||||
-rw-r--r-- | board/jacuzzi/ec.tasklist | 20 | ||||
-rw-r--r-- | board/jacuzzi/gpio.inc | 126 | ||||
-rw-r--r-- | board/jacuzzi/led.c | 81 | ||||
-rw-r--r-- | board/jacuzzi/vif_override.xml | 3 |
8 files changed, 0 insertions, 1116 deletions
diff --git a/board/jacuzzi/battery.c b/board/jacuzzi/battery.c deleted file mode 100644 index 443bf1e98a..0000000000 --- a/board/jacuzzi/battery.c +++ /dev/null @@ -1,128 +0,0 @@ -/* Copyright 2019 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. - */ - -#include "battery.h" -#include "battery_fuel_gauge.h" -#include "gpio.h" - -const struct board_batt_params board_battery_info[] = { - [BATTERY_PANASONIC_AC15A3J] = { - .fuel_gauge = { - .manuf_name = "PANASONIC", - .device_name = "AC15A3J", - .ship_mode = { - .reg_addr = 0x3A, - .reg_data = { 0xC574, 0xC574 }, - }, - .fet = { - .reg_addr = 0x0, - .reg_mask = 0x4000, - .disconnect_val = 0x0, - } - }, - .batt_info = { - .voltage_max = 13200, - .voltage_normal = 11580, - .voltage_min = 9000, - .precharge_current = 256, - .start_charging_min_c = 0, - .start_charging_max_c = 45, - .charging_min_c = 0, - .charging_max_c = 60, - .discharging_min_c = -20, - .discharging_max_c = 60, - }, - }, - [BATTERY_PANASONIC_AC16L5J] = { - .fuel_gauge = { - .manuf_name = "PANASONIC", - .device_name = "AP16L5J", - .ship_mode = { - .reg_addr = 0x3A, - .reg_data = { 0xC574, 0xC574 }, - }, - .fet = { - .reg_addr = 0x0, - .reg_mask = 0x4000, - .disconnect_val = 0x0, - } - }, - .batt_info = { - .voltage_max = 8800, - .voltage_normal = 7700, - .voltage_min = 6000, - .precharge_current = 256, - .start_charging_min_c = 0, - .start_charging_max_c = 50, - .charging_min_c = 0, - .charging_max_c = 60, - .discharging_min_c = -20, - .discharging_max_c = 75, - }, - }, - [BATTERY_LGC_AC16L8J] = { - .fuel_gauge = { - .manuf_name = "LGC KT0020G010", - .device_name = "AP16L8J", - .ship_mode = { - .reg_addr = 0x3A, - .reg_data = { 0xC574, 0xC574 }, - }, - .fet = { - .mfgacc_support = 1, - .reg_addr = 0x0, - .reg_mask = 0x0002, - .disconnect_val = 0x0, - } - }, - .batt_info = { - .voltage_max = 8700, - .voltage_normal = 7500, - .voltage_min = 6000, - .precharge_current = 256, - .start_charging_min_c = 0, - .start_charging_max_c = 50, - .charging_min_c = 0, - .charging_max_c = 60, - .discharging_min_c = -20, - .discharging_max_c = 75, - }, - }, - [BATTERY_PANASONIC_AC16L5J_KT00205009] = { - .fuel_gauge = { - .manuf_name = "PANASONIC KT00205009", - .device_name = "AP16L5J", - .ship_mode = { - .reg_addr = 0x3A, - .reg_data = { 0xC574, 0xC574 }, - }, - .fet = { - .reg_addr = 0x0, - .reg_mask = 0x4000, - .disconnect_val = 0x0, - } - }, - .batt_info = { - .voltage_max = 8800, - .voltage_normal = 7700, - .voltage_min = 6000, - .precharge_current = 256, - .start_charging_min_c = 0, - .start_charging_max_c = 50, - .charging_min_c = 0, - .charging_max_c = 60, - .discharging_min_c = -20, - .discharging_max_c = 75, - }, - }, -}; -BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT); - -const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_PANASONIC_AC16L5J_KT00205009; - -enum battery_present battery_hw_present(void) -{ - return gpio_get_level(GPIO_EC_BATT_PRES_ODL) ? BP_NO : BP_YES; -} diff --git a/board/jacuzzi/board.c b/board/jacuzzi/board.c deleted file mode 100644 index ec6515544d..0000000000 --- a/board/jacuzzi/board.c +++ /dev/null @@ -1,571 +0,0 @@ -/* Copyright 2018 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. - */ - -#include "adc.h" -#include "backlight.h" -#include "button.h" -#include "charge_manager.h" -#include "charge_ramp.h" -#include "charge_state.h" -#include "charger.h" -#include "chipset.h" -#include "common.h" -#include "console.h" -#include "driver/accel_kionix.h" -#include "driver/accelgyro_bmi_common.h" -#include "driver/accelgyro_icm_common.h" -#include "driver/accelgyro_icm426xx.h" -#include "driver/battery/max17055.h" -#include "driver/bc12/pi3usb9201.h" -#include "driver/charger/isl923x.h" -#include "driver/tcpm/fusb302.h" -#include "driver/usb_mux/it5205.h" -#include "ec_commands.h" -#include "extpower.h" -#include "gpio.h" -#include "hooks.h" -#include "host_command.h" -#include "i2c.h" -#include "i2c_bitbang.h" -#include "it8801.h" -#include "keyboard_scan.h" -#include "lid_switch.h" -#include "power.h" -#include "power_button.h" -#include "registers.h" -#include "spi.h" -#include "system.h" -#include "tablet_mode.h" -#include "task.h" -#include "tcpm/tcpm.h" -#include "timer.h" -#include "usb_charge.h" -#include "usb_mux.h" -#include "usb_pd_tcpm.h" -#include "util.h" - -#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args) -#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args) - -static void tcpc_alert_event(enum gpio_signal signal) -{ - schedule_deferred_pd_interrupt(0 /* port */); -} - -#include "gpio_list.h" - -/******************************************************************************/ -/* ADC channels. Must be in the exactly same order as in enum adc_channel. */ -const struct adc_t adc_channels[] = { - [ADC_BOARD_ID] = {"BOARD_ID", 3300, 4096, 0, STM32_AIN(10)}, - [ADC_EC_SKU_ID] = {"EC_SKU_ID", 3300, 4096, 0, STM32_AIN(8)}, -}; -BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT); - -/******************************************************************************/ -/* I2C ports */ -const struct i2c_port_t i2c_ports[] = { - {"typec", 0, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA}, -#ifdef BOARD_JACUZZI - {"other", 1, 100, GPIO_I2C2_SCL, GPIO_I2C2_SDA}, -#else /* Juniper */ - {"other", 1, 400, GPIO_I2C2_SCL, GPIO_I2C2_SDA}, -#endif -}; -const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports); - -const struct i2c_port_t i2c_bitbang_ports[] = { - {"battery", 2, 100, GPIO_I2C3_SCL, GPIO_I2C3_SDA, .drv = &bitbang_drv}, -}; -const unsigned int i2c_bitbang_ports_used = ARRAY_SIZE(i2c_bitbang_ports); - -#define BC12_I2C_ADDR PI3USB9201_I2C_ADDR_3 - -/* power signal list. Must match order of enum power_signal. */ -const struct power_signal_info power_signal_list[] = { - {GPIO_AP_IN_SLEEP_L, POWER_SIGNAL_ACTIVE_LOW, "AP_IN_S3_L"}, - {GPIO_PMIC_EC_RESETB, POWER_SIGNAL_ACTIVE_HIGH, "PMIC_PWR_GOOD"}, -}; -BUILD_ASSERT(ARRAY_SIZE(power_signal_list) == POWER_SIGNAL_COUNT); - -/* Keyboard scan setting */ -__override struct keyboard_scan_config keyscan_config = { - /* - * TODO(b/133200075): Tune this once we have the final performance - * out of the driver and the i2c bus. - */ - .output_settle_us = 35, - .debounce_down_us = 5 * MSEC, - .debounce_up_us = 40 * MSEC, - .scan_period_us = 10 * MSEC, - .min_post_scan_delay_us = 10 * MSEC, - .poll_timeout_us = 100 * MSEC, - .actual_key_mask = { - 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, - 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */ - }, -}; - -struct ioexpander_config_t ioex_config[CONFIG_IO_EXPANDER_PORT_COUNT] = { - [0] = { - .i2c_host_port = IT8801_KEYBOARD_PWM_I2C_PORT, - .i2c_addr_flags = IT8801_I2C_ADDR1, - .drv = &it8801_ioexpander_drv, - }, -}; - -/******************************************************************************/ -/* SPI devices */ -const struct spi_device_t spi_devices[] = { - { CONFIG_SPI_ACCEL_PORT, 2, GPIO_EC_SENSOR_SPI_NSS }, -}; -const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices); - -const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = { - { - .i2c_port = I2C_PORT_BC12, - .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS, - }, -}; - -/******************************************************************************/ -const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = { - { - .bus_type = EC_BUS_TYPE_I2C, - .i2c_info = { - .port = I2C_PORT_TCPC0, - .addr_flags = FUSB302_I2C_ADDR_FLAGS, - }, - .drv = &fusb302_tcpm_drv, - }, -}; - -static void board_hpd_status(const struct usb_mux *me, - mux_state_t mux_state) -{ - /* - * svdm_dp_attention() did most of the work, we only need to notify - * host here. - */ - host_set_single_event(EC_HOST_EVENT_USB_MUX); -} - -const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = { - { - .usb_port = 0, - .i2c_port = I2C_PORT_USB_MUX, - .i2c_addr_flags = IT5205_I2C_ADDR1_FLAGS, - .driver = &it5205_usb_mux_driver, - .hpd_update = &board_hpd_status, - }, -}; - -/* Charger config. Start i2c address at 1, update during runtime */ -struct charger_config_t chg_chips[] = { - { - .i2c_port = 1, - .i2c_addr_flags = ISL923X_ADDR_FLAGS, - .drv = &isl923x_drv, - }, -}; - -/* Board version depends on ADCs, so init i2c port after ADC */ -static void charger_config_complete(void) -{ - chg_chips[0].i2c_port = board_get_charger_i2c(); -} -DECLARE_HOOK(HOOK_INIT, charger_config_complete, HOOK_PRIO_INIT_ADC + 1); - -uint16_t tcpc_get_alert_status(void) -{ - uint16_t status = 0; - - if (!gpio_get_level(GPIO_USB_C0_PD_INT_ODL)) - status |= PD_STATUS_TCPC_ALERT_0; - - return status; -} - -static int force_discharge; - -int board_set_active_charge_port(int charge_port) -{ - CPRINTS("New chg p%d", charge_port); - - /* ignore all request when discharge mode is on */ - if (force_discharge && charge_port != CHARGE_PORT_NONE) - return EC_SUCCESS; - - switch (charge_port) { - case CHARGE_PORT_USB_C: - /* Don't charge from a source port */ - if (board_vbus_source_enabled(charge_port)) - return -1; - break; - case CHARGE_PORT_NONE: - /* - * To ensure the fuel gauge (max17055) is always powered - * even when battery is disconnected, keep VBAT rail on but - * set the charging current to minimum. - */ - charger_set_current(CHARGER_SOLO, 0); - break; - default: - panic("Invalid charge port\n"); - break; - } - - return EC_SUCCESS; -} - -void board_set_charge_limit(int port, int supplier, int charge_ma, - int max_ma, int charge_mv) -{ - charge_ma = (charge_ma * 95) / 100; - charge_set_input_current_limit(MAX(charge_ma, - CONFIG_CHARGER_INPUT_CURRENT), charge_mv); -} - -int board_discharge_on_ac(int enable) -{ - int ret, port; - - if (enable) { - port = CHARGE_PORT_NONE; - } else { - /* restore the charge port state */ - port = charge_manager_get_override(); - if (port == OVERRIDE_OFF) - port = charge_manager_get_active_charge_port(); - } - - ret = charger_discharge_on_ac(enable); - if (ret) - return ret; - - force_discharge = enable; - return board_set_active_charge_port(port); -} - -int pd_snk_is_vbus_provided(int port) -{ - /* TODO(b:138352732): read IT8801 GPIO EN_USBC_CHARGE_L */ - return EC_ERROR_UNIMPLEMENTED; -} - -void bc12_interrupt(enum gpio_signal signal) -{ - task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12); -} - -#ifndef VARIANT_KUKUI_NO_SENSORS -static void board_spi_enable(void) -{ - /* - * Pin mux spi peripheral away from emmc, since RO might have - * left them there. - */ - gpio_config_module(MODULE_SPI_FLASH, 0); - - /* Enable clocks to SPI2 module. */ - STM32_RCC_APB1ENR |= STM32_RCC_PB1_SPI2; - - /* Reset SPI2 to clear state left over from the emmc slave. */ - STM32_RCC_APB1RSTR |= STM32_RCC_PB1_SPI2; - STM32_RCC_APB1RSTR &= ~STM32_RCC_PB1_SPI2; - - /* Reinitialize spi peripheral. */ - spi_enable(&spi_devices[0], 1); - - /* Pin mux spi peripheral toward the sensor. */ - gpio_config_module(MODULE_SPI_CONTROLLER, 1); -} -DECLARE_HOOK(HOOK_CHIPSET_STARTUP, - board_spi_enable, - MOTION_SENSE_HOOK_PRIO - 1); - -static void board_spi_disable(void) -{ - /* Set pins to a state calming the sensor down. */ - gpio_set_flags(GPIO_EC_SENSOR_SPI_CK, GPIO_OUT_LOW); - gpio_set_level(GPIO_EC_SENSOR_SPI_CK, 0); - gpio_config_module(MODULE_SPI_CONTROLLER, 0); - - /* Disable spi peripheral and clocks. */ - spi_enable(&spi_devices[0], 0); - STM32_RCC_APB1ENR &= ~STM32_RCC_PB1_SPI2; -} -DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, - board_spi_disable, - MOTION_SENSE_HOOK_PRIO + 1); -#endif /* !VARIANT_KUKUI_NO_SENSORS */ - -static void board_init(void) -{ - int board_version; - - /* If the reset cause is external, pulse PMIC force reset. */ - if (system_get_reset_flags() == EC_RESET_FLAG_RESET_PIN) { - gpio_set_level(GPIO_PMIC_FORCE_RESET_ODL, 0); - msleep(100); - gpio_set_level(GPIO_PMIC_FORCE_RESET_ODL, 1); - } - - /* Enable TCPC alert interrupts */ - gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL); - -#ifndef VARIANT_KUKUI_NO_SENSORS - /* Enable interrupts from BMI160 sensor. */ - gpio_enable_interrupt(GPIO_ACCEL_INT_ODL); - - /* For some reason we have to do this again in case of sysjump */ - board_spi_enable(); -#endif /* !VARIANT_KUKUI_NO_SENSORS */ - - /* Enable interrupt from PMIC. */ - gpio_enable_interrupt(GPIO_PMIC_EC_RESETB); - - /* Enable BC12 interrupt */ - gpio_enable_interrupt(GPIO_BC12_EC_INT_ODL); - - board_version = board_get_version(); - if (board_version == 8 || board_version == 9) { - /* Disable motion sense. */ -#ifndef VARIANT_KUKUI_NO_SENSORS - motion_sensor_count = 0; - gpio_disable_interrupt(GPIO_ACCEL_INT_ODL); - gpio_set_flags(GPIO_ACCEL_INT_ODL, - GPIO_INPUT | GPIO_PULL_DOWN); -#endif /* !VARIANT_KUKUI_NO_SENSORS */ - /* Disable tablet mode. */ - tablet_set_mode(0, TABLET_TRIGGER_LID); - gmr_tablet_switch_disable(); - gpio_set_flags(GPIO_TABLET_MODE_L, - GPIO_INPUT | GPIO_PULL_UP); - } -} -DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT); - -#ifndef VARIANT_KUKUI_NO_SENSORS -/* Motion sensors */ -/* Mutexes */ -static struct mutex g_lid_mutex; -static struct mutex g_base_mutex; - -/* Rotation matrixes */ -static const mat33_fp_t base_bmi160_ref = { - {FLOAT_TO_FP(1), 0, 0}, - {0, FLOAT_TO_FP(1), 0}, - {0, 0, FLOAT_TO_FP(1)} -}; - -static const mat33_fp_t base_icm426xx_ref = { - {0, FLOAT_TO_FP(-1), 0}, - {FLOAT_TO_FP(1), 0, 0}, - {0, 0, FLOAT_TO_FP(1)} -}; - -/* sensor private data */ -static struct kionix_accel_data g_kx022_data; -static struct bmi_drv_data_t g_bmi160_data; -static struct icm_drv_data_t g_icm426xx_data; - -enum base_accelgyro_type { - BASE_GYRO_NONE = 0, - BASE_GYRO_BMI160 = 1, - BASE_GYRO_ICM426XX = 2, -}; - -struct motion_sensor_t motion_sensors[] = { - [LID_ACCEL] = { - .name = "Lid Accel", - .active_mask = SENSOR_ACTIVE_S0_S3, - .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, - .port = I2C_PORT_SENSORS, - .i2c_spi_addr_flags = KX022_ADDR1_FLAGS, - .rot_standard_ref = NULL, /* Identity matrix. */ - .default_range = 2, /* g, enough to calculate lid angle. */ - .config = { - /* EC use accel for angle detection */ - [SENSOR_CONFIG_EC_S0] = { - .odr = 10000 | ROUND_UP_FLAG, - }, - /* Sensor on for lid angle detection */ - [SENSOR_CONFIG_EC_S3] = { - .odr = 10000 | ROUND_UP_FLAG, - }, - }, - }, - /* - * Note: bmi160: supports accelerometer and gyro sensor - * Requirement: accelerometer sensor must init before gyro sensor - * DO NOT change the order of the following table. - */ - [BASE_ACCEL] = { - .name = "Accel", - .active_mask = SENSOR_ACTIVE_S0_S3, - .chip = MOTIONSENSE_CHIP_BMI160, - .type = MOTIONSENSE_TYPE_ACCEL, - .location = MOTIONSENSE_LOC_BASE, - .drv = &bmi160_drv, - .mutex = &g_base_mutex, - .drv_data = &g_bmi160_data, - .port = CONFIG_SPI_ACCEL_PORT, - .i2c_spi_addr_flags = ACCEL_MK_SPI_ADDR_FLAGS(CONFIG_SPI_ACCEL_PORT), - .rot_standard_ref = &base_bmi160_ref, - .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs.*/ - .min_frequency = BMI_ACCEL_MIN_FREQ, - .max_frequency = BMI_ACCEL_MAX_FREQ, - .config = { - /* EC use accel for angle detection */ - [SENSOR_CONFIG_EC_S0] = { - .odr = 10000 | ROUND_UP_FLAG, - .ec_rate = 100 * MSEC, - }, - /* Sensor on for angle detection */ - [SENSOR_CONFIG_EC_S3] = { - .odr = 10000 | ROUND_UP_FLAG, - .ec_rate = 100 * MSEC, - }, - }, - }, - [BASE_GYRO] = { - .name = "Gyro", - .active_mask = SENSOR_ACTIVE_S0_S3, - .chip = MOTIONSENSE_CHIP_BMI160, - .type = MOTIONSENSE_TYPE_GYRO, - .location = MOTIONSENSE_LOC_BASE, - .drv = &bmi160_drv, - .mutex = &g_base_mutex, - .drv_data = &g_bmi160_data, - .port = CONFIG_SPI_ACCEL_PORT, - .i2c_spi_addr_flags = ACCEL_MK_SPI_ADDR_FLAGS(CONFIG_SPI_ACCEL_PORT), - .default_range = 1000, /* dps */ - .rot_standard_ref = &base_bmi160_ref, - .min_frequency = BMI_GYRO_MIN_FREQ, - .max_frequency = BMI_GYRO_MAX_FREQ, - }, -}; -unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors); - -struct motion_sensor_t icm426xx_base_accel = { - .name = "Base Accel", - .active_mask = SENSOR_ACTIVE_S0_S3, - .chip = MOTIONSENSE_CHIP_ICM426XX, - .type = MOTIONSENSE_TYPE_ACCEL, - .location = MOTIONSENSE_LOC_BASE, - .drv = &icm426xx_drv, - .mutex = &g_base_mutex, - .drv_data = &g_icm426xx_data, - .port = CONFIG_SPI_ACCEL_PORT, - .i2c_spi_addr_flags = ACCEL_MK_SPI_ADDR_FLAGS(CONFIG_SPI_ACCEL_PORT), - .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs.*/ - .rot_standard_ref = &base_icm426xx_ref, - .min_frequency = ICM426XX_ACCEL_MIN_FREQ, - .max_frequency = ICM426XX_ACCEL_MAX_FREQ, - .config = { - /* EC use accel for angle detection */ - [SENSOR_CONFIG_EC_S0] = { - .odr = 10000 | ROUND_UP_FLAG, - }, - /* EC use accel for angle detection */ - [SENSOR_CONFIG_EC_S3] = { - .odr = 10000 | ROUND_UP_FLAG, - }, - }, -}; - -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 = CONFIG_SPI_ACCEL_PORT, - .i2c_spi_addr_flags = ACCEL_MK_SPI_ADDR_FLAGS(CONFIG_SPI_ACCEL_PORT), - .default_range = 1000, /* dps */ - .rot_standard_ref = &base_icm426xx_ref, - .min_frequency = ICM426XX_GYRO_MIN_FREQ, - .max_frequency = ICM426XX_GYRO_MAX_FREQ, -}; - -static int base_accelgyro_config; - -void motion_interrupt(enum gpio_signal signal) -{ - switch (base_accelgyro_config) { - case BASE_GYRO_ICM426XX: - icm426xx_interrupt(signal); - break; - case BASE_GYRO_BMI160: - default: - bmi160_interrupt(signal); - break; - } -} - -static void board_detect_motionsensor(void) -{ - int val; - /* Check base accelgyro chip */ - if (base_accelgyro_config != BASE_GYRO_NONE) - return; - - icm_read8(&icm426xx_base_accel, ICM426XX_REG_WHO_AM_I, &val); - if (val == ICM426XX_CHIP_ICM40608) { - motion_sensors[BASE_ACCEL] = icm426xx_base_accel; - motion_sensors[BASE_GYRO] = icm426xx_base_gyro; - } - base_accelgyro_config = (val == ICM426XX_CHIP_ICM40608) - ? BASE_GYRO_ICM426XX : BASE_GYRO_BMI160; - CPRINTS("Base Accelgyro: %s", (val == ICM426XX_CHIP_ICM40608) - ? "ICM40608" : "BMI160"); -} -DECLARE_HOOK(HOOK_INIT, board_detect_motionsensor, HOOK_PRIO_DEFAULT); - -int board_sensor_at_360(void) -{ - int board_version; - - board_version = board_get_version(); - if (board_version == 8 || board_version == 9) - return 0; - else - return !gpio_get_level(GMR_TABLET_MODE_GPIO_L); -} -#endif /* !VARIANT_KUKUI_NO_SENSORS */ - -/* Called on AP S5 -> S3 transition */ -static void board_chipset_startup(void) -{ - gpio_set_level(GPIO_EN_USBA_5V, 1); -} -DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_chipset_startup, HOOK_PRIO_DEFAULT); - -/* Called on AP S3 -> S5 transition */ -static void board_chipset_shutdown(void) -{ - gpio_set_level(GPIO_EN_USBA_5V, 0); -} -DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_chipset_shutdown, HOOK_PRIO_DEFAULT); - -int board_get_charger_i2c(void) -{ - /* TODO(b:138415463): confirm the bus allocation for future builds */ - return board_get_version() == 1 ? 2 : 1; -} - -int board_get_battery_i2c(void) -{ - return board_get_version() >= 1 ? 2 : 1; -} diff --git a/board/jacuzzi/board.h b/board/jacuzzi/board.h deleted file mode 100644 index ef8a02a3dc..0000000000 --- a/board/jacuzzi/board.h +++ /dev/null @@ -1,172 +0,0 @@ -/* Copyright 2018 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. - */ - -/* Configuration for Kukui */ - -#ifndef __CROS_EC_BOARD_H -#define __CROS_EC_BOARD_H - -#define VARIANT_KUKUI_JACUZZI -#define VARIANT_KUKUI_BATTERY_SMART -#define VARIANT_KUKUI_CHARGER_ISL9238 -#define VARIANT_KUKUI_EC_STM32F098 -#undef CONFIG_CMD_MFALLOW - -/* Free up flash space */ -#define CONFIG_DEBUG_ASSERT_BRIEF -#define CONFIG_USB_PD_DEBUG_LEVEL 2 - -#ifndef SECTION_IS_RW -#define VARIANT_KUKUI_NO_SENSORS -#endif /* SECTION_IS_RW */ - -#include "baseboard.h" - -#ifdef BOARD_JUNIPER -#undef CONFIG_CHIPSET_POWER_SEQ_VERSION -#define CONFIG_CHIPSET_POWER_SEQ_VERSION 1 - -#undef CONFIG_SYSTEM_UNLOCKED -#endif - -#define CONFIG_BATTERY_HW_PRESENT_CUSTOM - -#define CONFIG_CHARGER_PSYS - -#define CONFIG_CHARGER_RUNTIME_CONFIG - -#define CONFIG_BC12_DETECT_PI3USB9201 - -#define CONFIG_EXTPOWER_GPIO -#undef CONFIG_EXTPOWER_DEBOUNCE_MS -#define CONFIG_EXTPOWER_DEBOUNCE_MS 200 - -#define CONFIG_I2C_BITBANG -#define I2C_BITBANG_PORT_COUNT 1 -#undef CONFIG_I2C_NACK_RETRY_COUNT -#define CONFIG_I2C_NACK_RETRY_COUNT 10 -#define CONFIG_SMBUS_PEC - -#define CONFIG_USB_PD_TCPM_FUSB302 -#define CONFIG_USB_PD_DISCHARGE_GPIO -#define CONFIG_USB_PD_TCPC_LOW_POWER - -#define CONFIG_USB_MUX_IT5205 - -/* Motion Sensors */ -#ifndef VARIANT_KUKUI_NO_SENSORS -#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT -#define CONFIG_ACCEL_KX022 /* Lid accel */ -#define CONFIG_ACCELGYRO_BMI160 /* Base accel */ -#define CONFIG_ACCEL_INTERRUPTS -#define CONFIG_ACCELGYRO_BMI160_INT_EVENT \ - TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL) - -/* ICM426XX Base accel/gyro */ -#define CONFIG_ACCELGYRO_ICM426XX -#define CONFIG_ACCELGYRO_ICM426XX_INT_EVENT \ - TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL) - -#define CONFIG_ALS -#define CONFIG_CMD_ACCEL_INFO - - -#define CONFIG_LID_ANGLE -#define CONFIG_LID_ANGLE_UPDATE -#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL -#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL - -#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL) - -#define CONFIG_GMR_TABLET_MODE_CUSTOM - -#endif /* VARIANT_KUKUI_NO_SENSORS */ - -/* I2C ports */ -#define I2C_PORT_BC12 0 -#define I2C_PORT_TCPC0 0 -#define I2C_PORT_USB_MUX 0 -#define I2C_PORT_CHARGER board_get_charger_i2c() -#define I2C_PORT_SENSORS 1 -#define IT8801_KEYBOARD_PWM_I2C_PORT 1 -#define I2C_PORT_VIRTUAL_BATTERY I2C_PORT_BATTERY -#ifdef BOARD_JACUZZI -#define I2C_PORT_BATTERY 1 -#else /* Juniper */ -#define I2C_PORT_BATTERY 2 -#endif - -/* IT8801 I2C address */ -#define IT8801_KEYBOARD_PWM_I2C_ADDR_FLAGS IT8801_I2C_ADDR1 - -/* Enable Accel over SPI */ -#define CONFIG_SPI_ACCEL_PORT 0 /* The first SPI master port (SPI2) */ - -#define CONFIG_KEYBOARD_PROTOCOL_MKBP -#define CONFIG_MKBP_EVENT -#define CONFIG_MKBP_USE_GPIO - -#define CONFIG_LED_ONOFF_STATES - -#ifndef __ASSEMBLER__ - -enum adc_channel { - /* Real ADC channels begin here */ - ADC_BOARD_ID = 0, - ADC_EC_SKU_ID, - ADC_CH_COUNT -}; - -/* power signal definitions */ -enum power_signal { - AP_IN_S3_L, - PMIC_PWR_GOOD, - - /* Number of signals */ - POWER_SIGNAL_COUNT, -}; - -/* Motion sensors */ -enum sensor_id { - LID_ACCEL = 0, - BASE_ACCEL, - BASE_GYRO, - SENSOR_COUNT, -}; - -enum charge_port { - CHARGE_PORT_USB_C, -}; - -enum battery_type { - BATTERY_PANASONIC_AC15A3J, - BATTERY_PANASONIC_AC16L5J, - BATTERY_LGC_AC16L8J, - BATTERY_PANASONIC_AC16L5J_KT00205009, - BATTERY_TYPE_COUNT, -}; - -#include "gpio_signal.h" -#include "registers.h" - -#ifdef SECTION_IS_RO -/* Interrupt handler for emmc task */ -void emmc_cmd_interrupt(enum gpio_signal signal); -#endif - -void bc12_interrupt(enum gpio_signal signal); -void board_reset_pd_mcu(void); -int board_get_version(void); - -/* returns the i2c port number of charger/battery */ -int board_get_charger_i2c(void); -int board_get_battery_i2c(void); - -/* Motion sensor interrupt */ -void motion_interrupt(enum gpio_signal signal); - -#endif /* !__ASSEMBLER__ */ - -#endif /* __CROS_EC_BOARD_H */ diff --git a/board/jacuzzi/build.mk b/board/jacuzzi/build.mk deleted file mode 100644 index e449fce9fc..0000000000 --- a/board/jacuzzi/build.mk +++ /dev/null @@ -1,15 +0,0 @@ -# -*- makefile -*- -# Copyright 2018 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. -# -# Board specific files build -# -# -# STmicro STM32F098VC -CHIP:=stm32 -CHIP_FAMILY:=stm32f0 -CHIP_VARIANT:=stm32f09x -BASEBOARD:=kukui - -board-y=battery.o board.o led.o diff --git a/board/jacuzzi/ec.tasklist b/board/jacuzzi/ec.tasklist deleted file mode 100644 index b695d05a71..0000000000 --- a/board/jacuzzi/ec.tasklist +++ /dev/null @@ -1,20 +0,0 @@ -/* Copyright 2018 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. - */ - -/** - * See CONFIG_TASK_LIST in config.h for details. - */ -#define CONFIG_TASK_LIST \ - TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \ - TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \ - TASK_ALWAYS(USB_CHG_P0, usb_charger_task, NULL, VENTI_TASK_STACK_SIZE) \ - TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \ - TASK_ALWAYS_RW(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \ - TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 1024) \ - TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \ - TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, LARGER_TASK_STACK_SIZE) \ - TASK_ALWAYS(PD_C0, pd_task, NULL, 1280) \ - TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, 1024) \ - TASK_ALWAYS_RO(EMMC, emmc_task, NULL, LARGER_TASK_STACK_SIZE) diff --git a/board/jacuzzi/gpio.inc b/board/jacuzzi/gpio.inc deleted file mode 100644 index 60288e7195..0000000000 --- a/board/jacuzzi/gpio.inc +++ /dev/null @@ -1,126 +0,0 @@ -/* -*- mode:c -*- - * - * Copyright 2018 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. - */ - -/* - * Declare symbolic names for all the GPIOs that we care about. - * Note: Those with interrupt handlers must be declared first. - */ - -/* Interrupts */ -GPIO_INT(USB_C0_PD_INT_ODL, PIN(B, 1), GPIO_INT_FALLING | GPIO_PULL_UP, - tcpc_alert_event) -GPIO_INT(POWER_BUTTON_L, PIN(A, 0), GPIO_INT_BOTH | GPIO_PULL_UP, - power_button_interrupt) /* EC_PWR_BTN_ODL */ -GPIO_INT(AP_IN_SLEEP_L, PIN(C, 12), GPIO_INT_BOTH | GPIO_PULL_DOWN, - power_signal_interrupt) -GPIO_INT(PMIC_EC_RESETB, PIN(B, 7), GPIO_INT_BOTH | GPIO_PULL_DOWN, - power_signal_interrupt) -GPIO_INT(WARM_RESET_REQ, PIN(A, 3), GPIO_INT_RISING | GPIO_PULL_DOWN, - chipset_reset_request_interrupt) -GPIO_INT_RW(ACCEL_INT_ODL, PIN(A, 4), GPIO_INT_FALLING | GPIO_SEL_1P8V | GPIO_PULL_UP, - motion_interrupt) -GPIO_INT_RO(EMMC_CMD, PIN(B, 15), GPIO_INT_FALLING, - emmc_cmd_interrupt) -GPIO_INT(SPI1_NSS, PIN(A, 15), GPIO_INT_BOTH | GPIO_PULL_UP, - spi_event) /* SPI_AP_EC_CS_L */ -GPIO_INT(LID_OPEN, PIN(C, 5), GPIO_INT_BOTH, - lid_interrupt) -GPIO_INT(AC_PRESENT, PIN(A, 6), GPIO_INT_BOTH, - extpower_interrupt) /* ACOK_OD */ -GPIO_INT(BC12_EC_INT_ODL, PIN(C, 9), GPIO_INT_FALLING, - bc12_interrupt) -GPIO_INT(IT8801_SMB_INT, PIN(A, 8), GPIO_INT_FALLING | GPIO_PULL_UP, - io_expander_it8801_interrupt) /* KB_INT_ODL */ -GPIO_INT(AP_EC_WATCHDOG_L, PIN(D, 2), GPIO_INT_FALLING, - chipset_watchdog_interrupt) -GPIO_INT(TABLET_MODE_L, PIN(B, 11), GPIO_INT_BOTH, - gmr_tablet_switch_isr) - -/* Unimplemented interrupts */ -GPIO(ALS_RGB_INT_ODL, PIN(C, 10), GPIO_INPUT) - -/* Reset pins */ -GPIO(AP_SYS_RST_L, PIN(C, 11), GPIO_OUT_LOW) -GPIO(PMIC_WATCHDOG_L, PIN(A, 2), GPIO_OUT_LOW) -GPIO(PMIC_EN_ODL, PIN(F, 0), GPIO_ODR_HIGH) - -/* - * I2C pins should be configured as inputs until I2C module is - * initialized. This will avoid driving the lines unintentionally. - */ -GPIO(I2C1_SCL, PIN(B, 8), GPIO_INPUT) -GPIO(I2C1_SDA, PIN(B, 9), GPIO_INPUT) -GPIO(I2C2_SCL, PIN(A, 11), GPIO_INPUT) -GPIO(I2C2_SDA, PIN(A, 12), GPIO_INPUT) -GPIO(I2C3_SCL, PIN(A, 5), GPIO_ODR_HIGH) -GPIO(I2C3_SDA, PIN(C, 4), GPIO_ODR_HIGH) - -/* Analog pins */ -GPIO(BOARD_ID, PIN(C, 0), GPIO_ANALOG) -GPIO(EC_SKU_ID, PIN(B, 0), GPIO_ANALOG) - -/* Other input pins */ -GPIO(WP_L, PIN(C, 8), GPIO_INPUT) /* EC_FLASH_WP_ODL */ -GPIO(BOOT0, PIN(F, 11), GPIO_INPUT) -GPIO(CCD_MODE_ODL, PIN(A, 1), GPIO_INPUT) - -/* Other output pins */ -GPIO(EC_BATT_PRES_ODL, PIN(A, 7), GPIO_INPUT) -GPIO(EC_BL_EN_OD, PIN(A, 13), GPIO_ODR_HIGH) -GPIO(EN_USBA_5V, PIN(C, 14), GPIO_OUT_LOW) -GPIO(EC_SENSOR_SPI_MISO, PIN(C, 2), GPIO_INPUT) -GPIO(EC_SENSOR_SPI_MOSI, PIN(C, 3), GPIO_OUT_LOW) -GPIO(EC_SENSOR_SPI_NSS, PIN(B, 12), GPIO_OUT_HIGH) -GPIO(EC_SENSOR_SPI_CK, PIN(B, 10), GPIO_OUT_LOW) -GPIO(ENTERING_RW, PIN(C, 6), GPIO_ODR_HIGH) /* EC_ENTERING_RW_ODL */ -GPIO(EC_INT_L, PIN(C, 7), GPIO_ODR_HIGH) /* EC_AP_INT_ODL */ -GPIO(EC_BOARD_ID_EN_L, PIN(C, 15), GPIO_ODR_HIGH) /* EC_BOARD_ID_EN_ODL */ -GPIO(USB_C0_HPD_OD, PIN(F, 1), GPIO_ODR_LOW) -GPIO(BOOTBLOCK_EN_L, PIN(C, 1), GPIO_ODR_HIGH) -GPIO(USB_C0_DISCHARGE, PIN(B, 6), GPIO_OUT_LOW) - -IOEX(LED_BLUE, EXPIN(0, 1, 4), GPIO_OUT_HIGH) /* LED BLUE */ -IOEX(LED_GREEN, EXPIN(0, 1, 3), GPIO_OUT_HIGH) /* LED GREEN */ -IOEX(LED_ORANGE, EXPIN(0, 1, 2), GPIO_OUT_HIGH) /* LED ORANGE */ - -#ifdef BOARD_JACUZZI -GPIO(LID_ACCEL_INT_ODL, PIN(A, 14), GPIO_INPUT) -/* Jacuzzi doesn't have EN_PP1800_S5_L. */ -UNIMPLEMENTED(EN_PP1800_S5_L) -#else -GPIO(EN_PP1800_S5_L, PIN(A, 14), GPIO_OUT_LOW) -#endif -/* - * TODO(b:138352732): On IT88801 expander, To be readded once IT8801 driver and - * gpio expander framework has landed. - */ -UNIMPLEMENTED(EN_PP5000_USBC) -UNIMPLEMENTED(PMIC_FORCE_RESET_ODL) -UNIMPLEMENTED(EN_USBC_CHARGE_L) - -/* USART1: PA9/PA10 */ -ALTERNATE(PIN_MASK(A, 0x0600), 1, MODULE_UART, 0) -/* I2C MASTER: PB8/9 */ -ALTERNATE(PIN_MASK(B, 0x0300), 1, MODULE_I2C, GPIO_ODR_HIGH ) -/* I2C MASTER: PA11/12 */ -ALTERNATE(PIN_MASK(A, 0x1800), 5, MODULE_I2C, GPIO_ODR_HIGH ) - - -/* SPI1 */ -/* SPI SLAVE: PB3/4/5 */ -ALTERNATE(PIN_MASK(B, 0x0038), 0, MODULE_SPI, 0) -/* SPI SLAVE CS: PA15 */ -ALTERNATE(PIN_MASK(A, 0x8000), 0, MODULE_SPI, 0) - -/* SPI2 */ -/* Shared between slave for emmc and master for bmi160 */ -/* They're mutually exclusive with gpio_config_module. */ -/* EMMC SPI SLAVE: PB13/14/15 */ -ALTERNATE(PIN_MASK(B, 0xE000), 0, MODULE_SPI_FLASH, 0) -/* SENSORS SPI MASTER: PB10, PB12, PC2, PC3 */ -ALTERNATE(PIN_MASK(B, 0x0400), 5, MODULE_SPI_CONTROLLER, 0) -ALTERNATE(PIN_MASK(C, 0x000C), 1, MODULE_SPI_CONTROLLER, 0) diff --git a/board/jacuzzi/led.c b/board/jacuzzi/led.c deleted file mode 100644 index e76b73bc9a..0000000000 --- a/board/jacuzzi/led.c +++ /dev/null @@ -1,81 +0,0 @@ -/* Copyright 2019 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. - * - * Power and battery LED control for Jacuzzi - */ -#include "common.h" -#include "ioexpander.h" -#include "driver/ioexpander/it8801.h" -#include "ec_commands.h" -#include "led_common.h" -#include "led_onoff_states.h" -#define LED_ON_LVL 0 -#define LED_OFF_LVL 1 -__override const int led_charge_lvl_1 = 5; -__override const int led_charge_lvl_2 = 95; -__override struct led_descriptor - led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = { - [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} }, - [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} }, - [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} }, - [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} }, - [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC}, - {LED_OFF, 3 * LED_ONE_SEC} }, - [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} }, - [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC}, - {LED_OFF, 1 * LED_ONE_SEC} }, - [STATE_FACTORY_TEST] = {{EC_LED_COLOR_BLUE, 2 * LED_ONE_SEC}, - {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} }, -}; -const enum ec_led_id supported_led_ids[] = { - EC_LED_ID_BATTERY_LED -}; -const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids); -__override void led_set_color_battery(enum ec_led_colors color) -{ - switch (color) { - case EC_LED_COLOR_AMBER: - ioex_set_level(IOEX_LED_ORANGE, LED_ON_LVL); - ioex_set_level(IOEX_LED_BLUE, LED_OFF_LVL); - ioex_set_level(IOEX_LED_GREEN, LED_OFF_LVL); - break; - case EC_LED_COLOR_BLUE: - ioex_set_level(IOEX_LED_BLUE, LED_ON_LVL); - ioex_set_level(IOEX_LED_ORANGE, LED_OFF_LVL); - ioex_set_level(IOEX_LED_GREEN, LED_OFF_LVL); - break; - case EC_LED_COLOR_GREEN: - ioex_set_level(IOEX_LED_GREEN, LED_ON_LVL); - ioex_set_level(IOEX_LED_BLUE, LED_OFF_LVL); - ioex_set_level(IOEX_LED_ORANGE, LED_OFF_LVL); - break; - default: /* LED_OFF and other unsupported colors */ - ioex_set_level(IOEX_LED_GREEN, LED_OFF_LVL); - ioex_set_level(IOEX_LED_BLUE, LED_OFF_LVL); - ioex_set_level(IOEX_LED_ORANGE, LED_OFF_LVL); - break; - } -} -void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range) -{ - if (led_id == EC_LED_ID_BATTERY_LED) { - brightness_range[EC_LED_COLOR_AMBER] = 1; - brightness_range[EC_LED_COLOR_BLUE] = 1; - brightness_range[EC_LED_COLOR_GREEN] = 1; - } -} -int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness) -{ - if (led_id == EC_LED_ID_BATTERY_LED) { - if (brightness[EC_LED_COLOR_AMBER] != 0) - led_set_color_battery(EC_LED_COLOR_AMBER); - else if (brightness[EC_LED_COLOR_BLUE] != 0) - led_set_color_battery(EC_LED_COLOR_BLUE); - else if (brightness[EC_LED_COLOR_GREEN] != 0) - led_set_color_battery(EC_LED_COLOR_GREEN); - else - led_set_color_battery(LED_OFF); - } - return EC_SUCCESS; -} diff --git a/board/jacuzzi/vif_override.xml b/board/jacuzzi/vif_override.xml deleted file mode 100644 index 32736caf64..0000000000 --- a/board/jacuzzi/vif_override.xml +++ /dev/null @@ -1,3 +0,0 @@ -<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File - Definition from the USB-IF. ---> |