power: pmic: rk8xx: save PMIC_POWER_EN register for rk817/rk809
rk817/rk809 must restore the PMIC_POWER_EN OTP value before the system reboot. Change-Id: Ia62cb8f5b0dc9fef8a32a3af5f087c55a9888d78 Signed-off-by: Shengfei Xu <xsf@rock-chips.com>
This commit is contained in:
parent
10e1f9ebb7
commit
9e9e0e07b5
|
|
@ -168,6 +168,8 @@ static int rk8xx_probe(struct udevice *dev)
|
|||
int ret = 0, i, show_variant;
|
||||
uint8_t msb, lsb, id_msb, id_lsb;
|
||||
uint8_t on_source = 0, off_source = 0;
|
||||
uint8_t power_en0, power_en1, power_en2, power_en3;
|
||||
uint8_t value;
|
||||
|
||||
/* read Chip variant */
|
||||
if (device_is_compatible(dev, "rockchip,rk817") ||
|
||||
|
|
@ -206,6 +208,15 @@ static int rk8xx_probe(struct udevice *dev)
|
|||
init_data = rk817_init_reg;
|
||||
init_data_num = ARRAY_SIZE(rk817_init_reg);
|
||||
#endif
|
||||
power_en0 = pmic_reg_read(dev, RK817_POWER_EN0);
|
||||
power_en1 = pmic_reg_read(dev, RK817_POWER_EN1);
|
||||
power_en2 = pmic_reg_read(dev, RK817_POWER_EN2);
|
||||
power_en3 = pmic_reg_read(dev, RK817_POWER_EN3);
|
||||
|
||||
value = (power_en0 & 0x0f) | ((power_en1 & 0x0f) << 4);
|
||||
pmic_reg_write(dev, RK817_POWER_EN_SAVE0, value);
|
||||
value = (power_en2 & 0x0f) | ((power_en3 & 0x0f) << 4);
|
||||
pmic_reg_write(dev, RK817_POWER_EN_SAVE1, value);
|
||||
break;
|
||||
default:
|
||||
printf("Unknown PMIC: RK%x!!\n", priv->variant);
|
||||
|
|
|
|||
|
|
@ -192,6 +192,16 @@ enum {
|
|||
RK818_ID = 0x8180,
|
||||
};
|
||||
|
||||
enum {
|
||||
RK817_POWER_EN0 = 0xb1,
|
||||
RK817_POWER_EN1,
|
||||
RK817_POWER_EN2,
|
||||
RK817_POWER_EN3,
|
||||
};
|
||||
|
||||
#define RK817_POWER_EN_SAVE0 0x99
|
||||
#define RK817_POWER_EN_SAVE1 0xa4
|
||||
|
||||
#define RK817_ID_MSB 0xed
|
||||
#define RK817_ID_LSB 0xee
|
||||
#define RK8XX_ID_MSK 0xfff0
|
||||
|
|
|
|||
Loading…
Reference in New Issue