162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/usb/microchip,usb5744.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Microchip USB5744 4-port Hub Controller
862306a36Sopenharmony_ci
962306a36Sopenharmony_cidescription:
1062306a36Sopenharmony_ci  Microchip's USB5744 SmartHubTM IC is a 4 port, SuperSpeed (SS)/Hi-Speed (HS),
1162306a36Sopenharmony_ci  low power, low pin count configurable and fully compliant with the USB 3.1
1262306a36Sopenharmony_ci  Gen 1 specification. The USB5744 also supports Full Speed (FS) and Low Speed
1362306a36Sopenharmony_ci  (LS) USB signaling, offering complete coverage of all defined USB operating
1462306a36Sopenharmony_ci  speeds. The new SuperSpeed hubs operate in parallel with the USB 2.0
1562306a36Sopenharmony_ci  controller, so 5 Gbps SuperSpeed data transfers are not affected by slower
1662306a36Sopenharmony_ci  USB 2.0 traffic.
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_cimaintainers:
1962306a36Sopenharmony_ci  - Piyush Mehta <piyush.mehta@amd.com>
2062306a36Sopenharmony_ci  - Michal Simek <michal.simek@amd.com>
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ciproperties:
2362306a36Sopenharmony_ci  compatible:
2462306a36Sopenharmony_ci    enum:
2562306a36Sopenharmony_ci      - usb424,2744
2662306a36Sopenharmony_ci      - usb424,5744
2762306a36Sopenharmony_ci      - microchip,usb5744
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci  reg:
3062306a36Sopenharmony_ci    maxItems: 1
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci  reset-gpios:
3362306a36Sopenharmony_ci    maxItems: 1
3462306a36Sopenharmony_ci    description:
3562306a36Sopenharmony_ci      GPIO controlling the GRST# pin.
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci  vdd-supply:
3862306a36Sopenharmony_ci    description:
3962306a36Sopenharmony_ci      3V3 power supply to the hub
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci  vdd2-supply:
4262306a36Sopenharmony_ci    description:
4362306a36Sopenharmony_ci      1V2 power supply to the hub
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci  peer-hub:
4662306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/phandle
4762306a36Sopenharmony_ci    description:
4862306a36Sopenharmony_ci      phandle to the peer hub on the controller.
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci  i2c-bus:
5162306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/phandle
5262306a36Sopenharmony_ci    description:
5362306a36Sopenharmony_ci      phandle of an usb hub connected via i2c bus.
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_cirequired:
5662306a36Sopenharmony_ci  - compatible
5762306a36Sopenharmony_ci  - reg
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ciallOf:
6062306a36Sopenharmony_ci  - if:
6162306a36Sopenharmony_ci      properties:
6262306a36Sopenharmony_ci        compatible:
6362306a36Sopenharmony_ci          contains:
6462306a36Sopenharmony_ci            const: microchip,usb5744
6562306a36Sopenharmony_ci    then:
6662306a36Sopenharmony_ci      properties:
6762306a36Sopenharmony_ci        reset-gpios: false
6862306a36Sopenharmony_ci        vdd-supply: false
6962306a36Sopenharmony_ci        vdd2-supply: false
7062306a36Sopenharmony_ci        peer-hub: false
7162306a36Sopenharmony_ci        i2c-bus: false
7262306a36Sopenharmony_ci    else:
7362306a36Sopenharmony_ci      $ref: /schemas/usb/usb-device.yaml
7462306a36Sopenharmony_ci      required:
7562306a36Sopenharmony_ci        - peer-hub
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ciadditionalProperties: false
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ciexamples:
8062306a36Sopenharmony_ci  - |
8162306a36Sopenharmony_ci    #include <dt-bindings/gpio/gpio.h>
8262306a36Sopenharmony_ci    i2c: i2c {
8362306a36Sopenharmony_ci        #address-cells = <1>;
8462306a36Sopenharmony_ci        #size-cells = <0>;
8562306a36Sopenharmony_ci        hub: usb-hub@2d {
8662306a36Sopenharmony_ci            compatible = "microchip,usb5744";
8762306a36Sopenharmony_ci            reg = <0x2d>;
8862306a36Sopenharmony_ci        };
8962306a36Sopenharmony_ci    };
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ci    usb {
9262306a36Sopenharmony_ci        #address-cells = <1>;
9362306a36Sopenharmony_ci        #size-cells = <0>;
9462306a36Sopenharmony_ci
9562306a36Sopenharmony_ci        /* 2.0 hub on port 1 */
9662306a36Sopenharmony_ci        hub_2_0: hub@1 {
9762306a36Sopenharmony_ci            compatible = "usb424,2744";
9862306a36Sopenharmony_ci            reg = <1>;
9962306a36Sopenharmony_ci            peer-hub = <&hub_3_0>;
10062306a36Sopenharmony_ci            i2c-bus = <&hub>;
10162306a36Sopenharmony_ci            reset-gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
10262306a36Sopenharmony_ci        };
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ci        /* 3.0 hub on port 2 */
10562306a36Sopenharmony_ci        hub_3_0: hub@2 {
10662306a36Sopenharmony_ci            compatible = "usb424,5744";
10762306a36Sopenharmony_ci            reg = <2>;
10862306a36Sopenharmony_ci            peer-hub = <&hub_2_0>;
10962306a36Sopenharmony_ci            i2c-bus = <&hub>;
11062306a36Sopenharmony_ci            reset-gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
11162306a36Sopenharmony_ci        };
11262306a36Sopenharmony_ci    };
113