mfd: rk808: modify the sequence of the sleep pin function and polarity

The sequence of operations is as follows:
1. disable the sleep pin function
2. modify the sleep pin polarity
3. delay 3 32k clock cycle
4. select the sleep pin function

Signed-off-by: shengfei Xu <xsf@rock-chips.com>
Change-Id: If6df2b2f190951abe9bb31fbd18d9af47e145038
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
This commit is contained in:
shengfei Xu
2020-06-21 11:33:05 +08:00
committed by Tao Huang
parent f26962f3fb
commit 25fdb7ec91

View File

@@ -1152,6 +1152,19 @@ static int rk808_probe(struct i2c_client *client,
rk808->i2c = client;
rk808_i2c_client = client;
for (i = 0; i < nr_pre_init_regs; i++) {
ret = regmap_update_bits(rk808->regmap,
pre_init_reg[i].addr,
pre_init_reg[i].mask,
pre_init_reg[i].value);
if (ret) {
dev_err(&client->dev,
"0x%x write err\n",
pre_init_reg[i].addr);
return ret;
}
}
if (pinctrl_init) {
ret = pinctrl_init(&client->dev, rk808);
if (ret)
@@ -1166,19 +1179,6 @@ static int rk808_probe(struct i2c_client *client,
return ret;
}
for (i = 0; i < nr_pre_init_regs; i++) {
ret = regmap_update_bits(rk808->regmap,
pre_init_reg[i].addr,
pre_init_reg[i].mask,
pre_init_reg[i].value);
if (ret) {
dev_err(&client->dev,
"0x%x write err\n",
pre_init_reg[i].addr);
return ret;
}
}
if (battery_irq_chip) {
ret = regmap_add_irq_chip(rk808->regmap, client->irq,
IRQF_ONESHOT | IRQF_SHARED, -1,