summaryrefslogtreecommitdiff
path: root/board/baklava
diff options
context:
space:
mode:
authorScott Collyer <scollyer@google.com>2021-03-18 04:41:37 -0700
committerCommit Bot <commit-bot@chromium.org>2021-04-14 16:06:23 +0000
commit50bab871ef8d464c270e595b1c598c1847f4df01 (patch)
tree7ac2cd910e50f7fe7c774b330021e76923fdca2a /board/baklava
parent9bf812de554b9a7e407f615c338e44abe2ff9531 (diff)
downloadchrome-ec-50bab871ef8d464c270e595b1c598c1847f4df01.tar.gz
baklava: initial EC image
Baklava is a quiche variant that does not have the user facing DP capable usbc port. This CL modifies the starting quiche image to account for usbc port that is removed. BUG=b:184595837 BRANCH=quiche TEST=make -j BOARD=baklava. Verified C0 (host) port operation Signed-off-by: Scott Collyer <scollyer@google.com> Change-Id: Ic4455958d5cc6dbedfc17011113792ae3809e7be Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2727858 Tested-by: Scott Collyer <scollyer@chromium.org> Reviewed-by: Diana Z <dzigterman@chromium.org> Commit-Queue: Scott Collyer <scollyer@chromium.org>
Diffstat (limited to 'board/baklava')
-rw-r--r--board/baklava/board.c77
-rw-r--r--board/baklava/board.h14
-rw-r--r--board/baklava/ec.tasklist2
-rw-r--r--board/baklava/gpio.inc6
4 files changed, 17 insertions, 82 deletions
diff --git a/board/baklava/board.c b/board/baklava/board.c
index 1102e38a84..dbabeefbc6 100644
--- a/board/baklava/board.c
+++ b/board/baklava/board.c
@@ -42,7 +42,6 @@
#ifdef SECTION_IS_RW
static int pd_dual_role_init[CONFIG_USB_PD_PORT_MAX_COUNT] = {
PD_DRP_TOGGLE_ON,
- PD_DRP_FORCE_SOURCE,
};
static void ppc_interrupt(enum gpio_signal signal)
@@ -51,29 +50,11 @@ static void ppc_interrupt(enum gpio_signal signal)
case GPIO_HOST_USBC_PPC_INT_ODL:
sn5s330_interrupt(USB_PD_PORT_HOST);
break;
- case GPIO_USBC_DP_PPC_INT_ODL:
- sn5s330_interrupt(USB_PD_PORT_DP);
- break;
-
default:
break;
}
}
-static void tcpc_alert_event(enum gpio_signal s)
-{
- int port = -1;
-
- switch (s) {
- case GPIO_USBC_DP_MUX_ALERT_ODL:
- port = USB_PD_PORT_DP;
- break;
- default:
- return;
- }
- schedule_deferred_pd_interrupt(port);
-}
-
void hpd_interrupt(enum gpio_signal signal)
{
usb_pd_hpd_edge_event(signal);
@@ -85,11 +66,11 @@ void board_uf_manage_vbus(void)
/*
* GPIO_USBC_UF_MUX_VBUS_EN is an output from the PS8803 which tracks if
- * C2 is attached. When it's attached, this signal will be high. Use
+ * C1 is attached. When it's attached, this signal will be high. Use
* this level to control PPC VBUS on/off.
*/
ppc_vbus_source_enable(USB_PD_PORT_USB3, level);
- CPRINTS("C2: State = %s", level ? "Attached.SRC " : "Unattached.SRC");
+ CPRINTS("C1: State = %s", level ? "Attached.SRC " : "Unattached.SRC");
}
DECLARE_DEFERRED(board_uf_manage_vbus);
@@ -127,12 +108,8 @@ const struct power_seq board_power_seq[] = {
{GPIO_EC_HUB2_RESET_L, 1, 41},
{GPIO_EC_HUB3_RESET_L, 1, 33},
{GPIO_DP_SINK_RESET, 1, 100},
- {GPIO_USBC_DP_PD_RST_L, 1, 100},
{GPIO_USBC_UF_RESET_L, 1, 33},
- {GPIO_DEMUX_DUAL_DP_PD_N, 1, 100},
- {GPIO_DEMUX_DUAL_DP_RESET_N, 1, 100},
{GPIO_DEMUX_DP_HDMI_PD_N, 1, 10},
- {GPIO_DEMUX_DUAL_DP_MODE, 1, 10},
{GPIO_DEMUX_DP_HDMI_MODE, 1, 5},
};
const size_t board_power_seq_count = ARRAY_SIZE(board_power_seq);
@@ -184,14 +161,6 @@ const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
.bus_type = EC_BUS_TYPE_EMBEDDED,
.drv = &stm32gx_tcpm_drv,
},
- [USB_PD_PORT_DP] = {
- .bus_type = EC_BUS_TYPE_I2C,
- .i2c_info = {
- .port = I2C_PORT_I2C1,
- .addr_flags = PS8751_I2C_ADDR2_FLAGS,
- },
- .drv = &ps8xxx_tcpm_drv,
- },
};
const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
@@ -202,13 +171,6 @@ const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
.driver = &ps8822_usb_mux_driver,
.board_set = &board_ps8822_mux_set,
},
- [USB_PD_PORT_DP] = {
- .usb_port = USB_PD_PORT_DP,
- .i2c_port = I2C_PORT_I2C1,
- .i2c_addr_flags = PS8751_I2C_ADDR2_FLAGS,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- },
};
/* USB-C PPC Configuration */
@@ -218,11 +180,6 @@ struct ppc_config_t ppc_chips[CONFIG_USB_PD_PORT_MAX_COUNT] = {
.i2c_addr_flags = SN5S330_ADDR0_FLAGS,
.drv = &sn5s330_drv
},
- [USB_PD_PORT_DP] = {
- .i2c_port = I2C_PORT_I2C1,
- .i2c_addr_flags = SN5S330_ADDR2_FLAGS,
- .drv = &sn5s330_drv
- },
[USB_PD_PORT_USB3] = {
.i2c_port = I2C_PORT_I2C3,
.i2c_addr_flags = SN5S330_ADDR1_FLAGS,
@@ -240,10 +197,9 @@ void board_reset_pd_mcu(void)
{
cprints(CC_SYSTEM, "Resetting TCPCs...");
cflush();
- gpio_set_level(GPIO_USBC_DP_PD_RST_L, 0);
+
gpio_set_level(GPIO_USBC_UF_RESET_L, 0);
msleep(PS8805_FW_INIT_DELAY_MS);
- gpio_set_level(GPIO_USBC_DP_PD_RST_L, 1);
gpio_set_level(GPIO_USBC_UF_RESET_L, 1);
msleep(PS8805_FW_INIT_DELAY_MS);
}
@@ -252,23 +208,19 @@ void board_enable_usbc_interrupts(void)
{
/* Enable PPC interrupts. */
gpio_enable_interrupt(GPIO_HOST_USBC_PPC_INT_ODL);
- gpio_enable_interrupt(GPIO_USBC_DP_PPC_INT_ODL);
/* Enable HPD interrupt */
gpio_enable_interrupt(GPIO_DDI_MST_IN_HPD);
- /* Enable TCPC interrupts. */
- gpio_enable_interrupt(GPIO_USBC_DP_MUX_ALERT_ODL);
+ /* Enable VBUS control interrupt for C1 */
+ gpio_enable_interrupt(GPIO_USBC_UF_MUX_VBUS_EN);
}
void board_disable_usbc_interrupts(void)
{
/* Disable PPC interrupts. */
gpio_disable_interrupt(GPIO_HOST_USBC_PPC_INT_ODL);
- gpio_disable_interrupt(GPIO_USBC_DP_PPC_INT_ODL);
/* Disable HPD interrupt */
gpio_disable_interrupt(GPIO_DDI_MST_IN_HPD);
- /* Disable TCPC interrupts. */
- gpio_disable_interrupt(GPIO_USBC_DP_MUX_ALERT_ODL);
- /* Disable VBUS control interrupt for C2 */
+ /* Disable VBUS control interrupt for C1 */
gpio_disable_interrupt(GPIO_USBC_UF_MUX_VBUS_EN);
}
@@ -306,15 +258,15 @@ static void board_config_usbc_uf_ppc(void)
*/
ppc_vbus_source_enable(USB_PD_PORT_USB3, vbus_level);
- /* Enable VBUS control interrupt for C2 */
+ /* Enable VBUS control interrupt for C1 */
gpio_enable_interrupt(GPIO_USBC_UF_MUX_VBUS_EN);
}
__override uint8_t board_get_usb_pd_port_count(void)
{
/*
- * CONFIG_USB_PD_PORT_MAX_COUNT must be defined to account for C0, C1,
- * and C2, but TCPMv2 only knows about C0 and C1, as C2 is a type-c only
+ * CONFIG_USB_PD_PORT_MAX_COUNT must be defined to account for C0
+ * and C1, but TCPMv2 only knows about C0, as C1 is a type-c only
* port that is managed directly by the PS8803 TCPC.
*/
return CONFIG_USB_PD_PORT_MAX_COUNT - 1;
@@ -324,21 +276,13 @@ int ppc_get_alert_status(int port)
{
if (port == USB_PD_PORT_HOST)
return gpio_get_level(GPIO_HOST_USBC_PPC_INT_ODL) == 0;
- else if (port == USB_PD_PORT_DP)
- return gpio_get_level(GPIO_USBC_DP_PPC_INT_ODL) == 0;
return 0;
}
uint16_t tcpc_get_alert_status(void)
{
- uint16_t status = 0;
-
- if (!gpio_get_level(GPIO_USBC_DP_MUX_ALERT_ODL) &&
- gpio_get_level(GPIO_USBC_DP_PD_RST_L))
- status |= PD_STATUS_TCPC_ALERT_1;
-
- return status;
+ return 0;
}
void board_overcurrent_event(int port, int is_overcurrented)
@@ -350,6 +294,7 @@ void board_overcurrent_event(int port, int is_overcurrented)
static void board_init(void)
{
#ifdef SECTION_IS_RW
+ /* Initialize PPC and check usbc state */
board_config_usbc_uf_ppc();
#endif
}
diff --git a/board/baklava/board.h b/board/baklava/board.h
index 4f93fbf044..8e4d4d5036 100644
--- a/board/baklava/board.h
+++ b/board/baklava/board.h
@@ -16,19 +16,17 @@
/* USB Type C and USB PD defines */
#define USB_PD_PORT_HOST 0
-#define USB_PD_PORT_DP 1
-#define USB_PD_PORT_USB3 2
+#define USB_PD_PORT_USB3 1
/*
- * The host (C0) and display (C1) usbc ports are usb-pd capable. There is
- * also a type-c only port (C2). C2 must be accounted for in PORT_MAX_COUNT so
- * the PPC config table is correctly sized and the PPC driver can be used to
- * control VBUS on/off.
+ * Only the host and display usbc ports are usb-pd capable. There is a 2nd usbc
+ * port, but this is type-c capable only. Only the PPC for this port needs to be
+ * controlled by FW.
*/
-#define CONFIG_USB_PD_PORT_MAX_COUNT 3
+#define CONFIG_USB_PD_PORT_MAX_COUNT 2
#define CONFIG_USB_MUX_PS8822
-#define CONFIG_USB_PID 0x5048
+#define CONFIG_USB_PID 0x1195
#define CONFIG_USB_BCD_DEV 0x0001 /* v 0.01 */
#define CONFIG_USB_PD_IDENTITY_HW_VERS 1
#define CONFIG_USB_PD_IDENTITY_SW_VERS 1
diff --git a/board/baklava/ec.tasklist b/board/baklava/ec.tasklist
index cbdadb4f19..14c2c31393 100644
--- a/board/baklava/ec.tasklist
+++ b/board/baklava/ec.tasklist
@@ -13,6 +13,4 @@
TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
TASK_ALWAYS_RW(POWER_BUTTON, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
TASK_ALWAYS_RW(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS_RW(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \
- TASK_ALWAYS_RW(PD_INT_C1, pd_interrupt_handler_task, 1, LARGER_TASK_STACK_SIZE) \
TASK_ALWAYS_RW(UCPD, ucpd_task, 0, LARGER_TASK_STACK_SIZE)
diff --git a/board/baklava/gpio.inc b/board/baklava/gpio.inc
index a1adf15c9f..b8a7dc96b5 100644
--- a/board/baklava/gpio.inc
+++ b/board/baklava/gpio.inc
@@ -10,8 +10,6 @@
#ifdef SECTION_IS_RW
GPIO_INT(HOST_USBC_PPC_INT_ODL, PIN(D, 9), GPIO_INT_FALLING | GPIO_PULL_UP, ppc_interrupt)
-GPIO_INT(USBC_DP_MUX_ALERT_ODL, PIN(B, 1), GPIO_INT_FALLING | GPIO_PULL_UP, tcpc_alert_event)
-GPIO_INT(USBC_DP_PPC_INT_ODL, PIN(E, 7), GPIO_INT_FALLING | GPIO_PULL_UP, ppc_interrupt)
GPIO_INT(DDI_MST_IN_HPD, PIN(C, 14), GPIO_INT_BOTH, hpd_interrupt)
GPIO_INT(USBC_UF_MUX_VBUS_EN, PIN(C, 12), GPIO_INT_BOTH, board_uf_manage_vbus_interrupt)
GPIO_INT(PWR_BTN, PIN(A, 0), GPIO_INT_BOTH, board_pwr_btn_interrupt)
@@ -34,16 +32,12 @@ GPIO(MST_RST_L, PIN(E, 14), GPIO_ODR_LOW)
GPIO(MST_HUB_LANE_SWITCH, PIN(C, 15), GPIO_OUT_HIGH)
/* Display Demux signals */
-GPIO(DEMUX_DUAL_DP_MODE, PIN(B, 0), GPIO_OUT_LOW)
GPIO(DEMUX_DP_HDMI_MODE, PIN(E, 15), GPIO_OUT_LOW)
-GPIO(DEMUX_DUAL_DP_RESET_N, PIN(E, 13), GPIO_ODR_LOW)
-GPIO(DEMUX_DUAL_DP_PD_N, PIN(E, 12), GPIO_ODR_LOW)
GPIO(DEMUX_DP_HDMI_PD_N, PIN(B, 13), GPIO_ODR_LOW)
/* USBC Mux and Demux Signals */
GPIO(EN_DP_SINK, PIN(B, 14), GPIO_OUT_LOW)
GPIO(DP_SINK_RESET, PIN(B, 15), GPIO_OUT_LOW)
-GPIO(USBC_DP_PD_RST_L, PIN(E, 9), GPIO_ODR_LOW)
GPIO(USBC_UF_RESET_L, PIN(D, 2), GPIO_ODR_LOW)
/* USB Hubs signals */