102
102
103
103
#define DWC3_AM62_AUTOSUSPEND_DELAY 100
104
104
105
- struct dwc3_data {
105
+ struct dwc3_am62 {
106
106
struct device * dev ;
107
107
void __iomem * usbss ;
108
108
struct clk * usb2_refclk ;
@@ -129,19 +129,19 @@ static const int dwc3_ti_rate_table[] = { /* in KHZ */
129
129
52000 ,
130
130
};
131
131
132
- static inline u32 dwc3_ti_readl (struct dwc3_data * data , u32 offset )
132
+ static inline u32 dwc3_ti_readl (struct dwc3_am62 * am62 , u32 offset )
133
133
{
134
- return readl ((data -> usbss ) + offset );
134
+ return readl ((am62 -> usbss ) + offset );
135
135
}
136
136
137
- static inline void dwc3_ti_writel (struct dwc3_data * data , u32 offset , u32 value )
137
+ static inline void dwc3_ti_writel (struct dwc3_am62 * am62 , u32 offset , u32 value )
138
138
{
139
- writel (value , (data -> usbss ) + offset );
139
+ writel (value , (am62 -> usbss ) + offset );
140
140
}
141
141
142
- static int phy_syscon_pll_refclk (struct dwc3_data * data )
142
+ static int phy_syscon_pll_refclk (struct dwc3_am62 * am62 )
143
143
{
144
- struct device * dev = data -> dev ;
144
+ struct device * dev = am62 -> dev ;
145
145
struct device_node * node = dev -> of_node ;
146
146
struct of_phandle_args args ;
147
147
struct regmap * syscon ;
@@ -153,16 +153,16 @@ static int phy_syscon_pll_refclk(struct dwc3_data *data)
153
153
return PTR_ERR (syscon );
154
154
}
155
155
156
- data -> syscon = syscon ;
156
+ am62 -> syscon = syscon ;
157
157
158
158
ret = of_parse_phandle_with_fixed_args (node , "ti,syscon-phy-pll-refclk" , 1 ,
159
159
0 , & args );
160
160
if (ret )
161
161
return ret ;
162
162
163
- data -> offset = args .args [0 ];
163
+ am62 -> offset = args .args [0 ];
164
164
165
- ret = regmap_update_bits (data -> syscon , data -> offset , PHY_PLL_REFCLK_MASK , data -> rate_code );
165
+ ret = regmap_update_bits (am62 -> syscon , am62 -> offset , PHY_PLL_REFCLK_MASK , am62 -> rate_code );
166
166
if (ret ) {
167
167
dev_err (dev , "failed to set phy pll reference clock rate\n" );
168
168
return ret ;
@@ -175,32 +175,32 @@ static int dwc3_ti_probe(struct platform_device *pdev)
175
175
{
176
176
struct device * dev = & pdev -> dev ;
177
177
struct device_node * node = pdev -> dev .of_node ;
178
- struct dwc3_data * data ;
178
+ struct dwc3_am62 * am62 ;
179
179
int i , ret ;
180
180
unsigned long rate ;
181
181
u32 reg ;
182
182
183
- data = devm_kzalloc (dev , sizeof (* data ), GFP_KERNEL );
184
- if (!data )
183
+ am62 = devm_kzalloc (dev , sizeof (* am62 ), GFP_KERNEL );
184
+ if (!am62 )
185
185
return - ENOMEM ;
186
186
187
- data -> dev = dev ;
188
- platform_set_drvdata (pdev , data );
187
+ am62 -> dev = dev ;
188
+ platform_set_drvdata (pdev , am62 );
189
189
190
- data -> usbss = devm_platform_ioremap_resource (pdev , 0 );
191
- if (IS_ERR (data -> usbss )) {
190
+ am62 -> usbss = devm_platform_ioremap_resource (pdev , 0 );
191
+ if (IS_ERR (am62 -> usbss )) {
192
192
dev_err (dev , "can't map IOMEM resource\n" );
193
- return PTR_ERR (data -> usbss );
193
+ return PTR_ERR (am62 -> usbss );
194
194
}
195
195
196
- data -> usb2_refclk = devm_clk_get (dev , "ref" );
197
- if (IS_ERR (data -> usb2_refclk )) {
196
+ am62 -> usb2_refclk = devm_clk_get (dev , "ref" );
197
+ if (IS_ERR (am62 -> usb2_refclk )) {
198
198
dev_err (dev , "can't get usb2_refclk\n" );
199
- return PTR_ERR (data -> usb2_refclk );
199
+ return PTR_ERR (am62 -> usb2_refclk );
200
200
}
201
201
202
202
/* Calculate the rate code */
203
- rate = clk_get_rate (data -> usb2_refclk );
203
+ rate = clk_get_rate (am62 -> usb2_refclk );
204
204
rate /= 1000 ; // To KHz
205
205
for (i = 0 ; i < ARRAY_SIZE (dwc3_ti_rate_table ); i ++ ) {
206
206
if (dwc3_ti_rate_table [i ] == rate )
@@ -212,28 +212,28 @@ static int dwc3_ti_probe(struct platform_device *pdev)
212
212
return - EINVAL ;
213
213
}
214
214
215
- data -> rate_code = i ;
215
+ am62 -> rate_code = i ;
216
216
217
217
/* Read the syscon property and set the rate code */
218
- ret = phy_syscon_pll_refclk (data );
218
+ ret = phy_syscon_pll_refclk (am62 );
219
219
if (ret )
220
220
return ret ;
221
221
222
222
/* VBUS divider select */
223
- data -> vbus_divider = device_property_read_bool (dev , "ti,vbus-divider" );
224
- reg = dwc3_ti_readl (data , USBSS_PHY_CONFIG );
225
- if (data -> vbus_divider )
223
+ am62 -> vbus_divider = device_property_read_bool (dev , "ti,vbus-divider" );
224
+ reg = dwc3_ti_readl (am62 , USBSS_PHY_CONFIG );
225
+ if (am62 -> vbus_divider )
226
226
reg |= 1 << USBSS_PHY_VBUS_SEL_SHIFT ;
227
227
228
- dwc3_ti_writel (data , USBSS_PHY_CONFIG , reg );
228
+ dwc3_ti_writel (am62 , USBSS_PHY_CONFIG , reg );
229
229
230
230
pm_runtime_set_active (dev );
231
231
pm_runtime_enable (dev );
232
232
/*
233
233
* Don't ignore its dependencies with its children
234
234
*/
235
235
pm_suspend_ignore_children (dev , false);
236
- clk_prepare_enable (data -> usb2_refclk );
236
+ clk_prepare_enable (am62 -> usb2_refclk );
237
237
pm_runtime_get_noresume (dev );
238
238
239
239
ret = of_platform_populate (node , NULL , NULL , dev );
@@ -243,9 +243,9 @@ static int dwc3_ti_probe(struct platform_device *pdev)
243
243
}
244
244
245
245
/* Set mode valid bit to indicate role is valid */
246
- reg = dwc3_ti_readl (data , USBSS_MODE_CONTROL );
246
+ reg = dwc3_ti_readl (am62 , USBSS_MODE_CONTROL );
247
247
reg |= USBSS_MODE_VALID ;
248
- dwc3_ti_writel (data , USBSS_MODE_CONTROL , reg );
248
+ dwc3_ti_writel (am62 , USBSS_MODE_CONTROL , reg );
249
249
250
250
/* Device has capability to wakeup system from sleep */
251
251
device_set_wakeup_capable (dev , true);
@@ -261,7 +261,7 @@ static int dwc3_ti_probe(struct platform_device *pdev)
261
261
return 0 ;
262
262
263
263
err_pm_disable :
264
- clk_disable_unprepare (data -> usb2_refclk );
264
+ clk_disable_unprepare (am62 -> usb2_refclk );
265
265
pm_runtime_disable (dev );
266
266
pm_runtime_set_suspended (dev );
267
267
return ret ;
@@ -278,18 +278,18 @@ static int dwc3_ti_remove_core(struct device *dev, void *c)
278
278
static void dwc3_ti_remove (struct platform_device * pdev )
279
279
{
280
280
struct device * dev = & pdev -> dev ;
281
- struct dwc3_data * data = platform_get_drvdata (pdev );
281
+ struct dwc3_am62 * am62 = platform_get_drvdata (pdev );
282
282
u32 reg ;
283
283
284
284
device_for_each_child (dev , NULL , dwc3_ti_remove_core );
285
285
286
286
/* Clear mode valid bit */
287
- reg = dwc3_ti_readl (data , USBSS_MODE_CONTROL );
287
+ reg = dwc3_ti_readl (am62 , USBSS_MODE_CONTROL );
288
288
reg &= ~USBSS_MODE_VALID ;
289
- dwc3_ti_writel (data , USBSS_MODE_CONTROL , reg );
289
+ dwc3_ti_writel (am62 , USBSS_MODE_CONTROL , reg );
290
290
291
291
pm_runtime_put_sync (dev );
292
- clk_disable_unprepare (data -> usb2_refclk );
292
+ clk_disable_unprepare (am62 -> usb2_refclk );
293
293
pm_runtime_disable (dev );
294
294
pm_runtime_set_suspended (dev );
295
295
@@ -299,15 +299,15 @@ static void dwc3_ti_remove(struct platform_device *pdev)
299
299
#ifdef CONFIG_PM
300
300
static int dwc3_ti_suspend_common (struct device * dev )
301
301
{
302
- struct dwc3_data * data = dev_get_drvdata (dev );
302
+ struct dwc3_am62 * am62 = dev_get_drvdata (dev );
303
303
u32 reg , current_prtcap_dir ;
304
304
305
305
if (device_may_wakeup (dev )) {
306
- reg = dwc3_ti_readl (data , USBSS_CORE_STAT );
306
+ reg = dwc3_ti_readl (am62 , USBSS_CORE_STAT );
307
307
current_prtcap_dir = (reg & USBSS_CORE_OPERATIONAL_MODE_MASK )
308
308
>> USBSS_CORE_OPERATIONAL_MODE_SHIFT ;
309
309
/* Set wakeup config enable bits */
310
- reg = dwc3_ti_readl (data , USBSS_WAKEUP_CONFIG );
310
+ reg = dwc3_ti_readl (am62 , USBSS_WAKEUP_CONFIG );
311
311
if (current_prtcap_dir == DWC3_GCTL_PRTCAP_HOST ) {
312
312
reg = USBSS_WAKEUP_CFG_LINESTATE_EN | USBSS_WAKEUP_CFG_OVERCURRENT_EN ;
313
313
} else {
@@ -317,30 +317,30 @@ static int dwc3_ti_suspend_common(struct device *dev)
317
317
* and in U2/L3 state else it causes spurious wake-up.
318
318
*/
319
319
}
320
- dwc3_ti_writel (data , USBSS_WAKEUP_CONFIG , reg );
320
+ dwc3_ti_writel (am62 , USBSS_WAKEUP_CONFIG , reg );
321
321
/* clear wakeup status so we know what caused the wake up */
322
- dwc3_ti_writel (data , USBSS_WAKEUP_STAT , USBSS_WAKEUP_STAT_CLR );
322
+ dwc3_ti_writel (am62 , USBSS_WAKEUP_STAT , USBSS_WAKEUP_STAT_CLR );
323
323
}
324
324
325
- clk_disable_unprepare (data -> usb2_refclk );
325
+ clk_disable_unprepare (am62 -> usb2_refclk );
326
326
327
327
return 0 ;
328
328
}
329
329
330
330
static int dwc3_ti_resume_common (struct device * dev )
331
331
{
332
- struct dwc3_data * data = dev_get_drvdata (dev );
332
+ struct dwc3_am62 * am62 = dev_get_drvdata (dev );
333
333
u32 reg ;
334
334
335
- clk_prepare_enable (data -> usb2_refclk );
335
+ clk_prepare_enable (am62 -> usb2_refclk );
336
336
337
337
if (device_may_wakeup (dev )) {
338
338
/* Clear wakeup config enable bits */
339
- dwc3_ti_writel (data , USBSS_WAKEUP_CONFIG , USBSS_WAKEUP_CFG_NONE );
339
+ dwc3_ti_writel (am62 , USBSS_WAKEUP_CONFIG , USBSS_WAKEUP_CFG_NONE );
340
340
}
341
341
342
- reg = dwc3_ti_readl (data , USBSS_WAKEUP_STAT );
343
- data -> wakeup_stat = reg ;
342
+ reg = dwc3_ti_readl (am62 , USBSS_WAKEUP_STAT );
343
+ am62 -> wakeup_stat = reg ;
344
344
345
345
return 0 ;
346
346
}
0 commit comments