Messages in this thread Patch in this message | | | From | Jianqun Xu <> | Subject | [PATCH v2 3/3] soc: rockchip: io-domain: do more thing about regulator notify | Date | Tue, 17 Aug 2021 11:38:48 +0800 |
| |
Do a fix to rockchip io-domain, follow this orders:
* system running state -> io-domain vsel to 3.3V -> regulator_enable -> vsel change according to regulator voltage
* system running state -> io-domain vsel to 3.3V -> regulator_disable
Found on some Rockchip SoCs, the regulator enable or disable without care about the io-domain maybe caused soc damaged.
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com> --- v2: - use "uV = regulator_get_voltage(supply->reg);" but from notify data v1: - first version
drivers/soc/rockchip/io-domain.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/drivers/soc/rockchip/io-domain.c b/drivers/soc/rockchip/io-domain.c index cf8182fc3642..3c59077fafb1 100644 --- a/drivers/soc/rockchip/io-domain.c +++ b/drivers/soc/rockchip/io-domain.c @@ -123,6 +123,12 @@ static int rockchip_iodomain_notify(struct notifier_block *nb, } else if (event & (REGULATOR_EVENT_VOLTAGE_CHANGE | REGULATOR_EVENT_ABORT_VOLTAGE_CHANGE)) { uV = (unsigned long)data; + } else if (event & REGULATOR_EVENT_PRE_ENABLE) { + uV = MAX_VOLTAGE_3_3; + } else if (event & REGULATOR_EVENT_PRE_DISABLE) { + uV = MAX_VOLTAGE_3_3; + } else if (event & REGULATOR_EVENT_ENABLE) { + uV = regulator_get_voltage(supply->reg); } else { return NOTIFY_OK; } -- 2.25.1
| |