54
54
struct exynos_pcie {
55
55
struct dw_pcie pci ;
56
56
void __iomem * elbi_base ;
57
- struct clk * clk ;
58
- struct clk * bus_clk ;
57
+ struct clk_bulk_data * clks ;
59
58
struct phy * phy ;
60
59
struct regulator_bulk_data supplies [2 ];
61
60
};
62
61
63
- static int exynos_pcie_init_clk_resources (struct exynos_pcie * ep )
64
- {
65
- struct device * dev = ep -> pci .dev ;
66
- int ret ;
67
-
68
- ret = clk_prepare_enable (ep -> clk );
69
- if (ret ) {
70
- dev_err (dev , "cannot enable pcie rc clock" );
71
- return ret ;
72
- }
73
-
74
- ret = clk_prepare_enable (ep -> bus_clk );
75
- if (ret ) {
76
- dev_err (dev , "cannot enable pcie bus clock" );
77
- goto err_bus_clk ;
78
- }
79
-
80
- return 0 ;
81
-
82
- err_bus_clk :
83
- clk_disable_unprepare (ep -> clk );
84
-
85
- return ret ;
86
- }
87
-
88
- static void exynos_pcie_deinit_clk_resources (struct exynos_pcie * ep )
89
- {
90
- clk_disable_unprepare (ep -> bus_clk );
91
- clk_disable_unprepare (ep -> clk );
92
- }
93
-
94
62
static void exynos_pcie_writel (void __iomem * base , u32 val , u32 reg )
95
63
{
96
64
writel (val , base + reg );
@@ -332,17 +300,9 @@ static int exynos_pcie_probe(struct platform_device *pdev)
332
300
if (IS_ERR (ep -> elbi_base ))
333
301
return PTR_ERR (ep -> elbi_base );
334
302
335
- ep -> clk = devm_clk_get (dev , "pcie" );
336
- if (IS_ERR (ep -> clk )) {
337
- dev_err (dev , "Failed to get pcie rc clock\n" );
338
- return PTR_ERR (ep -> clk );
339
- }
340
-
341
- ep -> bus_clk = devm_clk_get (dev , "pcie_bus" );
342
- if (IS_ERR (ep -> bus_clk )) {
343
- dev_err (dev , "Failed to get pcie bus clock\n" );
344
- return PTR_ERR (ep -> bus_clk );
345
- }
303
+ ret = devm_clk_bulk_get_all_enable (dev , & ep -> clks );
304
+ if (ret < 0 )
305
+ return ret ;
346
306
347
307
ep -> supplies [0 ].supply = "vdd18" ;
348
308
ep -> supplies [1 ].supply = "vdd10" ;
@@ -351,10 +311,6 @@ static int exynos_pcie_probe(struct platform_device *pdev)
351
311
if (ret )
352
312
return ret ;
353
313
354
- ret = exynos_pcie_init_clk_resources (ep );
355
- if (ret )
356
- return ret ;
357
-
358
314
ret = regulator_bulk_enable (ARRAY_SIZE (ep -> supplies ), ep -> supplies );
359
315
if (ret )
360
316
return ret ;
@@ -369,7 +325,6 @@ static int exynos_pcie_probe(struct platform_device *pdev)
369
325
370
326
fail_probe :
371
327
phy_exit (ep -> phy );
372
- exynos_pcie_deinit_clk_resources (ep );
373
328
regulator_bulk_disable (ARRAY_SIZE (ep -> supplies ), ep -> supplies );
374
329
375
330
return ret ;
@@ -383,7 +338,6 @@ static void exynos_pcie_remove(struct platform_device *pdev)
383
338
exynos_pcie_assert_core_reset (ep );
384
339
phy_power_off (ep -> phy );
385
340
phy_exit (ep -> phy );
386
- exynos_pcie_deinit_clk_resources (ep );
387
341
regulator_bulk_disable (ARRAY_SIZE (ep -> supplies ), ep -> supplies );
388
342
}
389
343
0 commit comments