Lines Matching refs:glue

3  * Texas Instruments DSPS platforms "glue layer"
7 * Based on the am35x "glue layer" code.
99 * DSPS glue structure.
133 static void dsps_mod_timer(struct dsps_glue *glue, int wait_ms)
135 struct musb *musb = platform_get_drvdata(glue->musb);
139 wait = msecs_to_jiffies(glue->wrp->poll_timeout);
149 static void dsps_mod_timer_optional(struct dsps_glue *glue)
151 if (glue->vbus_irq)
154 dsps_mod_timer(glue, -1);
170 struct dsps_glue *glue = dev_get_drvdata(dev->parent);
171 const struct dsps_musb_wrapper *wrp = glue->wrp;
187 dsps_mod_timer(glue, -1);
196 struct dsps_glue *glue = dev_get_drvdata(dev->parent);
197 const struct dsps_musb_wrapper *wrp = glue->wrp;
211 struct dsps_glue *glue = dev_get_drvdata(dev->parent);
212 const struct dsps_musb_wrapper *wrp = glue->wrp;
216 if (glue->vbus_irq)
231 dsps_mod_timer_optional(glue);
239 dsps_mod_timer_optional(glue);
248 if (!glue->vbus_irq) {
264 dsps_mod_timer_optional(glue);
305 struct dsps_glue *glue = dev_get_drvdata(musb->controller->parent);
306 const struct dsps_musb_wrapper *wrp = glue->wrp;
318 struct dsps_glue *glue = dev_get_drvdata(dev->parent);
319 const struct dsps_musb_wrapper *wrp = glue->wrp;
367 dsps_mod_timer_optional(glue);
372 dsps_mod_timer_optional(glue);
395 dsps_mod_timer_optional(glue);
407 static int dsps_musb_dbg_init(struct musb *musb, struct dsps_glue *glue)
414 glue->dbgfs_root = root;
416 glue->regset.regs = dsps_musb_regs;
417 glue->regset.nregs = ARRAY_SIZE(dsps_musb_regs);
418 glue->regset.base = musb->ctrl_base;
420 debugfs_create_regset32("regdump", S_IRUGO, root, &glue->regset);
427 struct dsps_glue *glue = dev_get_drvdata(dev->parent);
429 const struct dsps_musb_wrapper *wrp = glue->wrp;
486 glue->sw_babble_enabled = true;
491 dsps_mod_timer(glue, -1);
493 return dsps_musb_dbg_init(musb, glue);
499 struct dsps_glue *glue = dev_get_drvdata(dev->parent);
504 debugfs_remove_recursive(glue->dbgfs_root);
512 struct dsps_glue *glue = dev_get_drvdata(dev->parent);
513 const struct dsps_musb_wrapper *wrp = glue->wrp;
549 dev_err(glue->dev, "unsupported mode %d\n", mode);
610 struct dsps_glue *glue = dev_get_drvdata(dev->parent);
613 if (glue->sw_babble_enabled)
643 struct dsps_glue *glue = dev_get_drvdata(musb->controller->parent);
644 void __iomem *usbss_base = glue->usbss_base;
656 struct dsps_glue *glue = dev_get_drvdata(musb->controller->parent);
657 void __iomem *usbss_base = glue->usbss_base;
670 static void dsps_dma_controller_suspend(struct dsps_glue *glue)
672 void __iomem *usbss_base = glue->usbss_base;
677 static void dsps_dma_controller_resume(struct dsps_glue *glue)
679 void __iomem *usbss_base = glue->usbss_base;
686 static void dsps_dma_controller_suspend(struct dsps_glue *glue) {}
687 static void dsps_dma_controller_resume(struct dsps_glue *glue) {}
721 static int dsps_create_musb_pdev(struct dsps_glue *glue,
763 glue->musb = musb;
824 struct dsps_glue *glue = priv;
825 struct musb *musb = platform_get_drvdata(glue->musb);
830 dev_dbg(glue->dev, "VBUS interrupt\n");
831 dsps_mod_timer(glue, 0);
837 struct dsps_glue *glue)
841 glue->vbus_irq = platform_get_irq_byname(pdev, "vbus");
842 if (glue->vbus_irq == -EPROBE_DEFER)
845 if (glue->vbus_irq <= 0) {
846 glue->vbus_irq = 0;
850 error = devm_request_threaded_irq(glue->dev, glue->vbus_irq,
853 "vbus", glue);
855 glue->vbus_irq = 0;
858 dev_dbg(glue->dev, "VBUS irq %i configured\n", glue->vbus_irq);
867 struct dsps_glue *glue;
883 /* allocate glue */
884 glue = devm_kzalloc(&pdev->dev, sizeof(*glue), GFP_KERNEL);
885 if (!glue)
888 glue->dev = &pdev->dev;
889 glue->wrp = wrp;
890 glue->usbss_base = of_iomap(pdev->dev.parent->of_node, 0);
891 if (!glue->usbss_base)
894 platform_set_drvdata(pdev, glue);
896 ret = dsps_create_musb_pdev(glue, pdev);
901 ret = dsps_setup_optional_vbus_irq(pdev, glue);
909 platform_device_unregister(glue->musb);
912 iounmap(glue->usbss_base);
918 struct dsps_glue *glue = platform_get_drvdata(pdev);
920 platform_device_unregister(glue->musb);
923 iounmap(glue->usbss_base);
969 struct dsps_glue *glue = dev_get_drvdata(dev);
970 const struct dsps_musb_wrapper *wrp = glue->wrp;
971 struct musb *musb = platform_get_drvdata(glue->musb);
988 glue->context.control = musb_readl(mbase, wrp->control);
989 glue->context.epintr = musb_readl(mbase, wrp->epintr_set);
990 glue->context.coreintr = musb_readl(mbase, wrp->coreintr_set);
991 glue->context.phy_utmi = musb_readl(mbase, wrp->phy_utmi);
992 glue->context.mode = musb_readl(mbase, wrp->mode);
993 glue->context.tx_mode = musb_readl(mbase, wrp->tx_mode);
994 glue->context.rx_mode = musb_readl(mbase, wrp->rx_mode);
996 dsps_dma_controller_suspend(glue);
1003 struct dsps_glue *glue = dev_get_drvdata(dev);
1004 const struct dsps_musb_wrapper *wrp = glue->wrp;
1005 struct musb *musb = platform_get_drvdata(glue->musb);
1011 dsps_dma_controller_resume(glue);
1014 musb_writel(mbase, wrp->control, glue->context.control);
1015 musb_writel(mbase, wrp->epintr_set, glue->context.epintr);
1016 musb_writel(mbase, wrp->coreintr_set, glue->context.coreintr);
1017 musb_writel(mbase, wrp->phy_utmi, glue->context.phy_utmi);
1018 musb_writel(mbase, wrp->mode, glue->context.mode);
1019 musb_writel(mbase, wrp->tx_mode, glue->context.tx_mode);
1020 musb_writel(mbase, wrp->rx_mode, glue->context.rx_mode);
1023 dsps_mod_timer(glue, -1);