Home
last modified time | relevance | path

Searched full:musb (Results 1 – 25 of 54) sorted by relevance

123

/linux/drivers/usb/musb/
H A Dmusb_virthub.c3 * MUSB OTG driver virtual root hub support
23 struct musb *musb; in musb_host_finish_resume() local
27 musb = container_of(work, struct musb, finish_resume_work.work); in musb_host_finish_resume()
29 spin_lock_irqsave(&musb->lock, flags); in musb_host_finish_resume()
31 power = musb_readb(musb->mregs, MUSB_POWER); in musb_host_finish_resume()
33 musb_dbg(musb, "root port resume stopped, power %02x", power); in musb_host_finish_resume()
34 musb_writeb(musb->mregs, MUSB_POWER, power); in musb_host_finish_resume()
41 musb->is_active = 1; in musb_host_finish_resume()
42 musb->port1_status &= ~(USB_PORT_STAT_SUSPEND | MUSB_PORT_STAT_RESUME); in musb_host_finish_resume()
43 musb->port1_status |= USB_PORT_STAT_C_SUSPEND << 16; in musb_host_finish_resume()
[all …]
H A Dmusb_core.h3 * MUSB OTG driver defines
23 #include <linux/usb/musb.h>
27 struct musb;
32 /* Helper defines for struct musb->hwvers */
106 #define MUSB_MODE(musb) ((musb)->is_host ? "Host" : "Peripheral") argument
158 int (*init)(struct musb *musb);
159 int (*exit)(struct musb *musb);
161 void (*enable)(struct musb *musb);
162 void (*disable)(struct musb *musb);
180 (*dma_init) (struct musb *musb, void __iomem *base);
[all …]
H A Domap2430.c24 #include <linux/usb/musb.h>
33 struct platform_device *musb; member
41 #define glue_to_musb(g) platform_get_drvdata(g->musb)
45 static inline void omap2430_low_level_exit(struct musb *musb) in omap2430_low_level_exit() argument
50 l = musb_readl(musb->mregs, OTG_FORCESTDBY); in omap2430_low_level_exit()
52 musb_writel(musb->mregs, OTG_FORCESTDBY, l); in omap2430_low_level_exit()
55 static inline void omap2430_low_level_init(struct musb *musb) in omap2430_low_level_init() argument
59 l = musb_readl(musb->mregs, OTG_FORCESTDBY); in omap2430_low_level_init()
61 musb_writel(musb->mregs, OTG_FORCESTDBY, l); in omap2430_low_level_init()
69 pr_err("%s: musb core is not yet initialized\n", __func__); in omap2430_musb_mailbox()
[all …]
H A Dmusb_gadget.c3 * MUSB OTG driver peripheral support
34 struct musb *musb, struct musb_ep *musb_ep) in map_dma_buffer() argument
37 struct dma_controller *dma = musb->dma_controller; in map_dma_buffer()
60 musb->controller, in map_dma_buffer()
66 ret = dma_mapping_error(musb->controller, dma_addr); in map_dma_buffer()
73 dma_sync_single_for_device(musb->controller, in map_dma_buffer()
85 struct musb *musb) in unmap_dma_buffer() argument
93 dev_vdbg(musb->controller, in unmap_dma_buffer()
98 dma_unmap_single(musb->controller, in unmap_dma_buffer()
106 dma_sync_single_for_cpu(musb->controller, in unmap_dma_buffer()
[all …]
H A Dmpfs.c3 * PolarFire SoC (MPFS) MUSB Glue Layer
27 struct platform_device *musb; member
52 static void mpfs_musb_set_vbus(struct musb *musb, int is_on) in mpfs_musb_set_vbus() argument
61 devctl = musb_readb(musb->mregs, MUSB_DEVCTL); in mpfs_musb_set_vbus()
64 musb->is_active = 1; in mpfs_musb_set_vbus()
65 musb->xceiv->otg->default_a = 1; in mpfs_musb_set_vbus()
66 musb->xceiv->otg->state = OTG_STATE_A_WAIT_VRISE; in mpfs_musb_set_vbus()
68 MUSB_HST_MODE(musb); in mpfs_musb_set_vbus()
70 musb->is_active = 0; in mpfs_musb_set_vbus()
76 musb->xceiv->otg->default_a = 0; in mpfs_musb_set_vbus()
[all …]
H A Dmusb_host.h3 * MUSB OTG driver host defines
55 extern struct musb *hcd_to_musb(struct usb_hcd *);
56 extern irqreturn_t musb_h_ep0_irq(struct musb *);
57 extern int musb_host_alloc(struct musb *);
58 extern int musb_host_setup(struct musb *, int);
59 extern void musb_host_cleanup(struct musb *);
60 extern void musb_host_tx(struct musb *, u8);
61 extern void musb_host_rx(struct musb *, u8);
62 extern void musb_root_disconnect(struct musb *musb);
63 extern void musb_host_free(struct musb *);
[all …]
H A Dmusb_dsps.c40 * DSPS musb wrapper register offset.
42 * musb ips.
104 struct platform_device *musb; /* child musb pdev */ member
136 struct musb *musb = platform_get_drvdata(glue->musb); in dsps_mod_timer() local
144 mod_timer(&musb->dev_timer, jiffies + wait); in dsps_mod_timer()
168 static void dsps_musb_enable(struct musb *musb) in dsps_musb_enable() argument
170 struct device *dev = musb->controller; in dsps_musb_enable()
173 void __iomem *reg_base = musb->ctrl_base; in dsps_musb_enable()
177 epmask = ((musb->epmask & wrp->txep_mask) << wrp->txep_shift) | in dsps_musb_enable()
178 ((musb->epmask & wrp->rxep_mask) << wrp->rxep_shift); in dsps_musb_enable()
[all …]
H A Dtusb6010.c34 struct platform_device *musb; member
40 static void tusb_musb_set_vbus(struct musb *musb, int is_on);
49 static u8 tusb_get_revision(struct musb *musb) in tusb_get_revision() argument
51 void __iomem *tbase = musb->ctrl_base; in tusb_get_revision()
66 static void tusb_print_revision(struct musb *musb) in tusb_print_revision() argument
68 void __iomem *tbase = musb->ctrl_base; in tusb_print_revision()
71 rev = musb->tusb_revision; in tusb_print_revision()
99 static void tusb_wbus_quirk(struct musb *musb, int enabled) in tusb_wbus_quirk() argument
101 void __iomem *tbase = musb->ctrl_base; in tusb_wbus_quirk()
114 dev_dbg(musb->controller, "Enabled tusb wbus quirk ctrl %08x ena %08x\n", in tusb_wbus_quirk()
[all …]
H A Dda8xx.c70 struct platform_device *musb; member
86 static void da8xx_musb_enable(struct musb *musb) in da8xx_musb_enable() argument
88 void __iomem *reg_base = musb->ctrl_base; in da8xx_musb_enable()
92 mask = ((musb->epmask & DA8XX_USB_TX_EP_MASK) << DA8XX_INTR_TX_SHIFT) | in da8xx_musb_enable()
93 ((musb->epmask & DA8XX_USB_RX_EP_MASK) << DA8XX_INTR_RX_SHIFT) | in da8xx_musb_enable()
105 static void da8xx_musb_disable(struct musb *musb) in da8xx_musb_disable() argument
107 void __iomem *reg_base = musb->ctrl_base; in da8xx_musb_disable()
117 static void da8xx_musb_set_vbus(struct musb *musb, int is_on) in da8xx_musb_set_vbus() argument
119 WARN_ON(is_on && is_peripheral_active(musb)); in da8xx_musb_set_vbus()
126 struct musb *musb = timer_container_of(musb, t, in otg_timer() local
[all …]
H A Dmusb_gadget.h3 * MUSB OTG driver peripheral defines
16 extern irqreturn_t musb_g_ep0_irq(struct musb *);
17 extern void musb_g_tx(struct musb *, u8);
18 extern void musb_g_rx(struct musb *, u8);
19 extern void musb_g_reset(struct musb *);
20 extern void musb_g_suspend(struct musb *);
21 extern void musb_g_resume(struct musb *);
22 extern void musb_g_wakeup(struct musb *);
23 extern void musb_g_disconnect(struct musb *);
24 extern void musb_gadget_cleanup(struct musb *);
[all …]
H A Dmusb_debugfs.c3 * MUSB OTG driver debugfs support
86 struct musb *musb = s->private; in musb_regdump_show() local
89 seq_printf(s, "MUSB (M)HDRC Register Dump\n"); in musb_regdump_show()
90 pm_runtime_get_sync(musb->controller); in musb_regdump_show()
96 musb_readb(musb->mregs, musb_regmap[i].offset)); in musb_regdump_show()
100 musb_readw(musb->mregs, musb_regmap[i].offset)); in musb_regdump_show()
104 musb_readl(musb->mregs, musb_regmap[i].offset)); in musb_regdump_show()
109 pm_runtime_put_autosuspend(musb->controller); in musb_regdump_show()
116 struct musb *musb = s->private; in musb_test_mode_show() local
119 pm_runtime_get_sync(musb->controller); in musb_test_mode_show()
[all …]
H A Dmusb_regs.h3 * MUSB OTG driver register defines
16 * MUSB Register bits
56 /* MUSB ULPI VBUSCONTROL */
282 static inline void musb_write_rxfunaddr(struct musb *musb, u8 epnum, in musb_write_rxfunaddr() argument
285 musb_writeb(musb->mregs, in musb_write_rxfunaddr()
286 musb->io.busctl_offset(epnum, MUSB_RXFUNCADDR), in musb_write_rxfunaddr()
290 static inline void musb_write_rxhubaddr(struct musb *musb, u8 epnum, in musb_write_rxhubaddr() argument
293 musb_writeb(musb->mregs, musb->io.busctl_offset(epnum, MUSB_RXHUBADDR), in musb_write_rxhubaddr()
297 static inline void musb_write_rxhubport(struct musb *musb, u8 epnum, in musb_write_rxhubport() argument
300 musb_writeb(musb->mregs, musb->io.busctl_offset(epnum, MUSB_RXHUBPORT), in musb_write_rxhubport()
[all …]
H A Dmusb_dma.h3 * MUSB OTG driver DMA controller abstraction
53 #define musb_dma_ux500(musb) (musb->ops->quirks & MUSB_DMA_UX500) argument
55 #define musb_dma_ux500(musb) 0 argument
59 #define musb_dma_cppi41(musb) (musb->ops->quirks & MUSB_DMA_CPPI41) argument
61 #define musb_dma_cppi41(musb) 0 argument
65 #define tusb_dma_omap(musb) (musb->ops->quirks & MUSB_DMA_TUSB_OMAP) argument
67 #define tusb_dma_omap(musb) 0 argument
71 #define musb_dma_inventra(musb) (musb->ops->quirks & MUSB_DMA_INVENTRA) argument
73 #define musb_dma_inventra(musb) 0 argument
77 #define is_cppi_enabled(musb) musb_dma_cppi41(musb) argument
[all …]
H A Dmusb_cppi41.c61 if (!is_host_active(cppi41_channel->controller->controller.musb)) in save_rx_toggle()
73 struct musb *musb = hw_ep->musb; in update_rx_toggle() local
79 if (!is_host_active(musb)) in update_rx_toggle()
82 musb_ep_select(musb->mregs, hw_ep->epnum); in update_rx_toggle()
94 musb_dbg(musb, "Restoring DATA1 toggle."); in update_rx_toggle()
103 struct musb *musb = hw_ep->musb; in musb_is_tx_fifo_empty() local
104 void __iomem *epio = musb->endpoints[epnum].regs; in musb_is_tx_fifo_empty()
107 musb_ep_select(musb->mregs, hw_ep->epnum); in musb_is_tx_fifo_empty()
120 struct musb *musb = hw_ep->musb; in cppi41_trans_done() local
139 musb_ep_select(musb->mregs, hw_ep->epnum); in cppi41_trans_done()
[all …]
H A Dtusb6010_omap.c30 struct musb *musb; member
66 dev_dbg(chdat->musb->controller, "ep%i dmareq0 is busy for ep%i\n", in tusb_omap_use_shared_dmareq()
102 struct musb *musb = chdat->musb; in tusb_omap_dma_cb() local
103 struct device *dev = musb->controller; in tusb_omap_dma_cb()
106 void __iomem *mbase = musb->mregs; in tusb_omap_dma_cb()
109 spin_lock_irqsave(&musb->lock, flags); in tusb_omap_dma_cb()
111 dev_dbg(musb->controller, "ep%i %s dma callback\n", in tusb_omap_dma_cb()
123 dev_dbg(musb->controller, "Corrupt %s XFR_SIZE: 0x%08lx\n", in tusb_omap_dma_cb()
131 dev_dbg(musb->controller, "DMA remaining %lu/%u\n", remaining, chdat->transfer_len); in tusb_omap_dma_cb()
137 dev_dbg(musb->controller, "Using PIO for remaining %lu bytes\n", pio); in tusb_omap_dma_cb()
[all …]
H A Dmusbhsdma.c3 * MUSB OTG driver - support for Mentor's DMA controller
78 struct musb *musb = controller->private_data; in dma_controller_stop() local
83 dev_err(musb->controller, in dma_controller_stop()
149 struct musb *musb = controller->private_data; in configure_channel() local
154 musb_dbg(musb, "%p, pkt_sz %d, addr %pad, len %d, mode %d", in configure_channel()
187 struct musb *musb = controller->private_data; in dma_channel_program() local
189 musb_dbg(musb, "ep%d-%s pkt_sz %d, dma_addr %pad length %d, mode %d", in dma_channel_program()
206 if ((musb->hwvers >= MUSB_HWVERS_1800) && (dma_addr % 4)) in dma_channel_program()
224 struct musb *musb = musb_channel->controller->private_data; in dma_channel_abort() local
232 offset = musb->io.ep_offset(musb_channel->epnum, in dma_channel_abort()
[all …]
H A Dux500_dma.c3 * drivers/usb/musb/ux500_dma.c
22 #include <linux/platform_data/usb-musb-ux500.h>
56 struct musb *musb = hw_ep->musb; in ux500_dma_callback() local
59 dev_dbg(musb->controller, "DMA rx transfer done on hw_ep=%d\n", in ux500_dma_callback()
62 spin_lock_irqsave(&musb->lock, flags); in ux500_dma_callback()
65 musb_dma_completion(musb, hw_ep->epnum, ux500_channel->is_tx); in ux500_dma_callback()
66 spin_unlock_irqrestore(&musb->lock, flags); in ux500_dma_callback()
82 struct musb *musb = ux500_channel->controller->private_data; in ux500_configure_channel() local
83 dma_addr_t usb_fifo_addr = (musb->io.fifo_offset(hw_ep->epnum) + in ux500_configure_channel()
86 dev_dbg(musb->controller, in ux500_configure_channel()
[all …]
H A Dmusb_debug.h3 * MUSB OTG driver debug defines
20 void musb_dbg(struct musb *musb, const char *fmt, ...);
23 void musb_init_debugfs(struct musb *musb);
24 void musb_exit_debugfs(struct musb *musb);
26 static inline void musb_init_debugfs(struct musb *musb) in musb_init_debugfs() argument
29 static inline void musb_exit_debugfs(struct musb *musb) in musb_exit_debugfs() argument
H A Dmusb_trace.c3 * musb_trace.c - MUSB Controller Trace Support
13 void musb_dbg(struct musb *musb, const char *fmt, ...) in musb_dbg() argument
22 trace_musb_log(musb, &vaf); in musb_dbg()
/linux/drivers/net/wireless/morsemicro/mm81x/
H A Dusb.c113 struct mm81x_usb *musb = (struct mm81x_usb *)mors->drv_priv; in mm81x_usb_int_handler() local
115 if (!test_bit(MM81X_USB_FLAG_ATTACHED, &musb->flags)) in mm81x_usb_int_handler()
120 clear_bit(MM81X_USB_FLAG_ATTACHED, &musb->flags); in mm81x_usb_int_handler()
150 struct mm81x_usb *musb = (struct mm81x_usb *)mors->drv_priv; in mm81x_usb_int_enable() local
153 if (!test_bit(MM81X_USB_FLAG_ATTACHED, &musb->flags)) in mm81x_usb_int_enable()
162 musb->endpoints[MM81X_EP_INT].urb = urb; in mm81x_usb_int_enable()
164 musb->endpoints[MM81X_EP_INT].buffer = in mm81x_usb_int_enable()
165 usb_alloc_coherent(musb->udev, MM81X_EP_INT_BUFFER_SIZE, in mm81x_usb_int_enable()
167 if (!musb->endpoints[MM81X_EP_INT].buffer) { in mm81x_usb_int_enable()
174 musb->endpoints[MM81X_EP_INT].urb, musb->udev, in mm81x_usb_int_enable()
[all …]
/linux/Documentation/driver-api/usb/
H A Dwriting_musb_glue_layer.rst2 Writing a MUSB Glue Layer
10 The Linux MUSB subsystem is part of the larger Linux USB subsystem. It
18 Dual-Role Controller (MUSB HDRC) found in the Mentor Graphics Inventra™
21 As a self-taught exercise I have written an MUSB glue layer for the
22 Ingenic JZ4740 SoC, modelled after the many MUSB glue layers in the
24 ``drivers/usb/musb/jz4740.c``. In this documentation I will walk through the
30 Linux MUSB Basics
36 Devices also provide an overview of the Linux kernel MUSB configuration,
42 Linux USB stack is a layered architecture in which the MUSB controller
43 hardware sits at the lowest. The MUSB controller driver abstract the
[all …]
/linux/Documentation/devicetree/bindings/usb/
H A Dti,omap4-musb.yaml4 $id: http://devicetree.org/schemas/usb/ti,omap4-musb.yaml#
7 title: Texas Instruments OMAP MUSB USB OTG Controller
13 Texas Instruments glue layer for the Mentor Graphics MUSB OTG controller.
18 to the generic MUSB core driver.
23 - ti,omap3-musb
24 - ti,omap4-musb
42 Indicates the MUSB controller supports multipoint. This is a MUSB
49 Specifies the number of endpoints. This is a MUSB configuration
106 compatible = "ti,omap4-musb";
H A Dmediatek,musb.yaml5 $id: http://devicetree.org/schemas/usb/mediatek,musb.yaml#
8 title: MediaTek MUSB DRD/OTG Controller
20 - mediatek,mt8516-musb
21 - mediatek,mt2701-musb
22 - mediatek,mt7623-musb
23 - const: mediatek,mtk-musb
95 compatible = "mediatek,mt2701-musb", "mediatek,mtk-musb";
H A Dingenic,musb.yaml4 $id: http://devicetree.org/schemas/usb/ingenic,musb.yaml#
19 - ingenic,jz4770-musb
20 - ingenic,jz4740-musb
22 - const: ingenic,jz4725b-musb
23 - const: ingenic,jz4740-musb
68 compatible = "ingenic,jz4740-musb";
/linux/arch/arm/mach-omap2/
H A Domap_phy_internal.c4 * with TWL6030 transceiver and MUSB on OMAP4430.
18 #include <linux/usb/musb.h>
27 * omap4430_phy_power_down: disable MUSB PHY during early init
29 * OMAP4 MUSB PHY module is enabled by default on reset, but this will

123