xref: /openbmc/linux/Documentation/devicetree/bindings/usb/microchip,usb5744.yaml (revision b97d6790d03b763eca08847a9a5869a4291b9f9a)
102be19e9SMichal Simek# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
202be19e9SMichal Simek%YAML 1.2
302be19e9SMichal Simek---
402be19e9SMichal Simek$id: http://devicetree.org/schemas/usb/microchip,usb5744.yaml#
502be19e9SMichal Simek$schema: http://devicetree.org/meta-schemas/core.yaml#
602be19e9SMichal Simek
702be19e9SMichal Simektitle: Microchip USB5744 4-port Hub Controller
802be19e9SMichal Simek
902be19e9SMichal Simekdescription:
1002be19e9SMichal Simek  Microchip's USB5744 SmartHubTM IC is a 4 port, SuperSpeed (SS)/Hi-Speed (HS),
1102be19e9SMichal Simek  low power, low pin count configurable and fully compliant with the USB 3.1
1202be19e9SMichal Simek  Gen 1 specification. The USB5744 also supports Full Speed (FS) and Low Speed
1302be19e9SMichal Simek  (LS) USB signaling, offering complete coverage of all defined USB operating
1402be19e9SMichal Simek  speeds. The new SuperSpeed hubs operate in parallel with the USB 2.0
1502be19e9SMichal Simek  controller, so 5 Gbps SuperSpeed data transfers are not affected by slower
1602be19e9SMichal Simek  USB 2.0 traffic.
1702be19e9SMichal Simek
1802be19e9SMichal Simekmaintainers:
1902be19e9SMichal Simek  - Piyush Mehta <piyush.mehta@amd.com>
2002be19e9SMichal Simek  - Michal Simek <michal.simek@amd.com>
2102be19e9SMichal Simek
2202be19e9SMichal Simekproperties:
2302be19e9SMichal Simek  compatible:
2402be19e9SMichal Simek    enum:
2502be19e9SMichal Simek      - usb424,2744
2602be19e9SMichal Simek      - usb424,5744
2702be19e9SMichal Simek      - microchip,usb5744
2802be19e9SMichal Simek
2902be19e9SMichal Simek  reg:
3002be19e9SMichal Simek    maxItems: 1
3102be19e9SMichal Simek
3202be19e9SMichal Simek  reset-gpios:
3302be19e9SMichal Simek    maxItems: 1
3402be19e9SMichal Simek    description:
3502be19e9SMichal Simek      GPIO controlling the GRST# pin.
3602be19e9SMichal Simek
3702be19e9SMichal Simek  vdd-supply:
3802be19e9SMichal Simek    description:
39*a367031aSStefan Eichenberger      3V3 power supply to the hub
40*a367031aSStefan Eichenberger
41*a367031aSStefan Eichenberger  vdd2-supply:
42*a367031aSStefan Eichenberger    description:
43*a367031aSStefan Eichenberger      1V2 power supply to the hub
4402be19e9SMichal Simek
4502be19e9SMichal Simek  peer-hub:
4602be19e9SMichal Simek    $ref: /schemas/types.yaml#/definitions/phandle
4702be19e9SMichal Simek    description:
4802be19e9SMichal Simek      phandle to the peer hub on the controller.
4902be19e9SMichal Simek
5002be19e9SMichal Simek  i2c-bus:
5102be19e9SMichal Simek    $ref: /schemas/types.yaml#/definitions/phandle
5202be19e9SMichal Simek    description:
5302be19e9SMichal Simek      phandle of an usb hub connected via i2c bus.
5402be19e9SMichal Simek
5502be19e9SMichal Simekrequired:
5602be19e9SMichal Simek  - compatible
5702be19e9SMichal Simek  - reg
5802be19e9SMichal Simek
5902be19e9SMichal SimekallOf:
6002be19e9SMichal Simek  - if:
6102be19e9SMichal Simek      properties:
6202be19e9SMichal Simek        compatible:
6302be19e9SMichal Simek          contains:
6402be19e9SMichal Simek            const: microchip,usb5744
6502be19e9SMichal Simek    then:
6602be19e9SMichal Simek      properties:
6702be19e9SMichal Simek        reset-gpios: false
6802be19e9SMichal Simek        vdd-supply: false
69*a367031aSStefan Eichenberger        vdd2-supply: false
7002be19e9SMichal Simek        peer-hub: false
7102be19e9SMichal Simek        i2c-bus: false
7202be19e9SMichal Simek    else:
7302be19e9SMichal Simek      $ref: /schemas/usb/usb-device.yaml
7402be19e9SMichal Simek      required:
7502be19e9SMichal Simek        - peer-hub
7602be19e9SMichal Simek
7702be19e9SMichal SimekadditionalProperties: false
7802be19e9SMichal Simek
7902be19e9SMichal Simekexamples:
8002be19e9SMichal Simek  - |
8102be19e9SMichal Simek    #include <dt-bindings/gpio/gpio.h>
8202be19e9SMichal Simek    i2c: i2c {
8302be19e9SMichal Simek        #address-cells = <1>;
8402be19e9SMichal Simek        #size-cells = <0>;
8502be19e9SMichal Simek        hub: usb-hub@2d {
8602be19e9SMichal Simek            compatible = "microchip,usb5744";
8702be19e9SMichal Simek            reg = <0x2d>;
8802be19e9SMichal Simek        };
8902be19e9SMichal Simek    };
9002be19e9SMichal Simek
9102be19e9SMichal Simek    usb {
9202be19e9SMichal Simek        #address-cells = <1>;
9302be19e9SMichal Simek        #size-cells = <0>;
9402be19e9SMichal Simek
9502be19e9SMichal Simek        /* 2.0 hub on port 1 */
9602be19e9SMichal Simek        hub_2_0: hub@1 {
9702be19e9SMichal Simek            compatible = "usb424,2744";
9802be19e9SMichal Simek            reg = <1>;
9902be19e9SMichal Simek            peer-hub = <&hub_3_0>;
10002be19e9SMichal Simek            i2c-bus = <&hub>;
10102be19e9SMichal Simek            reset-gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
10202be19e9SMichal Simek        };
10302be19e9SMichal Simek
10402be19e9SMichal Simek        /* 3.0 hub on port 2 */
10502be19e9SMichal Simek        hub_3_0: hub@2 {
10602be19e9SMichal Simek            compatible = "usb424,5744";
10702be19e9SMichal Simek            reg = <2>;
10802be19e9SMichal Simek            peer-hub = <&hub_2_0>;
10902be19e9SMichal Simek            i2c-bus = <&hub>;
11002be19e9SMichal Simek            reset-gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
11102be19e9SMichal Simek        };
11202be19e9SMichal Simek    };
113