Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dt-bindings: usb: Add support for Microchip usb5744 hub controller

The Microchip usb5744 is a SS/HS USB 3.0 hub controller with 4 ports.
Add description for USB related aspects of the USB5744 hub, it as
well cover the option of connecting the controller as an i2c slave.
When i2c interface is connected hub needs to be initialized first.
Hub itself has fixed i2c address 0x2D but hardcoding address is not good
idea because address can be shifted by i2c address translator in the
middle.

Signed-off-by: Piyush Mehta <piyush.mehta@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/067fb163bfe3162c596a6c69c96c43ac78288628.1683895176.git.michal.simek@amd.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Michal Simek and committed by
Greg Kroah-Hartman
02be19e9 39737676

+107
+107
Documentation/devicetree/bindings/usb/microchip,usb5744.yaml
··· 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 + 7 + title: Microchip USB5744 4-port Hub Controller 8 + 9 + description: 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 + 18 + maintainers: 19 + - Piyush Mehta <piyush.mehta@amd.com> 20 + - Michal Simek <michal.simek@amd.com> 21 + 22 + properties: 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 + 51 + required: 52 + - compatible 53 + - reg 54 + 55 + allOf: 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 + 72 + additionalProperties: false 73 + 74 + examples: 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 + };