Re: [PATCH v3 1/4] dt-bindings: usb: Add Microchip USB253x/USB3x13/USB46x4 support

From: Rob Herring
Date: Fri Jul 31 2020 - 16:38:58 EST


On Mon, Jul 27, 2020 at 10:33:30AM +0200, Christian Eggers wrote:
> Add DT bindings for Microchip USB253x/USB3x13/USB46x4 driver.

Looks like a lot copied from usb251xb.txt. Many of these properties need
to be defined in a common schema. That could be either common to USB
devices, hubs, or Microchip hubs or some combination of those.

>
> Signed-off-by: Christian Eggers <ceggers@xxxxxxx>
> ---
> .../devicetree/bindings/usb/usb253x.yaml | 234 ++++++++++++++++++
> 1 file changed, 234 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/usb/usb253x.yaml
>
> diff --git a/Documentation/devicetree/bindings/usb/usb253x.yaml b/Documentation/devicetree/bindings/usb/usb253x.yaml
> new file mode 100644
> index 000000000000..88ea744147b6
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/usb/usb253x.yaml
> @@ -0,0 +1,234 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/usb/usb253x.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Microchip USB253x/USB3x13/USB46x4 USB 2.0 Hi-Speed Hub Controller
> +
> +maintainers:
> + - Christian Eggers <ceggers@xxxxxxx>
> +
> +description: |
> + http://ww1.microchip.com/downloads/en/AppNotes/00001801C.pdf
> +
> +properties:
> + compatible:
> + enum:
> + - microchip,usb2532
> + - microchip,usb2532i
> + - microchip,usb2533
> + - microchip,usb2533i
> + - microchip,usb2534
> + - microchip,usb2534i
> + - microchip,usb3613
> + - microchip,usb3613i
> + - microchip,usb3813
> + - microchip,usb3813i
> + - microchip,usb4604
> + - microchip,usb4604i
> + - microchip,usb4624
> + - microchip,usb4624i
> +
> + reg:
> + maxItems: 1
> + description:
> + I2C address on the selected bus (usually <0x2D>).
> +
> + reset-gpios:
> + maxItems: 1
> + description:
> + Specify the gpio for hub reset.
> +
> + vdd-supply:
> + $ref: /schemas/types.yaml#/definitions/phandle
> + description:
> + Specify the regulator supplying vdd.
> +
> + skip-config:
> + $ref: /schemas/types.yaml#/definitions/flag
> + description:
> + Skip Hub configuration, but only send the USB-Attach command.
> +
> + vendor-id:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + maximum: 65535
> + description:
> + Set USB Vendor ID of the hub.
> +
> + product-id:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + maximum: 65535
> + description:
> + Set USB Product ID of the hub.
> +
> + device-id:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + maximum: 65535
> + description:
> + Set USB Device ID of the hub.
> +
> + language-id:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + maximum: 65535
> + description:
> + Set USB Language ID.
> +
> + manufacturer:
> + $ref: /schemas/types.yaml#/definitions/string
> + description:
> + Set USB Manufacturer string (max. a total of 93 characters for
> + manufacturer, product and serial).
> +
> + product:
> + $ref: /schemas/types.yaml#/definitions/string
> + description:
> + Set USB Product string (max. a total of 93 characters for
> + manufacturer, product and serial).
> +
> + serial:
> + $ref: /schemas/types.yaml#/definitions/string
> + description:
> + Set USB Serial string (max. a total of 93 characters for
> + manufacturer, product and serial).
> +
> + bus-powered:
> + $ref: /schemas/types.yaml#/definitions/flag
> + description:
> + Selects bus powered operation.
> +
> + self-powered:
> + $ref: /schemas/types.yaml#/definitions/flag
> + description:
> + Selects self powered operation (default).
> +
> + disable-hi-speed:
> + $ref: /schemas/types.yaml#/definitions/flag
> + description:
> + Disable USB Hi-Speed support.
> +
> + multi-tt:
> + $ref: /schemas/types.yaml#/definitions/flag
> + description:
> + Selects multi-transaction-translator (default).
> +
> + single-tt:
> + $ref: /schemas/types.yaml#/definitions/flag
> + description:
> + Selects single-transaction-translator.
> +
> + disable-eop:
> + $ref: /schemas/types.yaml#/definitions/flag
> + description:
> + Disable End of Packet generation in full-speed mode.
> +
> + ganged-sensing:
> + $ref: /schemas/types.yaml#/definitions/flag
> + description:
> + Select ganged over-current sense type in self-powered mode.
> +
> + individual-sensing:
> + $ref: /schemas/types.yaml#/definitions/flag
> + description:
> + Select individual over-current sense type in self-powered mode (default).
> +
> + ganged-port-switching:
> + $ref: /schemas/types.yaml#/definitions/flag
> + description:
> + Select ganged port power switching mode.
> +
> + individual-port-switching:
> + $ref: /schemas/types.yaml#/definitions/flag
> + description:
> + Select individual port power switching mode (default).
> +
> + dynamic-power-switching:
> + $ref: /schemas/types.yaml#/definitions/flag
> + description:
> + Enable auto-switching from self- to bus-powered operation if the local
> + power source is removed or unavailable.
> +
> + oc-delay-us:
> + enum:
> + - 100
> + - 4000
> + - 8000
> + - 16000
> + default: 8000
> + description:
> + Delay time (in microseconds) for filtering the over-current sense inputs.
> + If an invalid value is given, the default is used instead.
> +
> + compound-device:
> + $ref: /schemas/types.yaml#/definitions/flag
> + description:
> + Indicate the hub is part of a compound device.
> +
> + port-mapping-mode:
> + $ref: /schemas/types.yaml#/definitions/flag
> + description:
> + Enable port mapping mode.
> +
> + non-removable-ports:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description:
> + Should specify the ports which have a non-removable device connected.
> +
> + sp-disabled-ports:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description:
> + Specifies the ports which will be self-power disabled.
> +
> + bp-disabled-ports:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description:
> + Specifies the ports which will be bus-power disabled.
> +
> + power-on-time-ms:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + default: 100
> + minimum: 0
> + maximum: 510
> + description:
> + Specifies the time (in milliseconds) it takes from the time the host
> + initiates the power-on sequence to a port until the port has adequate
> + power.
> +
> + hub-controller-port:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description:
> + Hub port where the internal hub controller shall be connected. Usually
> + <number of ports>+1.
> +
> +additionalProperties: false
> +
> +required:
> + - compatible
> +
> +examples:
> + - |
> + #include <dt-bindings/gpio/gpio.h>
> + i2c0 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + usb2534i@2d {
> + compatible = "microchip,usb2534i";
> + reg = <0x2d>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_usb_hub>;
> + /* usb253x.c already assumes low-active, don't negate twice */
> + reset-gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>;
> + /*skip-config;*/
> + /* T_ON,max = 4 ms for NCP380 */
> + power-on-time-ms = <4>;
> + manufacturer = "Foo";
> + product = "Foo-Bar";
> + /* port 2 is connected to an internal SD-Card reader */
> + non-removable-ports = <2>;
> + /* hub controller mapped to logical port 5 */
> + hub-controller-port = <5>;
> + };
> + };
> +
> +...
> --
> Christian Eggers
> Embedded software developer
>
> Arnold & Richter Cine Technik GmbH & Co. Betriebs KG
> Sitz: Muenchen - Registergericht: Amtsgericht Muenchen - Handelsregisternummer: HRA 57918
> Persoenlich haftender Gesellschafter: Arnold & Richter Cine Technik GmbH
> Sitz: Muenchen - Registergericht: Amtsgericht Muenchen - Handelsregisternummer: HRB 54477
> Geschaeftsfuehrer: Dr. Michael Neuhaeuser; Stephan Schenk; Walter Trauninger; Markus Zeiler
>