summaryrefslogtreecommitdiff
path: root/board/volteer
diff options
context:
space:
mode:
authorEric Herrmann <eherrmann@chromium.org>2020-02-14 14:17:08 -0800
committerCommit Bot <commit-bot@chromium.org>2021-01-28 19:48:20 +0000
commitef04b4715db47812e3e2cdaf083a1a3118c511b5 (patch)
tree3034953534e98870da50fcadf3e3b9f0905ea475 /board/volteer
parent38f31459bbbbe8b74a5c808fdfa3a5319b01b63e (diff)
downloadchrome-ec-ef04b4715db47812e3e2cdaf083a1a3118c511b5.tar.gz
Volteer: Add support for FRS to C1
Add support to C1, assign the gpio to put the PPC in FRS mode and add the config options. Volteer boards need the SYV682B rework to support FRS, but this will not break existing boards. FRS will be enabled but fail, and enter ErrorRecovery, enter Unattached.SNK, or successfully FRS depending on the situation. Volteer HW can supply 3A per port, so changes to reserve the FRS current aren't needed to enable it on Volteer. BUG=b:148144711 TEST=Check that FRS is functional. FRS devices should not re-enumerate after adapter power is removed. Test with the SYV682B and using both the PS8815 and RT1715 TCPCs. BRANCH=none Change-Id: I7a599f1c350529d910a331f1ebc78ab41ff44a24 Signed-off-by: Eric Herrmann <eherrmann@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2057495 Reviewed-by: Abe Levkoy <alevkoy@chromium.org>
Diffstat (limited to 'board/volteer')
-rw-r--r--board/volteer/board.h1
-rw-r--r--board/volteer/gpio.inc1
-rw-r--r--board/volteer/usbc_config.c1
3 files changed, 3 insertions, 0 deletions
diff --git a/board/volteer/board.h b/board/volteer/board.h
index 4129143051..85ab9772a0 100644
--- a/board/volteer/board.h
+++ b/board/volteer/board.h
@@ -96,6 +96,7 @@
/* USBC PPC*/
#define CONFIG_USBC_PPC_SN5S330 /* USBC port C0 */
#define CONFIG_USBC_PPC_SYV682X /* USBC port C1 */
+#define CONFIG_USB_PD_FRS_PPC
/* BC 1.2 */
diff --git a/board/volteer/gpio.inc b/board/volteer/gpio.inc
index 5682b47740..33d04741d3 100644
--- a/board/volteer/gpio.inc
+++ b/board/volteer/gpio.inc
@@ -89,6 +89,7 @@ GPIO(USB_C0_OC_ODL, PIN(B, 1), GPIO_ODR_HIGH)
GPIO(USB_C1_OC_ODL, PIN(5, 0), GPIO_ODR_HIGH)
/* There is currently no need to service this interrupt. */
GPIO(USB_C1_RT_INT_ODL, PIN(F, 3), GPIO_INPUT)
+GPIO(USB_C1_FRS_EN, PIN(9, 4), GPIO_OUT_LOW)
/* Don't have a load switch for retimer */
UNIMPLEMENTED(USB_C1_LS_EN)
diff --git a/board/volteer/usbc_config.c b/board/volteer/usbc_config.c
index 9e76eef5bd..1fec96a2a3 100644
--- a/board/volteer/usbc_config.c
+++ b/board/volteer/usbc_config.c
@@ -154,6 +154,7 @@ struct ppc_config_t ppc_chips[] = {
[USBC_PORT_C1] = {
.i2c_port = I2C_PORT_USB_C1,
.i2c_addr_flags = SYV682X_ADDR0_FLAGS,
+ .frs_en = GPIO_USB_C1_FRS_EN,
.drv = &syv682x_drv,
},
};