@@ -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)
@@ -224,7 +226,6 @@ static int da9063_buck_set_mode(struct regulator_dev *rdev, unsigned mode)
224
226
static unsigned da9063_buck_get_mode (struct regulator_dev * rdev )
225
227
{
226
228
struct da9063_regulator * regl = rdev_get_drvdata (rdev );
227
- struct regmap_field * field ;
228
229
unsigned int val ;
229
230
int ret ;
230
231
@@ -245,18 +246,7 @@ static unsigned da9063_buck_get_mode(struct regulator_dev *rdev)
245
246
return REGULATOR_MODE_NORMAL ;
246
247
}
247
248
248
- /* Detect current regulator state */
249
- ret = regmap_field_read (regl -> suspend , & val );
250
- if (ret < 0 )
251
- return 0 ;
252
-
253
- /* Read regulator mode from proper register, depending on state */
254
- if (val )
255
- field = regl -> suspend_sleep ;
256
- else
257
- field = regl -> sleep ;
258
-
259
- ret = regmap_field_read (field , & val );
249
+ ret = regmap_field_read (regl -> sleep , & val );
260
250
if (ret < 0 )
261
251
return 0 ;
262
252
@@ -293,21 +283,9 @@ static int da9063_ldo_set_mode(struct regulator_dev *rdev, unsigned mode)
293
283
static unsigned da9063_ldo_get_mode (struct regulator_dev * rdev )
294
284
{
295
285
struct da9063_regulator * regl = rdev_get_drvdata (rdev );
296
- struct regmap_field * field ;
297
286
int ret , val ;
298
287
299
- /* Detect current regulator state */
300
- ret = regmap_field_read (regl -> suspend , & val );
301
- if (ret < 0 )
302
- return 0 ;
303
-
304
- /* Read regulator mode from proper register, depending on state */
305
- if (val )
306
- field = regl -> suspend_sleep ;
307
- else
308
- field = regl -> sleep ;
309
-
310
- ret = regmap_field_read (field , & val );
288
+ ret = regmap_field_read (regl -> sleep , & val );
311
289
if (ret < 0 )
312
290
return 0 ;
313
291
@@ -465,72 +443,61 @@ static const struct da9063_regulator_info da9063_regulator_info[] = {
465
443
da9063_buck_a_limits ,
466
444
DA9063_REG_BUCK_ILIM_C , DA9063_BCORE1_ILIM_MASK ),
467
445
DA9063_BUCK_COMMON_FIELDS (BCORE1 ),
468
- .suspend = BFIELD (DA9063_REG_DVC_1 , DA9063_VBCORE1_SEL ),
469
446
},
470
447
{
471
448
DA9063_BUCK (DA9063 , BCORE2 , 300 , 10 , 1570 ,
472
449
da9063_buck_a_limits ,
473
450
DA9063_REG_BUCK_ILIM_C , DA9063_BCORE2_ILIM_MASK ),
474
451
DA9063_BUCK_COMMON_FIELDS (BCORE2 ),
475
- .suspend = BFIELD (DA9063_REG_DVC_1 , DA9063_VBCORE2_SEL ),
476
452
},
477
453
{
478
454
DA9063_BUCK (DA9063 , BPRO , 530 , 10 , 1800 ,
479
455
da9063_buck_a_limits ,
480
456
DA9063_REG_BUCK_ILIM_B , DA9063_BPRO_ILIM_MASK ),
481
457
DA9063_BUCK_COMMON_FIELDS (BPRO ),
482
- .suspend = BFIELD (DA9063_REG_DVC_1 , DA9063_VBPRO_SEL ),
483
458
},
484
459
{
485
460
DA9063_BUCK (DA9063 , BMEM , 800 , 20 , 3340 ,
486
461
da9063_buck_b_limits ,
487
462
DA9063_REG_BUCK_ILIM_A , DA9063_BMEM_ILIM_MASK ),
488
463
DA9063_BUCK_COMMON_FIELDS (BMEM ),
489
- .suspend = BFIELD (DA9063_REG_DVC_1 , DA9063_VBMEM_SEL ),
490
464
},
491
465
{
492
466
DA9063_BUCK (DA9063 , BIO , 800 , 20 , 3340 ,
493
467
da9063_buck_b_limits ,
494
468
DA9063_REG_BUCK_ILIM_A , DA9063_BIO_ILIM_MASK ),
495
469
DA9063_BUCK_COMMON_FIELDS (BIO ),
496
- .suspend = BFIELD (DA9063_REG_DVC_2 , DA9063_VBIO_SEL ),
497
470
},
498
471
{
499
472
DA9063_BUCK (DA9063 , BPERI , 800 , 20 , 3340 ,
500
473
da9063_buck_b_limits ,
501
474
DA9063_REG_BUCK_ILIM_B , DA9063_BPERI_ILIM_MASK ),
502
475
DA9063_BUCK_COMMON_FIELDS (BPERI ),
503
- .suspend = BFIELD (DA9063_REG_DVC_1 , DA9063_VBPERI_SEL ),
504
476
},
505
477
{
506
478
DA9063_BUCK (DA9063 , BCORES_MERGED , 300 , 10 , 1570 ,
507
479
da9063_bcores_merged_limits ,
508
480
DA9063_REG_BUCK_ILIM_C , DA9063_BCORE1_ILIM_MASK ),
509
481
/* BCORES_MERGED uses the same register fields as BCORE1 */
510
482
DA9063_BUCK_COMMON_FIELDS (BCORE1 ),
511
- .suspend = BFIELD (DA9063_REG_DVC_1 , DA9063_VBCORE1_SEL ),
512
483
},
513
484
{
514
485
DA9063_BUCK (DA9063 , BMEM_BIO_MERGED , 800 , 20 , 3340 ,
515
486
da9063_bmem_bio_merged_limits ,
516
487
DA9063_REG_BUCK_ILIM_A , DA9063_BMEM_ILIM_MASK ),
517
488
/* BMEM_BIO_MERGED uses the same register fields as BMEM */
518
489
DA9063_BUCK_COMMON_FIELDS (BMEM ),
519
- .suspend = BFIELD (DA9063_REG_DVC_1 , DA9063_VBMEM_SEL ),
520
490
},
521
491
{
522
492
DA9063_LDO (DA9063 , LDO3 , 900 , 20 , 3440 ),
523
- .suspend = BFIELD (DA9063_REG_DVC_1 , DA9063_VLDO3_SEL ),
524
493
.oc_event = BFIELD (DA9063_REG_STATUS_D , DA9063_LDO3_LIM ),
525
494
},
526
495
{
527
496
DA9063_LDO (DA9063 , LDO7 , 900 , 50 , 3600 ),
528
- .suspend = BFIELD (DA9063_REG_LDO7_CONT , DA9063_VLDO7_SEL ),
529
497
.oc_event = BFIELD (DA9063_REG_STATUS_D , DA9063_LDO7_LIM ),
530
498
},
531
499
{
532
500
DA9063_LDO (DA9063 , LDO8 , 900 , 50 , 3600 ),
533
- .suspend = BFIELD (DA9063_REG_LDO8_CONT , DA9063_VLDO8_SEL ),
534
501
.oc_event = BFIELD (DA9063_REG_STATUS_D , DA9063_LDO8_LIM ),
535
502
},
536
503
{
@@ -539,36 +506,29 @@ static const struct da9063_regulator_info da9063_regulator_info[] = {
539
506
},
540
507
{
541
508
DA9063_LDO (DA9063 , LDO11 , 900 , 50 , 3600 ),
542
- .suspend = BFIELD (DA9063_REG_LDO11_CONT , DA9063_VLDO11_SEL ),
543
509
.oc_event = BFIELD (DA9063_REG_STATUS_D , DA9063_LDO11_LIM ),
544
510
},
545
511
546
512
/* The following LDOs are present only on DA9063, not on DA9063L */
547
513
{
548
514
DA9063_LDO (DA9063 , LDO1 , 600 , 20 , 1860 ),
549
- .suspend = BFIELD (DA9063_REG_DVC_1 , DA9063_VLDO1_SEL ),
550
515
},
551
516
{
552
517
DA9063_LDO (DA9063 , LDO2 , 600 , 20 , 1860 ),
553
- .suspend = BFIELD (DA9063_REG_DVC_1 , DA9063_VLDO2_SEL ),
554
518
},
555
519
{
556
520
DA9063_LDO (DA9063 , LDO4 , 900 , 20 , 3440 ),
557
- .suspend = BFIELD (DA9063_REG_DVC_2 , DA9063_VLDO4_SEL ),
558
521
.oc_event = BFIELD (DA9063_REG_STATUS_D , DA9063_LDO4_LIM ),
559
522
},
560
523
{
561
524
DA9063_LDO (DA9063 , LDO5 , 900 , 50 , 3600 ),
562
- .suspend = BFIELD (DA9063_REG_LDO5_CONT , DA9063_VLDO5_SEL ),
563
525
},
564
526
{
565
527
DA9063_LDO (DA9063 , LDO6 , 900 , 50 , 3600 ),
566
- .suspend = BFIELD (DA9063_REG_LDO6_CONT , DA9063_VLDO6_SEL ),
567
528
},
568
529
569
530
{
570
531
DA9063_LDO (DA9063 , LDO10 , 900 , 50 , 3600 ),
571
- .suspend = BFIELD (DA9063_REG_LDO10_CONT , DA9063_VLDO10_SEL ),
572
532
},
573
533
};
574
534
0 commit comments