Lines Matching full:exynos
3 * dwc3-exynos.c - Samsung Exynos DWC3 Specific Glue layer
51 struct dwc3_exynos *exynos; in dwc3_exynos_probe() local
57 exynos = devm_kzalloc(dev, sizeof(*exynos), GFP_KERNEL); in dwc3_exynos_probe()
58 if (!exynos) in dwc3_exynos_probe()
62 exynos->dev = dev; in dwc3_exynos_probe()
63 exynos->num_clks = driver_data->num_clks; in dwc3_exynos_probe()
64 exynos->clk_names = (const char **)driver_data->clk_names; in dwc3_exynos_probe()
65 exynos->suspend_clk_idx = driver_data->suspend_clk_idx; in dwc3_exynos_probe()
67 platform_set_drvdata(pdev, exynos); in dwc3_exynos_probe()
69 for (i = 0; i < exynos->num_clks; i++) { in dwc3_exynos_probe()
70 exynos->clks[i] = devm_clk_get(dev, exynos->clk_names[i]); in dwc3_exynos_probe()
71 if (IS_ERR(exynos->clks[i])) { in dwc3_exynos_probe()
73 exynos->clk_names[i]); in dwc3_exynos_probe()
74 return PTR_ERR(exynos->clks[i]); in dwc3_exynos_probe()
78 for (i = 0; i < exynos->num_clks; i++) { in dwc3_exynos_probe()
79 ret = clk_prepare_enable(exynos->clks[i]); in dwc3_exynos_probe()
82 clk_disable_unprepare(exynos->clks[i]); in dwc3_exynos_probe()
87 if (exynos->suspend_clk_idx >= 0) in dwc3_exynos_probe()
88 clk_prepare_enable(exynos->clks[exynos->suspend_clk_idx]); in dwc3_exynos_probe()
90 exynos->vdd33 = devm_regulator_get(dev, "vdd33"); in dwc3_exynos_probe()
91 if (IS_ERR(exynos->vdd33)) { in dwc3_exynos_probe()
92 ret = PTR_ERR(exynos->vdd33); in dwc3_exynos_probe()
95 ret = regulator_enable(exynos->vdd33); in dwc3_exynos_probe()
101 exynos->vdd10 = devm_regulator_get(dev, "vdd10"); in dwc3_exynos_probe()
102 if (IS_ERR(exynos->vdd10)) { in dwc3_exynos_probe()
103 ret = PTR_ERR(exynos->vdd10); in dwc3_exynos_probe()
106 ret = regulator_enable(exynos->vdd10); in dwc3_exynos_probe()
127 regulator_disable(exynos->vdd10); in dwc3_exynos_probe()
129 regulator_disable(exynos->vdd33); in dwc3_exynos_probe()
131 for (i = exynos->num_clks - 1; i >= 0; i--) in dwc3_exynos_probe()
132 clk_disable_unprepare(exynos->clks[i]); in dwc3_exynos_probe()
134 if (exynos->suspend_clk_idx >= 0) in dwc3_exynos_probe()
135 clk_disable_unprepare(exynos->clks[exynos->suspend_clk_idx]); in dwc3_exynos_probe()
142 struct dwc3_exynos *exynos = platform_get_drvdata(pdev); in dwc3_exynos_remove() local
147 for (i = exynos->num_clks - 1; i >= 0; i--) in dwc3_exynos_remove()
148 clk_disable_unprepare(exynos->clks[i]); in dwc3_exynos_remove()
150 if (exynos->suspend_clk_idx >= 0) in dwc3_exynos_remove()
151 clk_disable_unprepare(exynos->clks[exynos->suspend_clk_idx]); in dwc3_exynos_remove()
153 regulator_disable(exynos->vdd33); in dwc3_exynos_remove()
154 regulator_disable(exynos->vdd10); in dwc3_exynos_remove()
195 struct dwc3_exynos *exynos = dev_get_drvdata(dev); in dwc3_exynos_suspend() local
198 for (i = exynos->num_clks - 1; i >= 0; i--) in dwc3_exynos_suspend()
199 clk_disable_unprepare(exynos->clks[i]); in dwc3_exynos_suspend()
201 regulator_disable(exynos->vdd33); in dwc3_exynos_suspend()
202 regulator_disable(exynos->vdd10); in dwc3_exynos_suspend()
209 struct dwc3_exynos *exynos = dev_get_drvdata(dev); in dwc3_exynos_resume() local
212 ret = regulator_enable(exynos->vdd33); in dwc3_exynos_resume()
217 ret = regulator_enable(exynos->vdd10); in dwc3_exynos_resume()
223 for (i = 0; i < exynos->num_clks; i++) { in dwc3_exynos_resume()
224 ret = clk_prepare_enable(exynos->clks[i]); in dwc3_exynos_resume()
227 clk_disable_unprepare(exynos->clks[i]); in dwc3_exynos_resume()
248 .name = "exynos-dwc3",
258 MODULE_DESCRIPTION("DesignWare USB3 Exynos Glue Layer");