@@ -100,6 +100,7 @@ struct da9063_regulator_info {
100
100
.desc.vsel_mask = DA9063_V##regl_name##_MASK, \
101
101
.desc.linear_min_sel = DA9063_V##regl_name##_BIAS, \
102
102
.sleep = BFIELD(DA9063_REG_V##regl_name##_A, DA9063_LDO_SL), \
103
+ .suspend = BFIELD(DA9063_REG_##regl_name##_CONT, DA9063_LDO_CONF), \
103
104
.suspend_sleep = BFIELD(DA9063_REG_V##regl_name##_B, DA9063_LDO_SL), \
104
105
.suspend_vsel_reg = DA9063_REG_V##regl_name##_B
105
106
@@ -124,6 +125,7 @@ struct da9063_regulator_info {
124
125
.desc.vsel_mask = DA9063_VBUCK_MASK, \
125
126
.desc.linear_min_sel = DA9063_VBUCK_BIAS, \
126
127
.sleep = BFIELD(DA9063_REG_V##regl_name##_A, DA9063_BUCK_SL), \
128
+ .suspend = BFIELD(DA9063_REG_##regl_name##_CONT, DA9063_BUCK_CONF), \
127
129
.suspend_sleep = BFIELD(DA9063_REG_V##regl_name##_B, DA9063_BUCK_SL), \
128
130
.suspend_vsel_reg = DA9063_REG_V##regl_name##_B, \
129
131
.mode = BFIELD(DA9063_REG_##regl_name##_CFG, DA9063_BUCK_MODE_MASK)
@@ -232,7 +234,6 @@ static int da9063_buck_set_mode(struct regulator_dev *rdev, unsigned int mode)
232
234
static unsigned int da9063_buck_get_mode (struct regulator_dev * rdev )
233
235
{
234
236
struct da9063_regulator * regl = rdev_get_drvdata (rdev );
235
- struct regmap_field * field ;
236
237
unsigned int val ;
237
238
int ret ;
238
239
@@ -253,18 +254,7 @@ static unsigned int da9063_buck_get_mode(struct regulator_dev *rdev)
253
254
return REGULATOR_MODE_NORMAL ;
254
255
}
255
256
256
- /* Detect current regulator state */
257
- ret = regmap_field_read (regl -> suspend , & val );
258
- if (ret < 0 )
259
- return 0 ;
260
-
261
- /* Read regulator mode from proper register, depending on state */
262
- if (val )
263
- field = regl -> suspend_sleep ;
264
- else
265
- field = regl -> sleep ;
266
-
267
- ret = regmap_field_read (field , & val );
257
+ ret = regmap_field_read (regl -> sleep , & val );
268
258
if (ret < 0 )
269
259
return 0 ;
270
260
@@ -301,21 +291,9 @@ static int da9063_ldo_set_mode(struct regulator_dev *rdev, unsigned int mode)
301
291
static unsigned int da9063_ldo_get_mode (struct regulator_dev * rdev )
302
292
{
303
293
struct da9063_regulator * regl = rdev_get_drvdata (rdev );
304
- struct regmap_field * field ;
305
294
int ret , val ;
306
295
307
- /* Detect current regulator state */
308
- ret = regmap_field_read (regl -> suspend , & val );
309
- if (ret < 0 )
310
- return 0 ;
311
-
312
- /* Read regulator mode from proper register, depending on state */
313
- if (val )
314
- field = regl -> suspend_sleep ;
315
- else
316
- field = regl -> sleep ;
317
-
318
- ret = regmap_field_read (field , & val );
296
+ ret = regmap_field_read (regl -> sleep , & val );
319
297
if (ret < 0 )
320
298
return 0 ;
321
299
@@ -475,72 +453,61 @@ static const struct da9063_regulator_info da9063_regulator_info[] = {
475
453
da9063_buck_a_limits ,
476
454
DA9063_REG_BUCK_ILIM_C , DA9063_BCORE1_ILIM_MASK ),
477
455
DA9063_BUCK_COMMON_FIELDS (BCORE1 ),
478
- .suspend = BFIELD (DA9063_REG_DVC_1 , DA9063_VBCORE1_SEL ),
479
456
},
480
457
{
481
458
DA9063_BUCK (DA9063 , BCORE2 , 300 , 10 , 1570 ,
482
459
da9063_buck_a_limits ,
483
460
DA9063_REG_BUCK_ILIM_C , DA9063_BCORE2_ILIM_MASK ),
484
461
DA9063_BUCK_COMMON_FIELDS (BCORE2 ),
485
- .suspend = BFIELD (DA9063_REG_DVC_1 , DA9063_VBCORE2_SEL ),
486
462
},
487
463
{
488
464
DA9063_BUCK (DA9063 , BPRO , 530 , 10 , 1800 ,
489
465
da9063_buck_a_limits ,
490
466
DA9063_REG_BUCK_ILIM_B , DA9063_BPRO_ILIM_MASK ),
491
467
DA9063_BUCK_COMMON_FIELDS (BPRO ),
492
- .suspend = BFIELD (DA9063_REG_DVC_1 , DA9063_VBPRO_SEL ),
493
468
},
494
469
{
495
470
DA9063_BUCK (DA9063 , BMEM , 800 , 20 , 3340 ,
496
471
da9063_buck_b_limits ,
497
472
DA9063_REG_BUCK_ILIM_A , DA9063_BMEM_ILIM_MASK ),
498
473
DA9063_BUCK_COMMON_FIELDS (BMEM ),
499
- .suspend = BFIELD (DA9063_REG_DVC_1 , DA9063_VBMEM_SEL ),
500
474
},
501
475
{
502
476
DA9063_BUCK (DA9063 , BIO , 800 , 20 , 3340 ,
503
477
da9063_buck_b_limits ,
504
478
DA9063_REG_BUCK_ILIM_A , DA9063_BIO_ILIM_MASK ),
505
479
DA9063_BUCK_COMMON_FIELDS (BIO ),
506
- .suspend = BFIELD (DA9063_REG_DVC_2 , DA9063_VBIO_SEL ),
507
480
},
508
481
{
509
482
DA9063_BUCK (DA9063 , BPERI , 800 , 20 , 3340 ,
510
483
da9063_buck_b_limits ,
511
484
DA9063_REG_BUCK_ILIM_B , DA9063_BPERI_ILIM_MASK ),
512
485
DA9063_BUCK_COMMON_FIELDS (BPERI ),
513
- .suspend = BFIELD (DA9063_REG_DVC_1 , DA9063_VBPERI_SEL ),
514
486
},
515
487
{
516
488
DA9063_BUCK (DA9063 , BCORES_MERGED , 300 , 10 , 1570 ,
517
489
da9063_bcores_merged_limits ,
518
490
DA9063_REG_BUCK_ILIM_C , DA9063_BCORE1_ILIM_MASK ),
519
491
/* BCORES_MERGED uses the same register fields as BCORE1 */
520
492
DA9063_BUCK_COMMON_FIELDS (BCORE1 ),
521
- .suspend = BFIELD (DA9063_REG_DVC_1 , DA9063_VBCORE1_SEL ),
522
493
},
523
494
{
524
495
DA9063_BUCK (DA9063 , BMEM_BIO_MERGED , 800 , 20 , 3340 ,
525
496
da9063_bmem_bio_merged_limits ,
526
497
DA9063_REG_BUCK_ILIM_A , DA9063_BMEM_ILIM_MASK ),
527
498
/* BMEM_BIO_MERGED uses the same register fields as BMEM */
528
499
DA9063_BUCK_COMMON_FIELDS (BMEM ),
529
- .suspend = BFIELD (DA9063_REG_DVC_1 , DA9063_VBMEM_SEL ),
530
500
},
531
501
{
532
502
DA9063_LDO (DA9063 , LDO3 , 900 , 20 , 3440 ),
533
- .suspend = BFIELD (DA9063_REG_DVC_1 , DA9063_VLDO3_SEL ),
534
503
.oc_event = BFIELD (DA9063_REG_STATUS_D , DA9063_LDO3_LIM ),
535
504
},
536
505
{
537
506
DA9063_LDO (DA9063 , LDO7 , 900 , 50 , 3600 ),
538
- .suspend = BFIELD (DA9063_REG_LDO7_CONT , DA9063_VLDO7_SEL ),
539
507
.oc_event = BFIELD (DA9063_REG_STATUS_D , DA9063_LDO7_LIM ),
540
508
},
541
509
{
542
510
DA9063_LDO (DA9063 , LDO8 , 900 , 50 , 3600 ),
543
- .suspend = BFIELD (DA9063_REG_LDO8_CONT , DA9063_VLDO8_SEL ),
544
511
.oc_event = BFIELD (DA9063_REG_STATUS_D , DA9063_LDO8_LIM ),
545
512
},
546
513
{
@@ -549,36 +516,29 @@ static const struct da9063_regulator_info da9063_regulator_info[] = {
549
516
},
550
517
{
551
518
DA9063_LDO (DA9063 , LDO11 , 900 , 50 , 3600 ),
552
- .suspend = BFIELD (DA9063_REG_LDO11_CONT , DA9063_VLDO11_SEL ),
553
519
.oc_event = BFIELD (DA9063_REG_STATUS_D , DA9063_LDO11_LIM ),
554
520
},
555
521
556
522
/* The following LDOs are present only on DA9063, not on DA9063L */
557
523
{
558
524
DA9063_LDO (DA9063 , LDO1 , 600 , 20 , 1860 ),
559
- .suspend = BFIELD (DA9063_REG_DVC_1 , DA9063_VLDO1_SEL ),
560
525
},
561
526
{
562
527
DA9063_LDO (DA9063 , LDO2 , 600 , 20 , 1860 ),
563
- .suspend = BFIELD (DA9063_REG_DVC_1 , DA9063_VLDO2_SEL ),
564
528
},
565
529
{
566
530
DA9063_LDO (DA9063 , LDO4 , 900 , 20 , 3440 ),
567
- .suspend = BFIELD (DA9063_REG_DVC_2 , DA9063_VLDO4_SEL ),
568
531
.oc_event = BFIELD (DA9063_REG_STATUS_D , DA9063_LDO4_LIM ),
569
532
},
570
533
{
571
534
DA9063_LDO (DA9063 , LDO5 , 900 , 50 , 3600 ),
572
- .suspend = BFIELD (DA9063_REG_LDO5_CONT , DA9063_VLDO5_SEL ),
573
535
},
574
536
{
575
537
DA9063_LDO (DA9063 , LDO6 , 900 , 50 , 3600 ),
576
- .suspend = BFIELD (DA9063_REG_LDO6_CONT , DA9063_VLDO6_SEL ),
577
538
},
578
539
579
540
{
580
541
DA9063_LDO (DA9063 , LDO10 , 900 , 50 , 3600 ),
581
- .suspend = BFIELD (DA9063_REG_LDO10_CONT , DA9063_VLDO10_SEL ),
582
542
},
583
543
};
584
544
0 commit comments