1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/usb/realtek,rts5411.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Realtek RTS5411 USB 3.0 hub controller
8
9maintainers:
10  - Matthias Kaehlcke <mka@chromium.org>
11
12allOf:
13  - $ref: usb-device.yaml#
14
15properties:
16  compatible:
17    items:
18      - enum:
19          - usbbda,5411
20          - usbbda,411
21
22  reg: true
23
24  '#address-cells':
25    const: 1
26
27  '#size-cells':
28    const: 0
29
30  vdd-supply:
31    description:
32      phandle to the regulator that provides power to the hub.
33
34  peer-hub:
35    $ref: /schemas/types.yaml#/definitions/phandle
36    description:
37      phandle to the peer hub on the controller.
38
39  ports:
40    $ref: /schemas/graph.yaml#/properties/ports
41
42    properties:
43      port@1:
44        $ref: /schemas/graph.yaml#/properties/port
45        description:
46          1st downstream facing USB port
47
48      port@2:
49        $ref: /schemas/graph.yaml#/properties/port
50        description:
51          2nd downstream facing USB port
52
53      port@3:
54        $ref: /schemas/graph.yaml#/properties/port
55        description:
56          3rd downstream facing USB port
57
58      port@4:
59        $ref: /schemas/graph.yaml#/properties/port
60        description:
61          4th downstream facing USB port
62
63patternProperties:
64  '^.*@[1-4]$':
65    description: The hard wired USB devices
66    type: object
67    $ref: /schemas/usb/usb-device.yaml
68
69required:
70  - peer-hub
71  - compatible
72  - reg
73
74additionalProperties: false
75
76examples:
77  - |
78    usb {
79        dr_mode = "host";
80        #address-cells = <1>;
81        #size-cells = <0>;
82
83        /* 2.0 hub on port 1 */
84        hub_2_0: hub@1 {
85            compatible = "usbbda,5411";
86            reg = <1>;
87            vdd-supply = <&pp3300_hub>;
88            peer-hub = <&hub_3_0>;
89            #address-cells = <1>;
90            #size-cells = <0>;
91            /* USB 2.0 device on port 2 */
92            device@2 {
93                compatible = "usb123,4567";
94                reg = <2>;
95            };
96        };
97
98        /* 3.0 hub on port 2 */
99        hub_3_0: hub@2 {
100            compatible = "usbbda,411";
101            reg = <2>;
102            vdd-supply = <&pp3300_hub>;
103            peer-hub = <&hub_2_0>;
104
105            ports {
106                #address-cells = <1>;
107                #size-cells = <0>;
108                /* Type-A connector on port 4 */
109                port@4 {
110                    reg = <4>;
111                    endpoint {
112                      remote-endpoint = <&usb_a0_ss>;
113                    };
114                };
115            };
116        };
117    };
118