Lines Matching refs:omap
312 struct usbhs_hcd_omap *omap = dev_get_drvdata(dev); in usbhs_runtime_resume() local
313 struct usbhs_omap_platform_data *pdata = omap->pdata; in usbhs_runtime_resume()
320 if (!IS_ERR(omap->ehci_logic_fck)) in usbhs_runtime_resume()
321 clk_prepare_enable(omap->ehci_logic_fck); in usbhs_runtime_resume()
323 for (i = 0; i < omap->nports; i++) { in usbhs_runtime_resume()
326 if (!IS_ERR(omap->hsic60m_clk[i])) { in usbhs_runtime_resume()
327 r = clk_prepare_enable(omap->hsic60m_clk[i]); in usbhs_runtime_resume()
335 if (!IS_ERR(omap->hsic480m_clk[i])) { in usbhs_runtime_resume()
336 r = clk_prepare_enable(omap->hsic480m_clk[i]); in usbhs_runtime_resume()
346 if (!IS_ERR(omap->utmi_clk[i])) { in usbhs_runtime_resume()
347 r = clk_prepare_enable(omap->utmi_clk[i]); in usbhs_runtime_resume()
365 struct usbhs_hcd_omap *omap = dev_get_drvdata(dev); in usbhs_runtime_suspend() local
366 struct usbhs_omap_platform_data *pdata = omap->pdata; in usbhs_runtime_suspend()
371 for (i = 0; i < omap->nports; i++) { in usbhs_runtime_suspend()
374 if (!IS_ERR(omap->hsic60m_clk[i])) in usbhs_runtime_suspend()
375 clk_disable_unprepare(omap->hsic60m_clk[i]); in usbhs_runtime_suspend()
377 if (!IS_ERR(omap->hsic480m_clk[i])) in usbhs_runtime_suspend()
378 clk_disable_unprepare(omap->hsic480m_clk[i]); in usbhs_runtime_suspend()
382 if (!IS_ERR(omap->utmi_clk[i])) in usbhs_runtime_suspend()
383 clk_disable_unprepare(omap->utmi_clk[i]); in usbhs_runtime_suspend()
390 if (!IS_ERR(omap->ehci_logic_fck)) in usbhs_runtime_suspend()
391 clk_disable_unprepare(omap->ehci_logic_fck); in usbhs_runtime_suspend()
398 static unsigned omap_usbhs_rev1_hostconfig(struct usbhs_hcd_omap *omap, in omap_usbhs_rev1_hostconfig() argument
401 struct usbhs_omap_platform_data *pdata = omap->pdata; in omap_usbhs_rev1_hostconfig()
404 for (i = 0; i < omap->nports; i++) { in omap_usbhs_rev1_hostconfig()
436 for (i = 0; i < omap->nports; i++) { in omap_usbhs_rev1_hostconfig()
447 static unsigned omap_usbhs_rev2_hostconfig(struct usbhs_hcd_omap *omap, in omap_usbhs_rev2_hostconfig() argument
450 struct usbhs_omap_platform_data *pdata = omap->pdata; in omap_usbhs_rev2_hostconfig()
453 for (i = 0; i < omap->nports; i++) { in omap_usbhs_rev2_hostconfig()
469 struct usbhs_hcd_omap *omap = dev_get_drvdata(dev); in omap_usbhs_init() local
476 reg = usbhs_read(omap->uhh_base, OMAP_UHH_HOSTCONFIG); in omap_usbhs_init()
484 switch (omap->usbhs_rev) { in omap_usbhs_init()
486 reg = omap_usbhs_rev1_hostconfig(omap, reg); in omap_usbhs_init()
490 reg = omap_usbhs_rev2_hostconfig(omap, reg); in omap_usbhs_init()
494 reg = omap_usbhs_rev2_hostconfig(omap, reg); in omap_usbhs_init()
498 usbhs_write(omap->uhh_base, OMAP_UHH_HOSTCONFIG, reg); in omap_usbhs_init()
565 struct usbhs_hcd_omap *omap; in usbhs_omap_probe() local
595 omap = devm_kzalloc(dev, sizeof(*omap), GFP_KERNEL); in usbhs_omap_probe()
596 if (!omap) { in usbhs_omap_probe()
602 omap->uhh_base = devm_ioremap_resource(dev, res); in usbhs_omap_probe()
603 if (IS_ERR(omap->uhh_base)) in usbhs_omap_probe()
604 return PTR_ERR(omap->uhh_base); in usbhs_omap_probe()
606 omap->pdata = pdata; in usbhs_omap_probe()
613 platform_set_drvdata(pdev, omap); in usbhs_omap_probe()
616 omap->usbhs_rev = usbhs_read(omap->uhh_base, OMAP_UHH_REVISION); in usbhs_omap_probe()
628 omap->nports = pdata->nports; in usbhs_omap_probe()
630 switch (omap->usbhs_rev) { in usbhs_omap_probe()
632 omap->nports = 3; in usbhs_omap_probe()
635 omap->nports = 2; in usbhs_omap_probe()
638 omap->nports = OMAP3_HS_USB_PORTS; in usbhs_omap_probe()
641 omap->usbhs_rev, omap->nports); in usbhs_omap_probe()
644 pdata->nports = omap->nports; in usbhs_omap_probe()
647 i = sizeof(struct clk *) * omap->nports; in usbhs_omap_probe()
648 omap->utmi_clk = devm_kzalloc(dev, i, GFP_KERNEL); in usbhs_omap_probe()
649 omap->hsic480m_clk = devm_kzalloc(dev, i, GFP_KERNEL); in usbhs_omap_probe()
650 omap->hsic60m_clk = devm_kzalloc(dev, i, GFP_KERNEL); in usbhs_omap_probe()
652 if (!omap->utmi_clk || !omap->hsic480m_clk || !omap->hsic60m_clk) { in usbhs_omap_probe()
659 omap->ehci_logic_fck = ERR_PTR(-ENODEV); in usbhs_omap_probe()
660 omap->init_60m_fclk = ERR_PTR(-ENODEV); in usbhs_omap_probe()
661 omap->utmi_p1_gfclk = ERR_PTR(-ENODEV); in usbhs_omap_probe()
662 omap->utmi_p2_gfclk = ERR_PTR(-ENODEV); in usbhs_omap_probe()
663 omap->xclk60mhsp1_ck = ERR_PTR(-ENODEV); in usbhs_omap_probe()
664 omap->xclk60mhsp2_ck = ERR_PTR(-ENODEV); in usbhs_omap_probe()
666 for (i = 0; i < omap->nports; i++) { in usbhs_omap_probe()
667 omap->utmi_clk[i] = ERR_PTR(-ENODEV); in usbhs_omap_probe()
668 omap->hsic480m_clk[i] = ERR_PTR(-ENODEV); in usbhs_omap_probe()
669 omap->hsic60m_clk[i] = ERR_PTR(-ENODEV); in usbhs_omap_probe()
673 if (omap->usbhs_rev == OMAP_USBHS_REV1) { in usbhs_omap_probe()
675 for (i = 0; i < omap->nports; i++) { in usbhs_omap_probe()
684 omap->ehci_logic_fck = devm_clk_get(dev, in usbhs_omap_probe()
686 if (IS_ERR(omap->ehci_logic_fck)) { in usbhs_omap_probe()
687 ret = PTR_ERR(omap->ehci_logic_fck); in usbhs_omap_probe()
697 omap->utmi_p1_gfclk = devm_clk_get(dev, "utmi_p1_gfclk"); in usbhs_omap_probe()
698 if (IS_ERR(omap->utmi_p1_gfclk)) { in usbhs_omap_probe()
699 ret = PTR_ERR(omap->utmi_p1_gfclk); in usbhs_omap_probe()
704 omap->utmi_p2_gfclk = devm_clk_get(dev, "utmi_p2_gfclk"); in usbhs_omap_probe()
705 if (IS_ERR(omap->utmi_p2_gfclk)) { in usbhs_omap_probe()
706 ret = PTR_ERR(omap->utmi_p2_gfclk); in usbhs_omap_probe()
711 omap->xclk60mhsp1_ck = devm_clk_get(dev, "refclk_60m_ext_p1"); in usbhs_omap_probe()
712 if (IS_ERR(omap->xclk60mhsp1_ck)) { in usbhs_omap_probe()
713 ret = PTR_ERR(omap->xclk60mhsp1_ck); in usbhs_omap_probe()
718 omap->xclk60mhsp2_ck = devm_clk_get(dev, "refclk_60m_ext_p2"); in usbhs_omap_probe()
719 if (IS_ERR(omap->xclk60mhsp2_ck)) { in usbhs_omap_probe()
720 ret = PTR_ERR(omap->xclk60mhsp2_ck); in usbhs_omap_probe()
725 omap->init_60m_fclk = devm_clk_get(dev, "refclk_60m_int"); in usbhs_omap_probe()
726 if (IS_ERR(omap->init_60m_fclk)) { in usbhs_omap_probe()
727 ret = PTR_ERR(omap->init_60m_fclk); in usbhs_omap_probe()
732 for (i = 0; i < omap->nports; i++) { in usbhs_omap_probe()
743 omap->utmi_clk[i] = devm_clk_get(dev, clkname); in usbhs_omap_probe()
744 if (IS_ERR(omap->utmi_clk[i])) { in usbhs_omap_probe()
745 ret = PTR_ERR(omap->utmi_clk[i]); in usbhs_omap_probe()
753 omap->hsic480m_clk[i] = devm_clk_get(dev, clkname); in usbhs_omap_probe()
754 if (IS_ERR(omap->hsic480m_clk[i])) { in usbhs_omap_probe()
755 ret = PTR_ERR(omap->hsic480m_clk[i]); in usbhs_omap_probe()
763 omap->hsic60m_clk[i] = devm_clk_get(dev, clkname); in usbhs_omap_probe()
764 if (IS_ERR(omap->hsic60m_clk[i])) { in usbhs_omap_probe()
765 ret = PTR_ERR(omap->hsic60m_clk[i]); in usbhs_omap_probe()
773 ret = clk_set_parent(omap->utmi_p1_gfclk, in usbhs_omap_probe()
774 omap->xclk60mhsp1_ck); in usbhs_omap_probe()
781 ret = clk_set_parent(omap->utmi_p1_gfclk, in usbhs_omap_probe()
782 omap->init_60m_fclk); in usbhs_omap_probe()
791 ret = clk_set_parent(omap->utmi_p2_gfclk, in usbhs_omap_probe()
792 omap->xclk60mhsp2_ck); in usbhs_omap_probe()
799 ret = clk_set_parent(omap->utmi_p2_gfclk, in usbhs_omap_probe()
800 omap->init_60m_fclk); in usbhs_omap_probe()