xref: /linux/Documentation/devicetree/bindings/usb/genesys,gl850g.yaml (revision 2eff01ee2881becc9daaa0d53477ec202136b1f4)
1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/usb/genesys,gl850g.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Genesys Logic USB hub controller
8
9maintainers:
10  - Icenowy Zheng <uwu@icenowy.me>
11
12properties:
13  compatible:
14    enum:
15      - usb5e3,608
16      - usb5e3,610
17      - usb5e3,620
18      - usb5e3,626
19
20  reg: true
21
22  reset-gpios:
23    description: GPIO controlling the RESET# pin.
24
25  vdd-supply:
26    description:
27      The regulator that provides 3.3V or 5.0V core power to the hub.
28
29  peer-hub:
30    $ref: /schemas/types.yaml#/definitions/phandle
31    description:
32      For onboard hub controllers that support USB 3.x and USB 2.0 hubs
33      with shared resets and power supplies, this property is used to identify
34      the hubs with which these are shared.
35
36required:
37  - compatible
38  - reg
39
40allOf:
41  - $ref: usb-device.yaml#
42  - if:
43      properties:
44        compatible:
45          contains:
46            enum:
47              - usb5e3,608
48    then:
49      properties:
50        peer-hub: false
51        vdd-supply: false
52
53  - if:
54      properties:
55        compatible:
56          contains:
57            enum:
58              - usb5e3,610
59              - usb5e3,620
60    then:
61      properties:
62        peer-hub: true
63        vdd-supply: true
64
65patternProperties:
66  "^.*@[0-9a-f]{1,2}$":
67    description: The hard wired USB devices
68    type: object
69    $ref: /schemas/usb/usb-device.yaml
70    additionalProperties: true
71
72unevaluatedProperties: false
73
74examples:
75  - |
76    #include <dt-bindings/gpio/gpio.h>
77    usb {
78        dr_mode = "host";
79        #address-cells = <1>;
80        #size-cells = <0>;
81
82        hub: hub@1 {
83            compatible = "usb5e3,608";
84            reg = <1>;
85            reset-gpios = <&pio 7 2 GPIO_ACTIVE_LOW>;
86        };
87    };
88
89  - |
90    #include <dt-bindings/gpio/gpio.h>
91    usb {
92        dr_mode = "host";
93        #address-cells = <1>;
94        #size-cells = <0>;
95
96        /* 2.0 hub on port 1 */
97        hub_2_0: hub@1 {
98            compatible = "usb5e3,610";
99            reg = <1>;
100            peer-hub = <&hub_3_0>;
101            reset-gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
102            vdd-supply = <&vcc_5v>;
103        };
104
105        /* 3.1 hub on port 4 */
106        hub_3_0: hub@2 {
107            compatible = "usb5e3,620";
108            reg = <2>;
109            peer-hub = <&hub_2_0>;
110            reset-gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
111            vdd-supply = <&vcc_5v>;
112        };
113    };
114