Documentation / devicetree / bindings / usb / genesys,gl850g.yaml


Based on kernel version 6.15. Page generated on 2025-05-29 09:09 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/usb/genesys,gl850g.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Genesys Logic USB hub controller

maintainers:
  - Icenowy Zheng <uwu@icenowy.me>

properties:
  compatible:
    enum:
      - usb5e3,608
      - usb5e3,610
      - usb5e3,620
      - usb5e3,626

  reg: true

  reset-gpios:
    description: GPIO controlling the RESET# pin.

  vdd-supply:
    description:
      The regulator that provides 3.3V or 5.0V core power to the hub.

  peer-hub:
    $ref: /schemas/types.yaml#/definitions/phandle
    description:
      For onboard hub controllers that support USB 3.x and USB 2.0 hubs
      with shared resets and power supplies, this property is used to identify
      the hubs with which these are shared.

required:
  - compatible
  - reg

allOf:
  - $ref: usb-device.yaml#
  - if:
      properties:
        compatible:
          contains:
            enum:
              - usb5e3,608
    then:
      properties:
        peer-hub: false
        vdd-supply: false

  - if:
      properties:
        compatible:
          contains:
            enum:
              - usb5e3,610
              - usb5e3,620
    then:
      properties:
        peer-hub: true
        vdd-supply: true

patternProperties:
  "^.*@[0-9a-f]{1,2}$":
    description: The hard wired USB devices
    type: object
    $ref: /schemas/usb/usb-device.yaml
    additionalProperties: true

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    usb {
        dr_mode = "host";
        #address-cells = <1>;
        #size-cells = <0>;
 
        hub: hub@1 {
            compatible = "usb5e3,608";
            reg = <1>;
            reset-gpios = <&pio 7 2 GPIO_ACTIVE_LOW>;
        };
    };

  - |
    #include <dt-bindings/gpio/gpio.h>
    usb {
        dr_mode = "host";
        #address-cells = <1>;
        #size-cells = <0>;
 
        /* 2.0 hub on port 1 */
        hub_2_0: hub@1 {
            compatible = "usb5e3,610";
            reg = <1>;
            peer-hub = <&hub_3_0>;
            reset-gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
            vdd-supply = <&vcc_5v>;
        };
 
        /* 3.1 hub on port 4 */
        hub_3_0: hub@2 {
            compatible = "usb5e3,620";
            reg = <2>;
            peer-hub = <&hub_2_0>;
            reset-gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
            vdd-supply = <&vcc_5v>;
        };
    };