Lines Matching refs:glue

3  * Texas Instruments DSPS platforms "glue layer"
7 * Based on the am35x "glue layer" code.
100 * DSPS glue structure.
134 static void dsps_mod_timer(struct dsps_glue *glue, int wait_ms)
136 struct musb *musb = platform_get_drvdata(glue->musb);
140 wait = msecs_to_jiffies(glue->wrp->poll_timeout);
150 static void dsps_mod_timer_optional(struct dsps_glue *glue)
152 if (glue->vbus_irq)
155 dsps_mod_timer(glue, -1);
171 struct dsps_glue *glue = dev_get_drvdata(dev->parent);
172 const struct dsps_musb_wrapper *wrp = glue->wrp;
188 dsps_mod_timer(glue, -1);
197 struct dsps_glue *glue = dev_get_drvdata(dev->parent);
198 const struct dsps_musb_wrapper *wrp = glue->wrp;
212 struct dsps_glue *glue = dev_get_drvdata(dev->parent);
213 const struct dsps_musb_wrapper *wrp = glue->wrp;
217 if (glue->vbus_irq)
232 dsps_mod_timer_optional(glue);
240 dsps_mod_timer_optional(glue);
249 if (!glue->vbus_irq) {
265 dsps_mod_timer_optional(glue);
306 struct dsps_glue *glue = dev_get_drvdata(musb->controller->parent);
307 const struct dsps_musb_wrapper *wrp = glue->wrp;
319 struct dsps_glue *glue = dev_get_drvdata(dev->parent);
320 const struct dsps_musb_wrapper *wrp = glue->wrp;
368 dsps_mod_timer_optional(glue);
373 dsps_mod_timer_optional(glue);
396 dsps_mod_timer_optional(glue);
408 static int dsps_musb_dbg_init(struct musb *musb, struct dsps_glue *glue)
415 glue->dbgfs_root = root;
417 glue->regset.regs = dsps_musb_regs;
418 glue->regset.nregs = ARRAY_SIZE(dsps_musb_regs);
419 glue->regset.base = musb->ctrl_base;
421 debugfs_create_regset32("regdump", S_IRUGO, root, &glue->regset);
428 struct dsps_glue *glue = dev_get_drvdata(dev->parent);
430 const struct dsps_musb_wrapper *wrp = glue->wrp;
487 glue->sw_babble_enabled = true;
492 dsps_mod_timer(glue, -1);
494 return dsps_musb_dbg_init(musb, glue);
500 struct dsps_glue *glue = dev_get_drvdata(dev->parent);
505 debugfs_remove_recursive(glue->dbgfs_root);
513 struct dsps_glue *glue = dev_get_drvdata(dev->parent);
514 const struct dsps_musb_wrapper *wrp = glue->wrp;
550 dev_err(glue->dev, "unsupported mode %d\n", mode);
611 struct dsps_glue *glue = dev_get_drvdata(dev->parent);
614 if (glue->sw_babble_enabled)
644 struct dsps_glue *glue = dev_get_drvdata(musb->controller->parent);
645 void __iomem *usbss_base = glue->usbss_base;
657 struct dsps_glue *glue = dev_get_drvdata(musb->controller->parent);
658 void __iomem *usbss_base = glue->usbss_base;
671 static void dsps_dma_controller_suspend(struct dsps_glue *glue)
673 void __iomem *usbss_base = glue->usbss_base;
678 static void dsps_dma_controller_resume(struct dsps_glue *glue)
680 void __iomem *usbss_base = glue->usbss_base;
687 static void dsps_dma_controller_suspend(struct dsps_glue *glue) {}
688 static void dsps_dma_controller_resume(struct dsps_glue *glue) {}
722 static int dsps_create_musb_pdev(struct dsps_glue *glue,
762 glue->musb = musb;
823 struct dsps_glue *glue = priv;
824 struct musb *musb = platform_get_drvdata(glue->musb);
829 dev_dbg(glue->dev, "VBUS interrupt\n");
830 dsps_mod_timer(glue, 0);
836 struct dsps_glue *glue)
840 glue->vbus_irq = platform_get_irq_byname(pdev, "vbus");
841 if (glue->vbus_irq == -EPROBE_DEFER)
844 if (glue->vbus_irq <= 0) {
845 glue->vbus_irq = 0;
849 error = devm_request_threaded_irq(glue->dev, glue->vbus_irq,
852 "vbus", glue);
854 glue->vbus_irq = 0;
857 dev_dbg(glue->dev, "VBUS irq %i configured\n", glue->vbus_irq);
866 struct dsps_glue *glue;
882 /* allocate glue */
883 glue = devm_kzalloc(&pdev->dev, sizeof(*glue), GFP_KERNEL);
884 if (!glue)
887 glue->dev = &pdev->dev;
888 glue->wrp = wrp;
889 glue->usbss_base = of_iomap(pdev->dev.parent->of_node, 0);
890 if (!glue->usbss_base)
893 platform_set_drvdata(pdev, glue);
895 ret = dsps_create_musb_pdev(glue, pdev);
900 ret = dsps_setup_optional_vbus_irq(pdev, glue);
908 platform_device_unregister(glue->musb);
911 iounmap(glue->usbss_base);
917 struct dsps_glue *glue = platform_get_drvdata(pdev);
919 platform_device_unregister(glue->musb);
922 iounmap(glue->usbss_base);
970 struct dsps_glue *glue = dev_get_drvdata(dev);
971 const struct dsps_musb_wrapper *wrp = glue->wrp;
972 struct musb *musb = platform_get_drvdata(glue->musb);
989 glue->context.control = musb_readl(mbase, wrp->control);
990 glue->context.epintr = musb_readl(mbase, wrp->epintr_set);
991 glue->context.coreintr = musb_readl(mbase, wrp->coreintr_set);
992 glue->context.phy_utmi = musb_readl(mbase, wrp->phy_utmi);
993 glue->context.mode = musb_readl(mbase, wrp->mode);
994 glue->context.tx_mode = musb_readl(mbase, wrp->tx_mode);
995 glue->context.rx_mode = musb_readl(mbase, wrp->rx_mode);
997 dsps_dma_controller_suspend(glue);
1004 struct dsps_glue *glue = dev_get_drvdata(dev);
1005 const struct dsps_musb_wrapper *wrp = glue->wrp;
1006 struct musb *musb = platform_get_drvdata(glue->musb);
1012 dsps_dma_controller_resume(glue);
1015 musb_writel(mbase, wrp->control, glue->context.control);
1016 musb_writel(mbase, wrp->epintr_set, glue->context.epintr);
1017 musb_writel(mbase, wrp->coreintr_set, glue->context.coreintr);
1018 musb_writel(mbase, wrp->phy_utmi, glue->context.phy_utmi);
1019 musb_writel(mbase, wrp->mode, glue->context.mode);
1020 musb_writel(mbase, wrp->tx_mode, glue->context.tx_mode);
1021 musb_writel(mbase, wrp->rx_mode, glue->context.rx_mode);
1024 dsps_mod_timer(glue, -1);