@@ -185,7 +185,6 @@ static const struct rk808_reg_data rk805_pre_init_reg[] = {
185
185
{RK805_BUCK4_CONFIG_REG , RK805_BUCK3_4_ILMAX_MASK ,
186
186
RK805_BUCK4_ILMAX_3500MA },
187
187
{RK805_BUCK4_CONFIG_REG , BUCK_ILMIN_MASK , BUCK_ILMIN_400MA },
188
- {RK805_GPIO_IO_POL_REG , SLP_SD_MSK , SLEEP_FUN },
189
188
{RK805_THERMAL_REG , TEMP_HOTDIE_MSK , TEMP115C },
190
189
};
191
190
@@ -448,21 +447,6 @@ static const struct regmap_irq_chip rk818_irq_chip = {
448
447
449
448
static struct i2c_client * rk808_i2c_client ;
450
449
451
- static void rk805_device_shutdown_prepare (void )
452
- {
453
- int ret ;
454
- struct rk808 * rk808 = i2c_get_clientdata (rk808_i2c_client );
455
-
456
- if (!rk808 )
457
- return ;
458
-
459
- ret = regmap_update_bits (rk808 -> regmap ,
460
- RK805_GPIO_IO_POL_REG ,
461
- SLP_SD_MSK , SHUTDOWN_FUN );
462
- if (ret )
463
- dev_err (& rk808_i2c_client -> dev , "Failed to shutdown device!\n" );
464
- }
465
-
466
450
static void rk808_pm_power_off (void )
467
451
{
468
452
int ret ;
@@ -496,6 +480,12 @@ static void rk8xx_shutdown(struct i2c_client *client)
496
480
int ret ;
497
481
498
482
switch (rk808 -> variant ) {
483
+ case RK805_ID :
484
+ ret = regmap_update_bits (rk808 -> regmap ,
485
+ RK805_GPIO_IO_POL_REG ,
486
+ SLP_SD_MSK ,
487
+ SHUTDOWN_FUN );
488
+ break ;
499
489
case RK809_ID :
500
490
case RK817_ID :
501
491
ret = regmap_update_bits (rk808 -> regmap ,
@@ -574,7 +564,6 @@ static int rk808_probe(struct i2c_client *client,
574
564
nr_pre_init_regs = ARRAY_SIZE (rk805_pre_init_reg );
575
565
cells = rk805s ;
576
566
nr_cells = ARRAY_SIZE (rk805s );
577
- rk808 -> pm_pwroff_prep_fn = rk805_device_shutdown_prepare ;
578
567
break ;
579
568
case RK808_ID :
580
569
rk808 -> regmap_cfg = & rk808_regmap_config ;
@@ -653,7 +642,6 @@ static int rk808_probe(struct i2c_client *client,
653
642
if (of_property_read_bool (np , "rockchip,system-power-controller" )) {
654
643
rk808_i2c_client = client ;
655
644
pm_power_off = rk808_pm_power_off ;
656
- pm_power_off_prepare = rk808 -> pm_pwroff_prep_fn ;
657
645
}
658
646
659
647
return 0 ;
@@ -676,13 +664,6 @@ static int rk808_remove(struct i2c_client *client)
676
664
if (pm_power_off == rk808_pm_power_off )
677
665
pm_power_off = NULL ;
678
666
679
- /**
680
- * As above, check if the pointer is set by us before overwrite.
681
- */
682
- if (rk808 -> pm_pwroff_prep_fn &&
683
- pm_power_off_prepare == rk808 -> pm_pwroff_prep_fn )
684
- pm_power_off_prepare = NULL ;
685
-
686
667
return 0 ;
687
668
}
688
669
@@ -692,6 +673,12 @@ static int __maybe_unused rk8xx_suspend(struct device *dev)
692
673
int ret = 0 ;
693
674
694
675
switch (rk808 -> variant ) {
676
+ case RK805_ID :
677
+ ret = regmap_update_bits (rk808 -> regmap ,
678
+ RK805_GPIO_IO_POL_REG ,
679
+ SLP_SD_MSK ,
680
+ SLEEP_FUN );
681
+ break ;
695
682
case RK809_ID :
696
683
case RK817_ID :
697
684
ret = regmap_update_bits (rk808 -> regmap ,
0 commit comments