@@ -52,7 +52,7 @@ enum tusb1210_chg_det_state {
52
52
};
53
53
54
54
struct tusb1210 {
55
- struct ulpi * ulpi ;
55
+ struct device * dev ;
56
56
struct phy * phy ;
57
57
struct gpio_desc * gpio_reset ;
58
58
struct gpio_desc * gpio_cs ;
@@ -71,26 +71,27 @@ struct tusb1210 {
71
71
72
72
static int tusb1210_ulpi_write (struct tusb1210 * tusb , u8 reg , u8 val )
73
73
{
74
+ struct device * dev = tusb -> dev ;
74
75
int ret ;
75
76
76
- ret = ulpi_write (tusb -> ulpi , reg , val );
77
+ ret = ulpi_write (to_ulpi_dev ( dev ) , reg , val );
77
78
if (ret )
78
- dev_err (& tusb -> ulpi -> dev , "error %d writing val 0x%02x to reg 0x%02x\n" ,
79
- ret , val , reg );
79
+ dev_err (dev , "error %d writing val 0x%02x to reg 0x%02x\n" , ret , val , reg );
80
80
81
81
return ret ;
82
82
}
83
83
84
84
static int tusb1210_ulpi_read (struct tusb1210 * tusb , u8 reg , u8 * val )
85
85
{
86
+ struct device * dev = tusb -> dev ;
86
87
int ret ;
87
88
88
- ret = ulpi_read (tusb -> ulpi , reg );
89
+ ret = ulpi_read (to_ulpi_dev ( dev ) , reg );
89
90
if (ret >= 0 ) {
90
91
* val = ret ;
91
92
ret = 0 ;
92
93
} else {
93
- dev_err (& tusb -> ulpi -> dev , "error %d reading reg 0x%02x\n" , ret , reg );
94
+ dev_err (dev , "error %d reading reg 0x%02x\n" , ret , reg );
94
95
}
95
96
96
97
return ret ;
@@ -178,7 +179,7 @@ static void tusb1210_reset(struct tusb1210 *tusb)
178
179
static void tusb1210_chg_det_set_type (struct tusb1210 * tusb ,
179
180
enum power_supply_usb_type type )
180
181
{
181
- dev_dbg (& tusb -> ulpi -> dev , "charger type: %d\n" , type );
182
+ dev_dbg (tusb -> dev , "charger type: %d\n" , type );
182
183
tusb -> chg_type = type ;
183
184
tusb -> chg_det_retries = 0 ;
184
185
power_supply_changed (tusb -> psy );
@@ -189,7 +190,7 @@ static void tusb1210_chg_det_set_state(struct tusb1210 *tusb,
189
190
int delay_ms )
190
191
{
191
192
if (delay_ms )
192
- dev_dbg (& tusb -> ulpi -> dev , "chg_det new state %s in %d ms\n" ,
193
+ dev_dbg (tusb -> dev , "chg_det new state %s in %d ms\n" ,
193
194
tusb1210_chg_det_states [new_state ], delay_ms );
194
195
195
196
tusb -> chg_det_state = new_state ;
@@ -253,17 +254,17 @@ static void tusb1210_chg_det_work(struct work_struct *work)
253
254
int ret ;
254
255
u8 val ;
255
256
256
- dev_dbg (& tusb -> ulpi -> dev , "chg_det state %s vbus_present %d\n" ,
257
+ dev_dbg (tusb -> dev , "chg_det state %s vbus_present %d\n" ,
257
258
tusb1210_chg_det_states [tusb -> chg_det_state ], vbus_present );
258
259
259
260
switch (tusb -> chg_det_state ) {
260
261
case TUSB1210_CHG_DET_CONNECTING :
261
262
tusb -> chg_type = POWER_SUPPLY_USB_TYPE_UNKNOWN ;
262
263
tusb -> chg_det_retries = 0 ;
263
264
/* Power on USB controller for ulpi_read()/_write() */
264
- ret = pm_runtime_resume_and_get (tusb -> ulpi -> dev . parent );
265
+ ret = pm_runtime_resume_and_get (tusb -> dev -> parent );
265
266
if (ret < 0 ) {
266
- dev_err (& tusb -> ulpi -> dev , "error %d runtime-resuming\n" , ret );
267
+ dev_err (tusb -> dev , "error %d runtime-resuming\n" , ret );
267
268
/* Should never happen, skip charger detection */
268
269
tusb1210_chg_det_set_state (tusb , TUSB1210_CHG_DET_CONNECTED , 0 );
269
270
return ;
@@ -332,7 +333,7 @@ static void tusb1210_chg_det_work(struct work_struct *work)
332
333
333
334
mutex_unlock (& tusb -> phy -> mutex );
334
335
335
- pm_runtime_put (tusb -> ulpi -> dev . parent );
336
+ pm_runtime_put (tusb -> dev -> parent );
336
337
tusb1210_chg_det_set_state (tusb , TUSB1210_CHG_DET_CONNECTED , 0 );
337
338
break ;
338
339
case TUSB1210_CHG_DET_CONNECTED :
@@ -428,13 +429,14 @@ static const struct power_supply_desc tusb1210_psy_desc = {
428
429
static void tusb1210_probe_charger_detect (struct tusb1210 * tusb )
429
430
{
430
431
struct power_supply_config psy_cfg = { .drv_data = tusb };
431
- struct device * dev = & tusb -> ulpi -> dev ;
432
+ struct device * dev = tusb -> dev ;
433
+ struct ulpi * ulpi = to_ulpi_dev (dev );
432
434
int ret ;
433
435
434
436
if (!device_property_read_bool (dev -> parent , "linux,phy_charger_detect" ))
435
437
return ;
436
438
437
- if (tusb -> ulpi -> id .product != 0x1508 ) {
439
+ if (ulpi -> id .product != 0x1508 ) {
438
440
dev_err (dev , "error charger detection is only supported on the TUSB1211\n" );
439
441
return ;
440
442
}
@@ -485,25 +487,24 @@ static const struct phy_ops phy_ops = {
485
487
486
488
static int tusb1210_probe (struct ulpi * ulpi )
487
489
{
490
+ struct device * dev = & ulpi -> dev ;
488
491
struct tusb1210 * tusb ;
489
492
u8 val , reg ;
490
493
int ret ;
491
494
492
- tusb = devm_kzalloc (& ulpi -> dev , sizeof (* tusb ), GFP_KERNEL );
495
+ tusb = devm_kzalloc (dev , sizeof (* tusb ), GFP_KERNEL );
493
496
if (!tusb )
494
497
return - ENOMEM ;
495
498
496
- tusb -> ulpi = ulpi ;
499
+ tusb -> dev = dev ;
497
500
498
- tusb -> gpio_reset = devm_gpiod_get_optional (& ulpi -> dev , "reset" ,
499
- GPIOD_OUT_LOW );
501
+ tusb -> gpio_reset = devm_gpiod_get_optional (dev , "reset" , GPIOD_OUT_LOW );
500
502
if (IS_ERR (tusb -> gpio_reset ))
501
503
return PTR_ERR (tusb -> gpio_reset );
502
504
503
505
gpiod_set_value_cansleep (tusb -> gpio_reset , 1 );
504
506
505
- tusb -> gpio_cs = devm_gpiod_get_optional (& ulpi -> dev , "cs" ,
506
- GPIOD_OUT_LOW );
507
+ tusb -> gpio_cs = devm_gpiod_get_optional (dev , "cs" , GPIOD_OUT_LOW );
507
508
if (IS_ERR (tusb -> gpio_cs ))
508
509
return PTR_ERR (tusb -> gpio_cs );
509
510
@@ -519,15 +520,15 @@ static int tusb1210_probe(struct ulpi *ulpi)
519
520
return ret ;
520
521
521
522
/* High speed output drive strength configuration */
522
- if (!device_property_read_u8 (& ulpi -> dev , "ihstx" , & val ))
523
+ if (!device_property_read_u8 (dev , "ihstx" , & val ))
523
524
u8p_replace_bits (& reg , val , (u8 )TUSB1210_VENDOR_SPECIFIC2_IHSTX_MASK );
524
525
525
526
/* High speed output impedance configuration */
526
- if (!device_property_read_u8 (& ulpi -> dev , "zhsdrv" , & val ))
527
+ if (!device_property_read_u8 (dev , "zhsdrv" , & val ))
527
528
u8p_replace_bits (& reg , val , (u8 )TUSB1210_VENDOR_SPECIFIC2_ZHSDRV_MASK );
528
529
529
530
/* DP/DM swap control */
530
- if (!device_property_read_u8 (& ulpi -> dev , "datapolarity" , & val ))
531
+ if (!device_property_read_u8 (dev , "datapolarity" , & val ))
531
532
u8p_replace_bits (& reg , val , (u8 )TUSB1210_VENDOR_SPECIFIC2_DP_MASK );
532
533
533
534
ret = tusb1210_ulpi_write (tusb , TUSB1210_VENDOR_SPECIFIC2 , reg );
0 commit comments