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      VDD power supply to the hub
40
41  peer-hub:
42    $ref: /schemas/types.yaml#/definitions/phandle
43    description:
44      phandle to the peer hub on the controller.
45
46  i2c-bus:
47    $ref: /schemas/types.yaml#/definitions/phandle
48    description:
49      phandle of an usb hub connected via i2c bus.
50
51required:
52  - compatible
53  - reg
54
55allOf:
56  - if:
57      properties:
58        compatible:
59          contains:
60            const: microchip,usb5744
61    then:
62      properties:
63        reset-gpios: false
64        vdd-supply: false
65        peer-hub: false
66        i2c-bus: false
67    else:
68      $ref: /schemas/usb/usb-device.yaml
69      required:
70        - peer-hub
71
72additionalProperties: false
73
74examples:
75  - |
76    #include <dt-bindings/gpio/gpio.h>
77    i2c: i2c {
78        #address-cells = <1>;
79        #size-cells = <0>;
80        hub: usb-hub@2d {
81            compatible = "microchip,usb5744";
82            reg = <0x2d>;
83        };
84    };
85
86    usb {
87        #address-cells = <1>;
88        #size-cells = <0>;
89
90        /* 2.0 hub on port 1 */
91        hub_2_0: hub@1 {
92            compatible = "usb424,2744";
93            reg = <1>;
94            peer-hub = <&hub_3_0>;
95            i2c-bus = <&hub>;
96            reset-gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
97        };
98
99        /* 3.0 hub on port 2 */
100        hub_3_0: hub@2 {
101            compatible = "usb424,5744";
102            reg = <2>;
103            peer-hub = <&hub_2_0>;
104            i2c-bus = <&hub>;
105            reset-gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
106        };
107    };
108