[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <134cbb66-6d46-bef5-fa4c-eeae78ec1b53@gmail.com>
Date: Fri, 9 Oct 2020 16:40:08 -0700
From: Florian Fainelli <f.fainelli@...il.com>
To: Al Cooper <alcooperx@...il.com>, linux-kernel@...r.kernel.org
Cc: bcm-kernel-feedback-list@...adcom.com, devicetree@...r.kernel.org,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Krzysztof Kozlowski <krzk@...nel.org>,
linux-arm-kernel@...ts.infradead.org, linux-usb@...r.kernel.org,
Rob Herring <robh+dt@...nel.org>
Subject: Re: [PATCH v2 2/2] usb: Add driver to allow any GPIO to be used for
7211 USB signals
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@...00d0 {
> 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@...il.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
Powered by blists - more mailing lists