# Copyright 2022 The ChromiumOS Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. if PLATFORM_EC_USBC menuconfig PLATFORM_EC_USBC_PPC bool "USB Type-C Power Path Controller" default y help Enable this to support the USB Type-C PPC on your board. This enables common routines for things like figuring out whether power is being supplied to the Chromebook over USB-C, whether the Chromebook is supplying power to another device, etc. if PLATFORM_EC_USBC_PPC config PLATFORM_EC_USBC_PPC_POLARITY bool help Enable this if a Power Path Controller needs to be informed of the polarity of the Configuration Channel (CC) pins. This can change depending on which way up the USB-C cable is inserted into the device. This should be enabled by drivers which can detect this. It cannot be set otherwise, even in prj.conf config PLATFORM_EC_USBC_PPC_SBU bool help Enable this if a Power Path Controller is capable of gating the Sideband Use (SBU) lines. If so, the USB mux will use this feature to isolate the lines before entering into alternate mode. This should be enabled by drivers which can detect this. It cannot be set otherwise, even in prj.conf config PLATFORM_EC_USBC_PPC_VCONN bool depends on PLATFORM_EC_USBC_VCONN help Enable this if a Power Path Controller is capable of providing VCONN. If so, the USB stack will enable / disable VCONN as needed. This should be enabled by drivers which can detect this. It cannot be set otherwise, even in prj.conf Note: This may not be true, as there may be scenarios where the board might need to disable this feature (for instance when both the PPC and TCPC can supply VCONN). We can cross that bridge when we come to it. config PLATFORM_EC_USBC_PPC_AOZ1380 bool "Alpha & Omega USB Type-C PD Sink and Source Protection Switch" default y depends on DT_HAS_AOZ_AOZ1380_ENABLED select PLATFORM_EC_USBC_OCP help AOZ1380DI integrates two power switches and control circuitry to provide all the functionality and protection needed for sourcing and sinking current through a USB Type-C port with PD capability. config PLATFORM_EC_USBC_PPC_TCPCI bool "USB-C TCPCI PD Sink and Source Protection Switch" select PLATFORM_EC_USBC_OCP help A TCPC which supports TCPCI integrates two power switches and control circuitry to provide the functionality and protection needed for sourcing and sinking current through a USB Type-C port with PD capability. config PLATFORM_EC_USBC_PPC_RT1718S bool "Richtek RT1718S TCPC/PPC" select PLATFORM_EC_USB_PD_TCPM_RT1718S select PLATFORM_EC_USBC_OCP select PLATFORM_EC_USBC_PPC_POLARITY select PLATFORM_EC_USBC_PPC_SBU select PLATFORM_EC_USBC_PPC_VCONN if PLATFORM_EC_USBC_VCONN default y depends on DT_HAS_RICHTEK_RT1718S_TCPC_ENABLED help RT1718S integrates several high voltage protection switch of SBU1/SBU2/DP/DM from high voltage VBUS touching the adjacent pins. The AMR of SBU OVP switch is 24V. High Voltage USB 2.0 Switches also support HV DCP & fast charging protocols. The GPIOs in RT1718S can be also configured to control system block such as USB3.0 to DP Mux for alternated mode usage. VCONN Switch with OVP/OCP/RVP/RCP/UVP protection is also integrated. config PLATFORM_EC_USBC_PPC_KTU1125 bool "Kinetic KTU1125 Power Path Controller" default y depends on DT_HAS_KINETIC_KTU1125_ENABLED select PLATFORM_EC_USBC_OCP select PLATFORM_EC_USBC_PPC_SBU select PLATFORM_EC_USBC_PPC_VCONN if PLATFORM_EC_USBC_VCONN help KTU1125 integrates power switches to provide a compact protection solution to USB Type-C applications by eliminating the dependence on external components. config PLATFORM_EC_USBC_PPC_NX20P3481 bool "NX20P3481 High Voltage Sink/Source Combo Switch" depends on DT_HAS_NXP_NX20P348X_ENABLED select PLATFORM_EC_USBC_OCP help The NX20P3481 is a product with combined multiple power switches and a LDO for USB PD application. config PLATFORM_EC_USBC_PPC_NX20P3483 bool "NX20P3483 High Voltage Sink/Source Combo Switch" default y depends on DT_HAS_NXP_NX20P348X_ENABLED select PLATFORM_EC_USBC_OCP help The NX20P3483 is a product with combined multiple power switches and a LDO for USB PD application. config PLATFORM_EC_USBC_NX20P348X_RCP_5VSRC_MASK_ENABLE bool "NX20P3483 RCP 5VSRC MASK enable" depends on PLATFORM_EC_USBC_PPC_NX20P3483 help The NX20P3483 is a product with 5V SRC reverse current protection mask enable and disable. config PLATFORM_EC_USBC_PPC_RT1739 bool "Richtek RT1739 Type-C Power Path Controller" default y depends on DT_HAS_RICHTEK_RT1739_PPC_ENABLED help RT1739 is a highly integrated USB-C Bi-Directional Power Mux and Protection IC which includes IEC-61000-4-2 ESD protection cell for VBUS/CC/SBU/DP/DM. config PLATFORM_EC_USBC_PPC_SN5S330 bool "TI SN5S330 PD 3.0 power mux" select PLATFORM_EC_USBC_OCP select PLATFORM_EC_USBC_PPC_POLARITY select PLATFORM_EC_USBC_PPC_SBU select PLATFORM_EC_USBC_PPC_VCONN if PLATFORM_EC_USBC_VCONN default y if DT_HAS_TI_SN5S330_ENABLED || DT_HAS_CROS_SN5S330_EMUL_ENABLED help This is a USB Type-C Power Delivery 3.0 Bidirectional Power Mux with CC and SBU short-to-VBUS Protection and Integrated Dead Battery LDO. This chips provides protection against pins shorting to Vbus as well as ESD (Electostatic discharge) protection. It provides a simple I2C interface for for Mode Selection, Fast Role Swap, and Fault Reporting. config PLATFORM_EC_USBC_PPC_SYV682X bool "SYV682X which is a Power Mux for USB PD" select PLATFORM_EC_USBC_OCP select PLATFORM_EC_USBC_PPC_POLARITY select PLATFORM_EC_USBC_PPC_VCONN if PLATFORM_EC_USBC_VCONN default y if DT_HAS_SILERGY_SYV682X_ENABLED help The SYV682A is a 2 to 1 power mux switch for USB PD applications. The SYV682A supports dead battery wake up function and Fast Role Swap features. It provides protection against overcurrent, overvoltage, thermal shutdown, and undervoltage conditions. config PLATFORM_EC_USBC_PPC_SYV682C bool "SYV682C Power Mux for USB PD (subset of SYV682X)" depends on PLATFORM_EC_USBC_PPC_SYV682X help The C version of this chip won't block I2C accessing to the CONTROL4 rer (to on/off Vconn) when smart discahrge is enabled. This allows us to re-enable the smart discharge on boards using SYV682C. config PLATFORM_EC_USBC_PPC_SYV682X_HV_ILIM int "SYV682X high-voltage current limit" depends on PLATFORM_EC_USBC_PPC_SYV682X default 2 help SYV682x PPC high voltage power path current limit. Valid values are 0 (1.25A), 1 (1.75A), 2 (3.3A), or 3 (5.5A). See syv682x.h. config PLATFORM_EC_USBC_PPC_SYV682X_NO_CC bool "SYV682X does not pass through CC" help Enable this if a SYV682X does not pass through CC. There is a 3.6V limit on the HOST_CC signals, so the TCPC should not source 5V VCONN. This config determines if sourcing VCONN should be enabled by default. config PLATFORM_EC_USBC_PPC_SYV682X_SMART_DISCHARGE bool "Enable smart discharge on the SYV682X PPC" help Enable the smart discharge feature on VBUS provided by the SYV682x PPC. This should be enabled for revision C and above of the SYV682X. Earlier revisions of the chip block I2C transactions during smart discharge, causing USB PD compliance issues. config PLATFORM_EC_USBC_PPC_DEDICATED_INT bool "Power Power Controller has a dedicated interrupt pin" help Enable this if the Power Power Controller (PPC) has level interrupts (as opposed to edge) and a dedicated interrupt pin to check the current state. If this is enabled the USB Power Delivery (PD) stack will call ppc_get_alert_status() to find out he interrupt status for a port. This function should be provided by the board code. endif # PLATFORM_EC_USBC_PPC endif # PLATFORM_EC_USBC