Lines Matching defs:musb

23 	struct musb		*musb;
32 struct musb *musb = __hci;
34 if (IS_ENABLED(CONFIG_USB_INVENTRA_DMA) && musb->dma_controller)
35 retval_dma = dma_controller_irq(irq, musb->dma_controller);
37 spin_lock_irqsave(&musb->lock, flags);
39 musb->int_usb = musb_readb(musb->mregs, MUSB_INTRUSB);
40 musb->int_tx = musb_readw(musb->mregs, MUSB_INTRTX);
41 musb->int_rx = musb_readw(musb->mregs, MUSB_INTRRX);
45 * undefined. Mask them to make sure that the musb driver core will
48 musb->int_usb &= MUSB_INTR_SUSPEND | MUSB_INTR_RESUME |
51 if (musb->int_usb || musb->int_tx || musb->int_rx)
52 retval = musb_interrupt(musb);
54 spin_unlock_irqrestore(&musb->lock, flags);
83 struct usb_phy *phy = glue->musb->xceiv;
103 static int jz4740_musb_init(struct musb *musb)
105 struct device *dev = musb->controller->parent;
114 glue->musb = musb;
117 musb->phy = devm_of_phy_get_by_index(dev, dev->of_node, 0);
118 if (IS_ERR(musb->phy)) {
119 err = PTR_ERR(musb->phy);
125 musb->phy = NULL;
129 if (musb->phy) {
130 err = phy_init(musb->phy);
136 err = phy_power_on(musb->phy);
143 musb->xceiv = devm_usb_get_phy_by_phandle(dev, "phys", 0);
145 musb->xceiv = devm_usb_get_phy(dev, USB_PHY_TYPE_USB2);
146 if (IS_ERR(musb->xceiv)) {
148 return PTR_ERR(musb->xceiv);
163 musb->dyn_fifo = true;
165 musb->isr = jz4740_musb_interrupt;
170 if (musb->phy)
171 phy_power_off(musb->phy);
173 if (musb->phy)
174 phy_exit(musb->phy);
178 static int jz4740_musb_exit(struct musb *musb)
180 struct jz4740_glue *glue = dev_get_drvdata(musb->controller->parent);
183 if (musb->phy) {
184 phy_power_off(musb->phy);
185 phy_exit(musb->phy);
239 struct platform_device *musb;
254 musb = platform_device_alloc("musb-hdrc", PLATFORM_DEVID_AUTO);
255 if (!musb) {
256 dev_err(dev, "failed to allocate musb device\n");
273 musb->dev.parent = dev;
274 musb->dev.dma_mask = &musb->dev.coherent_dma_mask;
275 musb->dev.coherent_dma_mask = DMA_BIT_MASK(32);
276 device_set_of_node_from_dev(&musb->dev, dev);
278 glue->pdev = musb;
283 ret = platform_device_add_resources(musb, pdev->resource,
290 ret = platform_device_add_data(musb, pdata, sizeof(*pdata));
296 ret = platform_device_add(musb);
298 dev_err(dev, "failed to register musb device\n");
307 platform_device_put(musb);
320 { .compatible = "ingenic,jz4740-musb", .data = &jz4740_musb_pdata },
321 { .compatible = "ingenic,jz4770-musb", .data = &jz4770_musb_pdata },
330 .name = "musb-jz4740",