From: Jonas Karlman <jonas@kwiboo.se>
Date: Sun, 2 Jul 2023 12:41:15 +0000 (+0000)
Subject: power: regulator: rk8xx: Add 500us delay after LDO regulator is enabled
X-Git-Tag: v2025.01-rc5-pxa1908~909^2~8
X-Git-Url: http://git.dujemihanovic.xyz/%22http:/www.sics.se/static/html/%7B%7B%20%28.OutputFormats.Get?a=commitdiff_plain;h=fea7a29cc8d86a0bbcb4bcf740d47924839b1f81;p=u-boot.git

power: regulator: rk8xx: Add 500us delay after LDO regulator is enabled

A quick power cycle of a LDO regulator during dw-mmc signal voltage
change has shown that SD-card does not always get recognized.

Linux driver use an enable_time of 400us for LDO regulators. Apply a
500us delay when a LDO regulator is enabled to fix possible issues.

Fixes: 94afc1cb466a ("power: regulator: rk8xx: update the driver for rk808 and rk818")
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: elaine.zhang<elaine.zhang@rock-chips.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
---

diff --git a/drivers/power/regulator/rk8xx.c b/drivers/power/regulator/rk8xx.c
index 0ee07ad299..e95640a39b 100644
--- a/drivers/power/regulator/rk8xx.c
+++ b/drivers/power/regulator/rk8xx.c
@@ -12,6 +12,7 @@
 #include <dm.h>
 #include <errno.h>
 #include <log.h>
+#include <linux/delay.h>
 #include <power/rk8xx_pmic.h>
 #include <power/pmic.h>
 #include <power/regulator.h>
@@ -616,6 +617,9 @@ static int _ldo_set_enable(struct udevice *pmic, int ldo, bool enable)
 		break;
 	}
 
+	if (enable)
+		udelay(500);
+
 	return ret;
 }