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/waddledee | |
parent | 08f5a1e6fc2c9467230444ac9b582dcf4d9f0068 (diff) | |
download | chrome-ec-stabilize-14396.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/waddledee')
-rw-r--r-- | board/waddledee/battery.c | 329 | ||||
-rw-r--r-- | board/waddledee/board.c | 585 | ||||
-rw-r--r-- | board/waddledee/board.h | 147 | ||||
-rw-r--r-- | board/waddledee/build.mk | 15 | ||||
-rw-r--r-- | board/waddledee/cbi_ssfc.c | 36 | ||||
-rw-r--r-- | board/waddledee/cbi_ssfc.h | 60 | ||||
-rw-r--r-- | board/waddledee/ec.tasklist | 24 | ||||
-rw-r--r-- | board/waddledee/gpio.inc | 138 | ||||
-rw-r--r-- | board/waddledee/led.c | 82 | ||||
-rw-r--r-- | board/waddledee/usb_pd_policy.c | 85 | ||||
-rw-r--r-- | board/waddledee/vif_override.xml | 3 |
11 files changed, 0 insertions, 1504 deletions
diff --git a/board/waddledee/battery.c b/board/waddledee/battery.c deleted file mode 100644 index 6b77248624..0000000000 --- a/board/waddledee/battery.c +++ /dev/null @@ -1,329 +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. - * - * Battery pack vendor provided charging profile - */ - -#include "battery_fuel_gauge.h" -#include "charge_state.h" -#include "common.h" - -/* - * Battery info for all waddledee battery types. Note that the fields - * start_charging_min/max and charging_min/max are not used for the charger. - * The effective temperature limits are given by discharging_min/max_c. - * - * Fuel Gauge (FG) parameters which are used for determining if the battery - * is connected, the appropriate ship mode (battery cutoff) command, and the - * charge/discharge FETs status. - * - * Ship mode (battery cutoff) requires 2 writes to the appropriate smart battery - * register. For some batteries, the charge/discharge FET bits are set when - * charging/discharging is active, in other types, these bits set mean that - * charging/discharging is disabled. Therefore, in addition to the mask for - * these bits, a disconnect value must be specified. Note that for TI fuel - * gauge, the charge/discharge FET status is found in Operation Status (0x54), - * but a read of Manufacturer Access (0x00) will return the lower 16 bits of - * Operation status which contains the FET status bits. - * - * The assumption for battery types supported is that the charge/discharge FET - * status can be read with a sb_read() command and therefore, only the register - * address, mask, and disconnect value need to be provided. - */ -const struct board_batt_params board_battery_info[] = { - /* LGC AC15A8J Battery Information */ - [BATTERY_LGC15] = { - .fuel_gauge = { - .manuf_name = "LGC", - .device_name = "AC15A8J", - .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 = 13200, - .voltage_normal = 11520, /* mV */ - .voltage_min = 9000, /* mV */ - .precharge_current = 256, /* mA */ - .start_charging_min_c = 0, - .start_charging_max_c = 50, - .charging_min_c = 0, - .charging_max_c = 60, - .discharging_min_c = 0, - .discharging_max_c = 60, - }, - }, - - /* Panasonic AP1505L Battery Information */ - [BATTERY_PANASONIC_AP15O5L] = { - .fuel_gauge = { - .manuf_name = "PANASONIC", - .device_name = "AP15O5L", - .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 = 11550, /* mV */ - .voltage_min = 9000, /* mV */ - .precharge_current = 256, /* mA */ - .start_charging_min_c = 0, - .start_charging_max_c = 50, - .charging_min_c = 0, - .charging_max_c = 60, - .discharging_min_c = 0, - .discharging_max_c = 60, - }, - }, - - /* SANYO AC15A3J Battery Information */ - [BATTERY_SANYO] = { - .fuel_gauge = { - .manuf_name = "SANYO", - .ship_mode = { - .reg_addr = 0x3A, - .reg_data = { 0xC574, 0xC574 }, - }, - .fet = { - .reg_addr = 0x0, - .reg_mask = 0x4000, - .disconnect_val = 0x0, - } - }, - .batt_info = { - .voltage_max = TARGET_WITH_MARGIN(13200, 5), - .voltage_normal = 11550, /* mV */ - .voltage_min = 9000, /* mV */ - .precharge_current = 256, /* mA */ - .start_charging_min_c = 0, - .start_charging_max_c = 50, - .charging_min_c = 0, - .charging_max_c = 60, - .discharging_min_c = 0, - .discharging_max_c = 60, - }, - }, - - /* Sony Ap13J4K Battery Information */ - [BATTERY_SONY] = { - .fuel_gauge = { - .manuf_name = "SONYCorp", - .ship_mode = { - .reg_addr = 0x3A, - .reg_data = { 0xC574, 0xC574 }, - }, - .fet = { - .reg_addr = 0x0, - .reg_mask = 0x8000, - .disconnect_val = 0x8000, - .cfet_mask = 0x4000, - .cfet_off_val = 0x4000, - } - }, - .batt_info = { - .voltage_max = TARGET_WITH_MARGIN(13200, 5), - .voltage_normal = 11400, /* mV */ - .voltage_min = 9000, /* mV */ - .precharge_current = 256, /* mA */ - .start_charging_min_c = 0, - .start_charging_max_c = 50, - .charging_min_c = 0, - .charging_max_c = 60, - .discharging_min_c = 0, - .discharging_max_c = 60, - }, - }, - - /* Simplo AP13J7K Battery Information */ - [BATTERY_SMP_AP13J7K] = { - .fuel_gauge = { - .manuf_name = "SIMPLO", - .device_name = "AP13J7K", - .ship_mode = { - .reg_addr = 0x3A, - .reg_data = { 0xC574, 0xC574 }, - }, - .fet = { - .mfgacc_support = 1, - .reg_addr = 0x0, - .reg_mask = 0x0002, - .disconnect_val = 0x0000, - } - }, - .batt_info = { - .voltage_max = 13050, - .voltage_normal = 11400, /* mV */ - .voltage_min = 9000, /* mV */ - .precharge_current = 256, /* mA */ - .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, - }, - }, - - /* Panasonic AC15A3J Battery Information */ - [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 = 11550, /* mV */ - .voltage_min = 9000, /* mV */ - .precharge_current = 256, /* mA */ - .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, - }, - }, - - /* LGC AP18C8K Battery Information */ - [BATTERY_LGC_AP18C8K] = { - .fuel_gauge = { - .manuf_name = "LGC KT0030G020", - .device_name = "AP18C8K", - .ship_mode = { - .reg_addr = 0x3A, - .reg_data = { 0xC574, 0xC574 }, - }, - .fet = { - .reg_addr = 0x43, - .reg_mask = 0x0001, - .disconnect_val = 0x0, - }, - }, - .batt_info = { - .voltage_max = 13050, - .voltage_normal = 11250, - .voltage_min = 9000, - .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, - }, - }, - - /* Murata AP18C4K Battery Information */ - [BATTERY_MURATA_AP18C4K] = { - .fuel_gauge = { - .manuf_name = "Murata KT00304012", - .device_name = "AP18C4K", - .ship_mode = { - .reg_addr = 0x3A, - .reg_data = { 0xC574, 0xC574 }, - }, - .fet = { - .reg_addr = 0x0, - .reg_mask = 0x2000, - .disconnect_val = 0x2000, - }, - }, - .batt_info = { - .voltage_max = 13200, - .voltage_normal = 11400, - .voltage_min = 9000, - .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, - }, - }, - - /* LGC AP19A8K Battery Information */ - [BATTERY_LGC_AP19A8K] = { - .fuel_gauge = { - .manuf_name = "LGC KTxxxxGxxx", - .device_name = "AP19A8K", - .ship_mode = { - .reg_addr = 0x3A, - .reg_data = { 0xC574, 0xC574 }, - }, - .fet = { - .reg_addr = 0x43, - .reg_mask = 0x0001, - .disconnect_val = 0x0, - }, - }, - .batt_info = { - .voltage_max = 13200, - .voltage_normal = 11550, - .voltage_min = 9000, - .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, - }, - }, - - /* LGC KT0030G023 Battery Information */ - [BATTERY_LGC_G023] = { - .fuel_gauge = { - .manuf_name = "LGC KT0030G023", - .device_name = "AP19A8K", - .ship_mode = { - .reg_addr = 0x3A, - .reg_data = { 0xC574, 0xC574 }, - }, - .fet = { - .reg_addr = 0x43, - .reg_mask = 0x0001, - .disconnect_val = 0x0, - }, - }, - .batt_info = { - .voltage_max = 13200, - .voltage_normal = 11550, - .voltage_min = 9000, - .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_AC15A3J; diff --git a/board/waddledee/board.c b/board/waddledee/board.c deleted file mode 100644 index 1e4f8a387c..0000000000 --- a/board/waddledee/board.c +++ /dev/null @@ -1,585 +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. - */ - -/* Waddledee board-specific configuration */ - -#include "adc_chip.h" -#include "button.h" -#include "charge_manager.h" -#include "charge_state_v2.h" -#include "charger.h" -#include "driver/accel_kionix.h" -#include "driver/accelgyro_lsm6dsm.h" -#include "driver/bc12/pi3usb9201.h" -#include "driver/charger/sm5803.h" -#include "driver/retimer/tusb544.h" -#include "driver/temp_sensor/thermistor.h" -#include "driver/tcpm/anx7447.h" -#include "driver/tcpm/it83xx_pd.h" -#include "driver/usb_mux/it5205.h" -#include "gpio.h" -#include "hooks.h" -#include "intc.h" -#include "keyboard_scan.h" -#include "lid_switch.h" -#include "power.h" -#include "power_button.h" -#include "pwm.h" -#include "pwm_chip.h" -#include "switch.h" -#include "system.h" -#include "tablet_mode.h" -#include "task.h" -#include "tcpm/tcpci.h" -#include "temp_sensor.h" -#include "uart.h" -#include "usb_charge.h" -#include "usb_mux.h" -#include "usb_pd.h" -#include "usb_pd_tcpm.h" - -#define CPRINTUSB(format, args...) cprints(CC_USBCHARGE, format, ## args) - -#define INT_RECHECK_US 5000 - -/* C1 interrupt line swapped between board versions, track it in a variable */ -static enum gpio_signal c1_int_line; - -/* C0 interrupt line shared by BC 1.2 and charger */ -static void check_c0_line(void); -DECLARE_DEFERRED(check_c0_line); - -static void notify_c0_chips(void) -{ - task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12); - sm5803_interrupt(0); -} - -static void check_c0_line(void) -{ - /* - * If line is still being held low, see if there's more to process from - * one of the chips - */ - if (!gpio_get_level(GPIO_USB_C0_INT_ODL)) { - notify_c0_chips(); - hook_call_deferred(&check_c0_line_data, INT_RECHECK_US); - } -} - -static void usb_c0_interrupt(enum gpio_signal s) -{ - /* Cancel any previous calls to check the interrupt line */ - hook_call_deferred(&check_c0_line_data, -1); - - /* Notify all chips using this line that an interrupt came in */ - notify_c0_chips(); - - /* Check the line again in 5ms */ - hook_call_deferred(&check_c0_line_data, INT_RECHECK_US); -} - -/* C1 interrupt line shared by BC 1.2, TCPC, and charger */ -static void check_c1_line(void); -DECLARE_DEFERRED(check_c1_line); - -static void notify_c1_chips(void) -{ - schedule_deferred_pd_interrupt(1); - task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12); - sm5803_interrupt(1); -} - -static void check_c1_line(void) -{ - /* - * If line is still being held low, see if there's more to process from - * one of the chips. - */ - if (!gpio_get_level(c1_int_line)) { - notify_c1_chips(); - hook_call_deferred(&check_c1_line_data, INT_RECHECK_US); - } -} - -static void usb_c1_interrupt(enum gpio_signal s) -{ - /* Cancel any previous calls to check the interrupt line */ - hook_call_deferred(&check_c1_line_data, -1); - - /* Notify all chips using this line that an interrupt came in */ - notify_c1_chips(); - - /* Check the line again in 5ms */ - hook_call_deferred(&check_c1_line_data, INT_RECHECK_US); -} - -static void c0_ccsbu_ovp_interrupt(enum gpio_signal s) -{ - cprints(CC_USBPD, "C0: CC OVP, SBU OVP, or thermal event"); - pd_handle_cc_overvoltage(0); -} - -/* Must come after other header files and interrupt handler declarations */ -#include "gpio_list.h" - -/* ADC channels */ -const struct adc_t adc_channels[] = { - [ADC_VSNS_PP3300_A] = { - .name = "PP3300_A_PGOOD", - .factor_mul = ADC_MAX_MVOLT, - .factor_div = ADC_READ_MAX + 1, - .shift = 0, - .channel = CHIP_ADC_CH0 - }, - [ADC_TEMP_SENSOR_1] = { - .name = "TEMP_SENSOR1", - .factor_mul = ADC_MAX_MVOLT, - .factor_div = ADC_READ_MAX + 1, - .shift = 0, - .channel = CHIP_ADC_CH2 - }, - [ADC_TEMP_SENSOR_2] = { - .name = "TEMP_SENSOR2", - .factor_mul = ADC_MAX_MVOLT, - .factor_div = ADC_READ_MAX + 1, - .shift = 0, - .channel = CHIP_ADC_CH3 - }, - [ADC_SUB_ANALOG] = { - .name = "SUB_ANALOG", - .factor_mul = ADC_MAX_MVOLT, - .factor_div = ADC_READ_MAX + 1, - .shift = 0, - .channel = CHIP_ADC_CH13 - }, -}; -BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT); - -/* BC 1.2 chips */ -const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = { - { - .i2c_port = I2C_PORT_USB_C0, - .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS, - .flags = PI3USB9201_ALWAYS_POWERED, - }, - { - .i2c_port = I2C_PORT_SUB_USB_C1, - .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS, - .flags = PI3USB9201_ALWAYS_POWERED, - }, -}; - -/* Charger chips */ -const struct charger_config_t chg_chips[] = { - [CHARGER_PRIMARY] = { - .i2c_port = I2C_PORT_USB_C0, - .i2c_addr_flags = SM5803_ADDR_CHARGER_FLAGS, - .drv = &sm5803_drv, - }, - [CHARGER_SECONDARY] = { - .i2c_port = I2C_PORT_SUB_USB_C1, - .i2c_addr_flags = SM5803_ADDR_CHARGER_FLAGS, - .drv = &sm5803_drv, - }, -}; - -/* TCPCs */ -const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = { - { - .bus_type = EC_BUS_TYPE_EMBEDDED, - .drv = &it83xx_tcpm_drv, - }, - { - .bus_type = EC_BUS_TYPE_I2C, - .i2c_info = { - .port = I2C_PORT_SUB_USB_C1, - .addr_flags = AN7447_TCPC0_I2C_ADDR_FLAGS, - }, - .drv = &anx7447_tcpm_drv, - .flags = TCPC_FLAGS_TCPCI_REV2_0, - }, -}; - -/* USB Retimer */ -const struct usb_mux usbc1_retimer = { - .usb_port = 1, - .i2c_port = I2C_PORT_SUB_USB_C1, - .i2c_addr_flags = TUSB544_I2C_ADDR_FLAGS0, - .driver = &tusb544_drv, -}; - -/* USB Muxes */ -const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = { - { - .usb_port = 0, - .i2c_port = I2C_PORT_USB_C0, - .i2c_addr_flags = IT5205_I2C_ADDR1_FLAGS, - .driver = &it5205_usb_mux_driver, - }, - { - .usb_port = 1, - .i2c_port = I2C_PORT_SUB_USB_C1, - .i2c_addr_flags = AN7447_TCPC0_I2C_ADDR_FLAGS, - .driver = &anx7447_usb_mux_driver, - .next_mux = &usbc1_retimer, - }, -}; - -void board_init(void) -{ - int on; - - if (system_get_board_version() <= 0) { - pd_set_max_voltage(5000); - c1_int_line = GPIO_USB_C1_INT_V0_ODL; - } else { - c1_int_line = GPIO_USB_C1_INT_V1_ODL; - } - - - gpio_enable_interrupt(GPIO_USB_C0_INT_ODL); - gpio_enable_interrupt(c1_int_line); - - /* - * If interrupt lines are already low, schedule them to be processed - * after inits are completed. - */ - check_c0_line(); - check_c1_line(); - - gpio_enable_interrupt(GPIO_USB_C0_CCSBU_OVP_ODL); - /* Enable Base Accel interrupt */ - gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L); - - /* Charger on the MB will be outputting PROCHOT_ODL and OD CHG_DET */ - sm5803_configure_gpio0(CHARGER_PRIMARY, GPIO0_MODE_PROCHOT, 1); - sm5803_configure_chg_det_od(CHARGER_PRIMARY, 1); - - /* Charger on the sub-board will be a push-pull GPIO */ - sm5803_configure_gpio0(CHARGER_SECONDARY, GPIO0_MODE_OUTPUT, 0); - - /* Turn on 5V if the system is on, otherwise turn it off */ - on = chipset_in_state(CHIPSET_STATE_ON | CHIPSET_STATE_ANY_SUSPEND | - CHIPSET_STATE_SOFT_OFF); - board_power_5v_enable(on); -} -DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT); - -static void board_resume(void) -{ - sm5803_disable_low_power_mode(CHARGER_PRIMARY); - if (board_get_charger_chip_count() > 1) - sm5803_disable_low_power_mode(CHARGER_SECONDARY); -} -DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_resume, HOOK_PRIO_DEFAULT); - -static void board_suspend(void) -{ - sm5803_enable_low_power_mode(CHARGER_PRIMARY); - if (board_get_charger_chip_count() > 1) - sm5803_enable_low_power_mode(CHARGER_SECONDARY); -} -DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_suspend, HOOK_PRIO_DEFAULT); - -void board_hibernate(void) -{ - /* - * Put all charger ICs present into low power mode before entering - * z-state. - */ - sm5803_hibernate(CHARGER_PRIMARY); - if (board_get_charger_chip_count() > 1) - sm5803_hibernate(CHARGER_SECONDARY); -} - -__override void board_ocpc_init(struct ocpc_data *ocpc) -{ - /* There's no provision to measure Isys */ - ocpc->chg_flags[CHARGER_SECONDARY] |= OCPC_NO_ISYS_MEAS_CAP; -} - -void board_reset_pd_mcu(void) -{ - /* - * Nothing to do. TCPC C0 is internal, TCPC C1 reset pin is not - * connected to the EC. - */ -} - -__override void board_power_5v_enable(int enable) -{ - /* - * Motherboard has a GPIO to turn on the 5V regulator, but the sub-board - * sets it through the charger GPIO. - */ - gpio_set_level(GPIO_EN_PP5000, !!enable); - gpio_set_level(GPIO_EN_USB_A0_VBUS, !!enable); - if (sm5803_set_gpio0_level(1, !!enable)) - CPRINTUSB("Failed to %sable sub rails!", enable ? "en" : "dis"); -} - -uint16_t tcpc_get_alert_status(void) -{ - /* - * TCPC 0 is embedded in the EC and processes interrupts in the chip - * code (it83xx/intc.c) - */ - - uint16_t status = 0; - int regval; - - /* Check whether TCPC 1 pulled the shared interrupt line */ - if (!gpio_get_level(c1_int_line)) { - if (!tcpc_read16(1, TCPC_REG_ALERT, ®val)) { - if (regval) - status = PD_STATUS_TCPC_ALERT_1; - } - } - - return status; -} - -void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, - int charge_mv) -{ - int icl = MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT); - - /* - * TODO(b/151955431): Characterize the input current limit in case a - * scaling needs to be applied here - */ - charge_set_input_current_limit(icl, charge_mv); -} - -int board_set_active_charge_port(int port) -{ - int is_valid_port = (port >= 0 && port < board_get_usb_pd_port_count()); - - if (!is_valid_port && port != CHARGE_PORT_NONE) - return EC_ERROR_INVAL; - - if (port == CHARGE_PORT_NONE) { - CPRINTUSB("Disabling all charge ports"); - - sm5803_vbus_sink_enable(CHARGER_PRIMARY, 0); - - if (board_get_charger_chip_count() > 1) - sm5803_vbus_sink_enable(CHARGER_SECONDARY, 0); - - return EC_SUCCESS; - } - - CPRINTUSB("New chg p%d", port); - - /* - * Ensure other port is turned off, then enable new charge port - */ - if (port == 0) { - if (board_get_charger_chip_count() > 1) - sm5803_vbus_sink_enable(CHARGER_SECONDARY, 0); - sm5803_vbus_sink_enable(CHARGER_PRIMARY, 1); - - } else { - sm5803_vbus_sink_enable(CHARGER_PRIMARY, 0); - sm5803_vbus_sink_enable(CHARGER_SECONDARY, 1); - } - - return EC_SUCCESS; -} - -/* Vconn control for integrated ITE TCPC */ -void board_pd_vconn_ctrl(int port, enum usbpd_cc_pin cc_pin, int enabled) -{ - /* Vconn control is only for port 0 */ - if (port) - return; - - if (cc_pin == USBPD_CC_PIN_1) - gpio_set_level(GPIO_EN_USB_C0_CC1_VCONN, !!enabled); - else - gpio_set_level(GPIO_EN_USB_C0_CC2_VCONN, !!enabled); -} - -__override void ocpc_get_pid_constants(int *kp, int *kp_div, - int *ki, int *ki_div, - int *kd, int *kd_div) -{ - *kp = 3; - *kp_div = 14; - - *ki = 3; - *ki_div = 500; - - *kd = 4; - *kd_div = 40; -} - -__override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp) -{ - int current; - - if (port < 0 || port > CONFIG_USB_PD_PORT_MAX_COUNT) - return; - - current = (rp == TYPEC_RP_3A0) ? 3000 : 1500; - - charger_set_otg_current_voltage(port, current, 5000); -} - -/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */ -const struct pwm_t pwm_channels[] = { - [PWM_CH_KBLIGHT] = { - .channel = 0, - .flags = PWM_CONFIG_DSLEEP, - .freq_hz = 10000, - }, - - [PWM_CH_LED_RED] = { - .channel = 1, - .flags = PWM_CONFIG_DSLEEP | PWM_CONFIG_ACTIVE_LOW, - .freq_hz = 2400, - }, - - [PWM_CH_LED_GREEN] = { - .channel = 2, - .flags = PWM_CONFIG_DSLEEP | PWM_CONFIG_ACTIVE_LOW, - .freq_hz = 2400, - }, - - [PWM_CH_LED_BLUE] = { - .channel = 3, - .flags = PWM_CONFIG_DSLEEP | PWM_CONFIG_ACTIVE_LOW, - .freq_hz = 2400, - } - -}; -BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT); - -/* Sensor Mutexes */ -static struct mutex g_lid_mutex; -static struct mutex g_base_mutex; - -/* Sensor Data */ -static struct kionix_accel_data g_kx022_data; -static struct lsm6dsm_data lsm6dsm_data = LSM6DSM_DATA; - -/* Drivers */ -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_SENSOR, - .i2c_spi_addr_flags = KX022_ADDR1_FLAGS, - .rot_standard_ref = NULL, - .default_range = 2, /* g */ - /* We only use 2g because its resolution is only 8-bits */ - .min_frequency = KX022_ACCEL_MIN_FREQ, - .max_frequency = KX022_ACCEL_MAX_FREQ, - .config = { - [SENSOR_CONFIG_EC_S0] = { - .odr = 10000 | ROUND_UP_FLAG, - }, - [SENSOR_CONFIG_EC_S3] = { - .odr = 10000 | ROUND_UP_FLAG, - }, - }, - }, - [BASE_ACCEL] = { - .name = "Base Accel", - .active_mask = SENSOR_ACTIVE_S0_S3, - .chip = MOTIONSENSE_CHIP_LSM6DSM, - .type = MOTIONSENSE_TYPE_ACCEL, - .location = MOTIONSENSE_LOC_BASE, - .drv = &lsm6dsm_drv, - .mutex = &g_base_mutex, - .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data, - MOTIONSENSE_TYPE_ACCEL), - .int_signal = GPIO_BASE_SIXAXIS_INT_L, - .flags = MOTIONSENSE_FLAG_INT_SIGNAL, - .port = I2C_PORT_SENSOR, - .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS, - .rot_standard_ref = NULL, - .default_range = 4, /* g */ - .min_frequency = LSM6DSM_ODR_MIN_VAL, - .max_frequency = LSM6DSM_ODR_MAX_VAL, - .config = { - [SENSOR_CONFIG_EC_S0] = { - .odr = 13000 | ROUND_UP_FLAG, - .ec_rate = 100 * MSEC, - }, - [SENSOR_CONFIG_EC_S3] = { - .odr = 10000 | ROUND_UP_FLAG, - .ec_rate = 100 * MSEC, - }, - }, - }, - [BASE_GYRO] = { - .name = "Base Gyro", - .active_mask = SENSOR_ACTIVE_S0_S3, - .chip = MOTIONSENSE_CHIP_LSM6DSM, - .type = MOTIONSENSE_TYPE_GYRO, - .location = MOTIONSENSE_LOC_BASE, - .drv = &lsm6dsm_drv, - .mutex = &g_base_mutex, - .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data, - MOTIONSENSE_TYPE_GYRO), - .int_signal = GPIO_BASE_SIXAXIS_INT_L, - .flags = MOTIONSENSE_FLAG_INT_SIGNAL, - .port = I2C_PORT_SENSOR, - .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS, - .default_range = 1000 | ROUND_UP_FLAG, /* dps */ - .rot_standard_ref = NULL, - .min_frequency = LSM6DSM_ODR_MIN_VAL, - .max_frequency = LSM6DSM_ODR_MAX_VAL, - }, -}; - -const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors); - -/* Thermistors */ -const struct temp_sensor_t temp_sensors[] = { - [TEMP_SENSOR_1] = {.name = "Memory", - .type = TEMP_SENSOR_TYPE_BOARD, - .read = get_temp_3v3_51k1_47k_4050b, - .idx = ADC_TEMP_SENSOR_1}, - [TEMP_SENSOR_2] = {.name = "Ambient", - .type = TEMP_SENSOR_TYPE_BOARD, - .read = get_temp_3v3_51k1_47k_4050b, - .idx = ADC_TEMP_SENSOR_2}, -}; -BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT); - -/* This callback disables keyboard when convertibles are fully open */ -__override void lid_angle_peripheral_enable(int enable) -{ - int chipset_in_s0 = chipset_in_state(CHIPSET_STATE_ON); - - /* - * If the lid is in tablet position via other sensors, - * ignore the lid angle, which might be faulty then - * disable keyboard. - */ - if (tablet_get_mode()) - enable = 0; - - if (enable) { - keyboard_scan_enable(1, KB_SCAN_DISABLE_LID_ANGLE); - } else { - /* - * Ensure that the chipset is off before disabling the keyboard. - * When the chipset is on, the EC keeps the keyboard enabled and - * the AP decides whether to ignore input devices or not. - */ - if (!chipset_in_s0) - keyboard_scan_enable(0, KB_SCAN_DISABLE_LID_ANGLE); - } -} diff --git a/board/waddledee/board.h b/board/waddledee/board.h deleted file mode 100644 index 259786f95c..0000000000 --- a/board/waddledee/board.h +++ /dev/null @@ -1,147 +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. - */ - -/* Waddledee board configuration */ - -#ifndef __CROS_EC_BOARD_H -#define __CROS_EC_BOARD_H - -/* Select Baseboard features */ -#define VARIANT_DEDEDE_EC_IT8320 -#include "baseboard.h" - -/* System unlocked in early development */ -#define CONFIG_SYSTEM_UNLOCKED - -#define CONFIG_CMD_CHARGER_DUMP - -/* Battery */ -#define CONFIG_BATTERY_FUEL_GAUGE - -/* BC 1.2 */ -#define CONFIG_BC12_DETECT_PI3USB9201 - -/* Charger */ -#define CONFIG_CHARGER_SM5803 /* C0 and C1: Charger */ -#define CONFIG_USB_PD_VBUS_DETECT_CHARGER -#define CONFIG_USB_PD_5V_CHARGER_CTRL -#define CONFIG_CHARGER_OTG -#undef CONFIG_CHARGER_SINGLE_CHIP -#define CONFIG_OCPC -#define CONFIG_OCPC_DEF_RBATT_MOHMS 21 /* R_DS(on) 10.7mOhm + 10mOhm sns rstr */ - -/* - * GPIO for C1 interrupts, for baseboard use - * - * Note this will only be valid for board revision 1 - */ -#define GPIO_USB_C1_INT_ODL GPIO_USB_C1_INT_V1_ODL - -/* LED */ -#define CONFIG_LED_PWM -#define CONFIG_LED_PWM_COUNT 1 - -/* PWM */ -#define CONFIG_PWM - -/* Sensors */ -#define CONFIG_ACCEL_KX022 /* Lid accel */ -#define CONFIG_ACCELGYRO_LSM6DSM /* Base accel */ -/* Sensors without hardware FIFO are in forced mode */ -#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL) - -#define CONFIG_ACCEL_INTERRUPTS -/* Enable sensor fifo, must also define the _SIZE and _THRES */ -#define CONFIG_ACCEL_FIFO -/* Power of 2 - Too large of a fifo causes too much timestamp jitter */ -#define CONFIG_ACCEL_FIFO_SIZE 256 -#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO_SIZE / 3) - -#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_TABLET_MODE -#define CONFIG_TABLET_MODE_SWITCH -#define CONFIG_GMR_TABLET_MODE - -/* TCPC */ -#define CONFIG_USB_PD_PORT_MAX_COUNT 2 -#define CONFIG_USB_PD_TCPM_ITE_ON_CHIP /* C0: ITE EC TCPC */ -#define CONFIG_USB_PD_TCPM_ANX7447 /* C1: ANX TCPC + Mux */ -#define CONFIG_USB_PD_ITE_ACTIVE_PORT_COUNT 1 - -/* Thermistors */ -#define CONFIG_TEMP_SENSOR -#define CONFIG_THERMISTOR -#define CONFIG_STEINHART_HART_3V3_51K1_47K_4050B - -/* USB Mux and Retimer */ -#define CONFIG_USB_MUX_IT5205 /* C1: ITE Mux */ -#define I2C_PORT_USB_MUX I2C_PORT_USB_C0 /* Required for ITE Mux */ - -#define CONFIG_USBC_RETIMER_TUSB544 /* C1 Redriver: TUSB544 */ - -#ifndef __ASSEMBLER__ - -#include "gpio_signal.h" -#include "registers.h" - -enum chg_id { - CHARGER_PRIMARY, - CHARGER_SECONDARY, - CHARGER_NUM, -}; - -enum pwm_channel { - PWM_CH_KBLIGHT, - PWM_CH_LED_RED, - PWM_CH_LED_GREEN, - PWM_CH_LED_BLUE, - PWM_CH_COUNT, -}; - -/* Motion sensors */ -enum sensor_id { - LID_ACCEL, - BASE_ACCEL, - BASE_GYRO, - SENSOR_COUNT -}; - -/* ADC channels */ -enum adc_channel { - ADC_VSNS_PP3300_A, /* ADC0 */ - ADC_TEMP_SENSOR_1, /* ADC2 */ - ADC_TEMP_SENSOR_2, /* ADC3 */ - ADC_SUB_ANALOG, /* ADC13 */ - ADC_CH_COUNT -}; - -enum temp_sensor_id { - TEMP_SENSOR_1, - TEMP_SENSOR_2, - TEMP_SENSOR_COUNT -}; - -/* List of possible batteries */ -enum battery_type { - BATTERY_LGC15, - BATTERY_PANASONIC_AP15O5L, - BATTERY_SANYO, - BATTERY_SONY, - BATTERY_SMP_AP13J7K, - BATTERY_PANASONIC_AC15A3J, - BATTERY_LGC_AP18C8K, - BATTERY_MURATA_AP18C4K, - BATTERY_LGC_AP19A8K, - BATTERY_LGC_G023, - BATTERY_TYPE_COUNT, -}; - -#endif /* !__ASSEMBLER__ */ - -#endif /* __CROS_EC_BOARD_H */ diff --git a/board/waddledee/build.mk b/board/waddledee/build.mk deleted file mode 100644 index 806168ea0d..0000000000 --- a/board/waddledee/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 -# - -CHIP:=it83xx -CHIP_FAMILY:=it8320 -CHIP_VARIANT:=it8320dx -BASEBOARD:=dedede - -board-y=board.o cbi_ssfc.o led.o usb_pd_policy.o -board-$(CONFIG_BATTERY_SMART)+=battery.o diff --git a/board/waddledee/cbi_ssfc.c b/board/waddledee/cbi_ssfc.c deleted file mode 100644 index c4b859f133..0000000000 --- a/board/waddledee/cbi_ssfc.c +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright 2021 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 "cbi_ssfc.h" -#include "common.h" -#include "console.h" -#include "cros_board_info.h" -#include "hooks.h" - -#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ##args) - -/* Cache SSFC on init since we don't expect it to change in runtime */ -static union dedede_cbi_ssfc cached_ssfc; -BUILD_ASSERT(sizeof(cached_ssfc) == sizeof(uint32_t)); - -static void cbi_ssfc_init(void) -{ - if (cbi_get_ssfc(&cached_ssfc.raw_value) != EC_SUCCESS) - /* Default to 0 when CBI isn't populated */ - cached_ssfc.raw_value = 0; - - CPRINTS("Read CBI SSFC : 0x%04X", cached_ssfc.raw_value); -} -DECLARE_HOOK(HOOK_INIT, cbi_ssfc_init, HOOK_PRIO_FIRST); - -enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void) -{ - return (enum ec_ssfc_base_sensor) cached_ssfc.base_sensor; -} - -enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void) -{ - return (enum ec_ssfc_lid_sensor) cached_ssfc.lid_sensor; -} diff --git a/board/waddledee/cbi_ssfc.h b/board/waddledee/cbi_ssfc.h deleted file mode 100644 index 935049b6ae..0000000000 --- a/board/waddledee/cbi_ssfc.h +++ /dev/null @@ -1,60 +0,0 @@ -/* Copyright 2021 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. - */ - -#ifndef _DEDEDE_CBI_SSFC__H_ -#define _DEDEDE_CBI_SSFC__H_ - -#include "stdint.h" - -/**************************************************************************** - * Dedede CBI Second Source Factory Cache - */ - -/* - * Base Sensor (Bits 0-2) - */ -enum ec_ssfc_base_sensor { - SSFC_SENSOR_BASE_DEFAULT = 0, - SSFC_SENSOR_BMI160 = 1, - SSFC_SENSOR_ICM426XX = 2, - SSFC_SENSOR_LSM6DSM = 3, - SSFC_SENSOR_ICM42607 = 4 -}; - -/* - * Lid Sensor (Bits 3-5) - */ -enum ec_ssfc_lid_sensor { - SSFC_SENSOR_LID_DEFAULT = 0, - SSFC_SENSOR_BMA255 = 1, - SSFC_SENSOR_KX022 = 2, - SSFC_SENSOR_LIS2DWL = 3 -}; - -union dedede_cbi_ssfc { - struct { - uint32_t base_sensor : 3; - uint32_t lid_sensor : 3; - uint32_t reserved_2 : 26; - }; - uint32_t raw_value; -}; - -/** - * Get the Base sensor type from SSFC_CONFIG. - * - * @return the Base sensor board type. - */ -enum ec_ssfc_base_sensor get_cbi_ssfc_base_sensor(void); - -/** - * Get the Lid sensor type from SSFC_CONFIG. - * - * @return the Lid sensor board type. - */ -enum ec_ssfc_lid_sensor get_cbi_ssfc_lid_sensor(void); - - -#endif /* _DEDEDE_CBI_SSFC__H_ */ diff --git a/board/waddledee/ec.tasklist b/board/waddledee/ec.tasklist deleted file mode 100644 index 2edf48ee05..0000000000 --- a/board/waddledee/ec.tasklist +++ /dev/null @@ -1,24 +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(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \ - TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \ - TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \ - TASK_ALWAYS(CHARGER, charger_task, NULL, TRENTA_TASK_STACK_SIZE) \ - TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \ - TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, LARGER_TASK_STACK_SIZE) \ - TASK_ALWAYS(HOSTCMD, host_command_task, NULL, VENTI_TASK_STACK_SIZE) \ - TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \ - TASK_ALWAYS(POWERBTN, power_button_task, NULL, ULTRA_TASK_STACK_SIZE) \ - TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, ULTRA_TASK_STACK_SIZE) \ - TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \ - TASK_ALWAYS(PD_C1, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \ - TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, ULTRA_TASK_STACK_SIZE) diff --git a/board/waddledee/gpio.inc b/board/waddledee/gpio.inc deleted file mode 100644 index 63e0055199..0000000000 --- a/board/waddledee/gpio.inc +++ /dev/null @@ -1,138 +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. */ - -/* Power State interrupts */ -GPIO_INT(SLP_S4_L, PIN(I, 5), GPIO_INT_BOTH, power_signal_interrupt) -GPIO_INT(SLP_S3_L, PIN(H, 3), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt) -GPIO_INT(SLP_S0_L, PIN(E, 4), GPIO_INT_BOTH, power_signal_interrupt) -GPIO_INT(SLP_SUS_L, PIN(G, 2), GPIO_INT_BOTH, power_signal_interrupt) -GPIO_INT(VCCIN_AUX_VID0, PIN(D, 0), GPIO_INT_BOTH, power_signal_interrupt) -GPIO_INT(RSMRST_PWRGD_L, PIN(E, 1), GPIO_INT_BOTH, power_signal_interrupt) -GPIO_INT(CPU_C10_GATE_L, PIN(G, 1), GPIO_INT_BOTH, power_signal_interrupt) -GPIO_INT(PG_DRAM_OD, PIN(D, 3), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt) -GPIO_INT(PG_PP1050_ST_OD, PIN(L, 1), GPIO_INT_BOTH, power_signal_interrupt) -GPIO_INT(VCCIN_AUX_VID1, PIN(K, 1), GPIO_INT_BOTH, power_signal_interrupt) -GPIO_INT(PG_VCCIO_EXT_OD, PIN(D, 7), GPIO_INT_BOTH, baseboard_all_sys_pgood_interrupt) -GPIO_INT(ESPI_RESET_L, PIN(D, 2), GPIO_INT_FALLING | GPIO_SEL_1P8V, espi_reset_pin_asserted_interrupt) - -GPIO_INT(H1_EC_PWR_BTN_ODL, PIN(E, 2), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt) -#ifdef CONFIG_LOW_POWER_IDLE -/* Used to wake up the EC from Deep Doze mode when writing to console */ -GPIO_INT(UART1_RX, PIN(B, 0), GPIO_INT_BOTH, uart_deepsleep_interrupt) /* UART_DBG_TX_EC_RX */ -#endif - -/* USB-C interrupts */ -GPIO_INT(USB_C0_INT_ODL, PIN(K, 0), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c0_interrupt) /* BC12 and charger */ -GPIO_INT(USB_C1_INT_V0_ODL, PIN(B, 5), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c1_interrupt) /* TCPC, charger, BC12 - board version 0 */ -GPIO_INT(USB_C1_INT_V1_ODL, PIN(E, 6), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c1_interrupt) /* TCPC, charger, BC12 - board version 1 */ -GPIO_INT(USB_C0_CCSBU_OVP_ODL, PIN(K, 6), GPIO_INT_FALLING | GPIO_PULL_UP, c0_ccsbu_ovp_interrupt) /* Fault protection */ - -/* Other interrupts */ -GPIO_INT(LID_OPEN, PIN(F, 3), GPIO_INT_BOTH, lid_interrupt) -GPIO_INT(LID_360_L, PIN(A, 7), GPIO_INT_BOTH, gmr_tablet_switch_isr) -GPIO_INT(VOLDN_BTN_ODL, PIN(I, 6), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) -GPIO_INT(VOLUP_BTN_ODL, PIN(I, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) -GPIO_INT(BASE_SIXAXIS_INT_L, PIN(J, 0), GPIO_INT_FALLING | GPIO_SEL_1P8V, lsm6dsm_interrupt) -GPIO_INT(EC_WP_OD, PIN(A, 6), GPIO_INT_BOTH, switch_interrupt) - -/* Power sequence GPIOs */ -GPIO(EC_AP_RTCRST, PIN(K, 2), GPIO_OUT_LOW) -GPIO(EC_AP_PWR_BTN_ODL, PIN(B, 6), GPIO_ODR_HIGH) -GPIO(EC_AP_DPWROK, PIN(L, 7), GPIO_OUT_LOW) -GPIO(EC_AP_RSMRST_L, PIN(H, 0), GPIO_OUT_LOW) -GPIO(EC_AP_WAKE_ODL, PIN(D, 5), GPIO_ODR_HIGH) -GPIO(SYS_RST_ODL, PIN(D, 1), GPIO_ODR_HIGH) -GPIO(EC_AP_SYS_PWROK, PIN(F, 2), GPIO_OUT_LOW) -GPIO(PG_PP5000_U_OD, PIN(E, 3), GPIO_INPUT) -GPIO(EN_PP3300_A, PIN(C, 5), GPIO_OUT_LOW) -GPIO(EC_AP_PCH_PWROK_OD, PIN(D, 6), GPIO_ODR_LOW) -GPIO(EN_PP5000_U, PIN(K, 5), GPIO_OUT_LOW) -/* TODO(b:149775160) - Modify if needed if we ever use this signal. */ -GPIO(EN_VCCST, PIN(D, 4), GPIO_INPUT) -GPIO(EN_VCCIO_EXT, PIN(B, 2), GPIO_OUT_LOW) -GPIO(EC_PROCHOT_ODL, PIN(I, 1), GPIO_ODR_HIGH | GPIO_SEL_1P8V) -GPIO(EC_AP_VCCST_PWRGD_OD, PIN(E, 5), GPIO_ODR_LOW) -GPIO(ALL_SYS_PWRGD, PIN(B, 7), GPIO_OUT_LOW) -GPIO(EN_SLP_Z, PIN(K, 3), GPIO_OUT_LOW) - -/* Required for icelake chipset code, but implemented through other means for dedede */ -UNIMPLEMENTED(AC_PRESENT) -UNIMPLEMENTED(PG_EC_DSW_PWROK) -UNIMPLEMENTED(PG_EC_ALL_SYS_PWRGD) - -/* I2C pins - Alternate function below configures I2C module on these pins */ -GPIO(EC_I2C_EEPROM_SCL, PIN(B, 3), GPIO_INPUT) -GPIO(EC_I2C_EEPROM_SDA, PIN(B, 4), GPIO_INPUT) -GPIO(EC_I2C_BATTERY_SCL, PIN(C, 1), GPIO_INPUT) -GPIO(EC_I2C_BATTERY_SDA, PIN(C, 2), GPIO_INPUT) -GPIO(EC_I2C_SENSOR_SCL, PIN(F, 6), GPIO_INPUT | GPIO_SEL_1P8V) -GPIO(EC_I2C_SENSOR_SDA, PIN(F, 7), GPIO_INPUT | GPIO_SEL_1P8V) -GPIO(EC_I2C_SUB_USB_C1_SCL, PIN(E, 0), GPIO_INPUT) -GPIO(EC_I2C_SUB_USB_C1_SDA, PIN(E, 7), GPIO_INPUT) -GPIO(EC_I2C_USB_C0_SCL, PIN(A, 4), GPIO_INPUT) -GPIO(EC_I2C_USB_C0_SDA, PIN(A, 5), GPIO_INPUT) - -/* USB pins */ -GPIO(EN_USB_C0_CC1_VCONN, PIN(H, 4), GPIO_OUT_LOW) -GPIO(EN_USB_C0_CC2_VCONN, PIN(H, 6), GPIO_OUT_LOW) -GPIO(EC_AP_USB_C0_HPD, PIN(L, 4), GPIO_OUT_LOW) -GPIO(EC_AP_USB_C1_HDMI_HPD, PIN(K, 7), GPIO_OUT_LOW) -GPIO(USB_C0_FRS, PIN(C, 4), GPIO_OUT_LOW) -GPIO(HDMI_SEL_L, PIN(C, 6), GPIO_OUT_HIGH) -GPIO(EN_USB_A0_VBUS, PIN(L, 6), GPIO_OUT_LOW) /* Board rev 1, NC board rev 0 */ - -/* MKBP event synchronization */ -GPIO(EC_AP_MKBP_INT_L, PIN(L, 5), GPIO_ODR_HIGH) - -/* Misc pins which will run to the I/O board */ -GPIO(EC_SUB_IO_1_1, PIN(L, 3), GPIO_INPUT) -GPIO(EC_SUB_IO_1_2, PIN(F, 0), GPIO_INPUT) -GPIO(EC_SUB_IO_2_1, PIN(F, 1), GPIO_INPUT) -GPIO(EC_SUB_IO_2_2, PIN(L, 2), GPIO_INPUT) - -/* Misc */ -GPIO(EN_BL_OD, PIN(K, 4), GPIO_ODR_LOW) -GPIO(EC_ENTERING_RW, PIN(G, 0), GPIO_OUT_LOW) -GPIO(CCD_MODE_ODL, PIN(H, 5), GPIO_ODR_HIGH) -GPIO(EC_BATTERY_PRES_ODL, PIN(I, 4), GPIO_INPUT) -GPIO(PEN_DET_ODL, PIN(J, 1), GPIO_INPUT | GPIO_PULL_UP) -GPIO(EN_KB_BL, PIN(J, 3), GPIO_OUT_LOW) /* Currently unused */ -GPIO(ECH1_PACKET_MODE, PIN(H, 1), GPIO_OUT_LOW) - -/* NC pins, enable internal pull-down to avoid floating state. */ -GPIO(GPIOC0_NC, PIN(C, 0), GPIO_INPUT | GPIO_PULL_DOWN) -GPIO(GPIOC3_NC, PIN(C, 3), GPIO_INPUT | GPIO_PULL_DOWN) -GPIO(GPIOG3_NC, PIN(G, 3), GPIO_INPUT | GPIO_PULL_DOWN) -GPIO(GPIOG4_NC, PIN(G, 4), GPIO_INPUT | GPIO_PULL_DOWN) -GPIO(GPIOG5_NC, PIN(G, 5), GPIO_INPUT | GPIO_PULL_DOWN) -GPIO(GPIOG6_NC, PIN(G, 6), GPIO_INPUT | GPIO_PULL_DOWN) -GPIO(GPIOG7_NC, PIN(G, 7), GPIO_INPUT | GPIO_PULL_DOWN) -GPIO(GPIOJ4_NC, PIN(J, 4), GPIO_INPUT | GPIO_PULL_DOWN) -GPIO(GPIOJ5_NC, PIN(J, 5), GPIO_INPUT | GPIO_PULL_DOWN) -GPIO(GPIOJ6_NC, PIN(J, 6), GPIO_INPUT | GPIO_PULL_DOWN) -GPIO(GPIOM6_NC, PIN(M, 6), GPIO_INPUT | GPIO_PULL_DOWN) - -/* Alternate functions GPIO definitions */ -/* UART */ -ALTERNATE(PIN_MASK(B, BIT(0) | BIT(1)), 0, MODULE_UART, 0) /* UART for debug */ - -/* I2C */ -ALTERNATE(PIN_MASK(B, BIT(3) | BIT(4)), 0, MODULE_I2C, 0) /* I2C0 */ -ALTERNATE(PIN_MASK(C, BIT(1) | BIT(2)), 0, MODULE_I2C, 0) /* I2C1 */ -ALTERNATE(PIN_MASK(F, BIT(6) | BIT(7)), 0, MODULE_I2C, GPIO_SEL_1P8V) /* I2C2 - 1.8V */ -ALTERNATE(PIN_MASK(E, BIT(0) | BIT(7)), 0, MODULE_I2C, 0) /* I2C4 */ -ALTERNATE(PIN_MASK(A, BIT(4) | BIT(5)), 0, MODULE_I2C, 0) /* I2C5 */ - -/* ADC */ -ALTERNATE(PIN_MASK(L, BIT(0)), 0, MODULE_ADC, 0) /* ADC13: EC_SUB_ANALOG */ -ALTERNATE(PIN_MASK(I, BIT(0) | BIT(2) | BIT(3)), 0, MODULE_ADC, 0) /* ADC0: EC_VSNS_PP3300_A, ADC2: TEMP_SENSOR_1, ADC3: TEMP_SENSOR_2 */ - -/* PWM */ -ALTERNATE(PIN_MASK(A, BIT(0) | BIT(1) | BIT(2) | BIT(3)), 0, MODULE_PWM, 0) /* KB_BL_PWM, LED_[R,G,B]_ODL */ diff --git a/board/waddledee/led.c b/board/waddledee/led.c deleted file mode 100644 index 058d23d761..0000000000 --- a/board/waddledee/led.c +++ /dev/null @@ -1,82 +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. - */ - -/* Waddledee specific PWM LED settings. */ - -#include "common.h" -#include "ec_commands.h" -#include "led_pwm.h" -#include "pwm.h" -#include "util.h" - -const enum ec_led_id supported_led_ids[] = { - EC_LED_ID_POWER_LED, -}; -const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids); - -/* - * Board has one physical LED with red, green, and blue - */ -struct pwm_led_color_map led_color_map[EC_LED_COLOR_COUNT] = { - /* Red, Green, Blue */ - [EC_LED_COLOR_RED] = { 100, 0, 0 }, - [EC_LED_COLOR_GREEN] = { 0, 100, 0 }, - [EC_LED_COLOR_BLUE] = { 0, 0, 100 }, - [EC_LED_COLOR_YELLOW] = { 50, 50, 0 }, - [EC_LED_COLOR_WHITE] = { 50, 50, 50 }, - [EC_LED_COLOR_AMBER] = { 70, 30, 0 }, -}; - -/* One logical LED with red, green, and blue channels. */ -struct pwm_led pwm_leds[CONFIG_LED_PWM_COUNT] = { - { - .ch0 = PWM_CH_LED_RED, - .ch1 = PWM_CH_LED_GREEN, - .ch2 = PWM_CH_LED_BLUE, - .enable = &pwm_enable, - .set_duty = &pwm_set_duty, - }, -}; - -void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range) -{ - memset(brightness_range, '\0', - sizeof(*brightness_range) * EC_LED_COLOR_COUNT); - brightness_range[EC_LED_COLOR_RED] = 100; - brightness_range[EC_LED_COLOR_GREEN] = 100; - brightness_range[EC_LED_COLOR_BLUE] = 100; - brightness_range[EC_LED_COLOR_YELLOW] = 100; - brightness_range[EC_LED_COLOR_WHITE] = 100; - brightness_range[EC_LED_COLOR_AMBER] = 100; -} - -int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness) -{ - enum pwm_led_id pwm_id; - - /* Convert ec_led_id to pwm_led_id. */ - if (led_id == EC_LED_ID_POWER_LED) - pwm_id = PWM_LED0; - else - return EC_ERROR_UNKNOWN; - - if (brightness[EC_LED_COLOR_RED]) - set_pwm_led_color(pwm_id, EC_LED_COLOR_RED); - else if (brightness[EC_LED_COLOR_GREEN]) - set_pwm_led_color(pwm_id, EC_LED_COLOR_GREEN); - else if (brightness[EC_LED_COLOR_BLUE]) - set_pwm_led_color(pwm_id, EC_LED_COLOR_BLUE); - else if (brightness[EC_LED_COLOR_YELLOW]) - set_pwm_led_color(pwm_id, EC_LED_COLOR_YELLOW); - else if (brightness[EC_LED_COLOR_WHITE]) - set_pwm_led_color(pwm_id, EC_LED_COLOR_WHITE); - else if (brightness[EC_LED_COLOR_AMBER]) - set_pwm_led_color(pwm_id, EC_LED_COLOR_AMBER); - else - /* Otherwise, the "color" is "off". */ - set_pwm_led_color(pwm_id, -1); - - return EC_SUCCESS; -} diff --git a/board/waddledee/usb_pd_policy.c b/board/waddledee/usb_pd_policy.c deleted file mode 100644 index 7046e25d6c..0000000000 --- a/board/waddledee/usb_pd_policy.c +++ /dev/null @@ -1,85 +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_smart.h" -#include "charge_manager.h" -#include "charger.h" -#include "chipset.h" -#include "common.h" -#include "console.h" -#include "driver/charger/sm5803.h" -#include "driver/tcpm/tcpci.h" -#include "usb_pd.h" - -#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args) -#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args) - -int pd_check_vconn_swap(int port) -{ - /* Allow VCONN swaps if the AP is on */ - return chipset_in_state(CHIPSET_STATE_ANY_SUSPEND | CHIPSET_STATE_ON); -} - -void pd_power_supply_reset(int port) -{ - int prev_en; - - if (port < 0 || port >= board_get_usb_pd_port_count()) - return; - - prev_en = charger_is_sourcing_otg_power(port); - - /* Disable Vbus */ - charger_enable_otg_power(port, 0); - - /* Discharge Vbus if previously enabled */ - if (prev_en) - sm5803_set_vbus_disch(port, 1); - - /* Notify host of power info change. */ - pd_send_host_event(PD_EVENT_POWER_CHANGE); -} - -int pd_set_power_supply_ready(int port) -{ - enum ec_error_list rv; - - /* Disable sinking */ - rv = sm5803_vbus_sink_enable(port, 0); - if (rv) - return rv; - - /* Disable Vbus discharge */ - sm5803_set_vbus_disch(port, 0); - - /* Provide Vbus */ - charger_enable_otg_power(port, 1); - - /* Notify host of power info change. */ - pd_send_host_event(PD_EVENT_POWER_CHANGE); - - return EC_SUCCESS; -} - -__override bool pd_check_vbus_level(int port, enum vbus_level level) -{ - int vbus_voltage; - - /* If we're unable to speak to the charger, best to guess false */ - if (charger_get_vbus_voltage(port, &vbus_voltage)) - return false; - - if (level == VBUS_SAFE0V) - return vbus_voltage < PD_V_SAFE0V_MAX; - else if (level == VBUS_PRESENT) - return vbus_voltage > PD_V_SAFE5V_MIN; - else - return vbus_voltage < PD_V_SINK_DISCONNECT_MAX; -} - -int pd_snk_is_vbus_provided(int port) -{ - return sm5803_is_vbus_present(port); -} diff --git a/board/waddledee/vif_override.xml b/board/waddledee/vif_override.xml deleted file mode 100644 index 32736caf64..0000000000 --- a/board/waddledee/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. ---> |