18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_ci%YAML 1.2 38c2ecf20Sopenharmony_ci--- 48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/connector/usb-connector.yaml# 58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cititle: USB Connector 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_cimaintainers: 108c2ecf20Sopenharmony_ci - Rob Herring <robh@kernel.org> 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_cidescription: 138c2ecf20Sopenharmony_ci A USB connector node represents a physical USB connector. It should be a child 148c2ecf20Sopenharmony_ci of a USB interface controller or a separate node when it is attached to both 158c2ecf20Sopenharmony_ci MUX and USB interface controller. 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ciproperties: 188c2ecf20Sopenharmony_ci compatible: 198c2ecf20Sopenharmony_ci oneOf: 208c2ecf20Sopenharmony_ci - enum: 218c2ecf20Sopenharmony_ci - usb-a-connector 228c2ecf20Sopenharmony_ci - usb-b-connector 238c2ecf20Sopenharmony_ci - usb-c-connector 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ci - items: 268c2ecf20Sopenharmony_ci - const: gpio-usb-b-connector 278c2ecf20Sopenharmony_ci - const: usb-b-connector 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ci - items: 308c2ecf20Sopenharmony_ci - const: samsung,usb-connector-11pin 318c2ecf20Sopenharmony_ci - const: usb-b-connector 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_ci label: 348c2ecf20Sopenharmony_ci description: Symbolic name for the connector. 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ci type: 378c2ecf20Sopenharmony_ci description: Size of the connector, should be specified in case of 388c2ecf20Sopenharmony_ci non-fullsize 'usb-a-connector' or 'usb-b-connector' compatible 398c2ecf20Sopenharmony_ci connectors. 408c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#definitions/string 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ci enum: 438c2ecf20Sopenharmony_ci - mini 448c2ecf20Sopenharmony_ci - micro 458c2ecf20Sopenharmony_ci 468c2ecf20Sopenharmony_ci self-powered: 478c2ecf20Sopenharmony_ci description: Set this property if the USB device has its own power source. 488c2ecf20Sopenharmony_ci type: boolean 498c2ecf20Sopenharmony_ci 508c2ecf20Sopenharmony_ci # The following are optional properties for "usb-b-connector". 518c2ecf20Sopenharmony_ci id-gpios: 528c2ecf20Sopenharmony_ci description: An input gpio for USB ID pin. 538c2ecf20Sopenharmony_ci maxItems: 1 548c2ecf20Sopenharmony_ci 558c2ecf20Sopenharmony_ci vbus-gpios: 568c2ecf20Sopenharmony_ci description: An input gpio for USB VBus pin, used to detect presence of 578c2ecf20Sopenharmony_ci VBUS 5V. 588c2ecf20Sopenharmony_ci maxItems: 1 598c2ecf20Sopenharmony_ci 608c2ecf20Sopenharmony_ci vbus-supply: 618c2ecf20Sopenharmony_ci description: A phandle to the regulator for USB VBUS if needed when host 628c2ecf20Sopenharmony_ci mode or dual role mode is supported. 638c2ecf20Sopenharmony_ci Particularly, if use an output GPIO to control a VBUS regulator, should 648c2ecf20Sopenharmony_ci model it as a regulator. See bindings/regulator/fixed-regulator.yaml 658c2ecf20Sopenharmony_ci 668c2ecf20Sopenharmony_ci # The following are optional properties for "usb-c-connector". 678c2ecf20Sopenharmony_ci power-role: 688c2ecf20Sopenharmony_ci description: Determines the power role that the Type C connector will 698c2ecf20Sopenharmony_ci support. "dual" refers to Dual Role Port (DRP). 708c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#definitions/string 718c2ecf20Sopenharmony_ci 728c2ecf20Sopenharmony_ci enum: 738c2ecf20Sopenharmony_ci - source 748c2ecf20Sopenharmony_ci - sink 758c2ecf20Sopenharmony_ci - dual 768c2ecf20Sopenharmony_ci 778c2ecf20Sopenharmony_ci try-power-role: 788c2ecf20Sopenharmony_ci description: Preferred power role. 798c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#definitions/string 808c2ecf20Sopenharmony_ci 818c2ecf20Sopenharmony_ci enum: 828c2ecf20Sopenharmony_ci - source 838c2ecf20Sopenharmony_ci - sink 848c2ecf20Sopenharmony_ci - dual 858c2ecf20Sopenharmony_ci 868c2ecf20Sopenharmony_ci data-role: 878c2ecf20Sopenharmony_ci description: Data role if Type C connector supports USB data. "dual" refers 888c2ecf20Sopenharmony_ci Dual Role Device (DRD). 898c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#definitions/string 908c2ecf20Sopenharmony_ci 918c2ecf20Sopenharmony_ci enum: 928c2ecf20Sopenharmony_ci - host 938c2ecf20Sopenharmony_ci - device 948c2ecf20Sopenharmony_ci - dual 958c2ecf20Sopenharmony_ci 968c2ecf20Sopenharmony_ci # The following are optional properties for "usb-c-connector" with power 978c2ecf20Sopenharmony_ci # delivery support. 988c2ecf20Sopenharmony_ci source-pdos: 998c2ecf20Sopenharmony_ci description: An array of u32 with each entry providing supported power 1008c2ecf20Sopenharmony_ci source data object(PDO), the detailed bit definitions of PDO can be found 1018c2ecf20Sopenharmony_ci in "Universal Serial Bus Power Delivery Specification" chapter 6.4.1.2 1028c2ecf20Sopenharmony_ci Source_Capabilities Message, the order of each entry(PDO) should follow 1038c2ecf20Sopenharmony_ci the PD spec chapter 6.4.1. Required for power source and power dual role. 1048c2ecf20Sopenharmony_ci User can specify the source PDO array via PDO_FIXED/BATT/VAR/PPS_APDO() 1058c2ecf20Sopenharmony_ci defined in dt-bindings/usb/pd.h. 1068c2ecf20Sopenharmony_ci minItems: 1 1078c2ecf20Sopenharmony_ci maxItems: 7 1088c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-array 1098c2ecf20Sopenharmony_ci 1108c2ecf20Sopenharmony_ci sink-pdos: 1118c2ecf20Sopenharmony_ci description: An array of u32 with each entry providing supported power sink 1128c2ecf20Sopenharmony_ci data object(PDO), the detailed bit definitions of PDO can be found in 1138c2ecf20Sopenharmony_ci "Universal Serial Bus Power Delivery Specification" chapter 6.4.1.3 1148c2ecf20Sopenharmony_ci Sink Capabilities Message, the order of each entry(PDO) should follow the 1158c2ecf20Sopenharmony_ci PD spec chapter 6.4.1. Required for power sink and power dual role. User 1168c2ecf20Sopenharmony_ci can specify the sink PDO array via PDO_FIXED/BATT/VAR/PPS_APDO() defined 1178c2ecf20Sopenharmony_ci in dt-bindings/usb/pd.h. 1188c2ecf20Sopenharmony_ci minItems: 1 1198c2ecf20Sopenharmony_ci maxItems: 7 1208c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-array 1218c2ecf20Sopenharmony_ci 1228c2ecf20Sopenharmony_ci op-sink-microwatt: 1238c2ecf20Sopenharmony_ci description: Sink required operating power in microwatt, if source can't 1248c2ecf20Sopenharmony_ci offer the power, Capability Mismatch is set. Required for power sink and 1258c2ecf20Sopenharmony_ci power dual role. 1268c2ecf20Sopenharmony_ci 1278c2ecf20Sopenharmony_ci ports: 1288c2ecf20Sopenharmony_ci description: OF graph bindings (specified in bindings/graph.txt) that model 1298c2ecf20Sopenharmony_ci any data bus to the connector unless the bus is between parent node and 1308c2ecf20Sopenharmony_ci the connector. Since a single connector can have multiple data buses every 1318c2ecf20Sopenharmony_ci bus has an assigned OF graph port number as described below. 1328c2ecf20Sopenharmony_ci type: object 1338c2ecf20Sopenharmony_ci properties: 1348c2ecf20Sopenharmony_ci port@0: 1358c2ecf20Sopenharmony_ci type: object 1368c2ecf20Sopenharmony_ci description: High Speed (HS), present in all connectors. 1378c2ecf20Sopenharmony_ci 1388c2ecf20Sopenharmony_ci port@1: 1398c2ecf20Sopenharmony_ci type: object 1408c2ecf20Sopenharmony_ci description: Super Speed (SS), present in SS capable connectors. 1418c2ecf20Sopenharmony_ci 1428c2ecf20Sopenharmony_ci port@2: 1438c2ecf20Sopenharmony_ci type: object 1448c2ecf20Sopenharmony_ci description: Sideband Use (SBU), present in USB-C. This describes the 1458c2ecf20Sopenharmony_ci alternate mode connection of which SBU is a part. 1468c2ecf20Sopenharmony_ci 1478c2ecf20Sopenharmony_ci required: 1488c2ecf20Sopenharmony_ci - port@0 1498c2ecf20Sopenharmony_ci 1508c2ecf20Sopenharmony_cirequired: 1518c2ecf20Sopenharmony_ci - compatible 1528c2ecf20Sopenharmony_ci 1538c2ecf20Sopenharmony_ciallOf: 1548c2ecf20Sopenharmony_ci - if: 1558c2ecf20Sopenharmony_ci properties: 1568c2ecf20Sopenharmony_ci compatible: 1578c2ecf20Sopenharmony_ci contains: 1588c2ecf20Sopenharmony_ci const: gpio-usb-b-connector 1598c2ecf20Sopenharmony_ci then: 1608c2ecf20Sopenharmony_ci anyOf: 1618c2ecf20Sopenharmony_ci - required: 1628c2ecf20Sopenharmony_ci - vbus-gpios 1638c2ecf20Sopenharmony_ci - required: 1648c2ecf20Sopenharmony_ci - id-gpios 1658c2ecf20Sopenharmony_ci 1668c2ecf20Sopenharmony_ci - if: 1678c2ecf20Sopenharmony_ci properties: 1688c2ecf20Sopenharmony_ci compatible: 1698c2ecf20Sopenharmony_ci contains: 1708c2ecf20Sopenharmony_ci const: samsung,usb-connector-11pin 1718c2ecf20Sopenharmony_ci then: 1728c2ecf20Sopenharmony_ci properties: 1738c2ecf20Sopenharmony_ci type: 1748c2ecf20Sopenharmony_ci const: micro 1758c2ecf20Sopenharmony_ci 1768c2ecf20Sopenharmony_ciadditionalProperties: true 1778c2ecf20Sopenharmony_ci 1788c2ecf20Sopenharmony_ciexamples: 1798c2ecf20Sopenharmony_ci # Micro-USB connector with HS lines routed via controller (MUIC). 1808c2ecf20Sopenharmony_ci - | 1818c2ecf20Sopenharmony_ci muic-max77843 { 1828c2ecf20Sopenharmony_ci usb_con1: connector { 1838c2ecf20Sopenharmony_ci compatible = "usb-b-connector"; 1848c2ecf20Sopenharmony_ci label = "micro-USB"; 1858c2ecf20Sopenharmony_ci type = "micro"; 1868c2ecf20Sopenharmony_ci }; 1878c2ecf20Sopenharmony_ci }; 1888c2ecf20Sopenharmony_ci 1898c2ecf20Sopenharmony_ci # USB-C connector attached to CC controller (s2mm005), HS lines routed 1908c2ecf20Sopenharmony_ci # to companion PMIC (max77865), SS lines to USB3 PHY and SBU to DisplayPort. 1918c2ecf20Sopenharmony_ci # DisplayPort video lines are routed to the connector via SS mux in USB3 PHY. 1928c2ecf20Sopenharmony_ci - | 1938c2ecf20Sopenharmony_ci ccic: s2mm005 { 1948c2ecf20Sopenharmony_ci usb_con2: connector { 1958c2ecf20Sopenharmony_ci compatible = "usb-c-connector"; 1968c2ecf20Sopenharmony_ci label = "USB-C"; 1978c2ecf20Sopenharmony_ci 1988c2ecf20Sopenharmony_ci ports { 1998c2ecf20Sopenharmony_ci #address-cells = <1>; 2008c2ecf20Sopenharmony_ci #size-cells = <0>; 2018c2ecf20Sopenharmony_ci 2028c2ecf20Sopenharmony_ci port@0 { 2038c2ecf20Sopenharmony_ci reg = <0>; 2048c2ecf20Sopenharmony_ci usb_con_hs: endpoint { 2058c2ecf20Sopenharmony_ci remote-endpoint = <&max77865_usbc_hs>; 2068c2ecf20Sopenharmony_ci }; 2078c2ecf20Sopenharmony_ci }; 2088c2ecf20Sopenharmony_ci port@1 { 2098c2ecf20Sopenharmony_ci reg = <1>; 2108c2ecf20Sopenharmony_ci usb_con_ss: endpoint { 2118c2ecf20Sopenharmony_ci remote-endpoint = <&usbdrd_phy_ss>; 2128c2ecf20Sopenharmony_ci }; 2138c2ecf20Sopenharmony_ci }; 2148c2ecf20Sopenharmony_ci port@2 { 2158c2ecf20Sopenharmony_ci reg = <2>; 2168c2ecf20Sopenharmony_ci usb_con_sbu: endpoint { 2178c2ecf20Sopenharmony_ci remote-endpoint = <&dp_aux>; 2188c2ecf20Sopenharmony_ci }; 2198c2ecf20Sopenharmony_ci }; 2208c2ecf20Sopenharmony_ci }; 2218c2ecf20Sopenharmony_ci }; 2228c2ecf20Sopenharmony_ci }; 2238c2ecf20Sopenharmony_ci 2248c2ecf20Sopenharmony_ci # USB-C connector attached to a typec port controller(ptn5110), which has 2258c2ecf20Sopenharmony_ci # power delivery support and enables drp. 2268c2ecf20Sopenharmony_ci - | 2278c2ecf20Sopenharmony_ci #include <dt-bindings/usb/pd.h> 2288c2ecf20Sopenharmony_ci typec: ptn5110 { 2298c2ecf20Sopenharmony_ci usb_con3: connector { 2308c2ecf20Sopenharmony_ci compatible = "usb-c-connector"; 2318c2ecf20Sopenharmony_ci label = "USB-C"; 2328c2ecf20Sopenharmony_ci power-role = "dual"; 2338c2ecf20Sopenharmony_ci try-power-role = "sink"; 2348c2ecf20Sopenharmony_ci source-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_USB_COMM)>; 2358c2ecf20Sopenharmony_ci sink-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_USB_COMM) 2368c2ecf20Sopenharmony_ci PDO_VAR(5000, 12000, 2000)>; 2378c2ecf20Sopenharmony_ci op-sink-microwatt = <10000000>; 2388c2ecf20Sopenharmony_ci }; 2398c2ecf20Sopenharmony_ci }; 2408c2ecf20Sopenharmony_ci 2418c2ecf20Sopenharmony_ci # USB-C connector attached to SoC and USB3 typec port controller(hd3ss3220) 2428c2ecf20Sopenharmony_ci # with SS 2:1 MUX. HS lines routed to SoC, SS lines routed to the MUX and 2438c2ecf20Sopenharmony_ci # the output of MUX is connected to the SoC. 2448c2ecf20Sopenharmony_ci - | 2458c2ecf20Sopenharmony_ci connector { 2468c2ecf20Sopenharmony_ci compatible = "usb-c-connector"; 2478c2ecf20Sopenharmony_ci label = "USB-C"; 2488c2ecf20Sopenharmony_ci data-role = "dual"; 2498c2ecf20Sopenharmony_ci 2508c2ecf20Sopenharmony_ci ports { 2518c2ecf20Sopenharmony_ci #address-cells = <1>; 2528c2ecf20Sopenharmony_ci #size-cells = <0>; 2538c2ecf20Sopenharmony_ci port@0 { 2548c2ecf20Sopenharmony_ci reg = <0>; 2558c2ecf20Sopenharmony_ci hs_ep: endpoint { 2568c2ecf20Sopenharmony_ci remote-endpoint = <&usb3_hs_ep>; 2578c2ecf20Sopenharmony_ci }; 2588c2ecf20Sopenharmony_ci }; 2598c2ecf20Sopenharmony_ci port@1 { 2608c2ecf20Sopenharmony_ci reg = <1>; 2618c2ecf20Sopenharmony_ci ss_ep: endpoint { 2628c2ecf20Sopenharmony_ci remote-endpoint = <&hd3ss3220_in_ep>; 2638c2ecf20Sopenharmony_ci }; 2648c2ecf20Sopenharmony_ci }; 2658c2ecf20Sopenharmony_ci }; 2668c2ecf20Sopenharmony_ci }; 2678c2ecf20Sopenharmony_ci 2688c2ecf20Sopenharmony_ci # USB connector with GPIO control lines 2698c2ecf20Sopenharmony_ci - | 2708c2ecf20Sopenharmony_ci #include <dt-bindings/gpio/gpio.h> 2718c2ecf20Sopenharmony_ci 2728c2ecf20Sopenharmony_ci usb { 2738c2ecf20Sopenharmony_ci connector { 2748c2ecf20Sopenharmony_ci compatible = "gpio-usb-b-connector", "usb-b-connector"; 2758c2ecf20Sopenharmony_ci type = "micro"; 2768c2ecf20Sopenharmony_ci id-gpios = <&pio 12 GPIO_ACTIVE_HIGH>; 2778c2ecf20Sopenharmony_ci vbus-supply = <&usb_p0_vbus>; 2788c2ecf20Sopenharmony_ci }; 2798c2ecf20Sopenharmony_ci }; 2808c2ecf20Sopenharmony_ci 2818c2ecf20Sopenharmony_ci # Micro-USB connector with HS lines routed via controller (MUIC) and MHL 2828c2ecf20Sopenharmony_ci # lines connected to HDMI-MHL bridge (sii8620) on Samsung Exynos5433-based 2838c2ecf20Sopenharmony_ci # mobile phone 2848c2ecf20Sopenharmony_ci - | 2858c2ecf20Sopenharmony_ci muic-max77843 { 2868c2ecf20Sopenharmony_ci usb_con4: connector { 2878c2ecf20Sopenharmony_ci compatible = "samsung,usb-connector-11pin", "usb-b-connector"; 2888c2ecf20Sopenharmony_ci label = "micro-USB"; 2898c2ecf20Sopenharmony_ci type = "micro"; 2908c2ecf20Sopenharmony_ci 2918c2ecf20Sopenharmony_ci ports { 2928c2ecf20Sopenharmony_ci #address-cells = <1>; 2938c2ecf20Sopenharmony_ci #size-cells = <0>; 2948c2ecf20Sopenharmony_ci 2958c2ecf20Sopenharmony_ci port@0 { 2968c2ecf20Sopenharmony_ci reg = <0>; 2978c2ecf20Sopenharmony_ci muic_to_usb: endpoint { 2988c2ecf20Sopenharmony_ci remote-endpoint = <&usb_to_muic>; 2998c2ecf20Sopenharmony_ci }; 3008c2ecf20Sopenharmony_ci }; 3018c2ecf20Sopenharmony_ci port@3 { 3028c2ecf20Sopenharmony_ci reg = <3>; 3038c2ecf20Sopenharmony_ci usb_con_mhl: endpoint { 3048c2ecf20Sopenharmony_ci remote-endpoint = <&sii8620_mhl>; 3058c2ecf20Sopenharmony_ci }; 3068c2ecf20Sopenharmony_ci }; 3078c2ecf20Sopenharmony_ci }; 3088c2ecf20Sopenharmony_ci }; 3098c2ecf20Sopenharmony_ci }; 310