summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHank.Xie <hank.xie@quanta.corp-partner.google.com>2022-11-29 20:34:35 -0500
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-12-19 08:46:50 +0000
commit3c4a39c2352e6074d59afc49dccc03089f306da9 (patch)
tree6aed182b56cce2dc921984ebf3590903d27f0284
parent27e224f04d5f2b0be0ad234644374e370bb2ee49 (diff)
downloadchrome-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.c83
-rw-r--r--board/gladios/board.h66
-rw-r--r--board/gladios/build.mk2
-rw-r--r--board/gladios/ec.tasklist8
-rw-r--r--board/gladios/gpio.inc105
-rw-r--r--board/gladios/i2c.c48
-rw-r--r--board/gladios/led.c2
-rw-r--r--board/gladios/usbc_config.c304
-rw-r--r--board/gladios/usbc_config.h11
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 */