| USB Connector |
| ============= |
| |
| USB connector node represents physical USB connector. It should be |
| a child of USB interface controller. |
| |
| Required properties: |
| - compatible: describes type of the connector, must be one of: |
| "usb-a-connector", |
| "usb-b-connector", |
| "usb-c-connector". |
| |
| Optional properties: |
| - label: symbolic name for the connector, |
| - type: size of the connector, should be specified in case of USB-A, USB-B |
| non-fullsize connectors: "mini", "micro". |
| - self-powered: Set this property if the usb device that has its own power |
| source. |
| |
| Optional properties for usb-c-connector: |
| - power-role: should be one of "source", "sink" or "dual"(DRP) if typec |
| connector has power support. |
| - try-power-role: preferred power role if "dual"(DRP) can support Try.SNK |
| or Try.SRC, should be "sink" for Try.SNK or "source" for Try.SRC. |
| - data-role: should be one of "host", "device", "dual"(DRD) if typec |
| connector supports USB data. |
| |
| Required properties for usb-c-connector with power delivery support: |
| - source-pdos: 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. |
| - sink-pdos: 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. |
| - op-sink-microwatt: 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. |
| |
| Required nodes: |
| - any data bus to the connector should be modeled using the OF graph bindings |
| specified in bindings/graph.txt, unless the bus is between parent node and |
| the connector. Since single connector can have multpile data buses every bus |
| has assigned OF graph port number as follows: |
| 0: High Speed (HS), present in all connectors, |
| 1: Super Speed (SS), present in SS capable connectors, |
| 2: Sideband use (SBU), present in USB-C. |
| |
| Examples |
| -------- |
| |
| 1. Micro-USB connector with HS lines routed via controller (MUIC): |
| |
| muic-max77843@66 { |
| ... |
| usb_con: connector { |
| compatible = "usb-b-connector"; |
| label = "micro-USB"; |
| type = "micro"; |
| }; |
| }; |
| |
| 2. 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@33 { |
| ... |
| usb_con: 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>; |
| }; |
| }; |
| }; |
| }; |
| }; |
| |
| 3. USB-C connector attached to a typec port controller(ptn5110), which has |
| power delivery support and enables drp. |
| |
| typec: ptn5110@50 { |
| ... |
| usb_con: 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>; |
| }; |
| }; |