[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250224092923.2648680-1-horatiu.vultur@microchip.com>
Date: Mon, 24 Feb 2025 10:29:23 +0100
From: Horatiu Vultur <horatiu.vultur@...rochip.com>
To: <p.zabel@...gutronix.de>, <Steen.Hegelund@...rochip.com>,
<daniel.machon@...rochip.com>, <UNGLinuxDriver@...rochip.com>,
<herve.codina@...tlin.com>
CC: <linux-arm-kernel@...ts.infradead.org>, <linux-kernel@...r.kernel.org>,
Horatiu Vultur <horatiu.vultur@...rochip.com>
Subject: [PATCH] reset: mchp: sparx5: Fix for lan966x
With the blamed commit it seems that lan966x doesn't seem to boot
anymore when the internal CPU is used.
The reason seems to be the usage of the devm_of_iomap, if we replace
this with of_iomap, this seems to fix the issue as we use the same
region also for other devices.
Fixes: 0426a920d6269c ("reset: mchp: sparx5: Map cpu-syscon locally in case of LAN966x")
Signed-off-by: Horatiu Vultur <horatiu.vultur@...rochip.com>
---
drivers/reset/reset-microchip-sparx5.c | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/drivers/reset/reset-microchip-sparx5.c b/drivers/reset/reset-microchip-sparx5.c
index aa5464be7053b..5a75f9833a91a 100644
--- a/drivers/reset/reset-microchip-sparx5.c
+++ b/drivers/reset/reset-microchip-sparx5.c
@@ -8,6 +8,7 @@
*/
#include <linux/mfd/syscon.h>
#include <linux/of.h>
+#include <linux/of_address.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/property.h>
@@ -72,14 +73,17 @@ static struct regmap *mchp_lan966x_syscon_to_regmap(struct device *dev,
struct device_node *syscon_np)
{
struct regmap_config regmap_config = mchp_lan966x_syscon_regmap_config;
- resource_size_t size;
+ struct resource res;
void __iomem *base;
- base = devm_of_iomap(dev, syscon_np, 0, &size);
- if (IS_ERR(base))
- return ERR_CAST(base);
+ if (of_address_to_resource(syscon_np, 0, &res))
+ return ERR_PTR(-ENOMEM);
- regmap_config.max_register = size - 4;
+ base = of_iomap(syscon_np, 0);
+ if (!base)
+ return ERR_PTR(-ENOMEM);
+
+ regmap_config.max_register = resource_size(&res) - 4;
return devm_regmap_init_mmio(dev, base, ®map_config);
}
--
2.34.1
Powered by blists - more mailing lists