[PATCH] rockchip: efuse: fix rk3399 reading multiple values

John Keeping john at metanate.com
Mon Apr 17 18:09:14 CEST 2023


Update rk3399 to match the pattern in the other device-specific
implementations to ensure the previous address is cleared when reading
multiple blocks.

Signed-off-by: John Keeping <john at metanate.com>
---
 drivers/misc/rockchip-efuse.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/misc/rockchip-efuse.c b/drivers/misc/rockchip-efuse.c
index 2f96b79ea4..d302271239 100644
--- a/drivers/misc/rockchip-efuse.c
+++ b/drivers/misc/rockchip-efuse.c
@@ -207,8 +207,8 @@ static int rockchip_rk3399_efuse_read(struct udevice *dev, int offset,
 	udelay(1);
 
 	while (size--) {
-		setbits_le32(efuse->base + EFUSE_CTRL,
-			     EFUSE_STROBE | RK3399_ADDR(offset++));
+		clrsetbits_le32(efuse->base + EFUSE_CTRL, RK3399_A_MASK,
+				EFUSE_STROBE | RK3399_ADDR(offset++));
 		udelay(1);
 		*buffer++ = readl(efuse->base + EFUSE_DOUT);
 		clrbits_le32(efuse->base + EFUSE_CTRL, EFUSE_STROBE);
-- 
2.40.0



More information about the U-Boot mailing list