From mboxrd@z Thu Jan 1 00:00:00 1970 From: Adam Ford Date: Wed, 12 Dec 2018 07:55:22 -0600 Subject: [U-Boot] [PATCH] Drivers: USB: MUSB: Remove legacy CONFIG_USB_DA8XX In-Reply-To: <9af8b6f8-2146-29fb-201b-a2bb1615fa80@ti.com> References: <20181210163528.11438-1-aford173@gmail.com> <6da935c6-df6d-337c-5dd8-d4e2b617140f@denx.de> <9af8b6f8-2146-29fb-201b-a2bb1615fa80@ti.com> Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Tue, Dec 11, 2018 at 3:51 AM Jean-Jacques Hiblot 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 > >> 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. adam > > > > > Thanks > > > > > > Reviewed-by: Jean-Jacques Hiblot > > > > > >> > >>> 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 > >>> - * > >>> - * Based on drivers/usb/musb/davinci.c > >>> - * > >>> - * Copyright (C) 2009 Texas Instruments Incorporated > >>> - */ > >>> -#include > >>> - > >>> -#include "musb_core.h" > >>> -#include > >>> - > >>> -/* 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); > >>> -} > >>> > >