xref: /linux/Documentation/devicetree/bindings/usb/genesys,gl850g.yaml (revision 2a6b6c9a226279b4f6668450ddb21ae655558087)
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
65additionalProperties: false
66
67examples:
68  - |
69    #include <dt-bindings/gpio/gpio.h>
70    usb {
71        dr_mode = "host";
72        #address-cells = <1>;
73        #size-cells = <0>;
74
75        hub: hub@1 {
76            compatible = "usb5e3,608";
77            reg = <1>;
78            reset-gpios = <&pio 7 2 GPIO_ACTIVE_LOW>;
79        };
80    };
81
82  - |
83    #include <dt-bindings/gpio/gpio.h>
84    usb {
85        dr_mode = "host";
86        #address-cells = <1>;
87        #size-cells = <0>;
88
89        /* 2.0 hub on port 1 */
90        hub_2_0: hub@1 {
91            compatible = "usb5e3,610";
92            reg = <1>;
93            peer-hub = <&hub_3_0>;
94            reset-gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
95            vdd-supply = <&vcc_5v>;
96        };
97
98        /* 3.1 hub on port 4 */
99        hub_3_0: hub@2 {
100            compatible = "usb5e3,620";
101            reg = <2>;
102            peer-hub = <&hub_2_0>;
103            reset-gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
104            vdd-supply = <&vcc_5v>;
105        };
106    };
107