From aebb58b99064567f25b1c407aeb5d193dc4042c3 Mon Sep 17 00:00:00 2001 From: Sam Hurst Date: Fri, 21 Feb 2020 09:00:29 -0800 Subject: TCPMV1/2: Make the PD Config Flags more consistent The current use of the PD Config Flags are a bit confusing and has been changed to the following: The CONFIG_USB_POWER_DELIVERY flag is used to enable and disable the TCPMv1 and TCPMv2 stacks. And when CONFIG_USB_POWER_DELIVERY is enabled, one of the following must be enabled: CONFIG_USB_PD_TCPMV1 - legacy power delivery state machine CONFIG_USB_PD_TCPMV2 - current power delivery state machine BUG=b:149993808 BRANCH=none TEST=make -j buildall Change-Id: Ie3f8615a75b15b4f1c703f57f3db9e152a471238 Signed-off-by: Sam Hurst Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2068519 Reviewed-by: Diana Z --- baseboard/dedede/baseboard.h | 2 +- baseboard/dragonegg/baseboard.h | 2 ++ baseboard/grunt/baseboard.h | 1 + baseboard/hatch/baseboard.h | 1 + baseboard/intelrvp/baseboard.h | 1 + baseboard/kalista/baseboard.h | 1 + baseboard/kukui/baseboard.h | 1 + baseboard/octopus/baseboard.h | 1 + baseboard/volteer/baseboard.h | 3 +- baseboard/zork/baseboard.h | 3 +- board/atlas/board.h | 1 + board/chell/board.h | 1 + board/cheza/board.h | 1 + board/chocodile_vpdmcu/board.h | 10 +++++- board/coffeecake/board.h | 1 + board/coral/board.h | 1 + board/dingdong/board.h | 1 + board/elm/board.h | 1 + board/eve/board.h | 1 + board/fizz/board.h | 1 + board/flapjack/board.h | 1 + board/glados/board.h | 1 + board/glkrvp/board.h | 1 + board/glkrvp_ite/board.h | 1 + board/hoho/board.h | 1 + board/it83xx_evb/board.h | 1 + board/mchpevb1/board.h | 1 + board/nami/board.h | 1 + board/nautilus/board.h | 1 + board/nocturne/board.h | 1 + board/oak/board.h | 1 + board/pdeval-stm32f072/board.h | 1 + board/plankton/board.h | 1 + board/poppy/board.h | 1 + board/puff/board.h | 3 +- board/rainier/board.h | 1 + board/rammus/board.h | 1 + board/reef/board.h | 1 + board/reef_it8320/board.h | 1 + board/reef_mchp/board.h | 1 + board/samus_pd/board.h | 1 + board/scarlet/board.h | 1 + board/servo_v4/board.h | 2 ++ board/strago/board.h | 1 + board/trogdor/board.h | 1 + board/twinkie/board.h | 1 + board/waddledee/board.h | 2 +- board/zinger/board.h | 1 + common/build.mk | 11 ++++--- common/usb_pd_tcpc.c | 6 ++-- common/usbc/build.mk | 4 +-- fuzz/fuzz_config.h | 3 +- include/config.h | 68 ++++++++++++++++++++++++++++++++--------- test/test_config.h | 19 +++++++----- 54 files changed, 138 insertions(+), 40 deletions(-) diff --git a/baseboard/dedede/baseboard.h b/baseboard/dedede/baseboard.h index 1494bdc79f..4f3dd6551b 100644 --- a/baseboard/dedede/baseboard.h +++ b/baseboard/dedede/baseboard.h @@ -168,7 +168,7 @@ #define CONFIG_USB_PD_DECODE_SOP #define CONFIG_USB_PID 0x5042 #define CONFIG_USB_POWER_DELIVERY -#define CONFIG_USB_SM_FRAMEWORK +#define CONFIG_USB_PD_TCPMV2 #define CONFIG_USB_TYPEC_DRP_ACC_TRYSRC /* Define typical operating power and max power. */ diff --git a/baseboard/dragonegg/baseboard.h b/baseboard/dragonegg/baseboard.h index d0d3c31486..7365891000 100644 --- a/baseboard/dragonegg/baseboard.h +++ b/baseboard/dragonegg/baseboard.h @@ -81,6 +81,8 @@ #define CONFIG_USB_PD_TCPM_ITE_ON_CHIP /* C0 & C1 TCPC: ITE EC */ #define CONFIG_USB_PD_TCPM_TUSB422 /* C1 TCPC: TUSB422 */ #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 + /* * TODO (b/111281797): DragonEgg has 3 ports. Only adding support for the port * on the MLB for now. In addition, this config option will likely move to diff --git a/baseboard/grunt/baseboard.h b/baseboard/grunt/baseboard.h index cf6fb1fc39..eadd60a104 100644 --- a/baseboard/grunt/baseboard.h +++ b/baseboard/grunt/baseboard.h @@ -108,6 +108,7 @@ #define CONFIG_KEYBOARD_PROTOCOL_8042 #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_CMD_PD_CONTROL #define CONFIG_USB_PD_ALT_MODE #define CONFIG_USB_PD_ALT_MODE_DFP diff --git a/baseboard/hatch/baseboard.h b/baseboard/hatch/baseboard.h index 09ea0056a7..78bd66def2 100644 --- a/baseboard/hatch/baseboard.h +++ b/baseboard/hatch/baseboard.h @@ -120,6 +120,7 @@ /* USB Type C and USB PD defines */ #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USB_PD_PORT_MAX_COUNT 2 #define CONFIG_USB_PD_MAX_SINGLE_SOURCE_CURRENT TYPEC_RP_3A0 #define CONFIG_USB_PD_TCPC_LOW_POWER diff --git a/baseboard/intelrvp/baseboard.h b/baseboard/intelrvp/baseboard.h index 395b757f4b..fe19351bac 100644 --- a/baseboard/intelrvp/baseboard.h +++ b/baseboard/intelrvp/baseboard.h @@ -84,6 +84,7 @@ #define CONFIG_USB_PD_TRY_SRC #define CONFIG_USB_PD_VBUS_MEASURE_NOT_PRESENT #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 /* USB MUX */ #ifdef CONFIG_USB_MUX_VIRTUAL diff --git a/baseboard/kalista/baseboard.h b/baseboard/kalista/baseboard.h index 8061205684..6dbccb73b7 100644 --- a/baseboard/kalista/baseboard.h +++ b/baseboard/kalista/baseboard.h @@ -96,6 +96,7 @@ #define CONFIG_USB_PD_TCPM_TCPCI #define CONFIG_USB_PD_TCPM_PS8751 #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USBC_SS_MUX #define CONFIG_USBC_SS_MUX_DFP_ONLY #define CONFIG_USBC_VCONN diff --git a/baseboard/kukui/baseboard.h b/baseboard/kukui/baseboard.h index 4389685172..f09fba85e1 100644 --- a/baseboard/kukui/baseboard.h +++ b/baseboard/kukui/baseboard.h @@ -178,6 +178,7 @@ /* USB PD config */ #define CONFIG_CHARGE_MANAGER #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USB_PD_ALT_MODE #define CONFIG_USB_PD_ALT_MODE_DFP #define CONFIG_USB_PD_DUAL_ROLE diff --git a/baseboard/octopus/baseboard.h b/baseboard/octopus/baseboard.h index 44ea94286b..2bbcff6d32 100644 --- a/baseboard/octopus/baseboard.h +++ b/baseboard/octopus/baseboard.h @@ -184,6 +184,7 @@ /* Common USB-C defines */ #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USB_PD_PORT_MAX_COUNT 2 #define CONFIG_USB_PD_DUAL_ROLE #define CONFIG_USB_PD_LOGGING diff --git a/baseboard/volteer/baseboard.h b/baseboard/volteer/baseboard.h index 01aeb1871f..7fd84e7acf 100644 --- a/baseboard/volteer/baseboard.h +++ b/baseboard/volteer/baseboard.h @@ -148,7 +148,7 @@ /* Enable the new USB-C PD stack */ /* TODO: b/145756626 - re-enable once all blocking issues resolved */ #if 0 -#define CONFIG_USB_SM_FRAMEWORK +#define CONFIG_USB_PD_TCPMV2 #define CONFIG_USB_TYPEC_SM #define CONFIG_USB_PRL_SM #define CONFIG_USB_PE_SM @@ -162,6 +162,7 @@ #endif #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USB_PD_ALT_MODE #define CONFIG_USB_PD_ALT_MODE_DFP #define CONFIG_USB_PD_DISCHARGE_PPC diff --git a/baseboard/zork/baseboard.h b/baseboard/zork/baseboard.h index 1052a1e0d6..e4f29ad839 100644 --- a/baseboard/zork/baseboard.h +++ b/baseboard/zork/baseboard.h @@ -116,7 +116,8 @@ /* Enable the TCPMv2 PD stack */ #define CONFIG_USB_PE_SM #define CONFIG_USB_PRL_SM -#define CONFIG_USB_SM_FRAMEWORK +#define CONFIG_USB_PD_TCPMV2 +#define CONFIG_USB_PD_DECODE_SOP #define CONFIG_USB_TYPEC_SM #define CONFIG_USB_TYPEC_DRP_ACC_TRYSRC diff --git a/board/atlas/board.h b/board/atlas/board.h index b7c64b96da..00600ec755 100644 --- a/board/atlas/board.h +++ b/board/atlas/board.h @@ -143,6 +143,7 @@ #define CONFIG_USB_PD_TRY_SRC_MIN_BATT_SOC 2 #define CONFIG_USB_PD_VBUS_MEASURE_NOT_PRESENT #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USBC_SS_MUX #define CONFIG_USBC_SS_MUX_DFP_ONLY /* FIXME: b/77151299 */ #define CONFIG_USBC_VCONN diff --git a/board/chell/board.h b/board/chell/board.h index 7e4a7aa4d7..f1a0355196 100644 --- a/board/chell/board.h +++ b/board/chell/board.h @@ -70,6 +70,7 @@ #define CONFIG_USB_CHARGER #define CONFIG_USB_MUX_PS8740 #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USB_PD_ALT_MODE #define CONFIG_USB_PD_ALT_MODE_DFP #define CONFIG_USB_PD_COMM_LOCKED diff --git a/board/cheza/board.h b/board/cheza/board.h index 76e64277b5..820b4bf417 100644 --- a/board/cheza/board.h +++ b/board/cheza/board.h @@ -98,6 +98,7 @@ /* USB */ #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_CMD_PD_CONTROL #define CONFIG_USB_PD_ALT_MODE #define CONFIG_USB_PD_ALT_MODE_DFP diff --git a/board/chocodile_vpdmcu/board.h b/board/chocodile_vpdmcu/board.h index 0ddf3374c0..d79e8ac20f 100644 --- a/board/chocodile_vpdmcu/board.h +++ b/board/chocodile_vpdmcu/board.h @@ -38,6 +38,8 @@ #define CONFIG_UART_CONSOLE 1 /* Optional features */ +#undef CONFIG_USB_PD_CONSOLE_CMD +#undef CONFIG_USB_PD_HOST_CMD #define CONFIG_ADC #undef CONFIG_ADC_WATCHDOG #define CONFIG_ADC_SAMPLE_TIME STM32_ADC_SMPR_41_5_CY @@ -61,8 +63,10 @@ #define CONFIG_USB_PD_TCPC #define CONFIG_USB_PD_VBUS_DETECT_NONE #define CONFIG_USB_PD_TCPM_STUB -#define CONFIG_USB_SM_FRAMEWORK +#define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV2 #define CONFIG_USB_TYPEC_CTVPD +#define CONFIG_USB_PD_DECODE_SOP #define CONFIG_USB_PD_DUAL_ROLE #define CONFIG_USB_PD_INTERNAL_COMP #define CONFIG_VBOOT_HASH @@ -82,6 +86,10 @@ /* GND impedance in milliohms */ #define VPD_GND_IMPEDANCE 33 +#define PD_OPERATING_POWER_MW 15000 +#define PD_MAX_POWER_MW 45000 +#define PD_MAX_CURRENT_MA 3000 +#define PD_MAX_VOLTAGE_MV 20000 /* * TODO(crosbug.com/p/50519): Remove CONFIG_SYSTEM_UNLOCKED prior to building * MP FW. diff --git a/board/coffeecake/board.h b/board/coffeecake/board.h index 26f8de88c6..8ab4e381f2 100644 --- a/board/coffeecake/board.h +++ b/board/coffeecake/board.h @@ -38,6 +38,7 @@ #define CONFIG_USB_BOS #define CONFIG_USB_INHIBIT_CONNECT #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USB_PD_ALT_MODE #define CONFIG_USB_PD_HW_DEV_ID_BOARD_MAJOR USB_PD_HW_DEV_ID_HOHO #define CONFIG_USB_PD_HW_DEV_ID_BOARD_MINOR 2 diff --git a/board/coral/board.h b/board/coral/board.h index df380f22b9..257e8e46c6 100644 --- a/board/coral/board.h +++ b/board/coral/board.h @@ -94,6 +94,7 @@ #define CONFIG_USB_PD_TCPM_TCPCI #define CONFIG_USB_PD_TRY_SRC #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USB_PD_COMM_LOCKED #define CONFIG_USBC_SS_MUX diff --git a/board/dingdong/board.h b/board/dingdong/board.h index 51fa51dcd2..27f4b0af50 100644 --- a/board/dingdong/board.h +++ b/board/dingdong/board.h @@ -27,6 +27,7 @@ #define CONFIG_USB_BOS #define CONFIG_USB_INHIBIT_CONNECT #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USB_PD_ALT_MODE #define CONFIG_USB_PD_CUSTOM_PDO #define CONFIG_USB_PD_HW_DEV_ID_BOARD_MAJOR USB_PD_HW_DEV_ID_DINGDONG diff --git a/board/elm/board.h b/board/elm/board.h index e9269b0775..8859ff5594 100644 --- a/board/elm/board.h +++ b/board/elm/board.h @@ -86,6 +86,7 @@ #define CONFIG_USBC_VCONN #define CONFIG_USBC_VCONN_SWAP #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USB_PD_ALT_MODE #define CONFIG_USB_PD_ALT_MODE_DFP #define CONFIG_USB_PD_DUAL_ROLE diff --git a/board/eve/board.h b/board/eve/board.h index 3bf3dedf50..1df410d6ef 100644 --- a/board/eve/board.h +++ b/board/eve/board.h @@ -173,6 +173,7 @@ #undef CONFIG_USB_PD_TRY_SRC_MIN_BATT_SOC #define CONFIG_USB_PD_TRY_SRC_MIN_BATT_SOC 2 #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USBC_SS_MUX #define CONFIG_USBC_VCONN #define CONFIG_USBC_VCONN_SWAP diff --git a/board/fizz/board.h b/board/fizz/board.h index 6c3dade457..81a1da111f 100644 --- a/board/fizz/board.h +++ b/board/fizz/board.h @@ -109,6 +109,7 @@ #define CONFIG_USB_PD_TCPM_PS8751 #define CONFIG_USB_PD_TRY_SRC #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USBC_SS_MUX #define CONFIG_USBC_SS_MUX_DFP_ONLY #define CONFIG_USBC_VCONN diff --git a/board/flapjack/board.h b/board/flapjack/board.h index 26d299f1b9..370bd1727f 100644 --- a/board/flapjack/board.h +++ b/board/flapjack/board.h @@ -135,6 +135,7 @@ /* USB PD config */ #define CONFIG_CHARGE_MANAGER #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USB_PD_ALT_MODE #define CONFIG_USB_PD_ALT_MODE_DFP #define CONFIG_USB_PD_DISCHARGE_TCPC diff --git a/board/glados/board.h b/board/glados/board.h index ed4939b692..9a5f407710 100644 --- a/board/glados/board.h +++ b/board/glados/board.h @@ -69,6 +69,7 @@ #define CONFIG_USB_MUX_PI3USB30532 #define CONFIG_USB_MUX_PS8740 #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USB_PD_ALT_MODE #define CONFIG_USB_PD_ALT_MODE_DFP #define CONFIG_USB_PD_DP_HPD_GPIO diff --git a/board/glkrvp/board.h b/board/glkrvp/board.h index fd8963d8be..138aa478bf 100644 --- a/board/glkrvp/board.h +++ b/board/glkrvp/board.h @@ -68,6 +68,7 @@ #define CONFIG_USB_PD_TRY_SRC #define CONFIG_USB_PD_VBUS_DETECT_TCPC #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 /* USB MUX */ #define CONFIG_USBC_SS_MUX diff --git a/board/glkrvp_ite/board.h b/board/glkrvp_ite/board.h index f761625136..b131ac42c4 100644 --- a/board/glkrvp_ite/board.h +++ b/board/glkrvp_ite/board.h @@ -68,6 +68,7 @@ #define CONFIG_USB_PD_TRY_SRC #define CONFIG_USB_PD_VBUS_DETECT_TCPC #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 /* USB MUX */ #define CONFIG_USBC_SS_MUX diff --git a/board/hoho/board.h b/board/hoho/board.h index 2698d0f346..8eead97ae5 100644 --- a/board/hoho/board.h +++ b/board/hoho/board.h @@ -33,6 +33,7 @@ #define CONFIG_USB_BOS #define CONFIG_USB_INHIBIT_CONNECT #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USB_PD_ALT_MODE #define CONFIG_USB_PD_CUSTOM_PDO #define CONFIG_USB_PD_HW_DEV_ID_BOARD_MAJOR USB_PD_HW_DEV_ID_HOHO diff --git a/board/it83xx_evb/board.h b/board/it83xx_evb/board.h index 591cb469c4..54c66d9b7a 100644 --- a/board/it83xx_evb/board.h +++ b/board/it83xx_evb/board.h @@ -47,6 +47,7 @@ #define CONFIG_USB_PD_TRY_SRC #define CONFIG_USB_PD_VBUS_DETECT_GPIO #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USBC_VCONN #define CONFIG_USBC_VCONN_SWAP #endif diff --git a/board/mchpevb1/board.h b/board/mchpevb1/board.h index d93b31cb82..e46a1dced4 100644 --- a/board/mchpevb1/board.h +++ b/board/mchpevb1/board.h @@ -231,6 +231,7 @@ #define CONFIG_USB_MUX_PI3USB30532 #define CONFIG_USB_MUX_PS8740 #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USB_PD_ALT_MODE #define CONFIG_USB_PD_ALT_MODE_DFP #define CONFIG_USB_PD_DP_HPD_GPIO diff --git a/board/nami/board.h b/board/nami/board.h index 2a7cfa9a70..35ae889789 100644 --- a/board/nami/board.h +++ b/board/nami/board.h @@ -182,6 +182,7 @@ #define CONFIG_USB_PD_TCPM_PS8751 #define CONFIG_USB_PD_TRY_SRC #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USBC_SS_MUX #define CONFIG_USBC_VCONN #define CONFIG_USBC_VCONN_SWAP diff --git a/board/nautilus/board.h b/board/nautilus/board.h index 58ddc2d8ac..1ea9c12f19 100644 --- a/board/nautilus/board.h +++ b/board/nautilus/board.h @@ -153,6 +153,7 @@ #define CONFIG_USB_PD_TCPM_PS8751 #define CONFIG_USB_PD_TRY_SRC #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USBC_SS_MUX #define CONFIG_USBC_SS_MUX_DFP_ONLY #define CONFIG_USBC_VCONN diff --git a/board/nocturne/board.h b/board/nocturne/board.h index c71aab3f6e..82d511ed01 100644 --- a/board/nocturne/board.h +++ b/board/nocturne/board.h @@ -141,6 +141,7 @@ #define CONFIG_USB_PD_VBUS_DETECT_TCPC #define CONFIG_USB_PD_VBUS_MEASURE_NOT_PRESENT #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USBC_PPC_SN5S330 #define CONFIG_USBC_SS_MUX #define CONFIG_USBC_SS_MUX_DFP_ONLY diff --git a/board/oak/board.h b/board/oak/board.h index 8390f44fab..d959763853 100644 --- a/board/oak/board.h +++ b/board/oak/board.h @@ -93,6 +93,7 @@ #define CONFIG_USBC_VCONN #define CONFIG_USBC_VCONN_SWAP #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USB_PD_ALT_MODE #define CONFIG_USB_PD_ALT_MODE_DFP #define CONFIG_USB_PD_DUAL_ROLE diff --git a/board/pdeval-stm32f072/board.h b/board/pdeval-stm32f072/board.h index 02d6a541ed..6da1c7c1f0 100644 --- a/board/pdeval-stm32f072/board.h +++ b/board/pdeval-stm32f072/board.h @@ -22,6 +22,7 @@ #define CONFIG_STM_HWTIMER32 /* USB Power Delivery configuration */ #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USB_PD_ALT_MODE #define CONFIG_USB_PD_ALT_MODE_DFP #define CONFIG_USB_PD_CUSTOM_PDO diff --git a/board/plankton/board.h b/board/plankton/board.h index a23e861293..5e2f5f28a0 100644 --- a/board/plankton/board.h +++ b/board/plankton/board.h @@ -18,6 +18,7 @@ /* Optional features */ #define CONFIG_STM_HWTIMER32 #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USB_PD_ALT_MODE #define CONFIG_USB_PD_COMM_DISABLED #define CONFIG_USB_PD_CUSTOM_PDO diff --git a/board/poppy/board.h b/board/poppy/board.h index 8c9d687665..e1f839b65b 100644 --- a/board/poppy/board.h +++ b/board/poppy/board.h @@ -164,6 +164,7 @@ #define CONFIG_USB_PD_TCPM_PS8751 #define CONFIG_USB_PD_TRY_SRC #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USBC_SS_MUX #define CONFIG_USBC_VCONN #define CONFIG_USBC_VCONN_SWAP diff --git a/board/puff/board.h b/board/puff/board.h index bfbdba8f8a..728a8c1d2c 100644 --- a/board/puff/board.h +++ b/board/puff/board.h @@ -165,7 +165,8 @@ #undef CONFIG_CHARGE_MANAGER_SAFE_MODE /* USB type C */ -#define CONFIG_USB_SM_FRAMEWORK /* Use TCPMv2 */ +#define CONFIG_USB_PD_TCPMV2 /* Use TCPMv2 */ +#define CONFIG_USB_PD_DECODE_SOP #undef CONFIG_USB_CHARGER #define CONFIG_USB_POWER_DELIVERY #define CONFIG_USB_PID 0x5040 diff --git a/board/rainier/board.h b/board/rainier/board.h index da673c22ec..7ff319e0ea 100644 --- a/board/rainier/board.h +++ b/board/rainier/board.h @@ -90,6 +90,7 @@ /* USB PD config */ #define CONFIG_CHARGE_MANAGER #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USB_PD_ALT_MODE #define CONFIG_USB_PD_ALT_MODE_DFP #define CONFIG_USB_PD_DISCHARGE_GPIO diff --git a/board/rammus/board.h b/board/rammus/board.h index ed2489a84f..738db9c73c 100644 --- a/board/rammus/board.h +++ b/board/rammus/board.h @@ -159,6 +159,7 @@ #define CONFIG_USB_PD_TCPM_PS8751 #define CONFIG_USB_PD_TRY_SRC #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USBC_SS_MUX #define CONFIG_USBC_SS_MUX_DFP_ONLY #define CONFIG_USBC_VCONN diff --git a/board/reef/board.h b/board/reef/board.h index 4d6a65ffcc..7e782646ed 100644 --- a/board/reef/board.h +++ b/board/reef/board.h @@ -92,6 +92,7 @@ #define CONFIG_USB_PD_TCPM_TCPCI #define CONFIG_USB_PD_TRY_SRC #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USB_PD_COMM_LOCKED #define CONFIG_USBC_SS_MUX diff --git a/board/reef_it8320/board.h b/board/reef_it8320/board.h index 46a6c76927..3df468bd60 100644 --- a/board/reef_it8320/board.h +++ b/board/reef_it8320/board.h @@ -78,6 +78,7 @@ #define CONFIG_USB_PD_TCPM_TCPCI #define CONFIG_USB_PD_TRY_SRC #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USB_PD_COMM_LOCKED #define CONFIG_USBC_SS_MUX diff --git a/board/reef_mchp/board.h b/board/reef_mchp/board.h index acaf8d19be..32f826453d 100644 --- a/board/reef_mchp/board.h +++ b/board/reef_mchp/board.h @@ -92,6 +92,7 @@ #define CONFIG_USB_PD_TCPM_TCPCI #define CONFIG_USB_PD_TRY_SRC #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USB_PD_COMM_LOCKED #define CONFIG_USBC_SS_MUX diff --git a/board/samus_pd/board.h b/board/samus_pd/board.h index c6374a3e36..3466d69a34 100644 --- a/board/samus_pd/board.h +++ b/board/samus_pd/board.h @@ -55,6 +55,7 @@ #undef CONFIG_TASK_PROFILING #define CONFIG_USB_CHARGER #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USB_PD_ALT_MODE #define CONFIG_USB_PD_ALT_MODE_DFP #define CONFIG_USB_PD_CHECK_MAX_REQUEST_ALLOWED diff --git a/board/scarlet/board.h b/board/scarlet/board.h index adcca92cdb..7e48ffde52 100644 --- a/board/scarlet/board.h +++ b/board/scarlet/board.h @@ -108,6 +108,7 @@ /* USB PD config */ #define CONFIG_CHARGE_MANAGER #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USB_PD_ALT_MODE #define CONFIG_USB_PD_ALT_MODE_DFP #define CONFIG_USB_PD_DISCHARGE_GPIO diff --git a/board/servo_v4/board.h b/board/servo_v4/board.h index c2b08fa885..298ccd28ce 100644 --- a/board/servo_v4/board.h +++ b/board/servo_v4/board.h @@ -78,6 +78,7 @@ #undef CONFIG_HIBERNATE /* Remove console commands / features for flash / RAM savings */ +#undef CONFIG_USB_PD_HOST_CMD #undef CONFIG_CONSOLE_CMDHELP #undef CONFIG_CONSOLE_HISTORY #undef CONFIG_CMD_CRASH @@ -110,6 +111,7 @@ #define CONFIG_CHARGE_MANAGER #undef CONFIG_CHARGE_MANAGER_SAFE_MODE #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_CMD_PD #define CONFIG_USB_PD_CUSTOM_PDO #define CONFIG_USB_PD_DUAL_ROLE diff --git a/board/strago/board.h b/board/strago/board.h index 5a68c49c52..2f0ca54814 100644 --- a/board/strago/board.h +++ b/board/strago/board.h @@ -37,6 +37,7 @@ #define CONFIG_USB_CHARGER #define CONFIG_USB_MUX_PI3USB30532 #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USB_PD_ALT_MODE #define CONFIG_USB_PD_ALT_MODE_DFP #define CONFIG_USB_PD_DP_HPD_GPIO diff --git a/board/trogdor/board.h b/board/trogdor/board.h index 6a63498ddb..18cf433ace 100644 --- a/board/trogdor/board.h +++ b/board/trogdor/board.h @@ -95,6 +95,7 @@ /* USB */ #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_CMD_PD_CONTROL #define CONFIG_USB_PD_ALT_MODE #define CONFIG_USB_PD_ALT_MODE_DFP diff --git a/board/twinkie/board.h b/board/twinkie/board.h index 1467871f34..24b5b996bf 100644 --- a/board/twinkie/board.h +++ b/board/twinkie/board.h @@ -21,6 +21,7 @@ #define CONFIG_WEBUSB_URL "storage.googleapis.com/webtwinkie.org/tool.html" #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USB_PD_CUSTOM_PDO #define CONFIG_USB_PD_DUAL_ROLE #define CONFIG_USB_PD_INTERNAL_COMP diff --git a/board/waddledee/board.h b/board/waddledee/board.h index 7e2fa7c0bd..a2fe3ead84 100644 --- a/board/waddledee/board.h +++ b/board/waddledee/board.h @@ -46,7 +46,7 @@ #undef CONFIG_USB_PD_DECODE_SOP #undef CONFIG_USB_PID #undef CONFIG_USB_POWER_DELIVERY -#undef CONFIG_USB_SM_FRAMEWORK +#undef CONFIG_USB_PD_TCPMV2 #undef CONFIG_USB_TYPEC_DRP_ACC_TRYSRC /* System unlocked in early development */ diff --git a/board/zinger/board.h b/board/zinger/board.h index f79faca03f..30abce115a 100644 --- a/board/zinger/board.h +++ b/board/zinger/board.h @@ -53,6 +53,7 @@ #define CONFIG_SHA256 #undef CONFIG_TASK_PROFILING #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USB_PD_ALT_MODE #define CONFIG_USB_PD_CUSTOM_PDO #undef CONFIG_USB_PD_DUAL_ROLE diff --git a/common/build.mk b/common/build.mk index 6f3c8baada..3021bb14c8 100644 --- a/common/build.mk +++ b/common/build.mk @@ -144,15 +144,16 @@ common-$(CONFIG_USB_CONSOLE_STREAM)+=usb_console_stream.o common-$(CONFIG_USB_I2C)+=usb_i2c.o common-$(CONFIG_USB_PORT_POWER_DUMB)+=usb_port_power_dumb.o common-$(CONFIG_USB_PORT_POWER_SMART)+=usb_port_power_smart.o -common-$(CONFIG_USB_POWER_DELIVERY)+=usb_common.o usb_pd_host_cmd.o \ - usb_pd_console_cmd.o -ifeq ($(CONFIG_USB_SM_FRAMEWORK),) +ifneq ($(CONFIG_USB_POWER_DELIVERY),) +common-$(CONFIG_USB_POWER_DELIVERY)+=usb_common.o +ifneq ($(CONFIG_USB_PD_TCPMV1),) common-$(CONFIG_USB_POWER_DELIVERY)+=usb_pd_protocol.o usb_pd_policy.o endif -common-$(CONFIG_USB_PD_ALT_MODE_DFP)+=usb_pd_alt_mode_dfp.o -ifneq ($(CONFIG_USB_POWER_DELIVERY),) common-$(CONFIG_USB_PD_DUAL_ROLE)+=usb_pd_dual_role.o +common-$(CONFIG_USB_PD_HOST_CMD)+=usb_pd_host_cmd.o +common-$(CONFIG_USB_PD_CONSOLE_CMD)+=usb_pd_console_cmd.o endif +common-$(CONFIG_USB_PD_ALT_MODE_DFP)+=usb_pd_alt_mode_dfp.o common-$(CONFIG_USB_PD_LOGGING)+=event_log.o pd_log.o common-$(CONFIG_USB_PD_TCPC)+=usb_pd_tcpc.o common-$(CONFIG_USB_UPDATE)+=usb_update.o update_fw.o diff --git a/common/usb_pd_tcpc.c b/common/usb_pd_tcpc.c index 2e1cbf73d7..2fabd8454c 100644 --- a/common/usb_pd_tcpc.c +++ b/common/usb_pd_tcpc.c @@ -722,9 +722,9 @@ int pd_analyze_rx(int port, uint32_t *payload) if (val == PD_SOP) { phs.head |= PD_HEADER_SOP(PD_MSG_SOP); } else if (val == PD_SOP_PRIME) { - phs.head |= PD_HEADER_SOP(PD_MSG_SOPP); + phs.head |= PD_HEADER_SOP(PD_MSG_SOP_PRIME); } else if (val == PD_SOP_PRIME_PRIME) { - phs.head |= PD_HEADER_SOP(PD_MSG_SOPPP); + phs.head |= PD_HEADER_SOP(PD_MSG_SOP_PRIME_PRIME); } else { msg = "SOP*"; goto packet_err; @@ -932,7 +932,7 @@ int tcpc_run(int port, int evt) #endif } -#if !defined(CONFIG_USB_POWER_DELIVERY) && !defined(CONFIG_USB_SM_FRAMEWORK) +#if !defined(CONFIG_USB_POWER_DELIVERY) void pd_task(void *u) { int port = TASK_ID_TO_PD_PORT(task_get_current()); diff --git a/common/usbc/build.mk b/common/usbc/build.mk index 69e540ed67..781c6a9d10 100644 --- a/common/usbc/build.mk +++ b/common/usbc/build.mk @@ -7,8 +7,8 @@ # Note that this variable includes the trailing "/" _usbc_dir:=$(dir $(lastword $(MAKEFILE_LIST))) -ifneq ($(CONFIG_USB_SM_FRAMEWORK),) -all-obj-$(CONFIG_USB_SM_FRAMEWORK)+=$(_usbc_dir)usb_sm.o +ifneq ($(CONFIG_USB_PD_TCPMV2),) +all-obj-$(CONFIG_USB_PD_TCPMV2)+=$(_usbc_dir)usb_sm.o all-obj-$(CONFIG_USB_TYPEC_SM)+=$(_usbc_dir)usbc_task.o all-obj-$(CONFIG_USB_PRL_SM)+=$(_usbc_dir)usb_prl_sm.o ifneq ($(CONFIG_USB_PE_SM),) diff --git a/fuzz/fuzz_config.h b/fuzz/fuzz_config.h index eb7fbc8401..963075efab 100644 --- a/fuzz/fuzz_config.h +++ b/fuzz/fuzz_config.h @@ -104,6 +104,7 @@ enum nvmem_users { #ifdef TEST_USB_PD_FUZZ #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USB_PD_DUAL_ROLE #define CONFIG_USB_PD_PORT_MAX_COUNT 2 #define CONFIG_SHA256 @@ -118,7 +119,7 @@ enum nvmem_users { #define CONFIG_USB_PID 0x5555 #define CONFIG_USB_POWER_DELIVERY #define CONFIG_USB_PRL_SM -#define CONFIG_USB_SM_FRAMEWORK +#define CONFIG_USB_PD_TCPMV2 #define CONFIG_USB_TYPEC_DRP_ACC_TRYSRC #define CONFIG_USBC_VCONN #define CONFIG_USBC_VCONN_SWAP diff --git a/include/config.h b/include/config.h index e876b41bb3..b54e670bc1 100644 --- a/include/config.h +++ b/include/config.h @@ -898,32 +898,21 @@ */ #undef CONFIG_CHARGER_BQ25710_IDCHG_LIMIT_MA -/* - * Define to use Power Delivery State Machine Framework. Along with - * CONFIG_USB_SM_FRAMEWORK, you must ensure the follow options are defined to - * use the new statemachine for USB-C: - * - * CONFIG_USB_TYPEC_SM (defined by default) - * CONFIG_USB_PRL_SM (defined by default) - * One of CONFIG_USB_PE_* policy engine options. - */ -#undef CONFIG_USB_SM_FRAMEWORK - /* * Define to enable Type-C State Machine. Must be enabled - * with CONFIG_USB_SM_FRAMEWORK + * with CONFIG_USB_PD_TCPMV2 */ #define CONFIG_USB_TYPEC_SM /* * Define to enable Protocol Layer State Machine. Must be enabled - * with CONFIG_USB_SM_FRAMEWORK and CONFIG_USB_TYPEC_SM + * with CONFIG_USB_PD_TCPMV2 and CONFIG_USB_TYPEC_SM */ #define CONFIG_USB_PRL_SM /* * Define to enable Policy Engine State Machine. Must be enabled - * with CONFIG_USB_SM_FRAMEWORK and CONFIG_USB_TYPEC_SM + * with CONFIG_USB_SM_PD_TCPMV2 and CONFIG_USB_TYPEC_SM */ #define CONFIG_USB_PE_SM @@ -3728,9 +3717,40 @@ /*****************************************************************************/ /* USB PD config */ -/* Include all USB Power Delivery modules */ +/* + * Enables USB Power Delivery + * + * When this config option is enabled, one of the following must be enabled: + * CONFIG_USB_PD_TCPMV1 - legacy power delivery state machine + * CONFIG_USB_PD_TCPMV2 - current power delivery state machine + */ #undef CONFIG_USB_POWER_DELIVERY +/* + * Enables the Legacy power delivery state machine. + * NOTE: Should not be used for new designs. + */ +#undef CONFIG_USB_PD_TCPMV1 + +/* + * Enables Version 2 of the Power Delivery state machine + * + * Along with CONFIG_USB_PD_TCPMV2, you must ensure the follow + * options are defined to use the new statemachine for USB-C: + * + * CONFIG_USB_PD_DECODE_SOP + * CONFIG_USB_TYPEC_SM (defined by default) + * CONFIG_USB_PRL_SM (defined by default) + * One of CONFIG_USB_PE_* policy engine options. + */ +#undef CONFIG_USB_PD_TCPMV2 + +/* Enables PD Console commands */ +#define CONFIG_USB_PD_CONSOLE_CMD + +/* Enables PD Host commands */ +#define CONFIG_USB_PD_HOST_CMD + /* Support for USB PD alternate mode */ #undef CONFIG_USB_PD_ALT_MODE @@ -4603,6 +4623,24 @@ #error Must enable eSPI to enable virtual wires. #endif +/******************************************************************************/ +/* + * If CONFIG_USB_POWER_DELIVERY is enabled, make sure either + * CONFIG_USB_PD_TCPMV1 or CONFIG_USB_PD_TCPMV2 is enabled but not both. Also + * make sure CONFIG_USB_PD_DECODE_SOP is enabled with CONFIG_USB_PD_TCPMV2 + */ +#ifdef CONFIG_USB_POWER_DELIVERY +#if defined(CONFIG_USB_PD_TCPMV1) && defined(CONFIG_USB_PD_TCPMV2) +#error Only one version of the USB PD State Machine can be enabled. +#endif +#if !defined(CONFIG_USB_PD_TCPMV1) && !defined(CONFIG_USB_PD_TCPMV2) +#error Please enable CONFIG_USB_PD_TCPMV1 or CONFIG_USB_PD_TCPMV2. +#endif +#if defined(CONFIG_USB_PD_TCPMV2) && !defined(CONFIG_USB_PD_DECODE_SOP) +#error CONFIG_USB_PD_DECODE_SOP must be enabled with the TCPMV2 PD state machine +#endif +#endif + /******************************************************************************/ /* * Automatically define CONFIG_HOSTCMD_X86 if either child option is defined. diff --git a/test/test_config.h b/test/test_config.h index b0dac3deeb..65e8ccffd4 100644 --- a/test/test_config.h +++ b/test/test_config.h @@ -281,6 +281,7 @@ int ncp15wb_calculate_temp(uint16_t adc); #ifdef TEST_USB_COMMON #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USB_PD_PORT_MAX_COUNT 1 #define CONFIG_USB_PD_TCPC #define CONFIG_USB_PD_TCPM_STUB @@ -293,7 +294,7 @@ int ncp15wb_calculate_temp(uint16_t adc); #undef CONFIG_USB_PRL_SM #undef CONFIG_USB_PE_SM #undef CONFIG_USB_TYPEC_SM -#define CONFIG_USB_SM_FRAMEWORK +#define CONFIG_USB_PD_TCPMV2 #endif #if defined(TEST_USB_SM_FRAMEWORK_H2) @@ -301,7 +302,7 @@ int ncp15wb_calculate_temp(uint16_t adc); #undef CONFIG_USB_PRL_SM #undef CONFIG_USB_PE_SM #undef CONFIG_USB_TYPEC_SM -#define CONFIG_USB_SM_FRAMEWORK +#define CONFIG_USB_PD_TCPMV2 #endif #if defined(TEST_USB_SM_FRAMEWORK_H1) @@ -309,7 +310,7 @@ int ncp15wb_calculate_temp(uint16_t adc); #undef CONFIG_USB_PRL_SM #undef CONFIG_USB_PE_SM #undef CONFIG_USB_TYPEC_SM -#define CONFIG_USB_SM_FRAMEWORK +#define CONFIG_USB_PD_TCPMV2 #endif #if defined(TEST_USB_SM_FRAMEWORK_H0) @@ -317,12 +318,12 @@ int ncp15wb_calculate_temp(uint16_t adc); #undef CONFIG_USB_PRL_SM #undef CONFIG_USB_PE_SM #undef CONFIG_USB_TYPEC_SM -#define CONFIG_USB_SM_FRAMEWORK +#define CONFIG_USB_PD_TCPMV2 #endif #if defined(TEST_USB_PRL) #define CONFIG_USB_PD_PORT_MAX_COUNT 2 -#define CONFIG_USB_SM_FRAMEWORK +#define CONFIG_USB_PD_TCPMV2 #undef CONFIG_USB_PE_SM #undef CONFIG_USB_TYPEC_SM #define CONFIG_USB_PRL_SM @@ -340,7 +341,7 @@ int ncp15wb_calculate_temp(uint16_t adc); #define CONFIG_USB_PID 0x5036 #define CONFIG_USB_POWER_DELIVERY #undef CONFIG_USB_PRL_SM -#define CONFIG_USB_SM_FRAMEWORK +#define CONFIG_USB_PD_TCPMV2 #undef CONFIG_USB_TYPEC_SM #define CONFIG_USBC_VCONN #define PD_VCONN_SWAP_DELAY 5000 /* us */ @@ -362,7 +363,7 @@ int ncp15wb_calculate_temp(uint16_t adc); #define VPD_GND_IMPEDANCE 33 #define CONFIG_USB_PD_PORT_MAX_COUNT 1 -#define CONFIG_USB_SM_FRAMEWORK +#define CONFIG_USB_PD_TCPMV2 #define CONFIG_USB_PE_SM #define CONFIG_USB_PRL_SM #define CONFIG_USB_TYPEC_SM @@ -385,7 +386,7 @@ int ncp15wb_calculate_temp(uint16_t adc); #define CONFIG_USB_PD_DUAL_ROLE #define CONFIG_USB_PD_TRY_SRC #define CONFIG_USB_TYPEC_SM -#define CONFIG_USB_SM_FRAMEWORK +#define CONFIG_USB_PD_TCPMV2 #define CONFIG_USB_PD_PORT_MAX_COUNT 1 #define CONFIG_USBC_SS_MUX #define CONFIG_USB_PD_VBUS_DETECT_TCPC @@ -396,6 +397,7 @@ int ncp15wb_calculate_temp(uint16_t adc); #ifdef TEST_USB_PD_INT #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USB_PD_DUAL_ROLE #define CONFIG_USB_PD_PORT_MAX_COUNT 1 #define CONFIG_USB_PD_TCPC @@ -407,6 +409,7 @@ int ncp15wb_calculate_temp(uint16_t adc); #if defined(TEST_USB_PD) || defined(TEST_USB_PD_GIVEBACK) || \ defined(TEST_USB_PD_REV30) #define CONFIG_USB_POWER_DELIVERY +#define CONFIG_USB_PD_TCPMV1 #define CONFIG_USB_PD_DUAL_ROLE #define CONFIG_USB_PD_PORT_MAX_COUNT 2 #define CONFIG_USB_PD_TCPC -- cgit v1.2.1