1# SPDX-License-Identifier: GPL-2.0-only 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/connector/usb-connector.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: USB Connector 8 9maintainers: 10 - Rob Herring <robh@kernel.org> 11 12description: 13 A USB connector node represents a physical USB connector. It should be a child 14 of a USB interface controller or a separate node when it is attached to both 15 MUX and USB interface controller. 16 17properties: 18 compatible: 19 oneOf: 20 - enum: 21 - usb-a-connector 22 - usb-b-connector 23 - usb-c-connector 24 25 - items: 26 - const: gpio-usb-b-connector 27 - const: usb-b-connector 28 29 - items: 30 - const: samsung,usb-connector-11pin 31 - const: usb-b-connector 32 33 label: 34 description: Symbolic name for the connector. 35 36 type: 37 description: Size of the connector, should be specified in case of 38 non-fullsize 'usb-a-connector' or 'usb-b-connector' compatible 39 connectors. 40 $ref: /schemas/types.yaml#definitions/string 41 42 enum: 43 - mini 44 - micro 45 46 self-powered: 47 description: Set this property if the USB device has its own power source. 48 type: boolean 49 50 # The following are optional properties for "usb-b-connector". 51 id-gpios: 52 description: An input gpio for USB ID pin. 53 maxItems: 1 54 55 vbus-gpios: 56 description: An input gpio for USB VBus pin, used to detect presence of 57 VBUS 5V. 58 maxItems: 1 59 60 vbus-supply: 61 description: A phandle to the regulator for USB VBUS if needed when host 62 mode or dual role mode is supported. 63 Particularly, if use an output GPIO to control a VBUS regulator, should 64 model it as a regulator. See bindings/regulator/fixed-regulator.yaml 65 66 # The following are optional properties for "usb-c-connector". 67 power-role: 68 description: Determines the power role that the Type C connector will 69 support. "dual" refers to Dual Role Port (DRP). 70 $ref: /schemas/types.yaml#definitions/string 71 72 enum: 73 - source 74 - sink 75 - dual 76 77 try-power-role: 78 description: Preferred power role. 79 $ref: /schemas/types.yaml#definitions/string 80 81 enum: 82 - source 83 - sink 84 - dual 85 86 data-role: 87 description: Data role if Type C connector supports USB data. "dual" refers 88 Dual Role Device (DRD). 89 $ref: /schemas/types.yaml#definitions/string 90 91 enum: 92 - host 93 - device 94 - dual 95 96 # The following are optional properties for "usb-c-connector" with power 97 # delivery support. 98 source-pdos: 99 description: An array of u32 with each entry providing supported power 100 source data object(PDO), the detailed bit definitions of PDO can be found 101 in "Universal Serial Bus Power Delivery Specification" chapter 6.4.1.2 102 Source_Capabilities Message, the order of each entry(PDO) should follow 103 the PD spec chapter 6.4.1. Required for power source and power dual role. 104 User can specify the source PDO array via PDO_FIXED/BATT/VAR/PPS_APDO() 105 defined in dt-bindings/usb/pd.h. 106 minItems: 1 107 maxItems: 7 108 $ref: /schemas/types.yaml#/definitions/uint32-array 109 110 sink-pdos: 111 description: An array of u32 with each entry providing supported power sink 112 data object(PDO), the detailed bit definitions of PDO can be found in 113 "Universal Serial Bus Power Delivery Specification" chapter 6.4.1.3 114 Sink Capabilities Message, the order of each entry(PDO) should follow the 115 PD spec chapter 6.4.1. Required for power sink and power dual role. User 116 can specify the sink PDO array via PDO_FIXED/BATT/VAR/PPS_APDO() defined 117 in dt-bindings/usb/pd.h. 118 minItems: 1 119 maxItems: 7 120 $ref: /schemas/types.yaml#/definitions/uint32-array 121 122 op-sink-microwatt: 123 description: Sink required operating power in microwatt, if source can't 124 offer the power, Capability Mismatch is set. Required for power sink and 125 power dual role. 126 127 ports: 128 description: OF graph bindings (specified in bindings/graph.txt) that model 129 any data bus to the connector unless the bus is between parent node and 130 the connector. Since a single connector can have multiple data buses every 131 bus has an assigned OF graph port number as described below. 132 type: object 133 properties: 134 port@0: 135 type: object 136 description: High Speed (HS), present in all connectors. 137 138 port@1: 139 type: object 140 description: Super Speed (SS), present in SS capable connectors. 141 142 port@2: 143 type: object 144 description: Sideband Use (SBU), present in USB-C. This describes the 145 alternate mode connection of which SBU is a part. 146 147 required: 148 - port@0 149 150required: 151 - compatible 152 153allOf: 154 - if: 155 properties: 156 compatible: 157 contains: 158 const: gpio-usb-b-connector 159 then: 160 anyOf: 161 - required: 162 - vbus-gpios 163 - required: 164 - id-gpios 165 166 - if: 167 properties: 168 compatible: 169 contains: 170 const: samsung,usb-connector-11pin 171 then: 172 properties: 173 type: 174 const: micro 175 176additionalProperties: true 177 178examples: 179 # Micro-USB connector with HS lines routed via controller (MUIC). 180 - | 181 muic-max77843 { 182 usb_con1: connector { 183 compatible = "usb-b-connector"; 184 label = "micro-USB"; 185 type = "micro"; 186 }; 187 }; 188 189 # USB-C connector attached to CC controller (s2mm005), HS lines routed 190 # to companion PMIC (max77865), SS lines to USB3 PHY and SBU to DisplayPort. 191 # DisplayPort video lines are routed to the connector via SS mux in USB3 PHY. 192 - | 193 ccic: s2mm005 { 194 usb_con2: connector { 195 compatible = "usb-c-connector"; 196 label = "USB-C"; 197 198 ports { 199 #address-cells = <1>; 200 #size-cells = <0>; 201 202 port@0 { 203 reg = <0>; 204 usb_con_hs: endpoint { 205 remote-endpoint = <&max77865_usbc_hs>; 206 }; 207 }; 208 port@1 { 209 reg = <1>; 210 usb_con_ss: endpoint { 211 remote-endpoint = <&usbdrd_phy_ss>; 212 }; 213 }; 214 port@2 { 215 reg = <2>; 216 usb_con_sbu: endpoint { 217 remote-endpoint = <&dp_aux>; 218 }; 219 }; 220 }; 221 }; 222 }; 223 224 # USB-C connector attached to a typec port controller(ptn5110), which has 225 # power delivery support and enables drp. 226 - | 227 #include <dt-bindings/usb/pd.h> 228 typec: ptn5110 { 229 usb_con3: connector { 230 compatible = "usb-c-connector"; 231 label = "USB-C"; 232 power-role = "dual"; 233 try-power-role = "sink"; 234 source-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_USB_COMM)>; 235 sink-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_USB_COMM) 236 PDO_VAR(5000, 12000, 2000)>; 237 op-sink-microwatt = <10000000>; 238 }; 239 }; 240 241 # USB-C connector attached to SoC and USB3 typec port controller(hd3ss3220) 242 # with SS 2:1 MUX. HS lines routed to SoC, SS lines routed to the MUX and 243 # the output of MUX is connected to the SoC. 244 - | 245 connector { 246 compatible = "usb-c-connector"; 247 label = "USB-C"; 248 data-role = "dual"; 249 250 ports { 251 #address-cells = <1>; 252 #size-cells = <0>; 253 port@0 { 254 reg = <0>; 255 hs_ep: endpoint { 256 remote-endpoint = <&usb3_hs_ep>; 257 }; 258 }; 259 port@1 { 260 reg = <1>; 261 ss_ep: endpoint { 262 remote-endpoint = <&hd3ss3220_in_ep>; 263 }; 264 }; 265 }; 266 }; 267 268 # USB connector with GPIO control lines 269 - | 270 #include <dt-bindings/gpio/gpio.h> 271 272 usb { 273 connector { 274 compatible = "gpio-usb-b-connector", "usb-b-connector"; 275 type = "micro"; 276 id-gpios = <&pio 12 GPIO_ACTIVE_HIGH>; 277 vbus-supply = <&usb_p0_vbus>; 278 }; 279 }; 280 281 # Micro-USB connector with HS lines routed via controller (MUIC) and MHL 282 # lines connected to HDMI-MHL bridge (sii8620) on Samsung Exynos5433-based 283 # mobile phone 284 - | 285 muic-max77843 { 286 usb_con4: connector { 287 compatible = "samsung,usb-connector-11pin", "usb-b-connector"; 288 label = "micro-USB"; 289 type = "micro"; 290 291 ports { 292 #address-cells = <1>; 293 #size-cells = <0>; 294 295 port@0 { 296 reg = <0>; 297 muic_to_usb: endpoint { 298 remote-endpoint = <&usb_to_muic>; 299 }; 300 }; 301 port@3 { 302 reg = <3>; 303 usb_con_mhl: endpoint { 304 remote-endpoint = <&sii8620_mhl>; 305 }; 306 }; 307 }; 308 }; 309 }; 310