[U-Boot] [PATCH] Drivers: USB: MUSB: Remove legacy CONFIG_USB_DA8XX
Jean-Jacques Hiblot
jjhiblot at ti.com
Wed Dec 12 14:21:46 UTC 2018
On 12/12/2018 14:55, Adam Ford wrote:
> On Tue, Dec 11, 2018 at 3:51 AM Jean-Jacques Hiblot <jjhiblot at ti.com> wrote:
>>
>> On 11/12/2018 10:47, Jean-Jacques Hiblot wrote:
>>> On 10/12/2018 20:01, Marek Vasut wrote:
>>>> On 12/10/2018 05:35 PM, Adam Ford wrote:
>>>>> There don't appear to be any boards enabling CONFIG_USB_DA8XX,
>>>>> and there is a newer version of the MUSB driver, so let's remove
>>>>> the legacy version of it.
>>>>>
>>>>> Signed-off-by: Adam Ford <aford173 at gmail.com>
>>>> CCing Jean, I'd like his A-B/R-B.
>>>> Looks good to me, so I'll pick it once I have it, thanks!
>>> This is good to see some code removal
>> This could even go a bit further and remove:
>>
>> - drivers/usb/host/ohci-da8xx.c
>>
>> - arch/arm/mach-davinci/include/mach/da8xx-usb.h
>>
> I want to investigate these a bit. I might have a use for these two
> files on the da850evm yet. I know the musb was replaced by musb-new,
> so my hope is to make the legacy musb drivers go away first. In my
> ideal word, I'd like to keep the da850-evm around for a bit longer, at
> least until Logic PD discontinues the L138 and AM1808 system on
> module. If I can reuse these drivers to bring back USB host
> functionality, I'd like to keep them.
It's fine by me. I just thought that those files might have been overlooked.
JJ
>
> adam
>>> Thanks
>>>
>>>
>>> Reviewed-by: Jean-Jacques Hiblot <jjhiblot at ti.com>
>>>
>>>
>>>>> diff --git a/drivers/usb/musb/Kconfig b/drivers/usb/musb/Kconfig
>>>>> index 7e6be03f4a..2508b6ed0d 100644
>>>>> --- a/drivers/usb/musb/Kconfig
>>>>> +++ b/drivers/usb/musb/Kconfig
>>>>> @@ -15,10 +15,6 @@ config USB_OMAP3
>>>>> bool "Legacy MUSB OMAP3 / OMAP4"
>>>>> depends on ARCH_OMAP2PLUS
>>>>> -config USB_DA8XX
>>>>> - bool "Legacy MUSB DA8xx/OMAP-L1x"
>>>>> - depends on ARCH_DAVINCI
>>>>> -
>>>>> config USB_AM35X
>>>>> bool"Legacy MUSB AM35x"
>>>>> depends on ARCH_OMAP2PLUS && !USB_OMAP3
>>>>> diff --git a/drivers/usb/musb/Makefile b/drivers/usb/musb/Makefile
>>>>> index 1242ce1c8c..744f2cfaa2 100644
>>>>> --- a/drivers/usb/musb/Makefile
>>>>> +++ b/drivers/usb/musb/Makefile
>>>>> @@ -6,5 +6,4 @@
>>>>> obj-$(CONFIG_USB_MUSB_HCD) += musb_hcd.o musb_core.o
>>>>> obj-$(CONFIG_USB_MUSB_UDC) += musb_udc.o musb_core.o
>>>>> obj-$(CONFIG_USB_OMAP3) += omap3.o
>>>>> -obj-$(CONFIG_USB_DA8XX) += da8xx.o
>>>>> obj-$(CONFIG_USB_AM35X) += am35x.o
>>>>> diff --git a/drivers/usb/musb/da8xx.c b/drivers/usb/musb/da8xx.c
>>>>> deleted file mode 100644
>>>>> index a652a7c3c1..0000000000
>>>>> --- a/drivers/usb/musb/da8xx.c
>>>>> +++ /dev/null
>>>>> @@ -1,127 +0,0 @@
>>>>> -// SPDX-License-Identifier: GPL-2.0+
>>>>> -/*
>>>>> - * da8xx.c - TI's DA8xx platform specific usb wrapper functions.
>>>>> - *
>>>>> - * Author: Ajay Kumar Gupta <ajay.gupta at ti.com>
>>>>> - *
>>>>> - * Based on drivers/usb/musb/davinci.c
>>>>> - *
>>>>> - * Copyright (C) 2009 Texas Instruments Incorporated
>>>>> - */
>>>>> -#include <common.h>
>>>>> -
>>>>> -#include "musb_core.h"
>>>>> -#include <asm/arch/da8xx-usb.h>
>>>>> -
>>>>> -/* MUSB platform configuration */
>>>>> -struct musb_config musb_cfg = {
>>>>> - .regs = (struct musb_regs *)DA8XX_USB_OTG_CORE_BASE,
>>>>> - .timeout = DA8XX_USB_OTG_TIMEOUT,
>>>>> - .musb_speed = 0,
>>>>> -};
>>>>> -
>>>>> -/*
>>>>> - * This function enables VBUS by driving the GPIO Bank4 Pin 15 high.
>>>>> - */
>>>>> -static void enable_vbus(void)
>>>>> -{
>>>>> - u32 value;
>>>>> -
>>>>> - /* configure GPIO bank4 pin 15 in output direction */
>>>>> - value = readl(&davinci_gpio_bank45->dir);
>>>>> - writel((value & (~DA8XX_USB_VBUS_GPIO)),
>>>>> &davinci_gpio_bank45->dir);
>>>>> -
>>>>> - /* set GPIO bank4 pin 15 high to drive VBUS */
>>>>> - value = readl(&davinci_gpio_bank45->set_data);
>>>>> - writel((value | DA8XX_USB_VBUS_GPIO),
>>>>> &davinci_gpio_bank45->set_data);
>>>>> -}
>>>>> -
>>>>> -/*
>>>>> - * Enable the usb0 phy. This initialization procedure is explained in
>>>>> - * the DA8xx USB user guide document.
>>>>> - */
>>>>> -static u8 phy_on(void)
>>>>> -{
>>>>> - u32 timeout;
>>>>> - u32 cfgchip2;
>>>>> -
>>>>> - cfgchip2 = readl(&davinci_syscfg_regs->cfgchip2);
>>>>> -
>>>>> - cfgchip2 &= ~(CFGCHIP2_RESET | CFGCHIP2_PHYPWRDN |
>>>>> CFGCHIP2_OTGPWRDN |
>>>>> - CFGCHIP2_OTGMODE | CFGCHIP2_REFFREQ);
>>>>> - cfgchip2 |= CFGCHIP2_SESENDEN | CFGCHIP2_VBDTCTEN |
>>>>> CFGCHIP2_PHY_PLLON |
>>>>> - CFGCHIP2_REFFREQ_24MHZ;
>>>>> -
>>>>> - writel(cfgchip2, &davinci_syscfg_regs->cfgchip2);
>>>>> -
>>>>> - /* wait until the usb phy pll locks */
>>>>> - timeout = musb_cfg.timeout;
>>>>> - while (timeout--)
>>>>> - if (readl(&davinci_syscfg_regs->cfgchip2) & CFGCHIP2_PHYCLKGD)
>>>>> - return 1;
>>>>> -
>>>>> - /* USB phy was not turned on */
>>>>> - return 0;
>>>>> -}
>>>>> -
>>>>> -/*
>>>>> - * Disable the usb phy
>>>>> - */
>>>>> -static void phy_off(void)
>>>>> -{
>>>>> - u32 cfgchip2;
>>>>> -
>>>>> - /*
>>>>> - * Power down the on-chip PHY.
>>>>> - */
>>>>> - cfgchip2 = readl(&davinci_syscfg_regs->cfgchip2);
>>>>> - cfgchip2 &= ~CFGCHIP2_PHY_PLLON;
>>>>> - cfgchip2 |= CFGCHIP2_PHYPWRDN | CFGCHIP2_OTGPWRDN;
>>>>> - writel(cfgchip2, &davinci_syscfg_regs->cfgchip2);
>>>>> -}
>>>>> -
>>>>> -/*
>>>>> - * This function performs DA8xx platform specific initialization
>>>>> for usb0.
>>>>> - */
>>>>> -int musb_platform_init(void)
>>>>> -{
>>>>> - u32 revision;
>>>>> -
>>>>> - /* enable psc for usb2.0 */
>>>>> - lpsc_on(33);
>>>>> -
>>>>> - /* enable usb vbus */
>>>>> - enable_vbus();
>>>>> -
>>>>> - /* reset the controller */
>>>>> - writel(0x1, &da8xx_usb_regs->control);
>>>>> - udelay(5000);
>>>>> -
>>>>> - /* start the on-chip usb phy and its pll */
>>>>> - if (phy_on() == 0)
>>>>> - return -1;
>>>>> -
>>>>> - /* Returns zero if e.g. not clocked */
>>>>> - revision = readl(&da8xx_usb_regs->revision);
>>>>> - if (revision == 0)
>>>>> - return -1;
>>>>> -
>>>>> - /* Disable all interrupts */
>>>>> - writel((DA8XX_USB_USBINT_MASK | DA8XX_USB_TXINT_MASK |
>>>>> - DA8XX_USB_RXINT_MASK), &da8xx_usb_regs->intmsk_set);
>>>>> - return 0;
>>>>> -}
>>>>> -
>>>>> -/*
>>>>> - * This function performs DA8xx platform specific deinitialization
>>>>> for usb0.
>>>>> - */
>>>>> -void musb_platform_deinit(void)
>>>>> -{
>>>>> - /* Turn of the phy */
>>>>> - phy_off();
>>>>> -
>>>>> - /* flush any interrupts */
>>>>> - writel((DA8XX_USB_USBINT_MASK | DA8XX_USB_TXINT_MASK |
>>>>> - DA8XX_USB_RXINT_MASK), &da8xx_usb_regs->intmsk_clr);
>>>>> - writel(0, &da8xx_usb_regs->eoi);
>>>>> -}
>>>>>
More information about the U-Boot
mailing list