26
26
#define CLKSET0_PRIVATE BIT(0)
27
27
#define CLKSET0_EXTAL_ONLY (CLKSET0_INTCLK_EN | CLKSET0_PRIVATE)
28
28
29
+ static const struct clk_bulk_data rcar_usb2_clocks [] = {
30
+ { .id = "ehci_ohci" , },
31
+ { .id = "hs-usb-if" , },
32
+ };
33
+
29
34
struct usb2_clock_sel_priv {
30
35
void __iomem * base ;
31
36
struct clk_hw hw ;
37
+ struct clk_bulk_data clks [ARRAY_SIZE (rcar_usb2_clocks )];
32
38
bool extal ;
33
39
bool xtal ;
34
40
};
@@ -53,14 +59,25 @@ static void usb2_clock_sel_disable_extal_only(struct usb2_clock_sel_priv *priv)
53
59
54
60
static int usb2_clock_sel_enable (struct clk_hw * hw )
55
61
{
56
- usb2_clock_sel_enable_extal_only (to_priv (hw ));
62
+ struct usb2_clock_sel_priv * priv = to_priv (hw );
63
+ int ret ;
64
+
65
+ ret = clk_bulk_prepare_enable (ARRAY_SIZE (priv -> clks ), priv -> clks );
66
+ if (ret )
67
+ return ret ;
68
+
69
+ usb2_clock_sel_enable_extal_only (priv );
57
70
58
71
return 0 ;
59
72
}
60
73
61
74
static void usb2_clock_sel_disable (struct clk_hw * hw )
62
75
{
63
- usb2_clock_sel_disable_extal_only (to_priv (hw ));
76
+ struct usb2_clock_sel_priv * priv = to_priv (hw );
77
+
78
+ usb2_clock_sel_disable_extal_only (priv );
79
+
80
+ clk_bulk_disable_unprepare (ARRAY_SIZE (priv -> clks ), priv -> clks );
64
81
}
65
82
66
83
/*
@@ -119,6 +136,7 @@ static int rcar_usb2_clock_sel_probe(struct platform_device *pdev)
119
136
struct usb2_clock_sel_priv * priv ;
120
137
struct clk * clk ;
121
138
struct clk_init_data init ;
139
+ int ret ;
122
140
123
141
priv = devm_kzalloc (dev , sizeof (* priv ), GFP_KERNEL );
124
142
if (!priv )
@@ -128,6 +146,11 @@ static int rcar_usb2_clock_sel_probe(struct platform_device *pdev)
128
146
if (IS_ERR (priv -> base ))
129
147
return PTR_ERR (priv -> base );
130
148
149
+ memcpy (priv -> clks , rcar_usb2_clocks , sizeof (priv -> clks ));
150
+ ret = devm_clk_bulk_get (dev , ARRAY_SIZE (priv -> clks ), priv -> clks );
151
+ if (ret < 0 )
152
+ return ret ;
153
+
131
154
pm_runtime_enable (dev );
132
155
pm_runtime_get_sync (dev );
133
156
0 commit comments