* [PATCH] soc: ti: k3-socinfo: Do not use syscon helper to build regmap
@ 2025-01-23 18:17 Andrew Davis
2025-01-23 20:07 ` Nishanth Menon
2025-02-26 18:49 ` Nishanth Menon
0 siblings, 2 replies; 3+ messages in thread
From: Andrew Davis @ 2025-01-23 18:17 UTC (permalink / raw)
To: Nishanth Menon, Vignesh Raghavendra, Santosh Shilimkar
Cc: linux-arm-kernel, linux-kernel, Andrew Davis
The syscon helper device_node_to_regmap() is used to fetch a regmap
registered to a device node. It also currently creates this regmap
if the node did not already have a regmap associated with it. This
should only be used on "syscon" nodes. This driver is not such a
device and instead uses device_node_to_regmap() on its own node as
a hacky way to create a regmap for itself.
This will not work going forward and so we should create our regmap
the normal way by defining our regmap_config, fetching our memory
resource, then using the normal regmap_init_mmio() function.
Signed-off-by: Andrew Davis <afd@ti.com>
---
drivers/soc/ti/k3-socinfo.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/drivers/soc/ti/k3-socinfo.c b/drivers/soc/ti/k3-socinfo.c
index 4fb0f0a248288..704039eb3c078 100644
--- a/drivers/soc/ti/k3-socinfo.c
+++ b/drivers/soc/ti/k3-socinfo.c
@@ -105,6 +105,12 @@ k3_chipinfo_variant_to_sr(unsigned int partno, unsigned int variant,
return -ENODEV;
}
+static const struct regmap_config k3_chipinfo_regmap_cfg = {
+ .reg_bits = 32,
+ .val_bits = 32,
+ .reg_stride = 4,
+};
+
static int k3_chipinfo_probe(struct platform_device *pdev)
{
struct device_node *node = pdev->dev.of_node;
@@ -112,13 +118,18 @@ static int k3_chipinfo_probe(struct platform_device *pdev)
struct device *dev = &pdev->dev;
struct soc_device *soc_dev;
struct regmap *regmap;
+ void __iomem *base;
u32 partno_id;
u32 variant;
u32 jtag_id;
u32 mfg;
int ret;
- regmap = device_node_to_regmap(node);
+ base = devm_platform_ioremap_resource(pdev, 0);
+ if (IS_ERR(base))
+ return PTR_ERR(base);
+
+ regmap = regmap_init_mmio(dev, base, &k3_chipinfo_regmap_cfg);
if (IS_ERR(regmap))
return PTR_ERR(regmap);
--
2.39.2
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] soc: ti: k3-socinfo: Do not use syscon helper to build regmap
2025-01-23 18:17 [PATCH] soc: ti: k3-socinfo: Do not use syscon helper to build regmap Andrew Davis
@ 2025-01-23 20:07 ` Nishanth Menon
2025-02-26 18:49 ` Nishanth Menon
1 sibling, 0 replies; 3+ messages in thread
From: Nishanth Menon @ 2025-01-23 20:07 UTC (permalink / raw)
To: Andrew Davis
Cc: Vignesh Raghavendra, Santosh Shilimkar, linux-arm-kernel,
linux-kernel, Rob Herring (Arm), Lee Jones
On 12:17-20250123, Andrew Davis wrote:
> The syscon helper device_node_to_regmap() is used to fetch a regmap
> registered to a device node. It also currently creates this regmap
> if the node did not already have a regmap associated with it. This
> should only be used on "syscon" nodes. This driver is not such a
> device and instead uses device_node_to_regmap() on its own node as
> a hacky way to create a regmap for itself.
>
> This will not work going forward and so we should create our regmap
> the normal way by defining our regmap_config, fetching our memory
> resource, then using the normal regmap_init_mmio() function.
>
> Signed-off-by: Andrew Davis <afd@ti.com>
> ---
This is part of the fixes TI K3 platforms boot issues reported in
https://lore.kernel.org/all/b2413460-ec8b-4c77-99b8-4c32b262439a@ti.com/
on the latest linus master v6.13-5001-gd0d106a2bd21 + linux
next-20250123
Total set of patches tested with:
https://lore.kernel.org/all/20250119182121.3956546-1-vaishnav.a@ti.com/
https://lore.kernel.org/r/20250123181726.597144-1-afd@ti.com
https://lore.kernel.org/r/20250123181913.597304-1-afd@ti.com
https://lore.kernel.org/r/20250123182059.597491-1-afd@ti.com
https://lore.kernel.org/r/20250123182234.597665-1-afd@ti.com
I will try and get this in at the earliest possible window. Thanks for
providing a fix.
Cc Rob and Lee
> drivers/soc/ti/k3-socinfo.c | 13 ++++++++++++-
> 1 file changed, 12 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/soc/ti/k3-socinfo.c b/drivers/soc/ti/k3-socinfo.c
> index 4fb0f0a248288..704039eb3c078 100644
> --- a/drivers/soc/ti/k3-socinfo.c
> +++ b/drivers/soc/ti/k3-socinfo.c
> @@ -105,6 +105,12 @@ k3_chipinfo_variant_to_sr(unsigned int partno, unsigned int variant,
> return -ENODEV;
> }
>
> +static const struct regmap_config k3_chipinfo_regmap_cfg = {
> + .reg_bits = 32,
> + .val_bits = 32,
> + .reg_stride = 4,
> +};
> +
> static int k3_chipinfo_probe(struct platform_device *pdev)
> {
> struct device_node *node = pdev->dev.of_node;
> @@ -112,13 +118,18 @@ static int k3_chipinfo_probe(struct platform_device *pdev)
> struct device *dev = &pdev->dev;
> struct soc_device *soc_dev;
> struct regmap *regmap;
> + void __iomem *base;
> u32 partno_id;
> u32 variant;
> u32 jtag_id;
> u32 mfg;
> int ret;
>
> - regmap = device_node_to_regmap(node);
> + base = devm_platform_ioremap_resource(pdev, 0);
> + if (IS_ERR(base))
> + return PTR_ERR(base);
> +
> + regmap = regmap_init_mmio(dev, base, &k3_chipinfo_regmap_cfg);
> if (IS_ERR(regmap))
> return PTR_ERR(regmap);
>
> --
> 2.39.2
>
--
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3 1A34 DDB5 849D 1736 249D
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] soc: ti: k3-socinfo: Do not use syscon helper to build regmap
2025-01-23 18:17 [PATCH] soc: ti: k3-socinfo: Do not use syscon helper to build regmap Andrew Davis
2025-01-23 20:07 ` Nishanth Menon
@ 2025-02-26 18:49 ` Nishanth Menon
1 sibling, 0 replies; 3+ messages in thread
From: Nishanth Menon @ 2025-02-26 18:49 UTC (permalink / raw)
To: Vignesh Raghavendra, Santosh Shilimkar, Andrew Davis
Cc: Nishanth Menon, linux-arm-kernel, linux-kernel
Hi Andrew Davis,
On Thu, 23 Jan 2025 12:17:26 -0600, Andrew Davis wrote:
> The syscon helper device_node_to_regmap() is used to fetch a regmap
> registered to a device node. It also currently creates this regmap
> if the node did not already have a regmap associated with it. This
> should only be used on "syscon" nodes. This driver is not such a
> device and instead uses device_node_to_regmap() on its own node as
> a hacky way to create a regmap for itself.
>
> [...]
I have applied the following to branch ti-drivers-soc-next on [1].
Thank you!
[1/1] soc: ti: k3-socinfo: Do not use syscon helper to build regmap
commit: a5caf03188e44388e8c618dcbe5fffad1a249385
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent up the chain during
the next merge window (or sooner if it is a relevant bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
[1] https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux.git
--
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3 1A34 DDB5 849D 1736 249D
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-02-26 18:49 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-23 18:17 [PATCH] soc: ti: k3-socinfo: Do not use syscon helper to build regmap Andrew Davis
2025-01-23 20:07 ` Nishanth Menon
2025-02-26 18:49 ` Nishanth Menon
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox