[PATCH] usb: ohci: remove ep93xx bus glue platform driver

Hartley Sweeten HartleyS at visionengravers.com
Tue Oct 15 16:55:32 EDT 2013


On Tuesday, October 15, 2013 8:50 AM, Olof Johansson wrote:
> On Mon, Oct 14, 2013 at 2:35 PM, H Hartley Sweeten <hartleys at visionengravers.com> wrote:
>> Convert ep93xx to use the OHCI platform driver and remove the
>> ohci-ep93xx bus glue driver.
>>
>> Signed-off-by: H Hartley Sweeten <hsweeten at visionengravers.com>
>> Cc: Alan Stern <stern at rowland.harvard.edu>
>> Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
>> Cc: Ryan Mallon <rmallon at gmail.com>
>> ---
>>  arch/arm/mach-ep93xx/clock.c   |   2 +-
>>  arch/arm/mach-ep93xx/core.c    |  45 +++++++++-
>>  drivers/usb/host/Kconfig       |   2 +-
>>  drivers/usb/host/ohci-ep93xx.c | 184 -----------------------------------------
>>  drivers/usb/host/ohci-hcd.c    |  18 ----
>>  5 files changed, 43 insertions(+), 208 deletions(-)
>>  delete mode 100644 drivers/usb/host/ohci-ep93xx.c
>>
>> diff --git a/arch/arm/mach-ep93xx/clock.c b/arch/arm/mach-ep93xx/clock.c
>> index c95dbce..39ef3b6 100644
>> --- a/arch/arm/mach-ep93xx/clock.c
>> +++ b/arch/arm/mach-ep93xx/clock.c
>> @@ -212,7 +212,7 @@ static struct clk_lookup clocks[] = {
>>         INIT_CK(NULL,                   "hclk",         &clk_h),
>>         INIT_CK(NULL,                   "apb_pclk",     &clk_p),
>>         INIT_CK(NULL,                   "pll2",         &clk_pll2),
>> -       INIT_CK("ep93xx-ohci",          NULL,           &clk_usb_host),
>> +       INIT_CK("ohci-platform",        NULL,           &clk_usb_host),
>>         INIT_CK("ep93xx-keypad",        NULL,           &clk_keypad),
>>         INIT_CK("ep93xx-fb",            NULL,           &clk_video),
>>         INIT_CK("ep93xx-spi.0",         NULL,           &clk_spi),
>> diff --git a/arch/arm/mach-ep93xx/core.c b/arch/arm/mach-ep93xx/core.c
>> index 3f12b88..5489824 100644
>> --- a/arch/arm/mach-ep93xx/core.c
>> +++ b/arch/arm/mach-ep93xx/core.c
>> @@ -36,6 +36,7 @@
>>  #include <linux/export.h>
>>  #include <linux/irqchip/arm-vic.h>
>>  #include <linux/reboot.h>
>> +#include <linux/usb/ohci_pdriver.h>
>>
>>  #include <mach/hardware.h>
>>  #include <linux/platform_data/video-ep93xx.h>
>> @@ -297,22 +298,58 @@ static struct platform_device ep93xx_rtc_device = {
>>         .resource       = ep93xx_rtc_resource,
>>  };
>>
>> +/*************************************************************************
>> + * EP93xx OHCI USB Host
>> + *************************************************************************/
>> +
>> +static struct clk *ep93xx_ohci_host_clock;
>> +
>> +static int ep93xx_ohci_power_on(struct platform_device *pdev)
>> +{
>> +       if (!ep93xx_ohci_host_clock) {
>> +               ep93xx_ohci_host_clock = devm_clk_get(&pdev->dev, NULL);
>> +               if (IS_ERR(ep93xx_ohci_host_clock))
>> +                       return PTR_ERR(ep93xx_ohci_host_clock);
>> +       }
>> +
>> +       clk_enable(ep93xx_ohci_host_clock);
>> +
>> +       return 0;
>> +}
>> +
>> +static void ep93xx_ohci_power_off(struct platform_device *pdev)
>> +{
>> +       clk_disable(ep93xx_ohci_host_clock);
>> +}
>> +
>> +static void ep93xx_ohci_power_suspend(struct platform_device *pdev)
>> +{
>> +       ep93xx_ohci_power_off(pdev);
>> +}
>> +
>> +static struct usb_ohci_pdata ep93xx_ohci_pdata = {
>> +       .power_on       = ep93xx_ohci_power_on,
>> +       .power_off      = ep93xx_ohci_power_off,
>> +       .power_suspend  = ep93xx_ohci_power_suspend,
>> +};
>
> This is definitely not a show-stopper in any way, but since this is
> just standard clock management, could you even move these clock ops
> into the driver? Are any other platforms already doing similar things
> so you could remove code from their platform that way as well, per
> chance?

It does not appear any of the other users of the ohci-platform driver do
anything similar.

The clock ops could be moved into the driver but I will need to add a
flag or something to the usb_ohci_pdata so that the platform can
indicated that a clock is required and  the clock ops should be done.

Regards,
Hartley




More information about the linux-arm-kernel mailing list