[PATCH] usb: misc: Add driver for usb4604

Rob Herring robh at kernel.org
Tue Jun 28 13:56:37 PDT 2016


On Sat, Jun 25, 2016 at 10:24:54PM -0700, Stephen Boyd wrote:
> This is a minimal driver to support bringing a usb4604 device
> from microchip out of reset and into hub mode. The usb4604 device
> is related to the usb3503 device, but it didn't seem close enough
> to warrant putting both into the same file. This patch borrows
> some of the usb3503 structure and trims it down to just handle
> the optional reset gpio and adds the i2c command to put the
> device into hub mode.
> 
> Datasheet: http://ww1.microchip.com/downloads/en/DeviceDoc/00001716A.pdf
> Cc: <devicetree at vger.kernel.org>
> Signed-off-by: Stephen Boyd <stephen.boyd at linaro.org>
> ---
>  Documentation/devicetree/bindings/usb/usb4604.txt |  19 +++
>  drivers/usb/misc/Kconfig                          |   6 +
>  drivers/usb/misc/Makefile                         |   1 +
>  drivers/usb/misc/usb4604.c                        | 175 ++++++++++++++++++++++
>  4 files changed, 201 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/usb/usb4604.txt
>  create mode 100644 drivers/usb/misc/usb4604.c
> 
> diff --git a/Documentation/devicetree/bindings/usb/usb4604.txt b/Documentation/devicetree/bindings/usb/usb4604.txt
> new file mode 100644
> index 000000000000..82506d17712c
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/usb/usb4604.txt
> @@ -0,0 +1,19 @@
> +SMSC USB4604 High-Speed Hub Controller
> +
> +Required properties:
> +- compatible: Should be "smsc,usb4604"
> +
> +Optional properties:
> +- reg: Specifies the i2c slave address, it is required and should be 0x2d
> +       if I2C is used.
> +- reset-gpios: Should specify GPIO for reset.
> +- initial-mode: Should specify initial mode.
> +                (1 for HUB mode, 2 for STANDBY mode)

I was going to ask what would be the purpose of standby mode, and 
say it needs a vendor prefix, but I see you are re-using this from the 
3503.

> +
> +Examples:
> +	usb-hub at 2d {

I'm not sure what we'll do when/if we need this as a USB bus child node.

Acked-by: Rob Herring <robh at kernel.org>

> +		compatible = "smsc,usb4604";
> +		reg = <0x2d>;
> +		reset-gpios = <&gpx3 5 1>;
> +		initial-mode = <1>;
> +	};



More information about the linux-arm-kernel mailing list