[PATCH v2 2/2] usb: Add driver to allow any GPIO to be used for 7211 USB signals

Florian Fainelli f.fainelli at gmail.com
Fri Oct 9 19:40:08 EDT 2020



On 10/9/2020 12:08 PM, Al Cooper wrote:
> The Broadcom 7211 has new functionality that allows some USB low
> speed side band signals, that go from the XHCI host controller to
> pins on the chip, to be remapped to use any GPIO pin instead of the
> limited set selectable by hardware. This can be done without changing
> the standard driver for the host controller. There is currently
> support for three USB signals, PWRON, VBUS_PRESENT and PWRFLT. This
> driver will allow the remapping of any of these three signals based
> on settings in the Device Tree node for the driver. The driver was
> written so that it could handle additional signals added in the
> future by just adding the correct properties to the DT node.
> 
> Below is an example of a DT node that would remap all three
> signals:
> 
> usb_pinmap: usb-pinmap at 22000d0 {
> 	compatible = "brcm,usb-pinmap";
> 	reg = <0x22000d0 0x4>;
> 	in-gpios = <&gpio 18 0>, <&gpio 19 0>;
> 	brcm,in-functions = "VBUS", "PWRFLT";
> 	brcm,in-masks = <0x8000 0x40000 0x10000 0x80000>;
> 	out-gpios = <&gpio 20 0>;
> 	brcm,out-functions = "PWRON";
> 	brcm,out-masks = <0x20000 0x800000 0x400000 0x200000>;
> 	interrupts = <0x0 0xb2 0x4>;
> };
> 
> Signed-off-by: Al Cooper <alcooperx at gmail.com>
> ---

[snip]

> +config BRCM_USB_PINMAP
> +	tristate "Broadcom pinmap driver support"
> +	depends on (ARCH_BRCMSTB && PHY_BRCM_USB) || COMPILE_TEST
> +	default y if (ARCH_BRCMSTB && PHY_BRCM_USB)

default ARCH_BRCMSTB && PHY_BRCM_USB should work as well.


> +static int __init brcmstb_usb_pinmap_init(void)
> +{
> +	return platform_driver_probe(&brcmstb_usb_pinmap_driver,
> +				     brcmstb_usb_pinmap_probe);
> +}
> +
> +module_init(brcmstb_usb_pinmap_init);

You would need MODULE_AUTHOR(), LICENSE and DESCRIPTION() in case you 
make this modular.

-- 
Florian



More information about the linux-arm-kernel mailing list