[PATCH] Revert "power: pmic: rk8xx: Support sysreset shutdown method"

Chris Morgan macroalpha82 at gmail.com
Fri Jul 22 19:24:21 CEST 2022


From: Chris Morgan <macromorgan at hotmail.com>

This reverts commit ad607512f5757f4485968efd5bcf2c0245a8a235.

It was found during extensive testing that this causes problems
on certain boards. I was able to test this patch on a second
device (an Anbernic RG353) and it resulted in similar failures.

Signed-off-by: Chris Morgan <macromorgan at hotmail.com>
---
 drivers/power/pmic/rk8xx.c | 50 +-------------------------------------
 1 file changed, 1 insertion(+), 49 deletions(-)

diff --git a/drivers/power/pmic/rk8xx.c b/drivers/power/pmic/rk8xx.c
index 25ef621f8d..8d703112c3 100644
--- a/drivers/power/pmic/rk8xx.c
+++ b/drivers/power/pmic/rk8xx.c
@@ -6,50 +6,10 @@
 
 #include <common.h>
 #include <dm.h>
-#include <dm/lists.h>
 #include <errno.h>
 #include <log.h>
 #include <power/rk8xx_pmic.h>
 #include <power/pmic.h>
-#include <sysreset.h>
-
-static int rk8xx_sysreset_request(struct udevice *dev, enum sysreset_t type)
-{
-	struct rk8xx_priv *priv = dev_get_priv(dev->parent);
-
-	if (type != SYSRESET_POWER_OFF)
-		return -EPROTONOSUPPORT;
-
-	switch (priv->variant) {
-	case RK805_ID:
-	case RK808_ID:
-	case RK816_ID:
-	case RK818_ID:
-		pmic_clrsetbits(dev->parent, REG_DEVCTRL, 0, BIT(0));
-		break;
-	case RK809_ID:
-	case RK817_ID:
-		pmic_clrsetbits(dev->parent, RK817_REG_SYS_CFG3, 0,
-				BIT(0));
-		break;
-	default:
-		printf("Unknown PMIC RK%x: Cannot shutdown\n",
-		       priv->variant);
-		return -EPROTONOSUPPORT;
-	};
-
-	return -EINPROGRESS;
-}
-
-static struct sysreset_ops rk8xx_sysreset_ops = {
-	.request	= rk8xx_sysreset_request,
-};
-
-U_BOOT_DRIVER(rk8xx_sysreset) = {
-	.name		= "rk8xx_sysreset",
-	.id		= UCLASS_SYSRESET,
-	.ops		= &rk8xx_sysreset_ops,
-};
 
 /* In the event of a plug-in and the appropriate option has been
  * selected, we simply shutdown instead of continue the normal boot
@@ -133,7 +93,7 @@ static int rk8xx_read(struct udevice *dev, uint reg, uint8_t *buff, int len)
 static int rk8xx_bind(struct udevice *dev)
 {
 	ofnode regulators_node;
-	int children, ret;
+	int children;
 
 	regulators_node = dev_read_subnode(dev, "regulators");
 	if (!ofnode_valid(regulators_node)) {
@@ -144,14 +104,6 @@ static int rk8xx_bind(struct udevice *dev)
 
 	debug("%s: '%s' - found regulators subnode\n", __func__, dev->name);
 
-	if (CONFIG_IS_ENABLED(SYSRESET)) {
-		ret = device_bind_driver_to_node(dev, "rk8xx_sysreset",
-						 "rk8xx_sysreset",
-						 dev_ofnode(dev), NULL);
-		if (ret)
-			return ret;
-	}
-
 	children = pmic_bind_children(dev, regulators_node, pmic_children_info);
 	if (!children)
 		debug("%s: %s - no child found\n", __func__, dev->name);
-- 
2.25.1



More information about the U-Boot mailing list