1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
|
# 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_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_POLARITY
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
|