1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/usb/microchip,usb5744.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Microchip USB5744 4-port Hub Controller
8
9description:
10  Microchip's USB5744 SmartHubTM IC is a 4 port, SuperSpeed (SS)/Hi-Speed (HS),
11  low power, low pin count configurable and fully compliant with the USB 3.1
12  Gen 1 specification. The USB5744 also supports Full Speed (FS) and Low Speed
13  (LS) USB signaling, offering complete coverage of all defined USB operating
14  speeds. The new SuperSpeed hubs operate in parallel with the USB 2.0
15  controller, so 5 Gbps SuperSpeed data transfers are not affected by slower
16  USB 2.0 traffic.
17
18maintainers:
19  - Piyush Mehta <piyush.mehta@amd.com>
20  - Michal Simek <michal.simek@amd.com>
21
22properties:
23  compatible:
24    enum:
25      - usb424,2744
26      - usb424,5744
27      - microchip,usb5744
28
29  reg:
30    maxItems: 1
31
32  reset-gpios:
33    maxItems: 1
34    description:
35      GPIO controlling the GRST# pin.
36
37  vdd-supply:
38    description:
39      3V3 power supply to the hub
40
41  vdd2-supply:
42    description:
43      1V2 power supply to the hub
44
45  peer-hub:
46    $ref: /schemas/types.yaml#/definitions/phandle
47    description:
48      phandle to the peer hub on the controller.
49
50  i2c-bus:
51    $ref: /schemas/types.yaml#/definitions/phandle
52    description:
53      phandle of an usb hub connected via i2c bus.
54
55required:
56  - compatible
57  - reg
58
59allOf:
60  - if:
61      properties:
62        compatible:
63          contains:
64            const: microchip,usb5744
65    then:
66      properties:
67        reset-gpios: false
68        vdd-supply: false
69        vdd2-supply: false
70        peer-hub: false
71        i2c-bus: false
72    else:
73      $ref: /schemas/usb/usb-device.yaml
74      required:
75        - peer-hub
76
77additionalProperties: false
78
79examples:
80  - |
81    #include <dt-bindings/gpio/gpio.h>
82    i2c: i2c {
83        #address-cells = <1>;
84        #size-cells = <0>;
85        hub: usb-hub@2d {
86            compatible = "microchip,usb5744";
87            reg = <0x2d>;
88        };
89    };
90
91    usb {
92        #address-cells = <1>;
93        #size-cells = <0>;
94
95        /* 2.0 hub on port 1 */
96        hub_2_0: hub@1 {
97            compatible = "usb424,2744";
98            reg = <1>;
99            peer-hub = <&hub_3_0>;
100            i2c-bus = <&hub>;
101            reset-gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
102        };
103
104        /* 3.0 hub on port 2 */
105        hub_3_0: hub@2 {
106            compatible = "usb424,5744";
107            reg = <2>;
108            peer-hub = <&hub_2_0>;
109            i2c-bus = <&hub>;
110            reset-gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
111        };
112    };
113