1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/connector/usb-connector.yaml#
5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
7c66ec88fSEmmanuel Vadottitle: USB Connector
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotmaintainers:
10c66ec88fSEmmanuel Vadot  - Rob Herring <robh@kernel.org>
11c66ec88fSEmmanuel Vadot
12c66ec88fSEmmanuel Vadotdescription:
13c66ec88fSEmmanuel Vadot  A USB connector node represents a physical USB connector. It should be a child
146be33864SEmmanuel Vadot  of a USB interface controller or a separate node when it is attached to both
156be33864SEmmanuel Vadot  MUX and USB interface controller.
16c66ec88fSEmmanuel Vadot
17c66ec88fSEmmanuel Vadotproperties:
18c66ec88fSEmmanuel Vadot  compatible:
19c66ec88fSEmmanuel Vadot    oneOf:
20c66ec88fSEmmanuel Vadot      - enum:
21c66ec88fSEmmanuel Vadot          - usb-a-connector
22c66ec88fSEmmanuel Vadot          - usb-b-connector
23c66ec88fSEmmanuel Vadot          - usb-c-connector
24c66ec88fSEmmanuel Vadot
25c66ec88fSEmmanuel Vadot      - items:
26c66ec88fSEmmanuel Vadot          - const: gpio-usb-b-connector
27c66ec88fSEmmanuel Vadot          - const: usb-b-connector
28c66ec88fSEmmanuel Vadot
296be33864SEmmanuel Vadot      - items:
306be33864SEmmanuel Vadot          - const: samsung,usb-connector-11pin
316be33864SEmmanuel Vadot          - const: usb-b-connector
326be33864SEmmanuel Vadot
33aa1a8ff2SEmmanuel Vadot  reg:
34aa1a8ff2SEmmanuel Vadot    maxItems: 1
35aa1a8ff2SEmmanuel Vadot
36c66ec88fSEmmanuel Vadot  label:
37c66ec88fSEmmanuel Vadot    description: Symbolic name for the connector.
38c66ec88fSEmmanuel Vadot
39c66ec88fSEmmanuel Vadot  type:
40c66ec88fSEmmanuel Vadot    description: Size of the connector, should be specified in case of
41c66ec88fSEmmanuel Vadot      non-fullsize 'usb-a-connector' or 'usb-b-connector' compatible
42c66ec88fSEmmanuel Vadot      connectors.
435def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/string
44c66ec88fSEmmanuel Vadot
45c66ec88fSEmmanuel Vadot    enum:
46c66ec88fSEmmanuel Vadot      - mini
47c66ec88fSEmmanuel Vadot      - micro
48c66ec88fSEmmanuel Vadot
49c66ec88fSEmmanuel Vadot  self-powered:
50c66ec88fSEmmanuel Vadot    description: Set this property if the USB device has its own power source.
51c66ec88fSEmmanuel Vadot    type: boolean
52c66ec88fSEmmanuel Vadot
53c66ec88fSEmmanuel Vadot  # The following are optional properties for "usb-b-connector".
54c66ec88fSEmmanuel Vadot  id-gpios:
55c66ec88fSEmmanuel Vadot    description: An input gpio for USB ID pin.
56c66ec88fSEmmanuel Vadot    maxItems: 1
57c66ec88fSEmmanuel Vadot
58c66ec88fSEmmanuel Vadot  vbus-gpios:
59c66ec88fSEmmanuel Vadot    description: An input gpio for USB VBus pin, used to detect presence of
60c66ec88fSEmmanuel Vadot      VBUS 5V.
61c66ec88fSEmmanuel Vadot    maxItems: 1
62c66ec88fSEmmanuel Vadot
63c66ec88fSEmmanuel Vadot  vbus-supply:
64c66ec88fSEmmanuel Vadot    description: A phandle to the regulator for USB VBUS if needed when host
65c66ec88fSEmmanuel Vadot      mode or dual role mode is supported.
66c66ec88fSEmmanuel Vadot      Particularly, if use an output GPIO to control a VBUS regulator, should
67c66ec88fSEmmanuel Vadot      model it as a regulator. See bindings/regulator/fixed-regulator.yaml
68c66ec88fSEmmanuel Vadot
69c66ec88fSEmmanuel Vadot  power-role:
70c66ec88fSEmmanuel Vadot    description: Determines the power role that the Type C connector will
71c66ec88fSEmmanuel Vadot      support. "dual" refers to Dual Role Port (DRP).
725def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/string
73c66ec88fSEmmanuel Vadot
74c66ec88fSEmmanuel Vadot    enum:
75c66ec88fSEmmanuel Vadot      - source
76c66ec88fSEmmanuel Vadot      - sink
77c66ec88fSEmmanuel Vadot      - dual
78c66ec88fSEmmanuel Vadot
79c66ec88fSEmmanuel Vadot  try-power-role:
80c66ec88fSEmmanuel Vadot    description: Preferred power role.
815def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/string
82c66ec88fSEmmanuel Vadot
83c66ec88fSEmmanuel Vadot    enum:
84c66ec88fSEmmanuel Vadot      - source
85c66ec88fSEmmanuel Vadot      - sink
86c66ec88fSEmmanuel Vadot      - dual
87c66ec88fSEmmanuel Vadot
88c66ec88fSEmmanuel Vadot  data-role:
89c66ec88fSEmmanuel Vadot    description: Data role if Type C connector supports USB data. "dual" refers
90c66ec88fSEmmanuel Vadot      Dual Role Device (DRD).
915def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/string
92c66ec88fSEmmanuel Vadot
93c66ec88fSEmmanuel Vadot    enum:
94c66ec88fSEmmanuel Vadot      - host
95c66ec88fSEmmanuel Vadot      - device
96c66ec88fSEmmanuel Vadot      - dual
97c66ec88fSEmmanuel Vadot
985def4c47SEmmanuel Vadot  typec-power-opmode:
995def4c47SEmmanuel Vadot    description: Determines the power operation mode that the Type C connector
1005def4c47SEmmanuel Vadot      will support and will advertise through CC pins when it has no power
1015def4c47SEmmanuel Vadot      delivery support.
1025def4c47SEmmanuel Vadot      - "default" corresponds to default USB voltage and current defined by the
1035def4c47SEmmanuel Vadot        USB 2.0 and USB 3.2 specifications, 5V 500mA for USB 2.0 ports and
1045def4c47SEmmanuel Vadot        5V 900mA or 1500mA for USB 3.2 ports in single-lane or dual-lane
1055def4c47SEmmanuel Vadot        operation respectively.
1065def4c47SEmmanuel Vadot      - "1.5A" and "3.0A", 5V 1.5A and 5V 3.0A respectively, as defined in USB
1075def4c47SEmmanuel Vadot        Type-C Cable and Connector specification, when Power Delivery is not
1085def4c47SEmmanuel Vadot        supported.
109c9ccf3a3SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/string
1105def4c47SEmmanuel Vadot    enum:
1115def4c47SEmmanuel Vadot      - default
1125def4c47SEmmanuel Vadot      - 1.5A
1135def4c47SEmmanuel Vadot      - 3.0A
1145def4c47SEmmanuel Vadot
115354d7675SEmmanuel Vadot  pd-disable:
116354d7675SEmmanuel Vadot    description: Set this property if the Type-C connector has no power delivery support.
117354d7675SEmmanuel Vadot    type: boolean
118354d7675SEmmanuel Vadot
119c66ec88fSEmmanuel Vadot  # The following are optional properties for "usb-c-connector" with power
120c66ec88fSEmmanuel Vadot  # delivery support.
1215def4c47SEmmanuel Vadot  sink-vdos:
1225def4c47SEmmanuel Vadot    description: An array of u32 with each entry, a Vendor Defined Message Object (VDO),
1235def4c47SEmmanuel Vadot      providing additional information corresponding to the product, the detailed bit
1245def4c47SEmmanuel Vadot      definitions and the order of each VDO can be found in
1255def4c47SEmmanuel Vadot      "USB Power Delivery Specification Revision 3.0, Version 2.0 + ECNs 2020-12-10"
1265def4c47SEmmanuel Vadot      chapter 6.4.4.3.1 Discover Identity. User can specify the VDO array via
1275def4c47SEmmanuel Vadot      VDO_IDH/_CERT/_PRODUCT/_UFP/_DFP/_PCABLE/_ACABLE(1/2)/_VPD() defined in
1285def4c47SEmmanuel Vadot      dt-bindings/usb/pd.h.
1295def4c47SEmmanuel Vadot    minItems: 3
1305def4c47SEmmanuel Vadot    maxItems: 6
1315def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32-array
1325def4c47SEmmanuel Vadot
1332eb4d8dcSEmmanuel Vadot  sink-vdos-v1:
1342eb4d8dcSEmmanuel Vadot    description: An array of u32 with each entry, a Vendor Defined Message Object (VDO),
1352eb4d8dcSEmmanuel Vadot      providing additional information corresponding to the product, the detailed bit
1362eb4d8dcSEmmanuel Vadot      definitions and the order of each VDO can be found in
1372eb4d8dcSEmmanuel Vadot      "USB Power Delivery Specification Revision 2.0, Version 1.3" chapter 6.4.4.3.1 Discover
1382eb4d8dcSEmmanuel Vadot      Identity. User can specify the VDO array via VDO_IDH/_CERT/_PRODUCT/_CABLE/_AMA defined in
1392eb4d8dcSEmmanuel Vadot      dt-bindings/usb/pd.h.
1402eb4d8dcSEmmanuel Vadot    minItems: 3
1412eb4d8dcSEmmanuel Vadot    maxItems: 6
1422eb4d8dcSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32-array
1432eb4d8dcSEmmanuel Vadot
144*8d13bc63SEmmanuel Vadot  accessory-mode-audio:
145*8d13bc63SEmmanuel Vadot    type: boolean
146*8d13bc63SEmmanuel Vadot    description: Whether the device supports Audio Adapter Accessory Mode. This
147*8d13bc63SEmmanuel Vadot      is only necessary if there are no other means to discover supported
148*8d13bc63SEmmanuel Vadot      alternative modes (e.g. through the UCSI firmware interface).
149*8d13bc63SEmmanuel Vadot
150*8d13bc63SEmmanuel Vadot  accessory-mode-debug:
151*8d13bc63SEmmanuel Vadot    type: boolean
152*8d13bc63SEmmanuel Vadot    description: Whether the device supports Debug Accessory Mode. This
153*8d13bc63SEmmanuel Vadot      is only necessary if there are no other means to discover supported
154*8d13bc63SEmmanuel Vadot      alternative modes (e.g. through the UCSI firmware interface).
155*8d13bc63SEmmanuel Vadot
156*8d13bc63SEmmanuel Vadot  altmodes:
157*8d13bc63SEmmanuel Vadot    type: object
158*8d13bc63SEmmanuel Vadot    description: List of Alternative Modes supported by the schematics on the
159*8d13bc63SEmmanuel Vadot      particular device. This is only necessary if there are no other means to
160*8d13bc63SEmmanuel Vadot      discover supported alternative modes (e.g. through the UCSI firmware
161*8d13bc63SEmmanuel Vadot      interface).
162*8d13bc63SEmmanuel Vadot
163*8d13bc63SEmmanuel Vadot    additionalProperties: false
164*8d13bc63SEmmanuel Vadot
165*8d13bc63SEmmanuel Vadot    patternProperties:
166*8d13bc63SEmmanuel Vadot      "^(displayport)$":
167*8d13bc63SEmmanuel Vadot        type: object
168*8d13bc63SEmmanuel Vadot        description:
169*8d13bc63SEmmanuel Vadot          A single USB-C Alternative Mode as supported by the USB-C connector logic.
170*8d13bc63SEmmanuel Vadot
171*8d13bc63SEmmanuel Vadot        additionalProperties: false
172*8d13bc63SEmmanuel Vadot
173*8d13bc63SEmmanuel Vadot        properties:
174*8d13bc63SEmmanuel Vadot          svid:
175*8d13bc63SEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/uint16
176*8d13bc63SEmmanuel Vadot            description: Unique value assigned by USB-IF to the Vendor / AltMode.
177*8d13bc63SEmmanuel Vadot            enum: [ 0xff01 ]
178*8d13bc63SEmmanuel Vadot          vdo:
179*8d13bc63SEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/uint32
180*8d13bc63SEmmanuel Vadot            description: VDO returned by Discover Modes USB PD command.
181c66ec88fSEmmanuel Vadot
182f126890aSEmmanuel Vadot  port:
183f126890aSEmmanuel Vadot    $ref: /schemas/graph.yaml#/properties/port
184f126890aSEmmanuel Vadot    description: OF graph bindings modeling a data bus to the connector, e.g.
185f126890aSEmmanuel Vadot      there is a single High Speed (HS) port present in this connector. If there
186f126890aSEmmanuel Vadot      is more than one bus (several port, with 'reg' property), they can be grouped
187f126890aSEmmanuel Vadot      under 'ports'.
188f126890aSEmmanuel Vadot
189c66ec88fSEmmanuel Vadot  ports:
1905def4c47SEmmanuel Vadot    $ref: /schemas/graph.yaml#/properties/ports
1915def4c47SEmmanuel Vadot    description: OF graph bindings modeling any data bus to the connector
1925def4c47SEmmanuel Vadot      unless the bus is between parent node and the connector. Since a single
1935def4c47SEmmanuel Vadot      connector can have multiple data buses every bus has an assigned OF graph
1945def4c47SEmmanuel Vadot      port number as described below.
1955def4c47SEmmanuel Vadot
196c66ec88fSEmmanuel Vadot    properties:
197c66ec88fSEmmanuel Vadot      port@0:
1985def4c47SEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
199c66ec88fSEmmanuel Vadot        description: High Speed (HS), present in all connectors.
200c66ec88fSEmmanuel Vadot
201c66ec88fSEmmanuel Vadot      port@1:
2025def4c47SEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
203c66ec88fSEmmanuel Vadot        description: Super Speed (SS), present in SS capable connectors.
204c66ec88fSEmmanuel Vadot
205c66ec88fSEmmanuel Vadot      port@2:
2065def4c47SEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
207c66ec88fSEmmanuel Vadot        description: Sideband Use (SBU), present in USB-C. This describes the
208c66ec88fSEmmanuel Vadot          alternate mode connection of which SBU is a part.
209c66ec88fSEmmanuel Vadot
210c66ec88fSEmmanuel Vadot    required:
211c66ec88fSEmmanuel Vadot      - port@0
212c66ec88fSEmmanuel Vadot
2135def4c47SEmmanuel Vadot  new-source-frs-typec-current:
2145def4c47SEmmanuel Vadot    description: Initial current capability of the new source when vSafe5V
2155def4c47SEmmanuel Vadot      is applied during PD3.0 Fast Role Swap. "Table 6-14 Fixed Supply PDO - Sink"
2165def4c47SEmmanuel Vadot      of "USB Power Delivery Specification Revision 3.0, Version 1.2" provides the
2175def4c47SEmmanuel Vadot      different power levels and "6.4.1.3.1.6 Fast Role Swap USB Type-C Current"
2185def4c47SEmmanuel Vadot      provides a detailed description of the field. The sink PDO from current source
2195def4c47SEmmanuel Vadot      reflects the current source's(i.e. transmitter of the FRS signal) power
2205def4c47SEmmanuel Vadot      requirement during fr swap. The current sink (i.e. receiver of the FRS signal),
2215def4c47SEmmanuel Vadot      a.k.a new source, should check if it will be able to satisfy the current source's,
2225def4c47SEmmanuel Vadot      new sink's, requirement during frswap before enabling the frs signal reception.
2235def4c47SEmmanuel Vadot      This property refers to maximum current capability that the current sink can
2245def4c47SEmmanuel Vadot      satisfy. During FRS, VBUS voltage is at 5V, as the partners are in implicit
2255def4c47SEmmanuel Vadot      contract, hence, the power level is only a function of the current capability.
2265def4c47SEmmanuel Vadot      "1" refers to default USB power level as described by "Table 6-14 Fixed Supply PDO - Sink".
2275def4c47SEmmanuel Vadot      "2" refers to 1.5A@5V.
2285def4c47SEmmanuel Vadot      "3" refers to 3.0A@5V.
2295def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
2305def4c47SEmmanuel Vadot    enum: [1, 2, 3]
2315def4c47SEmmanuel Vadot
2322eb4d8dcSEmmanuel Vadot  slow-charger-loop:
2332eb4d8dcSEmmanuel Vadot    description: Allows PMIC charger loops which are slow(i.e. cannot meet the 15ms deadline) to
2342eb4d8dcSEmmanuel Vadot      still comply to pSnkStby i.e Maximum power that can be consumed by sink while in Sink Standby
2352eb4d8dcSEmmanuel Vadot      state as defined in 7.4.2 Sink Electrical Parameters of USB Power Delivery Specification
2362eb4d8dcSEmmanuel Vadot      Revision 3.0, Version 1.2. When the property is set, the port requests pSnkStby(2.5W -
2372eb4d8dcSEmmanuel Vadot      5V@500mA) upon entering SNK_DISCOVERY(instead of 3A or the 1.5A, Rp current advertised, during
238aa1a8ff2SEmmanuel Vadot      SNK_DISCOVERY) and the actual current limit after reception of PS_Ready for PD link or during
2392eb4d8dcSEmmanuel Vadot      SNK_READY for non-pd link.
2402eb4d8dcSEmmanuel Vadot    type: boolean
2412eb4d8dcSEmmanuel Vadot
242*8d13bc63SEmmanuel Vadot  capabilities:
243*8d13bc63SEmmanuel Vadot    description: A child node to contain all the selectable USB Power Delivery capabilities.
244*8d13bc63SEmmanuel Vadot    type: object
245*8d13bc63SEmmanuel Vadot
246*8d13bc63SEmmanuel Vadot    patternProperties:
247*8d13bc63SEmmanuel Vadot      "^caps-[0-9]+$":
248*8d13bc63SEmmanuel Vadot        description: Child nodes under "capabilities" node. Each node contains a selectable USB
249*8d13bc63SEmmanuel Vadot          Power Delivery capability.
250*8d13bc63SEmmanuel Vadot        type: object
251*8d13bc63SEmmanuel Vadot        $ref: "#/$defs/capabilities"
252*8d13bc63SEmmanuel Vadot        unevaluatedProperties: false
253*8d13bc63SEmmanuel Vadot
254*8d13bc63SEmmanuel Vadot    additionalProperties: false
255*8d13bc63SEmmanuel Vadot
2562eb4d8dcSEmmanuel Vadotdependencies:
257aa1a8ff2SEmmanuel Vadot  sink-vdos-v1: [ sink-vdos ]
258aa1a8ff2SEmmanuel Vadot  sink-vdos: [ sink-vdos-v1 ]
2592eb4d8dcSEmmanuel Vadot
260c66ec88fSEmmanuel Vadotrequired:
261c66ec88fSEmmanuel Vadot  - compatible
262c66ec88fSEmmanuel Vadot
263*8d13bc63SEmmanuel Vadot$defs:
264*8d13bc63SEmmanuel Vadot  capabilities:
265*8d13bc63SEmmanuel Vadot    type: object
266*8d13bc63SEmmanuel Vadot
267*8d13bc63SEmmanuel Vadot    properties:
268*8d13bc63SEmmanuel Vadot      source-pdos:
269*8d13bc63SEmmanuel Vadot        description: An array of u32 with each entry providing supported power
270*8d13bc63SEmmanuel Vadot          source data object(PDO), the detailed bit definitions of PDO can be found
271*8d13bc63SEmmanuel Vadot          in "Universal Serial Bus Power Delivery Specification" chapter 6.4.1.2
272*8d13bc63SEmmanuel Vadot          Source_Capabilities Message, the order of each entry(PDO) should follow
273*8d13bc63SEmmanuel Vadot          the PD spec chapter 6.4.1. Required for power source and power dual role.
274*8d13bc63SEmmanuel Vadot          User can specify the source PDO array via PDO_FIXED/BATT/VAR/PPS_APDO()
275*8d13bc63SEmmanuel Vadot          defined in dt-bindings/usb/pd.h.
276*8d13bc63SEmmanuel Vadot        minItems: 1
277*8d13bc63SEmmanuel Vadot        maxItems: 7
278*8d13bc63SEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32-array
279*8d13bc63SEmmanuel Vadot
280*8d13bc63SEmmanuel Vadot      sink-pdos:
281*8d13bc63SEmmanuel Vadot        description: An array of u32 with each entry providing supported power sink
282*8d13bc63SEmmanuel Vadot          data object(PDO), the detailed bit definitions of PDO can be found in
283*8d13bc63SEmmanuel Vadot          "Universal Serial Bus Power Delivery Specification" chapter 6.4.1.3
284*8d13bc63SEmmanuel Vadot          Sink Capabilities Message, the order of each entry(PDO) should follow the
285*8d13bc63SEmmanuel Vadot          PD spec chapter 6.4.1. Required for power sink and power dual role. User
286*8d13bc63SEmmanuel Vadot          can specify the sink PDO array via PDO_FIXED/BATT/VAR/PPS_APDO() defined
287*8d13bc63SEmmanuel Vadot          in dt-bindings/usb/pd.h.
288*8d13bc63SEmmanuel Vadot        minItems: 1
289*8d13bc63SEmmanuel Vadot        maxItems: 7
290*8d13bc63SEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32-array
291*8d13bc63SEmmanuel Vadot
292*8d13bc63SEmmanuel Vadot      op-sink-microwatt:
293*8d13bc63SEmmanuel Vadot        description: Sink required operating power in microwatt, if source can't
294*8d13bc63SEmmanuel Vadot          offer the power, Capability Mismatch is set. Required for power sink and
295*8d13bc63SEmmanuel Vadot          power dual role.
296*8d13bc63SEmmanuel Vadot
297c66ec88fSEmmanuel VadotallOf:
298*8d13bc63SEmmanuel Vadot  - $ref: "#/$defs/capabilities"
299c66ec88fSEmmanuel Vadot  - if:
300c66ec88fSEmmanuel Vadot      properties:
301c66ec88fSEmmanuel Vadot        compatible:
302c66ec88fSEmmanuel Vadot          contains:
303c66ec88fSEmmanuel Vadot            const: gpio-usb-b-connector
304c66ec88fSEmmanuel Vadot    then:
305c66ec88fSEmmanuel Vadot      anyOf:
306c66ec88fSEmmanuel Vadot        - required:
307c66ec88fSEmmanuel Vadot            - vbus-gpios
308c66ec88fSEmmanuel Vadot        - required:
309c66ec88fSEmmanuel Vadot            - id-gpios
310c66ec88fSEmmanuel Vadot
3116be33864SEmmanuel Vadot  - if:
3126be33864SEmmanuel Vadot      properties:
3136be33864SEmmanuel Vadot        compatible:
3146be33864SEmmanuel Vadot          contains:
3156be33864SEmmanuel Vadot            const: samsung,usb-connector-11pin
3166be33864SEmmanuel Vadot    then:
3176be33864SEmmanuel Vadot      properties:
3186be33864SEmmanuel Vadot        type:
3196be33864SEmmanuel Vadot          const: micro
3206be33864SEmmanuel Vadot
3215def4c47SEmmanuel VadotanyOf:
3225def4c47SEmmanuel Vadot  - not:
3235def4c47SEmmanuel Vadot      required:
3245def4c47SEmmanuel Vadot        - typec-power-opmode
3255def4c47SEmmanuel Vadot        - new-source-frs-typec-current
3265def4c47SEmmanuel Vadot
327*8d13bc63SEmmanuel VadotunevaluatedProperties: false
3286be33864SEmmanuel Vadot
329c66ec88fSEmmanuel Vadotexamples:
330c66ec88fSEmmanuel Vadot  # Micro-USB connector with HS lines routed via controller (MUIC).
331c66ec88fSEmmanuel Vadot  - |
332c66ec88fSEmmanuel Vadot    muic-max77843 {
333c66ec88fSEmmanuel Vadot        usb_con1: connector {
334c66ec88fSEmmanuel Vadot            compatible = "usb-b-connector";
335c66ec88fSEmmanuel Vadot            label = "micro-USB";
336c66ec88fSEmmanuel Vadot            type = "micro";
337c66ec88fSEmmanuel Vadot        };
338c66ec88fSEmmanuel Vadot    };
339c66ec88fSEmmanuel Vadot
340c66ec88fSEmmanuel Vadot  # USB-C connector attached to CC controller (s2mm005), HS lines routed
341c66ec88fSEmmanuel Vadot  # to companion PMIC (max77865), SS lines to USB3 PHY and SBU to DisplayPort.
342c66ec88fSEmmanuel Vadot  # DisplayPort video lines are routed to the connector via SS mux in USB3 PHY.
343c66ec88fSEmmanuel Vadot  - |
344c66ec88fSEmmanuel Vadot    ccic: s2mm005 {
345c66ec88fSEmmanuel Vadot        usb_con2: connector {
346c66ec88fSEmmanuel Vadot            compatible = "usb-c-connector";
347c66ec88fSEmmanuel Vadot            label = "USB-C";
348c66ec88fSEmmanuel Vadot
349*8d13bc63SEmmanuel Vadot            altmodes {
350*8d13bc63SEmmanuel Vadot                displayport {
351*8d13bc63SEmmanuel Vadot                    svid = /bits/ 16 <0xff01>;
352*8d13bc63SEmmanuel Vadot                    vdo = <0x00001c46>;
353*8d13bc63SEmmanuel Vadot                };
354*8d13bc63SEmmanuel Vadot            };
355*8d13bc63SEmmanuel Vadot
356c66ec88fSEmmanuel Vadot            ports {
357c66ec88fSEmmanuel Vadot                #address-cells = <1>;
358c66ec88fSEmmanuel Vadot                #size-cells = <0>;
359c66ec88fSEmmanuel Vadot
360c66ec88fSEmmanuel Vadot                port@0 {
361c66ec88fSEmmanuel Vadot                    reg = <0>;
362c66ec88fSEmmanuel Vadot                    usb_con_hs: endpoint {
363c66ec88fSEmmanuel Vadot                        remote-endpoint = <&max77865_usbc_hs>;
364c66ec88fSEmmanuel Vadot                    };
365c66ec88fSEmmanuel Vadot                };
366c66ec88fSEmmanuel Vadot                port@1 {
367c66ec88fSEmmanuel Vadot                    reg = <1>;
368c66ec88fSEmmanuel Vadot                    usb_con_ss: endpoint {
369c66ec88fSEmmanuel Vadot                        remote-endpoint = <&usbdrd_phy_ss>;
370c66ec88fSEmmanuel Vadot                    };
371c66ec88fSEmmanuel Vadot                };
372c66ec88fSEmmanuel Vadot                port@2 {
373c66ec88fSEmmanuel Vadot                    reg = <2>;
374c66ec88fSEmmanuel Vadot                    usb_con_sbu: endpoint {
375c66ec88fSEmmanuel Vadot                        remote-endpoint = <&dp_aux>;
376c66ec88fSEmmanuel Vadot                    };
377c66ec88fSEmmanuel Vadot                };
378c66ec88fSEmmanuel Vadot            };
379c66ec88fSEmmanuel Vadot        };
380c66ec88fSEmmanuel Vadot    };
381c66ec88fSEmmanuel Vadot
382c66ec88fSEmmanuel Vadot  # USB-C connector attached to a typec port controller(ptn5110), which has
383c66ec88fSEmmanuel Vadot  # power delivery support and enables drp.
384c66ec88fSEmmanuel Vadot  - |
385c66ec88fSEmmanuel Vadot    #include <dt-bindings/usb/pd.h>
386c66ec88fSEmmanuel Vadot    typec: ptn5110 {
387c66ec88fSEmmanuel Vadot        usb_con3: connector {
388c66ec88fSEmmanuel Vadot            compatible = "usb-c-connector";
389c66ec88fSEmmanuel Vadot            label = "USB-C";
390c66ec88fSEmmanuel Vadot            power-role = "dual";
391c66ec88fSEmmanuel Vadot            try-power-role = "sink";
392c66ec88fSEmmanuel Vadot            source-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_USB_COMM)>;
393c66ec88fSEmmanuel Vadot            sink-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_USB_COMM)
394c66ec88fSEmmanuel Vadot                         PDO_VAR(5000, 12000, 2000)>;
395c66ec88fSEmmanuel Vadot            op-sink-microwatt = <10000000>;
396c66ec88fSEmmanuel Vadot        };
397c66ec88fSEmmanuel Vadot    };
398c66ec88fSEmmanuel Vadot
399f126890aSEmmanuel Vadot  # USB-C connector attached to SoC with a single High-Speed controller
400f126890aSEmmanuel Vadot  - |
401f126890aSEmmanuel Vadot    connector {
402f126890aSEmmanuel Vadot        compatible = "usb-c-connector";
403f126890aSEmmanuel Vadot        label = "USB-C";
404f126890aSEmmanuel Vadot
405f126890aSEmmanuel Vadot        port {
406f126890aSEmmanuel Vadot            high_speed_ep: endpoint {
407f126890aSEmmanuel Vadot                remote-endpoint = <&usb_hs_ep>;
408f126890aSEmmanuel Vadot            };
409f126890aSEmmanuel Vadot        };
410f126890aSEmmanuel Vadot    };
411f126890aSEmmanuel Vadot
4126be33864SEmmanuel Vadot  # USB-C connector attached to SoC and USB3 typec port controller(hd3ss3220)
4136be33864SEmmanuel Vadot  # with SS 2:1 MUX. HS lines routed to SoC, SS lines routed to the MUX and
4146be33864SEmmanuel Vadot  # the output of MUX is connected to the SoC.
4156be33864SEmmanuel Vadot  - |
4166be33864SEmmanuel Vadot    connector {
4176be33864SEmmanuel Vadot        compatible = "usb-c-connector";
4186be33864SEmmanuel Vadot        label = "USB-C";
4196be33864SEmmanuel Vadot        data-role = "dual";
4206be33864SEmmanuel Vadot
4216be33864SEmmanuel Vadot        ports {
4226be33864SEmmanuel Vadot            #address-cells = <1>;
4236be33864SEmmanuel Vadot            #size-cells = <0>;
4246be33864SEmmanuel Vadot            port@0 {
4256be33864SEmmanuel Vadot                reg = <0>;
4266be33864SEmmanuel Vadot                hs_ep: endpoint {
4276be33864SEmmanuel Vadot                    remote-endpoint = <&usb3_hs_ep>;
4286be33864SEmmanuel Vadot                };
4296be33864SEmmanuel Vadot            };
4306be33864SEmmanuel Vadot            port@1 {
4316be33864SEmmanuel Vadot                reg = <1>;
4326be33864SEmmanuel Vadot                ss_ep: endpoint {
4336be33864SEmmanuel Vadot                    remote-endpoint = <&hd3ss3220_in_ep>;
4346be33864SEmmanuel Vadot                };
4356be33864SEmmanuel Vadot            };
4366be33864SEmmanuel Vadot        };
4376be33864SEmmanuel Vadot    };
4386be33864SEmmanuel Vadot
439c66ec88fSEmmanuel Vadot  # USB connector with GPIO control lines
440c66ec88fSEmmanuel Vadot  - |
441c66ec88fSEmmanuel Vadot    #include <dt-bindings/gpio/gpio.h>
442c66ec88fSEmmanuel Vadot
443c66ec88fSEmmanuel Vadot    usb {
444c66ec88fSEmmanuel Vadot        connector {
445c66ec88fSEmmanuel Vadot            compatible = "gpio-usb-b-connector", "usb-b-connector";
446c66ec88fSEmmanuel Vadot            type = "micro";
447c66ec88fSEmmanuel Vadot            id-gpios = <&pio 12 GPIO_ACTIVE_HIGH>;
448c66ec88fSEmmanuel Vadot            vbus-supply = <&usb_p0_vbus>;
449c66ec88fSEmmanuel Vadot        };
450c66ec88fSEmmanuel Vadot    };
4516be33864SEmmanuel Vadot
4526be33864SEmmanuel Vadot  # Micro-USB connector with HS lines routed via controller (MUIC) and MHL
4536be33864SEmmanuel Vadot  # lines connected to HDMI-MHL bridge (sii8620) on Samsung Exynos5433-based
4546be33864SEmmanuel Vadot  # mobile phone
4556be33864SEmmanuel Vadot  - |
4566be33864SEmmanuel Vadot    muic-max77843 {
4576be33864SEmmanuel Vadot        usb_con4: connector {
4586be33864SEmmanuel Vadot            compatible = "samsung,usb-connector-11pin", "usb-b-connector";
4596be33864SEmmanuel Vadot            label = "micro-USB";
4606be33864SEmmanuel Vadot            type = "micro";
4616be33864SEmmanuel Vadot
4626be33864SEmmanuel Vadot            ports {
4636be33864SEmmanuel Vadot                #address-cells = <1>;
4646be33864SEmmanuel Vadot                #size-cells = <0>;
4656be33864SEmmanuel Vadot
4666be33864SEmmanuel Vadot                port@0 {
4676be33864SEmmanuel Vadot                    reg = <0>;
4686be33864SEmmanuel Vadot                    muic_to_usb: endpoint {
4696be33864SEmmanuel Vadot                        remote-endpoint = <&usb_to_muic>;
4706be33864SEmmanuel Vadot                    };
4716be33864SEmmanuel Vadot                };
4726be33864SEmmanuel Vadot                port@3 {
4736be33864SEmmanuel Vadot                    reg = <3>;
4746be33864SEmmanuel Vadot                    usb_con_mhl: endpoint {
4756be33864SEmmanuel Vadot                        remote-endpoint = <&sii8620_mhl>;
4766be33864SEmmanuel Vadot                    };
4776be33864SEmmanuel Vadot                };
4786be33864SEmmanuel Vadot            };
4796be33864SEmmanuel Vadot        };
4806be33864SEmmanuel Vadot    };
481