xref: /linux/Documentation/devicetree/bindings/usb/usb-hub.yaml (revision c0c9379f235df33a12ceae94370ad80c5278324d)
1*7fcdfaf3SPin-yen Lin# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2*7fcdfaf3SPin-yen Lin%YAML 1.2
3*7fcdfaf3SPin-yen Lin---
4*7fcdfaf3SPin-yen Lin$id: http://devicetree.org/schemas/usb/usb-hub.yaml#
5*7fcdfaf3SPin-yen Lin$schema: http://devicetree.org/meta-schemas/core.yaml#
6*7fcdfaf3SPin-yen Lin
7*7fcdfaf3SPin-yen Lintitle: Generic USB Hub
8*7fcdfaf3SPin-yen Lin
9*7fcdfaf3SPin-yen Linmaintainers:
10*7fcdfaf3SPin-yen Lin  - Pin-yen Lin <treapking@chromium.org>
11*7fcdfaf3SPin-yen Lin
12*7fcdfaf3SPin-yen LinallOf:
13*7fcdfaf3SPin-yen Lin  - $ref: usb-device.yaml#
14*7fcdfaf3SPin-yen Lin
15*7fcdfaf3SPin-yen Linproperties:
16*7fcdfaf3SPin-yen Lin  '#address-cells':
17*7fcdfaf3SPin-yen Lin    const: 1
18*7fcdfaf3SPin-yen Lin
19*7fcdfaf3SPin-yen Lin  peer-hub:
20*7fcdfaf3SPin-yen Lin    $ref: /schemas/types.yaml#/definitions/phandle
21*7fcdfaf3SPin-yen Lin    description:
22*7fcdfaf3SPin-yen Lin      phandle to the peer hub on the controller.
23*7fcdfaf3SPin-yen Lin
24*7fcdfaf3SPin-yen Lin  ports:
25*7fcdfaf3SPin-yen Lin    $ref: /schemas/graph.yaml#/properties/ports
26*7fcdfaf3SPin-yen Lin    description:
27*7fcdfaf3SPin-yen Lin      The downstream facing USB ports
28*7fcdfaf3SPin-yen Lin
29*7fcdfaf3SPin-yen Lin    patternProperties:
30*7fcdfaf3SPin-yen Lin      "^port@[1-9a-f][0-9a-f]*$":
31*7fcdfaf3SPin-yen Lin        $ref: /schemas/graph.yaml#/properties/port
32*7fcdfaf3SPin-yen Lin
33*7fcdfaf3SPin-yen LinpatternProperties:
34*7fcdfaf3SPin-yen Lin  '^.*@[1-9a-f][0-9a-f]*$':
35*7fcdfaf3SPin-yen Lin    description: The hard wired USB devices
36*7fcdfaf3SPin-yen Lin    type: object
37*7fcdfaf3SPin-yen Lin    $ref: /schemas/usb/usb-device.yaml
38*7fcdfaf3SPin-yen Lin    additionalProperties: true
39*7fcdfaf3SPin-yen Lin
40*7fcdfaf3SPin-yen Linrequired:
41*7fcdfaf3SPin-yen Lin  - compatible
42*7fcdfaf3SPin-yen Lin  - reg
43*7fcdfaf3SPin-yen Lin
44*7fcdfaf3SPin-yen LinadditionalProperties: true
45*7fcdfaf3SPin-yen Lin
46*7fcdfaf3SPin-yen Linexamples:
47*7fcdfaf3SPin-yen Lin  - |
48*7fcdfaf3SPin-yen Lin    usb {
49*7fcdfaf3SPin-yen Lin        #address-cells = <1>;
50*7fcdfaf3SPin-yen Lin        #size-cells = <0>;
51*7fcdfaf3SPin-yen Lin
52*7fcdfaf3SPin-yen Lin        /* 2.0 hub on port 1 */
53*7fcdfaf3SPin-yen Lin        hub_2_0: hub@1 {
54*7fcdfaf3SPin-yen Lin            compatible = "usb123,4567";
55*7fcdfaf3SPin-yen Lin            reg = <1>;
56*7fcdfaf3SPin-yen Lin            peer-hub = <&hub_3_0>;
57*7fcdfaf3SPin-yen Lin            #address-cells = <1>;
58*7fcdfaf3SPin-yen Lin            #size-cells = <0>;
59*7fcdfaf3SPin-yen Lin            /* USB 2.0 device on port 5 */
60*7fcdfaf3SPin-yen Lin            device@5 {
61*7fcdfaf3SPin-yen Lin                reg = <5>;
62*7fcdfaf3SPin-yen Lin                compatible = "usb765,4321";
63*7fcdfaf3SPin-yen Lin            };
64*7fcdfaf3SPin-yen Lin        };
65*7fcdfaf3SPin-yen Lin
66*7fcdfaf3SPin-yen Lin        /* 3.0 hub on port 2 */
67*7fcdfaf3SPin-yen Lin        hub_3_0: hub@2 {
68*7fcdfaf3SPin-yen Lin            compatible = "usb123,abcd";
69*7fcdfaf3SPin-yen Lin            reg = <2>;
70*7fcdfaf3SPin-yen Lin            peer-hub = <&hub_2_0>;
71*7fcdfaf3SPin-yen Lin
72*7fcdfaf3SPin-yen Lin            ports {
73*7fcdfaf3SPin-yen Lin                #address-cells = <1>;
74*7fcdfaf3SPin-yen Lin                #size-cells = <0>;
75*7fcdfaf3SPin-yen Lin                /* Type-A connector on port 3 */
76*7fcdfaf3SPin-yen Lin                port@3 {
77*7fcdfaf3SPin-yen Lin                    reg = <3>;
78*7fcdfaf3SPin-yen Lin                    endpoint {
79*7fcdfaf3SPin-yen Lin                        remote-endpoint = <&usb_a0_ss>;
80*7fcdfaf3SPin-yen Lin                    };
81*7fcdfaf3SPin-yen Lin                };
82*7fcdfaf3SPin-yen Lin            };
83*7fcdfaf3SPin-yen Lin        };
84*7fcdfaf3SPin-yen Lin    };
85