diff options
author | Hank.Xie <hank.xie@quanta.corp-partner.google.com> | 2022-11-29 20:34:35 -0500 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-12-19 08:46:50 +0000 |
commit | 3c4a39c2352e6074d59afc49dccc03089f306da9 (patch) | |
tree | 6aed182b56cce2dc921984ebf3590903d27f0284 | |
parent | 27e224f04d5f2b0be0ad234644374e370bb2ee49 (diff) | |
download | chrome-ec-3c4a39c2352e6074d59afc49dccc03089f306da9.tar.gz |
gladios: Update board config for gladios
Update all configs to meet gladios's board:
1. Update USBC related config (including switching from 3 ports to 1
port, changing TCPC/USBC mux to RT1715/PS8818, removing TBT)
2. Update I2C ports
3. Update gpio config
4. Remove peripheral charger
BUG=b:239513596
BRANCH=none
TEST=make BOARD=gladios
Signed-off-by: Hank.Xie <hank.xie@quanta.corp-partner.google.com>
Change-Id: Ie208196c78396c54df7721f1022d2850bac9f9cf
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4060802
Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com>
Reviewed-by: Devin Lu <devin.lu@quantatw.com>
Reviewed-by: Ricky Chang <rickytlchang@chromium.org>
Commit-Queue: Ricky Chang <rickytlchang@chromium.org>
-rw-r--r-- | board/gladios/board.c | 83 | ||||
-rw-r--r-- | board/gladios/board.h | 66 | ||||
-rw-r--r-- | board/gladios/build.mk | 2 | ||||
-rw-r--r-- | board/gladios/ec.tasklist | 8 | ||||
-rw-r--r-- | board/gladios/gpio.inc | 105 | ||||
-rw-r--r-- | board/gladios/i2c.c | 48 | ||||
-rw-r--r-- | board/gladios/led.c | 2 | ||||
-rw-r--r-- | board/gladios/usbc_config.c | 304 | ||||
-rw-r--r-- | board/gladios/usbc_config.h | 11 |
9 files changed, 99 insertions, 530 deletions
diff --git a/board/gladios/board.c b/board/gladios/board.c index 318272f4c2..b0fad206c0 100644 --- a/board/gladios/board.c +++ b/board/gladios/board.c @@ -16,7 +16,6 @@ #include "gpio.h" #include "gpio_signal.h" #include "hooks.h" -#include "peripheral_charger.h" #include "power.h" #include "power_button.h" #include "switch.h" @@ -41,33 +40,6 @@ const int usb_port_enable[USB_PORT_COUNT] = { }; BUILD_ASSERT(ARRAY_SIZE(usb_port_enable) == USB_PORT_COUNT); -extern struct pchg_drv cps8100_drv; -struct pchg pchgs[] = { - [0] = { - .cfg = &(const struct pchg_config) { - .drv = &cps8100_drv, - .i2c_port = I2C_PORT_QI, - .irq_pin = GPIO_QI_INT_ODL, - .full_percent = 96, - .block_size = 128, - }, - .policy = { - [PCHG_CHIPSET_STATE_ON] = &pchg_policy_on, - [PCHG_CHIPSET_STATE_SUSPEND] = &pchg_policy_suspend, - }, - .events = QUEUE_NULL(PCHG_EVENT_QUEUE_SIZE, enum pchg_event), - }, -}; -const int pchg_count = ARRAY_SIZE(pchgs); - -__override void board_pchg_power_on(int port, bool on) -{ - if (port == 0) - gpio_set_level(GPIO_EC_QI_PWR, on); - else - CPRINTS("%s: Invalid port=%d", __func__, port); -} - /******************************************************************************/ int board_set_active_charge_port(int port) @@ -117,8 +89,6 @@ int board_set_active_charge_port(int port) switch (port) { case CHARGE_PORT_TYPEC0: - case CHARGE_PORT_TYPEC1: - case CHARGE_PORT_TYPEC2: gpio_set_level(GPIO_EN_PPVAR_BJ_ADP_L, 1); break; case CHARGE_PORT_BARRELJACK: @@ -199,7 +169,9 @@ static void update_5v_usage(void) */ if (rear_ports > 0) base_5v_power_s5 += PWR_S5_REAR_HIGH - PWR_S5_REAR_LOW; - if (!gpio_get_level(GPIO_HDMI_CONN_OC_ODL)) + if (!gpio_get_level(GPIO_HDMIA_CONN_OC_ODL)) + base_5v_power_s5 += PWR_S5_HDMI; + if (!gpio_get_level(GPIO_HDMIB_CONN_OC_ODL)) base_5v_power_s5 += PWR_S5_HDMI; base_5v_power_z1 = PWR_Z1_BASE_LOAD; if (usbc_overcurrent) @@ -278,7 +250,8 @@ DECLARE_HOOK(HOOK_INIT, adp_state_init, HOOK_PRIO_INIT_CHARGE_MANAGER + 1); static void board_init(void) { gpio_enable_interrupt(GPIO_BJ_ADP_PRESENT_ODL); - gpio_enable_interrupt(GPIO_HDMI_CONN_OC_ODL); + gpio_enable_interrupt(GPIO_HDMIA_CONN_OC_ODL); + gpio_enable_interrupt(GPIO_HDMIB_CONN_OC_ODL); gpio_enable_interrupt(GPIO_USB_A0_OC_ODL); gpio_enable_interrupt(GPIO_USB_A1_OC_ODL); gpio_enable_interrupt(GPIO_USB_A2_OC_ODL); @@ -336,8 +309,6 @@ void board_overcurrent_event(int port, int is_overcurrented) #define THROT_TYPE_A_FRONT BIT(0) #define THROT_TYPE_A_REAR BIT(1) #define THROT_TYPE_C0 BIT(2) -#define THROT_TYPE_C1 BIT(3) -#define THROT_TYPE_C2 BIT(4) #define THROT_PROCHOT BIT(5) /* @@ -462,26 +433,6 @@ static void power_monitor(void) gap += POWER_GAIN_TYPE_C; } /* - * If the type-C port is sourcing power, - * check whether it should be throttled. - */ - if (ppc_is_sourcing_vbus(1) && gap <= 0) { - new_state |= THROT_TYPE_C1; - headroom_5v_z1 += PWR_Z1_C_HIGH - PWR_Z1_C_LOW; - if (!(current_state & THROT_TYPE_C1)) - gap += POWER_GAIN_TYPE_C; - } - /* - * If the type-C port is sourcing power, - * check whether it should be throttled. - */ - if (ppc_is_sourcing_vbus(2) && gap <= 0) { - new_state |= THROT_TYPE_C2; - headroom_5v_z1 += PWR_Z1_C_HIGH - PWR_Z1_C_LOW; - if (!(current_state & THROT_TYPE_C2)) - gap += POWER_GAIN_TYPE_C; - } - /* * As a last resort, turn on PROCHOT to * throttle the CPU. */ @@ -562,35 +513,11 @@ static void power_monitor(void) tcpm_select_rp_value(0, rp); pd_update_contract(0); } - if (diff & THROT_TYPE_C1) { - enum tcpc_rp_value rp = (new_state & THROT_TYPE_C1) ? - TYPEC_RP_1A5 : - TYPEC_RP_3A0; - - ppc_set_vbus_source_current_limit(1, rp); - tcpm_select_rp_value(1, rp); - pd_update_contract(1); - } - if (diff & THROT_TYPE_C2) { - enum tcpc_rp_value rp = (new_state & THROT_TYPE_C2) ? - TYPEC_RP_1A5 : - TYPEC_RP_3A0; - - ppc_set_vbus_source_current_limit(2, rp); - tcpm_select_rp_value(2, rp); - pd_update_contract(2); - } if (diff & THROT_TYPE_A_REAR) { int typea_bc = (new_state & THROT_TYPE_A_REAR) ? 1 : 0; gpio_set_level(GPIO_USB_A_LOW_PWR0_OD, typea_bc); gpio_set_level(GPIO_USB_A_LOW_PWR1_OD, typea_bc); } - if (diff & THROT_TYPE_A_FRONT) { - int typea_bc = (new_state & THROT_TYPE_A_FRONT) ? 1 : 0; - - gpio_set_level(GPIO_USB_A_LOW_PWR2_OD, typea_bc); - gpio_set_level(GPIO_USB_A_LOW_PWR3_OD, typea_bc); - } hook_call_deferred(&power_monitor_data, delay); } diff --git a/board/gladios/board.h b/board/gladios/board.h index 7afa678c12..16587c32ec 100644 --- a/board/gladios/board.h +++ b/board/gladios/board.h @@ -3,7 +3,7 @@ * found in the LICENSE file. */ -/* Brask board configuration */ +/* Gladios board configuration */ #ifndef __CROS_EC_BOARD_H #define __CROS_EC_BOARD_H @@ -13,34 +13,24 @@ /* Baseboard features */ #include "baseboard.h" -#define CONFIG_MP2964 - /* Barrel Jack */ -#define DEDICATED_CHARGE_PORT 3 +#define DEDICATED_CHARGE_PORT 1 /* HDMI CEC */ #define CONFIG_CEC -#define CEC_GPIO_OUT GPIO_HDMI_CEC_OUT -#define CEC_GPIO_IN GPIO_HDMI_CEC_IN -#define CEC_GPIO_PULL_UP GPIO_HDMI_CEC_PULL_UP +#define CEC_GPIO_OUT GPIO_HDMIB_CEC_OUT +#define CEC_GPIO_IN GPIO_HDMIB_CEC_IN +#define CEC_GPIO_PULL_UP GPIO_HDMIB_CEC_PULL_UP /* USB Type A Features */ #define USB_PORT_COUNT 4 #define CONFIG_USB_PORT_POWER_DUMB +#define CONFIG_USBC_RETIMER_PS8811 /* USB Type C and USB PD defines */ -#define CONFIG_USB_PD_REQUIRE_AP_MODE_ENTRY - -#define CONFIG_IO_EXPANDER -#define CONFIG_IO_EXPANDER_NCT38XX -#define CONFIG_IO_EXPANDER_PORT_COUNT 2 - #define CONFIG_USB_PD_PPC #define CONFIG_USB_PD_TCPM_RT1715 -#define CONFIG_USBC_RETIMER_INTEL_BB - -#define CONFIG_USBC_RETIMER_KB800X -#define CONFIG_KB800X_CUSTOM_XBAR +#define CONFIG_USBC_RETIMER_PS8818 #define CONFIG_USBC_PPC_SYV682X #undef CONFIG_SYV682X_HV_ILIM #define CONFIG_SYV682X_HV_ILIM SYV682X_HV_ILIM_5_50 @@ -92,42 +82,18 @@ #define GPIO_RECOVERY_L_2 GPIO_GSC_EC_RECOVERY_BTN_OD /* I2C Bus Configuration */ +#define I2C_PORT_USB_C0_TCPC NPCX_I2C_PORT1_0 -#define I2C_PORT_DP_REDRIVER NPCX_I2C_PORT0_0 +#define I2C_PORT_USB_C0_PPC_BC12 NPCX_I2C_PORT2_0 -#define I2C_PORT_USB_C0_C2_TCPC NPCX_I2C_PORT1_0 -#define I2C_PORT_USB_C1_TCPC NPCX_I2C_PORT4_1 +#define I2C_PORT_USB_C0_MUX NPCX_I2C_PORT3_0 -#define I2C_PORT_USB_C0_C2_PPC NPCX_I2C_PORT2_0 -#define I2C_PORT_USB_C1_PPC NPCX_I2C_PORT6_1 +#define I2C_PORT_USB_A2_A3_RT NPCX_I2C_PORT6_1 -#define I2C_PORT_USB_C0_C2_BC12 NPCX_I2C_PORT2_0 -#define I2C_PORT_USB_C1_BC12 NPCX_I2C_PORT6_1 - -#define I2C_PORT_USB_C0_C2_MUX NPCX_I2C_PORT3_0 -#define I2C_PORT_USB_C1_MUX NPCX_I2C_PORT6_1 - -#define I2C_PORT_QI NPCX_I2C_PORT5_0 #define I2C_PORT_EEPROM NPCX_I2C_PORT7_0 -#define I2C_PORT_MP2964 NPCX_I2C_PORT7_0 #define I2C_ADDR_EEPROM_FLAGS 0x50 -#define I2C_ADDR_MP2964_FLAGS 0x20 - -#define USBC_PORT_C0_BB_RETIMER_I2C_ADDR 0x58 -#define USBC_PORT_C2_BB_RETIMER_I2C_ADDR 0x59 - -/* Enabling Thunderbolt-compatible mode */ -#define CONFIG_USB_PD_TBT_COMPAT_MODE - -/* Enabling USB4 mode */ -#define CONFIG_USB_PD_USB4 -#define CONFIG_USB_PD_DATA_RESET_MSG - -/* Retimer */ -#define CONFIG_USBC_RETIMER_FW_UPDATE - /* Thermal features */ #define CONFIG_THERMISTOR #define CONFIG_TEMP_SENSOR @@ -146,12 +112,6 @@ /* Include math_util for bitmask_uint64 used in pd_timers */ #define CONFIG_MATH_UTIL -/* WPC/Qi charger */ -#ifdef SECTION_IS_RW -#define CONFIG_PERIPHERAL_CHARGER -#define CONFIG_CPS8100 -#endif - #ifndef __ASSEMBLER__ #include "gpio_signal.h" /* needed by registers.h */ @@ -160,8 +120,6 @@ enum charge_port { CHARGE_PORT_TYPEC0, - CHARGE_PORT_TYPEC1, - CHARGE_PORT_TYPEC2, CHARGE_PORT_BARRELJACK, CHARGE_PORT_ENUM_COUNT }; @@ -184,8 +142,6 @@ enum temp_sensor_id { TEMP_SENSOR_COUNT }; -enum ioex_port { IOEX_C0_NCT38XX = 0, IOEX_C2_NCT38XX, IOEX_PORT_COUNT }; - enum pwm_channel { PWM_CH_LED_GREEN, /* PWM0 */ PWM_CH_FAN, /* PWM5 */ diff --git a/board/gladios/build.mk b/board/gladios/build.mk index 3de758d1bd..637cdc2c22 100644 --- a/board/gladios/build.mk +++ b/board/gladios/build.mk @@ -3,7 +3,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # -# Brask board specific files build +# Gladios board specific files build # CHIP:=npcx diff --git a/board/gladios/ec.tasklist b/board/gladios/ec.tasklist index d16fc35f52..072252f0cd 100644 --- a/board/gladios/ec.tasklist +++ b/board/gladios/ec.tasklist @@ -12,18 +12,12 @@ #define CONFIG_TASK_LIST \ TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \ - TASK_ALWAYS_RW(PCHG, pchg_task, NULL, LARGER_TASK_STACK_SIZE) \ TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \ - TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 0, TASK_STACK_SIZE) \ - TASK_ALWAYS(USB_CHG_P2, usb_charger_task, 0, TASK_STACK_SIZE) \ TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \ TASK_ALWAYS(USB_MUX, usb_mux_task, NULL, VENTI_TASK_STACK_SIZE) \ TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \ TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \ TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_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_C2, pd_task, NULL, VENTI_TASK_STACK_SIZE) \ - TASK_ALWAYS(PD_INT_C0, pd_shared_alert_task, (BIT(2) | BIT(0)), LARGER_TASK_STACK_SIZE) \ - TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, LARGER_TASK_STACK_SIZE) \ + TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, LARGER_TASK_STACK_SIZE) \ TASK_ALWAYS(CEC, cec_task, NULL, LARGER_TASK_STACK_SIZE) diff --git a/board/gladios/gpio.inc b/board/gladios/gpio.inc index 51cf0010c6..958b36c619 100644 --- a/board/gladios/gpio.inc +++ b/board/gladios/gpio.inc @@ -20,25 +20,14 @@ GPIO_INT(SYS_SLP_S0IX_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_inte GPIO_INT(USB_C0_BC12_INT_ODL, PIN(C, 6), GPIO_INT_FALLING, bc12_interrupt) GPIO_INT(USB_C0_C2_TCPC_INT_ODL, PIN(E, 0), GPIO_INT_FALLING, tcpc_alert_event) GPIO_INT(USB_C0_PPC_INT_ODL, PIN(6, 2), GPIO_INT_FALLING, ppc_interrupt) -GPIO_INT(USB_C0_RT_INT_ODL, PIN(B, 1), GPIO_INT_FALLING, retimer_interrupt) -GPIO_INT(USB_C1_BC12_INT_ODL, PIN(5, 0), GPIO_INT_FALLING, bc12_interrupt) -GPIO_INT(USB_C1_PPC_INT_ODL, PIN(F, 5), GPIO_INT_FALLING, ppc_interrupt) -GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(A, 2), GPIO_INT_FALLING, tcpc_alert_event) -GPIO_INT(USB_C2_BC12_INT_ODL, PIN(8, 3), GPIO_INT_FALLING, bc12_interrupt) -GPIO_INT(USB_C2_PPC_INT_ODL, PIN(7, 0), GPIO_INT_FALLING, ppc_interrupt) -GPIO_INT(USB_C2_RT_INT_ODL, PIN(4, 1), GPIO_INT_FALLING, retimer_interrupt) GPIO_INT(BJ_ADP_PRESENT_ODL, PIN(8, 2), GPIO_INT_BOTH | GPIO_PULL_UP, adp_connect_interrupt) GPIO_INT(EC_RECOVERY_BTN_OD, PIN(2, 3), GPIO_INT_BOTH, button_interrupt) -GPIO_INT(HDMI_CONN_OC_ODL, PIN(2, 4), GPIO_INPUT | GPIO_INT_BOTH, port_ocp_interrupt) +GPIO_INT(HDMIA_CONN_OC_ODL, PIN(5, 0), GPIO_INPUT | GPIO_INT_BOTH, port_ocp_interrupt) +GPIO_INT(HDMIB_CONN_OC_ODL, PIN(2, 4), GPIO_INPUT | GPIO_INT_BOTH, port_ocp_interrupt) GPIO_INT(USB_A0_OC_ODL, PIN(3, 1), GPIO_INPUT | GPIO_PULL_UP | GPIO_INT_BOTH, port_ocp_interrupt) GPIO_INT(USB_A1_OC_ODL, PIN(3, 0), GPIO_INPUT | GPIO_PULL_UP | GPIO_INT_BOTH, port_ocp_interrupt) GPIO_INT(USB_A2_OC_ODL, PIN(2, 7), GPIO_INPUT | GPIO_PULL_UP | GPIO_INT_BOTH, port_ocp_interrupt) GPIO_INT(USB_A3_OC_ODL, PIN(2, 6), GPIO_INPUT | GPIO_PULL_UP | GPIO_INT_BOTH, port_ocp_interrupt) -#ifdef SECTION_IS_RW -GPIO_INT(QI_INT_ODL, PIN(9, 6), GPIO_INT_FALLING, pchg_irq) -#else -UNIMPLEMENTED(QI_INT_ODL) -#endif /* CCD */ GPIO(CCD_MODE_ODL, PIN(E, 5), GPIO_INPUT) @@ -53,10 +42,6 @@ GPIO(EN_PP5000_FAN, PIN(6, 1), GPIO_OUT_HIGH) /* ADC, need to check the usage */ GPIO(ANALOG_PPVAR_PWR_IN_IMON_EC, PIN(4, 2), GPIO_INPUT) -/* Display */ -GPIO(DP_CONN_OC_ODL, PIN(2, 5), GPIO_INPUT) - - /* BarrelJack */ GPIO(EN_PPVAR_BJ_ADP_L, PIN(0, 7), GPIO_OUT_LOW) @@ -79,51 +64,33 @@ GPIO(CPU_C10_GATE_L, PIN(6, 7), GPIO_INPUT) GPIO(EC_PCH_PWR_BTN_ODL, PIN(C, 1), GPIO_ODR_HIGH) GPIO(GSC_EC_RECOVERY_BTN_OD, PIN(2, 2), GPIO_INPUT) -/* NFC */ -/* TODO(b/194068530): Enable NFC */ -GPIO(NFC_COIL_ACT_L, PIN(D, 4), GPIO_INPUT) -GPIO(NFC_LOW_POWER_MODE, PIN(9, 5), GPIO_OUT_HIGH) -GPIO(NFC_CARD_DET_L, PIN(A, 3), GPIO_INPUT) -GPIO(EN_NFC_BUZZER, PIN(0, 5), GPIO_OUT_LOW) - -/* Wireless Charger */ -GPIO(EC_QI_PWR, PIN(D, 2), GPIO_OUT_LOW) -GPIO(QI_RESET_L, PIN(9, 3), GPIO_OUT_HIGH) - /* HDMI CEC */ /* TODO(b/197474873): Enable HDMI CEC */ -GPIO(HDMI_CEC_IN, PIN(4, 0), GPIO_INPUT) -GPIO(HDMI_CEC_OUT, PIN(D, 3), GPIO_OUT_HIGH | GPIO_OPEN_DRAIN) -GPIO(HDMI_CEC_PULL_UP, PIN(C, 2), GPIO_OUT_HIGH) +GPIO(HDMIB_CEC_IN, PIN(4, 0), GPIO_INPUT) +GPIO(HDMIB_CEC_OUT, PIN(D, 3), GPIO_OUT_HIGH | GPIO_OPEN_DRAIN) +GPIO(HDMIB_CEC_PULL_UP, PIN(C, 2), GPIO_OUT_HIGH) +GPIO(HDMIA_CEC_IN, PIN(A, 7), GPIO_INPUT) +GPIO(HDMIA_CEC_OUT, PIN(F, 2), GPIO_OUT_HIGH | GPIO_OPEN_DRAIN) +GPIO(HDMIA_CEC_PULL_UP, PIN(F, 3), GPIO_OUT_HIGH) /* I2C SCL/SDA */ -GPIO(EC_I2C_QI_SCL, PIN(3, 3), GPIO_INPUT) -GPIO(EC_I2C_QI_SDA, PIN(3, 6), GPIO_INPUT) GPIO(EC_I2C_MISC_SCL_R, PIN(B, 3), GPIO_INPUT) GPIO(EC_I2C_MISC_SDA_R, PIN(B, 2), GPIO_INPUT) -GPIO(EC_I2C_DP_SCL, PIN(B, 5), GPIO_INPUT) -GPIO(EC_I2C_DP_SDA, PIN(B, 4), GPIO_INPUT) -GPIO(EC_I2C_USB_C0_C2_PPC_SCL, PIN(9, 2), GPIO_INPUT) -GPIO(EC_I2C_USB_C0_C2_PPC_SDA, PIN(9, 1), GPIO_INPUT) +GPIO(EC_I2C_USB_C0_C2_PPC_BC_SCL, PIN(9, 2), GPIO_INPUT) +GPIO(EC_I2C_USB_C0_C2_PPC_BC_SDA, PIN(9, 1), GPIO_INPUT) GPIO(EC_I2C_USB_C0_C2_RT_SCL, PIN(D, 1), GPIO_INPUT) GPIO(EC_I2C_USB_C0_C2_RT_SDA, PIN(D, 0), GPIO_INPUT) GPIO(EC_I2C_USB_C0_C2_TCPC_SCL, PIN(9, 0), GPIO_INPUT) GPIO(EC_I2C_USB_C0_C2_TCPC_SDA, PIN(8, 7), GPIO_INPUT) -GPIO(EC_I2C_USB_C1_MIX_SCL, PIN(E, 4), GPIO_INPUT) -GPIO(EC_I2C_USB_C1_MIX_SDA, PIN(E, 3), GPIO_INPUT) -GPIO(EC_I2C_USB_C1_TCPC_SCL, PIN(F, 3), GPIO_INPUT) -GPIO(EC_I2C_USB_C1_TCPC_SDA, PIN(F, 2), GPIO_INPUT) +GPIO(EC_I2C_USB_A2_A3_SCL, PIN(E, 4), GPIO_INPUT) +GPIO(EC_I2C_USB_A2_A3_SDA, PIN(E, 3), GPIO_INPUT) /* USBA */ GPIO(EN_PP5000_USBA, PIN(D, 7), GPIO_OUT_LOW) GPIO(USB_A0_STATUS_L, PIN(2, 1), GPIO_INPUT) GPIO(USB_A1_STATUS_L, PIN(2, 0), GPIO_INPUT) -GPIO(USB_A2_STATUS_L, PIN(1, 7), GPIO_INPUT) -GPIO(USB_A3_STATUS_L, PIN(1, 6), GPIO_INPUT) GPIO(USB_A_LOW_PWR0_OD, PIN(1, 5), GPIO_INPUT | GPIO_PULL_DOWN) GPIO(USB_A_LOW_PWR1_OD, PIN(1, 4), GPIO_INPUT | GPIO_PULL_DOWN) -GPIO(USB_A_LOW_PWR2_OD, PIN(1, 1), GPIO_INPUT | GPIO_PULL_DOWN) -GPIO(USB_A_LOW_PWR3_OD, PIN(1, 0), GPIO_INPUT | GPIO_PULL_DOWN) GPIO(USB_A_OC_SOC_L, PIN(8, 0), GPIO_OUT_HIGH) /* LED */ @@ -132,35 +99,19 @@ GPIO(LED_GREEN_L, PIN(C, 3), GPIO_OUT_LOW) GPIO(LED_RED_L, PIN(C, 4), GPIO_OUT_LOW) /* USBC */ -GPIO(USB_C0_C2_TCPC_RST_ODL, PIN(A, 7), GPIO_ODR_LOW) -GPIO(USB_C1_FRS_EN, PIN(9, 4), GPIO_OUT_LOW) -GPIO(USB_C1_RT_INT_ODL, PIN(A, 0), GPIO_INPUT) -GPIO(USB_C1_RT_RST_R_L, PIN(0, 2), GPIO_OUT_LOW) - -/* GPIO02_P2 to PU */ -/* GPIO03_P2 to PU */ -IOEX(USB_C0_OC_ODL, EXPIN(IOEX_C0_NCT38XX, 0, 4), GPIO_ODR_HIGH) -IOEX(USB_C0_FRS_EN, EXPIN(IOEX_C0_NCT38XX, 0, 6), GPIO_LOW) -IOEX(USB_C0_RT_RST_ODL, EXPIN(IOEX_C0_NCT38XX, 0, 7), GPIO_ODR_LOW) - -IOEX(USB_C2_RT_RST_ODL, EXPIN(IOEX_C2_NCT38XX, 0, 2), GPIO_ODR_LOW) -IOEX(USB_C1_OC_ODL, EXPIN(IOEX_C2_NCT38XX, 0, 3), GPIO_ODR_HIGH) -IOEX(USB_C2_OC_ODL, EXPIN(IOEX_C2_NCT38XX, 0, 4), GPIO_ODR_HIGH) -IOEX(USB_C2_FRS_EN, EXPIN(IOEX_C2_NCT38XX, 0, 6), GPIO_LOW) -/* GPIO07_P2 to PU */ +GPIO(USB_C0_FRS_EN, PIN(9, 4), GPIO_OUT_LOW) +GPIO(USB_C0_HPD, PIN(0, 4), GPIO_OUT_LOW) +GPIO(USB_C0_OC_ODL, PIN(7, 0), GPIO_OUT_LOW) /* UART alternate functions */ ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* GPIO64/CR_SIN1, GPO65/CR_SOUT1/FLPRG1_L */ /* I2C alternate functions */ -ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* GPIO33/I2C5_SCL0/CTS_L, GPIO36/RTS_L/I2C5_SDA0 */ ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* GPIO87/I2C1_SDA0 */ ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* GPIO92/I2C2_SCL0, GPIO91/I2C2_SDA0, GPIO90/I2C1_SCL0 */ ALTERNATE(PIN_MASK(B, 0x0c), 0, MODULE_I2C, 0) /* GPIOB3/I2C7_SCL0/DCD_L, GPIOB2/I2C7_SDA0/DSR_L */ -ALTERNATE(PIN_MASK(B, 0x30), 0, MODULE_I2C, 0) /* GPIOB5/I2C0_SCL0, GPIOB4/I2C0_SDA0 */ ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* GPIOD1/I2C3_SCL0, GPIOD0/I2C3_SDA0 */ ALTERNATE(PIN_MASK(E, 0x18), 0, MODULE_I2C, 0) /* GPIOE4/I2C6_SCL1/I3C_SCL, GPIOE3/I2C6_SDA1/I3C_SDA */ -ALTERNATE(PIN_MASK(F, 0x0c), 0, MODULE_I2C, 0) /* GPIOF3/I2C4_SCL1, GPIOF2/I2C4_SDA1 */ /* PWM alternate functions */ ALTERNATE(PIN_MASK(7, 0x08), 0, MODULE_PWM, 0) /* GPIO73/TA2 */ @@ -172,6 +123,9 @@ ALTERNATE(PIN_MASK(3, 0x10), 0, MODULE_ADC, 0) /* GPIO34/PS2_DAT2/ ALTERNATE(PIN_MASK(4, 0x38), 0, MODULE_ADC, 0) /* GPIO45/ADC0, GPIO44/ADC1, GPIO43/ADC2 */ ALTERNATE(PIN_MASK(E, 0x02), 0, MODULE_ADC, 0) /* GPIOE1/ADC7 */ +/* NC pins, enable internal pull-down to avoid floating state. */ +GPIO(GPIO02_NC, PIN(0, 2), GPIO_INPUT | GPIO_PULL_DOWN) + /* Unused Pins */ UNUSED(PIN(D, 6)) /* GPOD6/CR_SOUT3/SHDF_ESPI_L */ UNUSED(PIN(3, 2)) /* GPO32/TRIS_L */ @@ -184,4 +138,25 @@ UNUSED(PIN(8, 6)) /* GPIO86/TXD/CR_SOUT2 */ UNUSED(PIN(1, 3)) /* KSO06/GPO13/GP_SEL# */ UNUSED(PIN(1, 2)) /* KSO07/GPO12/JEN# */ UNUSED(PIN(0, 6)) /* KSO11/GPIO06/P80_CLK */ -UNUSED(PIN(0, 4)) /* KSO13/GPIO04 */ +UNUSED(PIN(A, 0)) +UNUSED(PIN(A, 2)) +UNUSED(PIN(A, 3)) +UNUSED(PIN(B, 1)) +UNUSED(PIN(B, 5)) +UNUSED(PIN(B, 4)) +UNUSED(PIN(D, 2)) +UNUSED(PIN(D, 4)) +UNUSED(PIN(F, 5)) +UNUSED(PIN(0, 5)) +UNUSED(PIN(1, 1)) +UNUSED(PIN(1, 0)) +UNUSED(PIN(1, 7)) +UNUSED(PIN(1, 6)) +UNUSED(PIN(2, 5)) +UNUSED(PIN(3, 3)) +UNUSED(PIN(3, 6)) +UNUSED(PIN(4, 1)) +UNUSED(PIN(8, 3)) +UNUSED(PIN(9, 3)) +UNUSED(PIN(9, 5)) +UNUSED(PIN(9, 6)) diff --git a/board/gladios/i2c.c b/board/gladios/i2c.c index 45eba1e13c..a58f75bfa7 100644 --- a/board/gladios/i2c.c +++ b/board/gladios/i2c.c @@ -10,60 +10,36 @@ /* I2C port map configuration */ const struct i2c_port_t i2c_ports[] = { { - /* I2C0 */ - .name = "dp_redriver", - .port = I2C_PORT_DP_REDRIVER, - .kbps = 400, - .scl = GPIO_EC_I2C_DP_SCL, - .sda = GPIO_EC_I2C_DP_SDA, - }, - { /* I2C1 */ - .name = "tcpc0,2", - .port = I2C_PORT_USB_C0_C2_TCPC, + .name = "tcpc0", + .port = I2C_PORT_USB_C0_TCPC, .kbps = 1000, .scl = GPIO_EC_I2C_USB_C0_C2_TCPC_SCL, .sda = GPIO_EC_I2C_USB_C0_C2_TCPC_SDA, }, { /* I2C2 */ - .name = "ppc0,2", - .port = I2C_PORT_USB_C0_C2_PPC, + .name = "ppc, bc1.2 c0", + .port = I2C_PORT_USB_C0_PPC_BC12, .kbps = 1000, - .scl = GPIO_EC_I2C_USB_C0_C2_PPC_SCL, - .sda = GPIO_EC_I2C_USB_C0_C2_PPC_SDA, + .scl = GPIO_EC_I2C_USB_C0_C2_PPC_BC_SCL, + .sda = GPIO_EC_I2C_USB_C0_C2_PPC_BC_SDA, }, { /* I2C3 */ - .name = "retimer0,2", - .port = I2C_PORT_USB_C0_C2_MUX, + .name = "retimer0", + .port = I2C_PORT_USB_C0_MUX, .kbps = 1000, .scl = GPIO_EC_I2C_USB_C0_C2_RT_SCL, .sda = GPIO_EC_I2C_USB_C0_C2_RT_SDA, }, { - /* I2C4 C1 TCPC */ - .name = "tcpc1", - .port = I2C_PORT_USB_C1_TCPC, - .kbps = 400, - .scl = GPIO_EC_I2C_USB_C1_TCPC_SCL, - .sda = GPIO_EC_I2C_USB_C1_TCPC_SDA, - }, - { - /* I2C5 */ - .name = "wireless_charger", - .port = I2C_PORT_QI, - .kbps = 400, - .scl = GPIO_EC_I2C_QI_SCL, - .sda = GPIO_EC_I2C_QI_SDA, - }, - { /* I2C6 */ - .name = "ppc1", - .port = I2C_PORT_USB_C1_PPC, + .name = "usba2_retimer, usba3_retimer", + .port = I2C_PORT_USB_A2_A3_RT, .kbps = 1000, - .scl = GPIO_EC_I2C_USB_C1_MIX_SCL, - .sda = GPIO_EC_I2C_USB_C1_MIX_SDA, + .scl = GPIO_EC_I2C_USB_A2_A3_SCL, + .sda = GPIO_EC_I2C_USB_A2_A3_SDA, }, { /* I2C7 */ diff --git a/board/gladios/led.c b/board/gladios/led.c index a4b9a0d094..71a632a47c 100644 --- a/board/gladios/led.c +++ b/board/gladios/led.c @@ -2,7 +2,7 @@ * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. * - * Power LED control for Brask. + * Power LED control for Gladios. * Solid green - active power * Green flashing - suspended * Red flashing - alert diff --git a/board/gladios/usbc_config.c b/board/gladios/usbc_config.c index 125b443f8c..c010eb1333 100644 --- a/board/gladios/usbc_config.c +++ b/board/gladios/usbc_config.c @@ -8,16 +8,13 @@ #include "console.h" #include "driver/bc12/pi3usb9201_public.h" #include "driver/ppc/syv682x_public.h" -#include "driver/retimer/bb_retimer_public.h" -#include "driver/retimer/kb800x.h" -#include "driver/tcpm/nct38xx.h" +#include "driver/retimer/ps8818_public.h" #include "driver/tcpm/rt1715.h" #include "driver/tcpm/tcpci.h" #include "ec_commands.h" #include "gpio.h" #include "gpio_signal.h" #include "hooks.h" -#include "ioexpander.h" #include "system.h" #include "task.h" #include "task_id.h" @@ -40,30 +37,11 @@ const struct tcpc_config_t tcpc_config[] = { [USBC_PORT_C0] = { .bus_type = EC_BUS_TYPE_I2C, .i2c_info = { - .port = I2C_PORT_USB_C0_C2_TCPC, - .addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS, - }, - .drv = &nct38xx_tcpm_drv, - .flags = TCPC_FLAGS_TCPCI_REV2_0 | - TCPC_FLAGS_NO_DEBUG_ACC_CONTROL, - }, - [USBC_PORT_C1] = { - .bus_type = EC_BUS_TYPE_I2C, - .i2c_info = { - .port = I2C_PORT_USB_C1_TCPC, + .port = I2C_PORT_USB_C0_TCPC, .addr_flags = RT1715_I2C_ADDR_FLAGS, }, .drv = &rt1715_tcpm_drv, }, - [USBC_PORT_C2] = { - .bus_type = EC_BUS_TYPE_I2C, - .i2c_info = { - .port = I2C_PORT_USB_C0_C2_TCPC, - .addr_flags = NCT38XX_I2C_ADDR2_1_FLAGS, - }, - .drv = &nct38xx_tcpm_drv, - .flags = TCPC_FLAGS_TCPCI_REV2_0, - }, }; BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == USBC_PORT_COUNT); BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT); @@ -71,17 +49,7 @@ BUILD_ASSERT(CONFIG_USB_PD_PORT_MAX_COUNT == USBC_PORT_COUNT); /* USBC PPC configuration */ struct ppc_config_t ppc_chips[] = { [USBC_PORT_C0] = { - .i2c_port = I2C_PORT_USB_C0_C2_PPC, - .i2c_addr_flags = SYV682X_ADDR0_FLAGS, - .drv = &syv682x_drv, - }, - [USBC_PORT_C1] = { - .i2c_port = I2C_PORT_USB_C1_PPC, - .i2c_addr_flags = SYV682X_ADDR0_FLAGS, - .drv = &syv682x_drv, - }, - [USBC_PORT_C2] = { - .i2c_port = I2C_PORT_USB_C0_C2_PPC, + .i2c_port = I2C_PORT_USB_C0_PPC_BC12, .i2c_addr_flags = SYV682X_ADDR2_FLAGS, .drv = &syv682x_drv, }, @@ -99,222 +67,57 @@ static const struct usb_mux_chain usbc0_tcss_usb_mux = { .hpd_update = &virtual_hpd_update, }, }; -static const struct usb_mux_chain usbc1_tcss_usb_mux = { - .mux = - &(const struct usb_mux){ - .usb_port = USBC_PORT_C1, - .driver = &virtual_usb_mux_driver, - .hpd_update = &virtual_hpd_update, - }, -}; -static const struct usb_mux_chain usbc2_tcss_usb_mux = { - .mux = - &(const struct usb_mux){ - .usb_port = USBC_PORT_C2, - .driver = &virtual_usb_mux_driver, - .hpd_update = &virtual_hpd_update, - }, -}; -struct kb800x_control_t kb800x_control[] = { - [USBC_PORT_C0] = { - }, - [USBC_PORT_C1] = { - .retimer_rst_gpio = GPIO_USB_C1_RT_RST_R_L, - .ss_lanes = { - [KB800X_A0] = KB800X_TX0, [KB800X_A1] = KB800X_RX0, - [KB800X_B0] = KB800X_RX1, [KB800X_B1] = KB800X_TX1, - [KB800X_C0] = KB800X_RX0, [KB800X_C1] = KB800X_TX0, - [KB800X_D0] = KB800X_TX1, [KB800X_D1] = KB800X_RX1, - } - }, - [USBC_PORT_C2] = { - }, -}; -BUILD_ASSERT(ARRAY_SIZE(kb800x_control) == USBC_PORT_COUNT); +static int board_c0_ps8818_mux_set(const struct usb_mux *me, + mux_state_t mux_state) +{ + if (mux_state & USB_PD_MUX_DP_ENABLED) + gpio_set_level(GPIO_USB_C0_HPD, 1); + else + gpio_set_level(GPIO_USB_C0_HPD, 0); + + return 0; +} const struct usb_mux_chain usb_muxes[] = { [USBC_PORT_C0] = { .mux = &(const struct usb_mux) { .usb_port = USBC_PORT_C0, - .driver = &bb_usb_retimer, - .hpd_update = bb_retimer_hpd_update, - .i2c_port = I2C_PORT_USB_C0_C2_MUX, - .i2c_addr_flags = USBC_PORT_C0_BB_RETIMER_I2C_ADDR, + .driver = &ps8818_usb_retimer_driver, + .i2c_port = I2C_PORT_USB_C0_MUX, + .i2c_addr_flags = PS8818_I2C_ADDR3_FLAGS, + .board_set = &board_c0_ps8818_mux_set, }, .next = &usbc0_tcss_usb_mux, }, - [USBC_PORT_C1] = { - .mux = &(const struct usb_mux) { - .usb_port = USBC_PORT_C1, - .driver = &kb800x_usb_mux_driver, - .i2c_port = I2C_PORT_USB_C1_MUX, - .i2c_addr_flags = KB800X_I2C_ADDR0_FLAGS, - }, - .next = &usbc1_tcss_usb_mux, - }, - [USBC_PORT_C2] = { - .mux = &(const struct usb_mux) { - .usb_port = USBC_PORT_C2, - .driver = &bb_usb_retimer, - .hpd_update = bb_retimer_hpd_update, - .i2c_port = I2C_PORT_USB_C0_C2_MUX, - .i2c_addr_flags = USBC_PORT_C2_BB_RETIMER_I2C_ADDR, - }, - .next = &usbc2_tcss_usb_mux, - }, }; BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT); /* BC1.2 charger detect configuration */ const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = { [USBC_PORT_C0] = { - .i2c_port = I2C_PORT_USB_C0_C2_BC12, - .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS, - }, - [USBC_PORT_C1] = { - .i2c_port = I2C_PORT_USB_C1_BC12, + .i2c_port = I2C_PORT_USB_C0_PPC_BC12, .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS, }, - [USBC_PORT_C2] = { - .i2c_port = I2C_PORT_USB_C0_C2_BC12, - .i2c_addr_flags = PI3USB9201_I2C_ADDR_1_FLAGS, - }, }; BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT); -/* - * USB C0 and C2 uses burnside bridge chips and have their reset - * controlled by their respective TCPC chips acting as GPIO expanders. - * - * ioex_init() is normally called before we take the TCPCs out of - * reset, so we need to start in disabled mode, then explicitly - * call ioex_init(). - */ - -struct ioexpander_config_t ioex_config[] = { - [IOEX_C0_NCT38XX] = { - .i2c_host_port = I2C_PORT_USB_C0_C2_TCPC, - .i2c_addr_flags = NCT38XX_I2C_ADDR1_1_FLAGS, - .drv = &nct38xx_ioexpander_drv, - .flags = IOEX_FLAGS_DEFAULT_INIT_DISABLED, - }, - [IOEX_C2_NCT38XX] = { - .i2c_host_port = I2C_PORT_USB_C0_C2_TCPC, - .i2c_addr_flags = NCT38XX_I2C_ADDR2_1_FLAGS, - .drv = &nct38xx_ioexpander_drv, - .flags = IOEX_FLAGS_DEFAULT_INIT_DISABLED, - }, -}; -BUILD_ASSERT(ARRAY_SIZE(ioex_config) == CONFIG_IO_EXPANDER_PORT_COUNT); - -__override int bb_retimer_power_enable(const struct usb_mux *me, bool enable) -{ - enum ioex_signal rst_signal; - - if (me->usb_port == USBC_PORT_C0) { - rst_signal = IOEX_USB_C0_RT_RST_ODL; - } else if (me->usb_port == USBC_PORT_C2) { - rst_signal = IOEX_USB_C2_RT_RST_ODL; - } else { - return EC_ERROR_INVAL; - } - - /* - * We do not have a load switch for the burnside bridge chips, - * so we only need to sequence reset. - */ - - if (enable) { - /* - * Tpw, minimum time from VCC to RESET_N de-assertion is 100us. - * For boards that don't provide a load switch control, the - * retimer_init() function ensures power is up before calling - * this function. - */ - ioex_set_level(rst_signal, 1); - /* - * Allow 1ms time for the retimer to power up lc_domain - * which powers I2C controller within retimer - */ - msleep(1); - } else { - ioex_set_level(rst_signal, 0); - msleep(1); - } - return EC_SUCCESS; -} - -__override int bb_retimer_reset(const struct usb_mux *me) -{ - /* - * TODO(b/193402306, b/195375738): Remove this once transition to - * QS Silicon is complete - */ - bb_retimer_power_enable(me, false); - msleep(5); - bb_retimer_power_enable(me, true); - msleep(25); - - return EC_SUCCESS; -} - void board_reset_pd_mcu(void) { - enum gpio_signal tcpc_rst; - - tcpc_rst = GPIO_USB_C0_C2_TCPC_RST_ODL; - - /* - * TODO(b/179648104): figure out correct timing - */ - - gpio_set_level(tcpc_rst, 0); - gpio_set_level(GPIO_USB_C1_RT_RST_R_L, 0); - - /* - * delay for power-on to reset-off and min. assertion time - */ - - msleep(20); - - gpio_set_level(tcpc_rst, 1); - gpio_set_level(GPIO_USB_C1_RT_RST_R_L, 1); - - /* wait for chips to come up */ - - msleep(50); -} - -static void enable_ioex(int ioex) -{ - ioex_init(ioex); + /* Using RT1716, no reset available for TCPC */ } static void board_tcpc_init(void) { /* Don't reset TCPCs after initial reset */ - if (!system_jumped_late()) { + if (!system_jumped_late()) board_reset_pd_mcu(); - /* - * These IO expander pins are implemented using the - * C0/C2 TCPC, so they must be set up after the TCPC has - * been taken out of reset. - */ - enable_ioex(IOEX_C0_NCT38XX); - enable_ioex(IOEX_C2_NCT38XX); - } - /* Enable PPC interrupts. */ gpio_enable_interrupt(GPIO_USB_C0_PPC_INT_ODL); - gpio_enable_interrupt(GPIO_USB_C2_PPC_INT_ODL); /* Enable TCPC interrupts. */ gpio_enable_interrupt(GPIO_USB_C0_C2_TCPC_INT_ODL); - - gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_ODL); - gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL); } DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_CHIPSET); @@ -323,10 +126,7 @@ uint16_t tcpc_get_alert_status(void) uint16_t status = 0; if (gpio_get_level(GPIO_USB_C0_C2_TCPC_INT_ODL) == 0) - status |= PD_STATUS_TCPC_ALERT_0 | PD_STATUS_TCPC_ALERT_2; - - if (gpio_get_level(GPIO_USB_C1_TCPC_INT_ODL) == 0) - status |= PD_STATUS_TCPC_ALERT_1; + status |= PD_STATUS_TCPC_ALERT_0; return status; } @@ -335,59 +135,23 @@ int ppc_get_alert_status(int port) { if (port == USBC_PORT_C0) return gpio_get_level(GPIO_USB_C0_PPC_INT_ODL) == 0; - else if (port == USBC_PORT_C1) - return gpio_get_level(GPIO_USB_C1_PPC_INT_ODL) == 0; - else if (port == USBC_PORT_C2) - return gpio_get_level(GPIO_USB_C2_PPC_INT_ODL) == 0; + return 0; } void tcpc_alert_event(enum gpio_signal signal) { - switch (signal) { - case GPIO_USB_C0_C2_TCPC_INT_ODL: - schedule_deferred_pd_interrupt(USBC_PORT_C0); - break; - case GPIO_USB_C1_TCPC_INT_ODL: - schedule_deferred_pd_interrupt(USBC_PORT_C1); - break; - default: - break; - } + schedule_deferred_pd_interrupt(USBC_PORT_C0); } void bc12_interrupt(enum gpio_signal signal) { - switch (signal) { - case GPIO_USB_C0_BC12_INT_ODL: - usb_charger_task_set_event(0, USB_CHG_EVENT_BC12); - break; - case GPIO_USB_C1_BC12_INT_ODL: - usb_charger_task_set_event(1, USB_CHG_EVENT_BC12); - break; - case GPIO_USB_C2_BC12_INT_ODL: - usb_charger_task_set_event(2, USB_CHG_EVENT_BC12); - break; - default: - break; - } + usb_charger_task_set_event(0, USB_CHG_EVENT_BC12); } void ppc_interrupt(enum gpio_signal signal) { - switch (signal) { - case GPIO_USB_C0_PPC_INT_ODL: - syv682x_interrupt(USBC_PORT_C0); - break; - case GPIO_USB_C1_PPC_INT_ODL: - syv682x_interrupt(USBC_PORT_C1); - break; - case GPIO_USB_C2_PPC_INT_ODL: - syv682x_interrupt(USBC_PORT_C2); - break; - default: - break; - } + syv682x_interrupt(USBC_PORT_C0); } void retimer_interrupt(enum gpio_signal signal) @@ -396,21 +160,3 @@ void retimer_interrupt(enum gpio_signal signal) * TODO(b/179513527): add USB-C support */ } - -__override bool board_is_dts_port(int port) -{ - return port == USBC_PORT_C0; -} - -__override bool board_is_tbt_usb4_port(int port) -{ - return true; -} - -__override enum tbt_compat_cable_speed board_get_max_tbt_speed(int port) -{ - if (!board_is_tbt_usb4_port(port)) - return TBT_SS_RES_0; - - return TBT_SS_TBT_GEN3; -} diff --git a/board/gladios/usbc_config.h b/board/gladios/usbc_config.h index 5e7beae21a..4c3f7ee4d8 100644 --- a/board/gladios/usbc_config.h +++ b/board/gladios/usbc_config.h @@ -3,18 +3,13 @@ * found in the LICENSE file. */ -/* Brya board-specific USB-C configuration */ +/* Gladios board-specific USB-C configuration */ #ifndef __CROS_EC_USBC_CONFIG_H #define __CROS_EC_USBC_CONFIG_H -#define CONFIG_USB_PD_PORT_MAX_COUNT 3 +#define CONFIG_USB_PD_PORT_MAX_COUNT 1 -enum usbc_port { - USBC_PORT_C0 = 0, - USBC_PORT_C1, - USBC_PORT_C2, - USBC_PORT_COUNT -}; +enum usbc_port { USBC_PORT_C0 = 0, USBC_PORT_COUNT }; #endif /* __CROS_EC_USBC_CONFIG_H */ |