diff options
author | xiong.huang <xiong.huang@bitland.corp-partner.google.com> | 2020-06-09 15:59:32 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-06-11 05:57:27 +0000 |
commit | 2dd31c0c7e4f23233830ceb09724896cfe50541c (patch) | |
tree | 7b4c66d1ac6b99f2dcf8e1dffee2485a9add4ed0 | |
parent | 0d11e89afe3ac74dbdc0a77377f5a1b6a2dc760c (diff) | |
download | chrome-ec-2dd31c0c7e4f23233830ceb09724896cfe50541c.tar.gz |
boten: remove DB type-C port and peripheral chips
Remove chips:
Charge chip - SM5803
TCPC and USB mux chip - ANX7447
USB retimer chip - TUSB544
BC1.2 chip - PI3USB9201
BUG=b:157626290, b:158023819
BRANCH=none
TEST=make buildall -j
Signed-off-by: xiong.huang <xiong.huang@bitland.corp-partner.google.com>
Change-Id: Iac30f683774368b2b5706c5f804caf549a54139a
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2235238
Reviewed-by: Diana Z <dzigterman@chromium.org>
-rw-r--r-- | baseboard/dedede/baseboard.h | 7 | ||||
-rw-r--r-- | board/boten/board.c | 176 | ||||
-rw-r--r-- | board/boten/board.h | 7 | ||||
-rw-r--r-- | board/boten/ec.tasklist | 5 | ||||
-rw-r--r-- | board/boten/gpio.inc | 4 | ||||
-rw-r--r-- | board/waddledee/board.h | 7 | ||||
-rw-r--r-- | board/waddledoo/board.h | 7 | ||||
-rw-r--r-- | board/wheelie/board.h | 7 |
8 files changed, 34 insertions, 186 deletions
diff --git a/baseboard/dedede/baseboard.h b/baseboard/dedede/baseboard.h index 940765137c..8b15a0f6ad 100644 --- a/baseboard/dedede/baseboard.h +++ b/baseboard/dedede/baseboard.h @@ -129,7 +129,6 @@ #define CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON 15001 #define CONFIG_USB_CHARGER #define CONFIG_TRICKLE_CHARGING -#undef CONFIG_CHARGER_SINGLE_CHIP /* Keyboard */ #define CONFIG_KEYBOARD_COL2_INVERTED @@ -229,12 +228,6 @@ #error "Must define a VARIANT_DEDEDE_EC!" #endif -enum chg_id { - CHARGER_PRIMARY, - CHARGER_SECONDARY, - CHARGER_NUM, -}; - /* Interrupt handler for signals that are used to generate ALL_SYS_PGOOD. */ void baseboard_all_sys_pgood_interrupt(enum gpio_signal signal); diff --git a/board/boten/board.c b/board/boten/board.c index 5730749735..17d0066258 100644 --- a/board/boten/board.c +++ b/board/boten/board.c @@ -14,9 +14,7 @@ #include "driver/bc12/pi3usb9201.h" #include "driver/charger/sm5803.h" #include "driver/sync.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" @@ -44,9 +42,6 @@ #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); @@ -81,41 +76,6 @@ static void usb_c0_interrupt(enum gpio_signal s) 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, 0); - 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"); @@ -132,25 +92,15 @@ const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = { .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, - }, }; const unsigned int chg_cnt = ARRAY_SIZE(chg_chips); @@ -160,23 +110,6 @@ 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 */ @@ -187,41 +120,16 @@ const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = { .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); gpio_enable_interrupt(GPIO_USB_C0_CCSBU_OVP_ODL); /* 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); - board_power_5v_enable(on); + sm5803_configure_gpio0(CHARGER_SOLO, GPIO0_MODE_PROCHOT, 1); + sm5803_configure_chg_det_od(CHARGER_SOLO, 1); } DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT); @@ -233,34 +141,12 @@ void board_reset_pd_mcu(void) */ } -__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); - 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) + * TODO(b/157626290): Boten will use one TCPC RAA489000. */ - 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; } @@ -268,12 +154,10 @@ uint16_t tcpc_get_alert_status(void) int extpower_is_present(void) { int chg0 = 0; - int chg1 = 0; sm5803_get_chg_det(0, &chg0); - sm5803_get_chg_det(1, &chg1); - return chg0 || chg1; + return chg0; } void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, @@ -290,55 +174,9 @@ void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, int board_set_active_charge_port(int port) { - int is_valid_port = (port >= 0 && port < CONFIG_USB_PD_PORT_MAX_COUNT); - int p0_otg, p1_otg; - - if (!is_valid_port && port != CHARGE_PORT_NONE) - return EC_ERROR_INVAL; - - /* TODO(b/147440290): charger functions should take chgnum */ - p0_otg = chg_chips[0].drv->is_sourcing_otg_power(0, 0); - p1_otg = chg_chips[1].drv->is_sourcing_otg_power(1, 1); - - if (port == CHARGE_PORT_NONE) { - CPRINTUSB("Disabling all charge ports"); - - if (!p0_otg) - chg_chips[0].drv->set_mode(0, - CHARGE_FLAG_INHIBIT_CHARGE); - if (!p1_otg) - chg_chips[1].drv->set_mode(1, - CHARGE_FLAG_INHIBIT_CHARGE); - - return EC_SUCCESS; - } - - CPRINTUSB("New chg p%d", port); - /* - * Charger task will take care of enabling charging on the new charge - * port. Here, we ensure the other port is not charging by changing - * CHG_EN + * TODO(b/157626290): Boten will use one charge RAA489000. */ - if (port == 0) { - if (p0_otg) { - CPRINTUSB("Skip enable p%d", port); - return EC_ERROR_INVAL; - } - if (!p1_otg) { - chg_chips[1].drv->set_mode(1, - CHARGE_FLAG_INHIBIT_CHARGE); - } - } else { - if (p1_otg) { - CPRINTUSB("Skip enable p%d", port); - return EC_ERROR_INVAL; - } - if (!p0_otg) { - chg_chips[0].drv->set_mode(0, - CHARGE_FLAG_INHIBIT_CHARGE); - } - } return EC_SUCCESS; } @@ -360,7 +198,7 @@ __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) + if (port != 0) return; current = (rp == TYPEC_RP_3A0) ? 3000 : 1500; diff --git a/board/boten/board.h b/board/boten/board.h index 8452a98acf..be1adabdcf 100644 --- a/board/boten/board.h +++ b/board/boten/board.h @@ -22,7 +22,7 @@ #define CONFIG_BC12_DETECT_PI3USB9201 /* Charger */ -#define CONFIG_CHARGER_SM5803 /* C0 and C1: Charger */ +#define CONFIG_CHARGER_SM5803 /* C0 Charger */ #define CONFIG_USB_PD_VBUS_DETECT_CHARGER #define CONFIG_USB_PD_5V_CHARGER_CTRL #define CONFIG_CHARGER_OTG @@ -57,8 +57,9 @@ #define CONFIG_GMR_TABLET_MODE /* TCPC */ +#undef CONFIG_USB_PD_PORT_MAX_COUNT +#define CONFIG_USB_PD_PORT_MAX_COUNT 1 #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 */ @@ -71,8 +72,6 @@ #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" diff --git a/board/boten/ec.tasklist b/board/boten/ec.tasklist index 607a1407fd..7a73a8fdcc 100644 --- a/board/boten/ec.tasklist +++ b/board/boten/ec.tasklist @@ -11,7 +11,6 @@ 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, VENTI_TASK_STACK_SIZE) \ TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \ TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \ @@ -19,6 +18,4 @@ TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \ TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \ TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \ - TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \ - TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \ - TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, VENTI_TASK_STACK_SIZE) + TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) diff --git a/board/boten/gpio.inc b/board/boten/gpio.inc index cfa9841d5e..6f7286792b 100644 --- a/board/boten/gpio.inc +++ b/board/boten/gpio.inc @@ -30,8 +30,6 @@ GPIO_INT(UART1_RX, PIN(B, 0), GPIO_INT_BOTH, uart_deepsleep_interrupt) /* UART_ /* 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 */ @@ -102,12 +100,14 @@ GPIO(EC_ENTERING_RW, PIN(G, 0), GPIO_OUT_LOW) GPIO(CCD_MODE_ODL, PIN(H, 5), GPIO_INPUT) GPIO(EC_BATTERY_PRES_ODL, PIN(I, 4), GPIO_INPUT) GPIO(PEN_DET_ODL, PIN(J, 1), GPIO_INPUT | GPIO_PULL_UP) +GPIO(EN_PP5000_PEN, PIN(B, 5), GPIO_OUT_LOW) 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(GPIOE6_NC, PIN(E, 6), 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) diff --git a/board/waddledee/board.h b/board/waddledee/board.h index 8452a98acf..faa3e1aa13 100644 --- a/board/waddledee/board.h +++ b/board/waddledee/board.h @@ -26,6 +26,7 @@ #define CONFIG_USB_PD_VBUS_DETECT_CHARGER #define CONFIG_USB_PD_5V_CHARGER_CTRL #define CONFIG_CHARGER_OTG +#undef CONFIG_CHARGER_SINGLE_CHIP /* LED */ #define CONFIG_LED_PWM_COUNT 1 @@ -78,6 +79,12 @@ #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, diff --git a/board/waddledoo/board.h b/board/waddledoo/board.h index 6b09e34d3f..d4bdf284ac 100644 --- a/board/waddledoo/board.h +++ b/board/waddledoo/board.h @@ -24,6 +24,7 @@ #define CONFIG_CHARGER_SENSE_RESISTOR 10 #define CONFIG_OCPC_DEF_RBATT_MOHMS 22 /* R_DS(on) 11.6mOhm + 10mOhm sns rstr */ #define CONFIG_OCPC +#undef CONFIG_CHARGER_SINGLE_CHIP /* EC console commands */ #define CONFIG_CMD_TCPC_DUMP @@ -100,6 +101,12 @@ #include "gpio_signal.h" #include "registers.h" +enum chg_id { + CHARGER_PRIMARY, + CHARGER_SECONDARY, + CHARGER_NUM, +}; + enum adc_channel { ADC_TEMP_SENSOR_1, /* ADC0 */ ADC_TEMP_SENSOR_2, /* ADC1 */ diff --git a/board/wheelie/board.h b/board/wheelie/board.h index 91054cd6fd..fbeb23f576 100644 --- a/board/wheelie/board.h +++ b/board/wheelie/board.h @@ -27,6 +27,7 @@ #define CONFIG_USB_PD_VBUS_DETECT_CHARGER #define CONFIG_USB_PD_5V_CHARGER_CTRL #define CONFIG_CHARGER_OTG +#undef CONFIG_CHARGER_SINGLE_CHIP /* LED */ #define CONFIG_LED_PWM_COUNT 1 @@ -79,6 +80,12 @@ #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, |