diff options
Diffstat (limited to 'drivers/usb/musb-new')
-rw-r--r-- | drivers/usb/musb-new/am35x.c | 1 | ||||
-rw-r--r-- | drivers/usb/musb-new/da8xx.c | 1 | ||||
-rw-r--r-- | drivers/usb/musb-new/linux-compat.h | 4 | ||||
-rw-r--r-- | drivers/usb/musb-new/mt85xx.c | 1 | ||||
-rw-r--r-- | drivers/usb/musb-new/musb_core.c | 9 | ||||
-rw-r--r-- | drivers/usb/musb-new/musb_core.h | 3 | ||||
-rw-r--r-- | drivers/usb/musb-new/musb_dma.h | 1 | ||||
-rw-r--r-- | drivers/usb/musb-new/musb_dsps.c | 1 | ||||
-rw-r--r-- | drivers/usb/musb-new/musb_gadget.c | 5 | ||||
-rw-r--r-- | drivers/usb/musb-new/musb_gadget.h | 1 | ||||
-rw-r--r-- | drivers/usb/musb-new/musb_gadget_ep0.c | 3 | ||||
-rw-r--r-- | drivers/usb/musb-new/musb_host.c | 7 | ||||
-rw-r--r-- | drivers/usb/musb-new/musb_host.h | 1 | ||||
-rw-r--r-- | drivers/usb/musb-new/musb_io.h | 2 | ||||
-rw-r--r-- | drivers/usb/musb-new/musb_regs.h | 1 | ||||
-rw-r--r-- | drivers/usb/musb-new/musb_uboot.c | 1 | ||||
-rw-r--r-- | drivers/usb/musb-new/omap2430.c | 39 | ||||
-rw-r--r-- | drivers/usb/musb-new/pic32.c | 1 | ||||
-rw-r--r-- | drivers/usb/musb-new/sunxi.c | 1 | ||||
-rw-r--r-- | drivers/usb/musb-new/ti-musb.c | 24 | ||||
-rw-r--r-- | drivers/usb/musb-new/ux500.c | 23 |
21 files changed, 46 insertions, 84 deletions
diff --git a/drivers/usb/musb-new/am35x.c b/drivers/usb/musb-new/am35x.c index 0a52e09e19f..42bc816e4f1 100644 --- a/drivers/usb/musb-new/am35x.c +++ b/drivers/usb/musb-new/am35x.c @@ -24,7 +24,6 @@ #include <plat/usb.h> #else -#include <common.h> #include <asm/omap_musb.h> #include <linux/bug.h> #include <linux/delay.h> diff --git a/drivers/usb/musb-new/da8xx.c b/drivers/usb/musb-new/da8xx.c index 68fc0c36146..7caf03cc2e1 100644 --- a/drivers/usb/musb-new/da8xx.c +++ b/drivers/usb/musb-new/da8xx.c @@ -13,7 +13,6 @@ * */ -#include <common.h> #include <dm.h> #include <log.h> #include <dm/device-internal.h> diff --git a/drivers/usb/musb-new/linux-compat.h b/drivers/usb/musb-new/linux-compat.h index 8829567bfb6..40e238f86a8 100644 --- a/drivers/usb/musb-new/linux-compat.h +++ b/drivers/usb/musb-new/linux-compat.h @@ -19,8 +19,4 @@ #define CFG_SOC_OMAP3430 #endif -#ifdef CONFIG_OMAP44XX -#define CFG_ARCH_OMAP4 -#endif - #endif /* __LINUX_COMPAT_H__ */ diff --git a/drivers/usb/musb-new/mt85xx.c b/drivers/usb/musb-new/mt85xx.c index 1e632dca046..14b28bbae6b 100644 --- a/drivers/usb/musb-new/mt85xx.c +++ b/drivers/usb/musb-new/mt85xx.c @@ -9,7 +9,6 @@ * * This file is part of the Inventra Controller Driver for Linux. */ -#include <common.h> #include <clk.h> #include <dm.h> #include <dm/device_compat.h> diff --git a/drivers/usb/musb-new/musb_core.c b/drivers/usb/musb-new/musb_core.c index 00da554982f..6375be741ae 100644 --- a/drivers/usb/musb-new/musb_core.c +++ b/drivers/usb/musb-new/musb_core.c @@ -79,7 +79,6 @@ #include <linux/platform_device.h> #include <linux/io.h> #else -#include <common.h> #include <dm.h> #include <dm/device_compat.h> #include <usb.h> @@ -99,7 +98,6 @@ #define TA_WAIT_BCON(m) max_t(int, (m)->a_wait_bcon, OTG_TIME_A_WAIT_BCON) - #define DRIVER_AUTHOR "Mentor Graphics, Texas Instruments, Nokia" #define DRIVER_DESC "Inventra Dual-Role USB Controller Driver" @@ -115,7 +113,6 @@ MODULE_AUTHOR(DRIVER_AUTHOR); MODULE_LICENSE("GPL"); MODULE_ALIAS("platform:" MUSB_DRIVER_NAME); - #ifndef __UBOOT__ /*-------------------------------------------------------------------------*/ @@ -302,7 +299,6 @@ void musb_read_fifo(struct musb_hw_ep *hw_ep, u16 len, u8 *dst) #endif /* normal PIO */ - /*-------------------------------------------------------------------------*/ /* for high speed test mode; see USB 2.0 spec 7.1.20 */ @@ -972,7 +968,6 @@ int musb_start(struct musb *musb) #endif } - static void musb_generic_disable(struct musb *musb) { void __iomem *mbase = musb->mregs; @@ -1043,7 +1038,6 @@ static void musb_shutdown(struct platform_device *pdev) } #endif - /*-------------------------------------------------------------------------*/ /* @@ -1345,7 +1339,6 @@ done: return 0; } - /* * ep_config_from_hw - when MUSB_C_DYNFIFO_DEF is false * @param musb the controller @@ -1527,7 +1520,7 @@ static int __devinit musb_core_init(u16 musb_type, struct musb *musb) /*-------------------------------------------------------------------------*/ #if defined(CONFIG_SOC_OMAP2430) || defined(CFG_SOC_OMAP3430) || \ - defined(CFG_ARCH_OMAP4) || defined(CONFIG_ARCH_U8500) + defined(CONFIG_ARCH_U8500) static irqreturn_t generic_interrupt(int irq, void *__hci) { diff --git a/drivers/usb/musb-new/musb_core.h b/drivers/usb/musb-new/musb_core.h index adfd81b8544..00e9181556d 100644 --- a/drivers/usb/musb-new/musb_core.h +++ b/drivers/usb/musb-new/musb_core.h @@ -143,7 +143,6 @@ enum musb_g_ep0_state { #define OTG_TIME_A_AIDL_BDIS 200 /* min 200 msec */ #define OTG_TIME_B_ASE0_BRST 100 /* min 3.125 ms */ - /*************************** REGISTER ACCESS ********************************/ /* Endpoint registers (other than dynfifo setup) can be accessed either @@ -151,7 +150,7 @@ enum musb_g_ep0_state { */ #if defined(CONFIG_ARCH_DAVINCI) || defined(CONFIG_SOC_OMAP2430) \ - || defined(CFG_SOC_OMAP3430) || defined(CFG_ARCH_OMAP4) + || defined(CFG_SOC_OMAP3430) /* REVISIT indexed access seemed to * misbehave (on DaVinci) for at least peripheral IN ... */ diff --git a/drivers/usb/musb-new/musb_dma.h b/drivers/usb/musb-new/musb_dma.h index 5f99356ca79..9cafcf4432d 100644 --- a/drivers/usb/musb-new/musb_dma.h +++ b/drivers/usb/musb-new/musb_dma.h @@ -141,7 +141,6 @@ struct dma_controller { /* called after channel_program(), may indicate a fault */ extern void musb_dma_completion(struct musb *musb, u8 epnum, u8 transmit); - extern struct dma_controller *__init dma_controller_create(struct musb *, void __iomem *); diff --git a/drivers/usb/musb-new/musb_dsps.c b/drivers/usb/musb-new/musb_dsps.c index a8ff7434c9f..b73f3531ce2 100644 --- a/drivers/usb/musb-new/musb_dsps.c +++ b/drivers/usb/musb-new/musb_dsps.c @@ -31,7 +31,6 @@ #include <plat/usb.h> #else -#include <common.h> #include <dm.h> #include <dm/device_compat.h> #include <asm/omap_musb.h> diff --git a/drivers/usb/musb-new/musb_gadget.c b/drivers/usb/musb-new/musb_gadget.c index c6083963ede..08fac829ce7 100644 --- a/drivers/usb/musb-new/musb_gadget.c +++ b/drivers/usb/musb-new/musb_gadget.c @@ -22,7 +22,6 @@ #include <linux/dma-mapping.h> #include <linux/slab.h> #else -#include <common.h> #include <dm.h> #include <dm/device_compat.h> #include <linux/bug.h> @@ -33,7 +32,6 @@ #include "musb_core.h" - /* MUSB PERIPHERAL status 3-mar-2006: * * - EP0 seems solid. It passes both USBCV and usbtest control cases. @@ -275,7 +273,6 @@ static inline int max_ep_writesize(struct musb *musb, struct musb_ep *ep) return ep->packet_sz; } - #ifdef CONFIG_USB_INVENTRA_DMA /* Peripheral tx (IN) using Mentor DMA works as follows: @@ -1824,7 +1821,6 @@ static void musb_gadget_release(struct device *dev) } #endif - static void __devinit init_peripheral_ep(struct musb *musb, struct musb_ep *ep, u8 epnum, int is_in) { @@ -2286,7 +2282,6 @@ __acquires(musb->lock) else if (devctl & MUSB_DEVCTL_HR) musb_writeb(mbase, MUSB_DEVCTL, MUSB_DEVCTL_SESSION); - /* what speed did we negotiate? */ power = musb_readb(mbase, MUSB_POWER); musb->g.speed = (power & MUSB_POWER_HSMODE) diff --git a/drivers/usb/musb-new/musb_gadget.h b/drivers/usb/musb-new/musb_gadget.h index 7cb7a5cd6dc..b11e7205299 100644 --- a/drivers/usb/musb-new/musb_gadget.h +++ b/drivers/usb/musb-new/musb_gadget.h @@ -43,7 +43,6 @@ extern struct usb_request * musb_alloc_request(struct usb_ep *ep, gfp_t gfp_flags); extern void musb_free_request(struct usb_ep *ep, struct usb_request *req); - /* * struct musb_ep - peripheral side view of endpoint rx or tx side */ diff --git a/drivers/usb/musb-new/musb_gadget_ep0.c b/drivers/usb/musb-new/musb_gadget_ep0.c index 55ce8de99bb..ea65326ab62 100644 --- a/drivers/usb/musb-new/musb_gadget_ep0.c +++ b/drivers/usb/musb-new/musb_gadget_ep0.c @@ -18,7 +18,6 @@ #include <linux/device.h> #include <linux/interrupt.h> #else -#include <common.h> #include <dm.h> #include <dm/device_compat.h> #include <linux/printk.h> @@ -502,7 +501,6 @@ static void ep0_rxstate(struct musb *musb) } else csr = MUSB_CSR0_P_SVDRXPKTRDY | MUSB_CSR0_P_SENDSTALL; - /* Completion handler may choose to stall, e.g. because the * message just received holds invalid data. */ @@ -896,7 +894,6 @@ finish: return retval; } - static int musb_g_ep0_enable(struct usb_ep *ep, const struct usb_endpoint_descriptor *desc) { diff --git a/drivers/usb/musb-new/musb_host.c b/drivers/usb/musb-new/musb_host.c index e5905d90d66..7528a53d73e 100644 --- a/drivers/usb/musb-new/musb_host.c +++ b/drivers/usb/musb-new/musb_host.c @@ -21,7 +21,6 @@ #include <linux/list.h> #include <linux/dma-mapping.h> #else -#include <common.h> #include <dm.h> #include <dm/device_compat.h> #include <usb.h> @@ -33,7 +32,6 @@ #include "musb_core.h" #include "musb_host.h" - /* MUSB HOST status 22-mar-2006 * * - There's still lots of partial code duplication for fault paths, so @@ -68,7 +66,6 @@ * although ARP RX wins. (That test was done with a full speed link.) */ - /* * NOTE on endpoint usage: * @@ -83,7 +80,6 @@ * of transfers between endpoints, or anything clever. */ - static void musb_ep_program(struct musb *musb, u8 epnum, struct urb *urb, int is_out, u8 *buf, u32 offset, u32 len); @@ -885,7 +881,6 @@ static void musb_ep_program(struct musb *musb, u8 epnum, } } - /* * Service the default endpoint (ep0) as host. * Return true until it's time to start the status stage. @@ -1086,7 +1081,6 @@ done: return retval; } - #ifdef CONFIG_USB_INVENTRA_DMA /* Host side TX (OUT) using Mentor DMA works as follows: @@ -1345,7 +1339,6 @@ void musb_host_tx(struct musb *musb, u8 epnum) MUSB_TXCSR_H_WZC_BITS | MUSB_TXCSR_TXPKTRDY); } - #ifdef CONFIG_USB_INVENTRA_DMA /* Host side RX (IN) using Mentor DMA works as follows: diff --git a/drivers/usb/musb-new/musb_host.h b/drivers/usb/musb-new/musb_host.h index 5a604bdb0cf..823e327ef0e 100644 --- a/drivers/usb/musb-new/musb_host.h +++ b/drivers/usb/musb-new/musb_host.h @@ -59,7 +59,6 @@ static inline struct musb_qh *first_qh(struct list_head *q) return list_entry(q->next, struct musb_qh, ring); } - extern void musb_root_disconnect(struct musb *musb); struct usb_hcd; diff --git a/drivers/usb/musb-new/musb_io.h b/drivers/usb/musb-new/musb_io.h index 19b12f36a5c..0ced19919ef 100644 --- a/drivers/usb/musb-new/musb_io.h +++ b/drivers/usb/musb-new/musb_io.h @@ -24,14 +24,12 @@ static inline u16 musb_readw(const void __iomem *addr, unsigned offset) static inline u32 musb_readl(const void __iomem *addr, unsigned offset) { return __raw_readl(addr + offset); } - static inline void musb_writew(void __iomem *addr, unsigned offset, u16 data) { __raw_writew(data, addr + offset); } static inline void musb_writel(void __iomem *addr, unsigned offset, u32 data) { __raw_writel(data, addr + offset); } - #if defined(CONFIG_USB_MUSB_TUSB6010) || defined (CONFIG_USB_MUSB_TUSB6010_MODULE) /* diff --git a/drivers/usb/musb-new/musb_regs.h b/drivers/usb/musb-new/musb_regs.h index 9fd01fafdf7..a54da45d490 100644 --- a/drivers/usb/musb-new/musb_regs.h +++ b/drivers/usb/musb-new/musb_regs.h @@ -188,7 +188,6 @@ /* HUBADDR */ #define MUSB_HUBADDR_MULTI_TT 0x80 - /* SUNXI has different reg addresses, but identical r/w functions */ #ifndef CONFIG_ARCH_SUNXI diff --git a/drivers/usb/musb-new/musb_uboot.c b/drivers/usb/musb-new/musb_uboot.c index 7cea9a2ed65..43ab3245e5c 100644 --- a/drivers/usb/musb-new/musb_uboot.c +++ b/drivers/usb/musb-new/musb_uboot.c @@ -1,4 +1,3 @@ -#include <common.h> #include <console.h> #include <dm.h> #include <malloc.h> diff --git a/drivers/usb/musb-new/omap2430.c b/drivers/usb/musb-new/omap2430.c index 308eff832c9..ba600d01102 100644 --- a/drivers/usb/musb-new/omap2430.c +++ b/drivers/usb/musb-new/omap2430.c @@ -8,7 +8,6 @@ * * This file is part of the Inventra Controller Driver for Linux. */ -#include <common.h> #include <dm.h> #include <log.h> #include <serial.h> @@ -22,7 +21,6 @@ #include <asm/omap_common.h> #include <asm/omap_musb.h> #include <twl4030.h> -#include <twl6030.h> #include "linux-compat.h" #include "musb_core.h" #include "omap2430.h" @@ -47,16 +45,6 @@ static inline void omap2430_low_level_init(struct musb *musb) musb_writel(musb->mregs, OTG_FORCESTDBY, l); } -#ifdef CONFIG_DM_USB_GADGET -int dm_usb_gadget_handle_interrupts(struct udevice *dev) -{ - struct musb_host_data *host = dev_get_priv(dev); - - host->host->isr(0, host->host); - return 0; -} -#endif - static int omap2430_musb_init(struct musb *musb) { u32 l; @@ -115,17 +103,6 @@ static int omap2430_musb_enable(struct musb *musb) __PRETTY_FUNCTION__); } #endif - -#ifdef CONFIG_TWL6030_POWER - twl6030_usb_device_settings(); -#endif - -#ifdef CONFIG_OMAP44XX - u32 *usbotghs_control = (u32 *)((*ctrl)->control_usbotghs_ctrl); - *usbotghs_control = USBOTGHS_CONTROL_AVALID | - USBOTGHS_CONTROL_VBUSVALID | USBOTGHS_CONTROL_IDDIG; -#endif - return 0; } @@ -274,6 +251,21 @@ static int omap2430_musb_remove(struct udevice *dev) return 0; } +#ifndef CONFIG_USB_MUSB_HOST +static int omap2340_gadget_handle_interrupts(struct udevice *dev) +{ + struct musb_host_data *host = dev_get_priv(dev); + + host->host->isr(0, host->host); + + return 0; +} + +static const struct usb_gadget_generic_ops omap2340_gadget_ops = { + .handle_interrupts = omap2340_gadget_handle_interrupts, +}; +#endif + static const struct udevice_id omap2430_musb_ids[] = { { .compatible = "ti,omap3-musb" }, { .compatible = "ti,omap4-musb" }, @@ -286,6 +278,7 @@ U_BOOT_DRIVER(omap2430_musb) = { .id = UCLASS_USB, #else .id = UCLASS_USB_GADGET_GENERIC, + .ops = &omap2340_gadget_ops, #endif .of_match = omap2430_musb_ids, .of_to_plat = omap2430_musb_of_to_plat, diff --git a/drivers/usb/musb-new/pic32.c b/drivers/usb/musb-new/pic32.c index 4ed5e6e90c6..0b25e5893b3 100644 --- a/drivers/usb/musb-new/pic32.c +++ b/drivers/usb/musb-new/pic32.c @@ -9,7 +9,6 @@ * Based on the dsps "glue layer" code. */ -#include <common.h> #include <dm.h> #include <asm/global_data.h> #include <dm/device_compat.h> diff --git a/drivers/usb/musb-new/sunxi.c b/drivers/usb/musb-new/sunxi.c index 778b01b22ea..b577ba41878 100644 --- a/drivers/usb/musb-new/sunxi.c +++ b/drivers/usb/musb-new/sunxi.c @@ -15,7 +15,6 @@ * * This file is part of the Inventra Controller Driver for Linux. */ -#include <common.h> #include <clk.h> #include <dm.h> #include <generic-phy.h> diff --git a/drivers/usb/musb-new/ti-musb.c b/drivers/usb/musb-new/ti-musb.c index ed5e5194d8c..ec1baa9337d 100644 --- a/drivers/usb/musb-new/ti-musb.c +++ b/drivers/usb/musb-new/ti-musb.c @@ -5,7 +5,6 @@ * (C) Copyright 2016 * Texas Instruments Incorporated, <www.ti.com> */ -#include <common.h> #include <command.h> #include <console.h> #include <dm.h> @@ -234,15 +233,6 @@ static int ti_musb_peripheral_of_to_plat(struct udevice *dev) } #endif -int dm_usb_gadget_handle_interrupts(struct udevice *dev) -{ - struct ti_musb_peripheral *priv = dev_get_priv(dev); - - priv->periph->isr(0, priv->periph); - - return 0; -} - static int ti_musb_peripheral_probe(struct udevice *dev) { struct ti_musb_peripheral *priv = dev_get_priv(dev); @@ -270,12 +260,26 @@ static int ti_musb_peripheral_remove(struct udevice *dev) return 0; } +static int ti_musb_gadget_handle_interrupts(struct udevice *dev) +{ + struct ti_musb_peripheral *priv = dev_get_priv(dev); + + priv->periph->isr(0, priv->periph); + + return 0; +} + +static const struct usb_gadget_generic_ops ti_musb_gadget_ops = { + .handle_interrupts = ti_musb_gadget_handle_interrupts, +}; + U_BOOT_DRIVER(ti_musb_peripheral) = { .name = "ti-musb-peripheral", .id = UCLASS_USB_GADGET_GENERIC, #if CONFIG_IS_ENABLED(OF_CONTROL) .of_to_plat = ti_musb_peripheral_of_to_plat, #endif + .ops = &ti_musb_gadget_ops, .probe = ti_musb_peripheral_probe, .remove = ti_musb_peripheral_remove, .ops = &musb_usb_ops, diff --git a/drivers/usb/musb-new/ux500.c b/drivers/usb/musb-new/ux500.c index 57c7d5630d3..89dd75b7d05 100644 --- a/drivers/usb/musb-new/ux500.c +++ b/drivers/usb/musb-new/ux500.c @@ -1,7 +1,6 @@ // SPDX-License-Identifier: GPL-2.0+ /* Copyright (C) 2019 Stephan Gerhold */ -#include <common.h> #include <dm.h> #include <generic-phy.h> #include <dm/device_compat.h> @@ -92,14 +91,6 @@ static const struct musb_platform_ops ux500_musb_ops = { .disable = ux500_musb_disable, }; -int dm_usb_gadget_handle_interrupts(struct udevice *dev) -{ - struct ux500_glue *glue = dev_get_priv(dev); - - glue->mdata.host->isr(0, glue->mdata.host); - return 0; -} - static int ux500_musb_probe(struct udevice *dev) { #ifdef CONFIG_USB_MUSB_HOST @@ -156,6 +147,19 @@ static int ux500_musb_remove(struct udevice *dev) return 0; } +static int ux500_gadget_handle_interrupts(struct udevice *dev) +{ + struct ux500_glue *glue = dev_get_priv(dev); + + glue->mdata.host->isr(0, glue->mdata.host); + + return 0; +} + +static const struct usb_gadget_generic_ops ux500_gadget_ops = { + .handle_interrupts = ux500_gadget_handle_interrupts, +}; + static const struct udevice_id ux500_musb_ids[] = { { .compatible = "stericsson,db8500-musb" }, { } @@ -169,6 +173,7 @@ U_BOOT_DRIVER(ux500_musb) = { .id = UCLASS_USB_GADGET_GENERIC, #endif .of_match = ux500_musb_ids, + .ops = &ux500_gadget_ops, .probe = ux500_musb_probe, .remove = ux500_musb_remove, #ifdef CONFIG_USB_MUSB_HOST |