@@ -228,6 +228,11 @@ static const struct regulator_ops rtq2208_regulator_ldo_ops = {
228
228
.set_suspend_disable = rtq2208_set_suspend_disable ,
229
229
};
230
230
231
+ static struct of_regulator_match rtq2208_ldo_match [] = {
232
+ {.name = "ldo2" , },
233
+ {.name = "ldo1" , },
234
+ };
235
+
231
236
static unsigned int rtq2208_of_map_mode (unsigned int mode )
232
237
{
233
238
switch (mode ) {
@@ -322,8 +327,7 @@ static irqreturn_t rtq2208_irq_handler(int irqno, void *devid)
322
327
return IRQ_HANDLED ;
323
328
}
324
329
325
- static int rtq2208_of_get_fixed_voltage (struct device * dev ,
326
- struct of_regulator_match * rtq2208_ldo_match , int n_fixed )
330
+ static int rtq2208_of_get_ldo_dvs_ability (struct device * dev )
327
331
{
328
332
struct device_node * np ;
329
333
struct of_regulator_match * match ;
@@ -338,14 +342,14 @@ static int rtq2208_of_get_fixed_voltage(struct device *dev,
338
342
if (!np )
339
343
np = dev -> of_node ;
340
344
341
- ret = of_regulator_match (dev , np , rtq2208_ldo_match , n_fixed );
345
+ ret = of_regulator_match (dev , np , rtq2208_ldo_match , ARRAY_SIZE ( rtq2208_ldo_match ) );
342
346
343
347
of_node_put (np );
344
348
345
349
if (ret < 0 )
346
350
return ret ;
347
351
348
- for (i = 0 ; i < n_fixed ; i ++ ) {
352
+ for (i = 0 ; i < ARRAY_SIZE ( rtq2208_ldo_match ) ; i ++ ) {
349
353
match = rtq2208_ldo_match + i ;
350
354
init_data = match -> init_data ;
351
355
rdesc = (struct rtq2208_regulator_desc * )match -> driver_data ;
@@ -388,8 +392,7 @@ static const struct linear_range rtq2208_vout_range[] = {
388
392
REGULATOR_LINEAR_RANGE (1310000 , 181 , 255 , 10000 ),
389
393
};
390
394
391
- static void rtq2208_init_regulator_desc (struct rtq2208_regulator_desc * rdesc , int mtp_sel ,
392
- int idx , struct of_regulator_match * rtq2208_ldo_match , int * ldo_idx )
395
+ static void rtq2208_init_regulator_desc (struct rtq2208_regulator_desc * rdesc , int mtp_sel , int idx )
393
396
{
394
397
struct regulator_desc * desc ;
395
398
static const struct {
@@ -461,8 +464,7 @@ static void rtq2208_init_regulator_desc(struct rtq2208_regulator_desc *rdesc, in
461
464
static int rtq2208_parse_regulator_dt_data (int n_regulator , const unsigned int * regulator_idx_table ,
462
465
struct rtq2208_regulator_desc * rdesc [RTQ2208_LDO_MAX ], struct device * dev )
463
466
{
464
- struct of_regulator_match rtq2208_ldo_match [2 ];
465
- int mtp_sel , ret , i , idx , ldo_idx = 0 ;
467
+ int mtp_sel , i , idx , ret ;
466
468
467
469
/* get mtp_sel0 or mtp_sel1 */
468
470
mtp_sel = device_property_read_bool (dev , "richtek,mtp-sel-high" );
@@ -474,15 +476,15 @@ static int rtq2208_parse_regulator_dt_data(int n_regulator, const unsigned int *
474
476
if (!rdesc [i ])
475
477
return - ENOMEM ;
476
478
477
- rtq2208_init_regulator_desc (rdesc [i ], mtp_sel , idx , rtq2208_ldo_match , & ldo_idx );
479
+ rtq2208_init_regulator_desc (rdesc [i ], mtp_sel , idx );
478
480
479
481
/* init ldo dvs ability */
480
482
if (idx >= RTQ2208_LDO2 )
481
483
rtq2208_ldo_match [idx - RTQ2208_LDO2 ].desc = & rdesc [i ]-> desc ;
482
484
}
483
485
484
486
/* init ldo fixed_uV */
485
- ret = rtq2208_of_get_fixed_voltage (dev , rtq2208_ldo_match , ldo_idx );
487
+ ret = rtq2208_of_get_ldo_dvs_ability (dev );
486
488
if (ret )
487
489
return dev_err_probe (dev , ret , "Failed to get ldo fixed_uV\n" );
488
490
0 commit comments