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/stern | |
parent | 08f5a1e6fc2c9467230444ac9b582dcf4d9f0068 (diff) | |
download | chrome-ec-stabilize-14333.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/stern')
-rw-r--r-- | board/stern/battery.c | 46 | ||||
-rw-r--r-- | board/stern/board.c | 455 | ||||
-rw-r--r-- | board/stern/board.h | 146 | ||||
-rw-r--r-- | board/stern/build.mk | 15 | ||||
-rw-r--r-- | board/stern/ec.tasklist | 20 | ||||
-rw-r--r-- | board/stern/gpio.inc | 115 | ||||
-rw-r--r-- | board/stern/led.c | 107 | ||||
-rw-r--r-- | board/stern/vif_override.xml | 3 |
8 files changed, 0 insertions, 907 deletions
diff --git a/board/stern/battery.c b/board/stern/battery.c deleted file mode 100644 index 50d2bf397c..0000000000 --- a/board/stern/battery.c +++ /dev/null @@ -1,46 +0,0 @@ -/* Copyright 2020 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_C235] = { - .fuel_gauge = { - .manuf_name = "AS3GWRc3KA", - .device_name = "C235-41", - .ship_mode = { - .reg_addr = 0x00, - .reg_data = { 0x10, 0x10 }, - }, - .fet = { - .reg_addr = 0x99, - .reg_mask = 0x0c, - .disconnect_val = 0x0c, - } - }, - .batt_info = { - .voltage_max = 8800, - .voltage_normal = 7700, - .voltage_min = 6000, - .precharge_current = 256, - .start_charging_min_c = 0, - .start_charging_max_c = 45, - .charging_min_c = 0, - .charging_max_c = 60, - .discharging_min_c = 0, - .discharging_max_c = 60, - }, - }, -}; -BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT); - -const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_C235; - -enum battery_present battery_hw_present(void) -{ - return gpio_get_level(GPIO_EC_BATT_PRES_ODL) ? BP_NO : BP_YES; -} diff --git a/board/stern/board.c b/board/stern/board.c deleted file mode 100644 index 609dfdf7e5..0000000000 --- a/board/stern/board.c +++ /dev/null @@ -1,455 +0,0 @@ -/* Copyright 2020 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_lis2dw12.h" -#include "driver/accelgyro_bmi_common.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 "pwm.h" -#include "pwm_chip.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}, - {"other", 1, 100, GPIO_I2C2_SCL, GPIO_I2C2_SDA}, -}; -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) - 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 = board_set_active_charge_port(port); - if (ret) - return ret; - force_discharge = enable; - - return charger_discharge_on_ac(enable); -} - -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) -{ - /* 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); -} -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_standard_ref = { - {FLOAT_TO_FP(1), 0, 0}, - {0, FLOAT_TO_FP(-1), 0}, - {0, 0, FLOAT_TO_FP(-1)} -}; - -static const mat33_fp_t lid_standard_ref = { - {FLOAT_TO_FP(1), 0, 0}, - {0, FLOAT_TO_FP(1), 0}, - {0, 0, FLOAT_TO_FP(1) } -}; - -/* sensor private data */ -/* Lid accel private data */ -static struct stprivate_data g_lis2dwl_data; -/* Base accel private data */ -static struct bmi_drv_data_t g_bmi160_data; - -struct motion_sensor_t motion_sensors[] = { - [LID_ACCEL] = { - .name = "Lid Accel", - .active_mask = SENSOR_ACTIVE_S0_S3, - .chip = MOTIONSENSE_CHIP_LIS2DWL, - .type = MOTIONSENSE_TYPE_ACCEL, - .location = MOTIONSENSE_LOC_LID, - .drv = &lis2dw12_drv, - .mutex = &g_lid_mutex, - .drv_data = &g_lis2dwl_data, - .port = I2C_PORT_SENSORS, - .i2c_spi_addr_flags = LIS2DWL_ADDR1_FLAGS, - .rot_standard_ref = &lid_standard_ref, - .default_range = 2, /* g */ - .min_frequency = LIS2DW12_ODR_MIN_VAL, - .max_frequency = LIS2DW12_ODR_MAX_VAL, - .config = { - /* EC use accel for angle detection */ - [SENSOR_CONFIG_EC_S0] = { - .odr = 12500 | 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_standard_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_standard_ref, - .min_frequency = BMI_GYRO_MIN_FREQ, - .max_frequency = BMI_GYRO_MAX_FREQ, - }, -}; -const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors); - -#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; -} diff --git a/board/stern/board.h b/board/stern/board.h deleted file mode 100644 index 5bf23a6733..0000000000 --- a/board/stern/board.h +++ /dev/null @@ -1,146 +0,0 @@ -/* Copyright 2020 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 - -#ifndef SECTION_IS_RW -#define VARIANT_KUKUI_NO_SENSORS -#endif /* SECTION_IS_RW */ - -#include "baseboard.h" - -#undef CONFIG_CHIPSET_POWER_SEQ_VERSION -#define CONFIG_CHIPSET_POWER_SEQ_VERSION 1 - -/* TODO(b:135086465) led implementation */ -#undef CONFIG_LED_COMMON - -#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 -#undef I2C_BITBANG_PORT_COUNT -#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 - -#define CONFIG_LED_ONOFF_STATES -#define CONFIG_LED_COMMON - -/* Motion Sensors */ -#ifndef VARIANT_KUKUI_NO_SENSORS -#define CONFIG_ACCEL_LIS2DWL /* 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) -#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) - -#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_BATTERY 2 -#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 - -/* 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 - -#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_C235, - 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 */ -int board_get_charger_i2c(void); - -#endif /* !__ASSEMBLER__ */ - -#endif /* __CROS_EC_BOARD_H */ diff --git a/board/stern/build.mk b/board/stern/build.mk deleted file mode 100644 index a6e1c010d7..0000000000 --- a/board/stern/build.mk +++ /dev/null @@ -1,15 +0,0 @@ -# -*- makefile -*- -# Copyright 2020 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/stern/ec.tasklist b/board/stern/ec.tasklist deleted file mode 100644 index 36be2e96a4..0000000000 --- a/board/stern/ec.tasklist +++ /dev/null @@ -1,20 +0,0 @@ -/* Copyright 2020 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, 1024) \ - 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, LARGER_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/stern/gpio.inc b/board/stern/gpio.inc deleted file mode 100644 index 3a162d6124..0000000000 --- a/board/stern/gpio.inc +++ /dev/null @@ -1,115 +0,0 @@ -/* -*- mode:c -*- - * - * Copyright 2020 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, - bmi160_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(EN_PP1800_S5_L, PIN(A, 14), GPIO_OUT_LOW) -GPIO(USB_C0_DISCHARGE, PIN(B, 6), GPIO_OUT_LOW) - -IOEX(PWR_LED_WHITE_L, EXPIN(0, 1, 4), GPIO_OUT_HIGH) -IOEX(BAT_LED_WHITE_L, EXPIN(0, 1, 3), GPIO_OUT_HIGH) -IOEX(BAT_LED_AMBER_L, EXPIN(0, 1, 2), GPIO_OUT_HIGH) -/* - * 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 ) -/* 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) - -/* 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/stern/led.c b/board/stern/led.c deleted file mode 100644 index ac4813c8c0..0000000000 --- a/board/stern/led.c +++ /dev/null @@ -1,107 +0,0 @@ -/* Copyright 2020 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 Damu - */ -#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_WHITE, LED_INDEFINITE} }, - [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} }, - [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} }, - [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_WHITE, 2 * LED_ONE_SEC}, - {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} }, -}; - -__override const struct led_descriptor - led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = { - [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} }, - [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC}, - {LED_OFF, 3 * LED_ONE_SEC} }, - [PWR_LED_STATE_SUSPEND_NO_AC] = {{LED_OFF, LED_INDEFINITE} }, - [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} }, -}; - -const enum ec_led_id supported_led_ids[] = { - EC_LED_ID_POWER_LED, - 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_WHITE: - ioex_set_level(IOEX_BAT_LED_WHITE_L, LED_ON_LVL); - ioex_set_level(IOEX_BAT_LED_AMBER_L, LED_OFF_LVL); - break; - case EC_LED_COLOR_AMBER: - ioex_set_level(IOEX_BAT_LED_WHITE_L, LED_OFF_LVL); - ioex_set_level(IOEX_BAT_LED_AMBER_L, LED_ON_LVL); - break; - default: /* LED_OFF and other unsupported colors */ - ioex_set_level(IOEX_BAT_LED_WHITE_L, LED_OFF_LVL); - ioex_set_level(IOEX_BAT_LED_AMBER_L, LED_OFF_LVL); - break; - } -} - -__override void led_set_color_power(enum ec_led_colors color) -{ - switch (color) { - case EC_LED_COLOR_WHITE: - ioex_set_level(IOEX_PWR_LED_WHITE_L, LED_ON_LVL); - break; - default: - ioex_set_level(IOEX_PWR_LED_WHITE_L, 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_WHITE] = 1; - } else if (led_id == EC_LED_ID_POWER_LED) { - brightness_range[EC_LED_COLOR_WHITE] = 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_WHITE] != 0) - led_set_color_battery(EC_LED_COLOR_WHITE); - else - led_set_color_battery(LED_OFF); - } else if (led_id == EC_LED_ID_POWER_LED) { - if (brightness[EC_LED_COLOR_WHITE] != 0) - led_set_color_power(EC_LED_COLOR_WHITE); - else - led_set_color_power(LED_OFF); - } else { - return EC_ERROR_INVAL; - } - return EC_SUCCESS; -} diff --git a/board/stern/vif_override.xml b/board/stern/vif_override.xml deleted file mode 100644 index 32736caf64..0000000000 --- a/board/stern/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. ---> |