| # SPDX-License-Identifier: GPL-2.0-only |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/connector/usb-connector.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: USB Connector |
| |
| maintainers: |
| - Rob Herring <robh@kernel.org> |
| |
| description: |
| A USB connector node represents a physical USB connector. It should be a child |
| of a USB interface controller. |
| |
| properties: |
| compatible: |
| enum: |
| - usb-a-connector |
| - usb-b-connector |
| - usb-c-connector |
| |
| label: |
| description: Symbolic name for the connector. |
| |
| type: |
| description: Size of the connector, should be specified in case of |
| non-fullsize 'usb-a-connector' or 'usb-b-connector' compatible |
| connectors. |
| allOf: |
| - $ref: /schemas/types.yaml#definitions/string |
| enum: |
| - mini |
| - micro |
| |
| self-powered: |
| description: Set this property if the USB device has its own power source. |
| type: boolean |
| |
| # The following are optional properties for "usb-b-connector". |
| id-gpios: |
| description: An input gpio for USB ID pin. |
| maxItems: 1 |
| |
| vbus-gpios: |
| description: An input gpio for USB VBus pin, used to detect presence of |
| VBUS 5V. |
| maxItems: 1 |
| |
| vbus-supply: |
| description: A phandle to the regulator for USB VBUS if needed when host |
| mode or dual role mode is supported. |
| Particularly, if use an output GPIO to control a VBUS regulator, should |
| model it as a regulator. See bindings/regulator/fixed-regulator.yaml |
| |
| # The following are optional properties for "usb-c-connector". |
| power-role: |
| description: Determines the power role that the Type C connector will |
| support. "dual" refers to Dual Role Port (DRP). |
| allOf: |
| - $ref: /schemas/types.yaml#definitions/string |
| enum: |
| - source |
| - sink |
| - dual |
| |
| try-power-role: |
| description: Preferred power role. |
| allOf: |
| - $ref: /schemas/types.yaml#definitions/string |
| enum: |
| - source |
| - sink |
| - dual |
| |
| data-role: |
| description: Data role if Type C connector supports USB data. "dual" refers |
| Dual Role Device (DRD). |
| allOf: |
| - $ref: /schemas/types.yaml#definitions/string |
| enum: |
| - host |
| - device |
| - dual |
| |
| # The following are optional properties for "usb-c-connector" with power |
| # delivery support. |
| source-pdos: |
| description: An array of u32 with each entry providing supported power |
| source data object(PDO), the detailed bit definitions of PDO can be found |
| in "Universal Serial Bus Power Delivery Specification" chapter 6.4.1.2 |
| Source_Capabilities Message, the order of each entry(PDO) should follow |
| the PD spec chapter 6.4.1. Required for power source and power dual role. |
| User can specify the source PDO array via PDO_FIXED/BATT/VAR/PPS_APDO() |
| defined in dt-bindings/usb/pd.h. |
| minItems: 1 |
| maxItems: 7 |
| allOf: |
| - $ref: /schemas/types.yaml#/definitions/uint32-array |
| |
| sink-pdos: |
| description: An array of u32 with each entry providing supported power sink |
| data object(PDO), the detailed bit definitions of PDO can be found in |
| "Universal Serial Bus Power Delivery Specification" chapter 6.4.1.3 |
| Sink Capabilities Message, the order of each entry(PDO) should follow the |
| PD spec chapter 6.4.1. Required for power sink and power dual role. User |
| can specify the sink PDO array via PDO_FIXED/BATT/VAR/PPS_APDO() defined |
| in dt-bindings/usb/pd.h. |
| minItems: 1 |
| maxItems: 7 |
| allOf: |
| - $ref: /schemas/types.yaml#/definitions/uint32-array |
| |
| op-sink-microwatt: |
| description: Sink required operating power in microwatt, if source can't |
| offer the power, Capability Mismatch is set. Required for power sink and |
| power dual role. |
| |
| ports: |
| description: OF graph bindings (specified in bindings/graph.txt) that model |
| any data bus to the connector unless the bus is between parent node and |
| the connector. Since a single connector can have multiple data buses every |
| bus has an assigned OF graph port number as described below. |
| type: object |
| properties: |
| port@0: |
| type: object |
| description: High Speed (HS), present in all connectors. |
| |
| port@1: |
| type: object |
| description: Super Speed (SS), present in SS capable connectors. |
| |
| port@2: |
| type: object |
| description: Sideband Use (SBU), present in USB-C. This describes the |
| alternate mode connection of which SBU is a part. |
| |
| required: |
| - port@0 |
| |
| required: |
| - compatible |
| |
| examples: |
| # Micro-USB connector with HS lines routed via controller (MUIC). |
| - |+ |
| muic-max77843 { |
| usb_con1: connector { |
| compatible = "usb-b-connector"; |
| label = "micro-USB"; |
| type = "micro"; |
| }; |
| }; |
| |
| # USB-C connector attached to CC controller (s2mm005), HS lines routed |
| # to companion PMIC (max77865), SS lines to USB3 PHY and SBU to DisplayPort. |
| # DisplayPort video lines are routed to the connector via SS mux in USB3 PHY. |
| - |+ |
| ccic: s2mm005 { |
| usb_con2: connector { |
| compatible = "usb-c-connector"; |
| label = "USB-C"; |
| |
| ports { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| port@0 { |
| reg = <0>; |
| usb_con_hs: endpoint { |
| remote-endpoint = <&max77865_usbc_hs>; |
| }; |
| }; |
| port@1 { |
| reg = <1>; |
| usb_con_ss: endpoint { |
| remote-endpoint = <&usbdrd_phy_ss>; |
| }; |
| }; |
| port@2 { |
| reg = <2>; |
| usb_con_sbu: endpoint { |
| remote-endpoint = <&dp_aux>; |
| }; |
| }; |
| }; |
| }; |
| }; |
| |
| # USB-C connector attached to a typec port controller(ptn5110), which has |
| # power delivery support and enables drp. |
| - |+ |
| #include <dt-bindings/usb/pd.h> |
| typec: ptn5110 { |
| usb_con3: connector { |
| compatible = "usb-c-connector"; |
| label = "USB-C"; |
| power-role = "dual"; |
| try-power-role = "sink"; |
| source-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_USB_COMM)>; |
| sink-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_USB_COMM) |
| PDO_VAR(5000, 12000, 2000)>; |
| op-sink-microwatt = <10000000>; |
| }; |
| }; |