From 25fdb7ec91499602ac16a876267328613bd12e68 Mon Sep 17 00:00:00 2001 From: shengfei Xu Date: Sun, 21 Jun 2020 11:33:05 +0800 Subject: [PATCH] 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 Change-Id: If6df2b2f190951abe9bb31fbd18d9af47e145038 Signed-off-by: Elaine Zhang --- drivers/mfd/rk808.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/drivers/mfd/rk808.c b/drivers/mfd/rk808.c index b0b75253c785..4af37938f8bb 100644 --- a/drivers/mfd/rk808.c +++ b/drivers/mfd/rk808.c @@ -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,