From 0c4625ac7dab5048b588d55e43ace109246df932 Mon Sep 17 00:00:00 2001
From: =?utf8?q?Pali=20Roh=C3=A1r?= <pali@kernel.org>
Date: Mon, 14 Feb 2022 11:34:25 +0100
Subject: [PATCH] watchdog: armada_37xx: Convert to official DT bindings
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit

Official DT bindings have only one reg property: watchdog address space.
Convert armada-37xx-wdt.c driver to offical DT bindings and access sel_reg
register via MVEBU_REGISTER() macro, as its value (required by U-Boot
driver) is not in DT yet. In later stage can be driver cleaned to not use
it.

This change would allow U-Boot to use A3720 watchdog DTS structure from
Linux kernel.

Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
---
 arch/arm/dts/armada-37xx.dtsi      | 3 +--
 drivers/watchdog/armada-37xx-wdt.c | 7 ++-----
 2 files changed, 3 insertions(+), 7 deletions(-)

diff --git a/arch/arm/dts/armada-37xx.dtsi b/arch/arm/dts/armada-37xx.dtsi
index a427d9cf62..4c686c380c 100644
--- a/arch/arm/dts/armada-37xx.dtsi
+++ b/arch/arm/dts/armada-37xx.dtsi
@@ -109,8 +109,7 @@
 
 			wdt: watchdog-timer@8300 {
 				compatible = "marvell,armada-3700-wdt";
-				reg = <0xd064 0x4>,
-				      <0x8300 0x40>;
+				reg = <0x8300 0x40>;
 			};
 
 			nb_periph_clk: nb-periph-clk@13000 {
diff --git a/drivers/watchdog/armada-37xx-wdt.c b/drivers/watchdog/armada-37xx-wdt.c
index 6b5e1ab6fc..2e119b9b5a 100644
--- a/drivers/watchdog/armada-37xx-wdt.c
+++ b/drivers/watchdog/armada-37xx-wdt.c
@@ -155,12 +155,9 @@ static int a37xx_wdt_probe(struct udevice *dev)
 	struct a37xx_wdt *priv = dev_get_priv(dev);
 	fdt_addr_t addr;
 
-	addr = dev_read_addr_index(dev, 0);
-	if (addr == FDT_ADDR_T_NONE)
-		goto err;
-	priv->sel_reg = (void __iomem *)addr;
+	priv->sel_reg = (void __iomem *)MVEBU_REGISTER(0x0d064);
 
-	addr = dev_read_addr_index(dev, 1);
+	addr = dev_read_addr(dev);
 	if (addr == FDT_ADDR_T_NONE)
 		goto err;
 	priv->reg = (void __iomem *)addr;
-- 
2.39.5