* [PATCH] clk: keystone: syscon-clk: Do not use syscon helper to build regmap
@ 2025-01-23 18:19 Andrew Davis
2025-01-23 20:02 ` Nishanth Menon
2025-03-04 19:49 ` Stephen Boyd
0 siblings, 2 replies; 5+ messages in thread
From: Andrew Davis @ 2025-01-23 18:19 UTC (permalink / raw)
To: Nishanth Menon, Vignesh Raghavendra, Santosh Shilimkar,
Michael Turquette, Stephen Boyd
Cc: linux-kernel, linux-clk, 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/clk/keystone/syscon-clk.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/drivers/clk/keystone/syscon-clk.c b/drivers/clk/keystone/syscon-clk.c
index 935d9a2d8c2b3..073c2ebcdf6af 100644
--- a/drivers/clk/keystone/syscon-clk.c
+++ b/drivers/clk/keystone/syscon-clk.c
@@ -105,6 +105,12 @@ static struct clk_hw
return &priv->hw;
}
+static const struct regmap_config ti_syscon_regmap_cfg = {
+ .reg_bits = 32,
+ .val_bits = 32,
+ .reg_stride = 4,
+};
+
static int ti_syscon_gate_clk_probe(struct platform_device *pdev)
{
const struct ti_syscon_gate_clk_data *data, *p;
@@ -113,12 +119,18 @@ static int ti_syscon_gate_clk_probe(struct platform_device *pdev)
int num_clks, num_parents, i;
const char *parent_name;
struct regmap *regmap;
+ void __iomem *base;
data = device_get_match_data(dev);
if (!data)
return -EINVAL;
- regmap = device_node_to_regmap(dev->of_node);
+ base = devm_platform_ioremap_resource(pdev, 0);
+ if (IS_ERR(base))
+ return dev_err_probe(dev, PTR_ERR(base),
+ "failed to get base memory resource\n");
+
+ regmap = regmap_init_mmio(dev, base, &ti_syscon_regmap_cfg);
if (IS_ERR(regmap))
return dev_err_probe(dev, PTR_ERR(regmap),
"failed to get regmap\n");
--
2.39.2
^ permalink raw reply related [flat|nested] 5+ messages in thread* Re: [PATCH] clk: keystone: syscon-clk: Do not use syscon helper to build regmap
2025-01-23 18:19 [PATCH] clk: keystone: syscon-clk: Do not use syscon helper to build regmap Andrew Davis
@ 2025-01-23 20:02 ` Nishanth Menon
2025-01-24 19:01 ` Stephen Boyd
2025-03-04 19:49 ` Stephen Boyd
1 sibling, 1 reply; 5+ messages in thread
From: Nishanth Menon @ 2025-01-23 20:02 UTC (permalink / raw)
To: Andrew Davis, Stephen Boyd
Cc: Vignesh Raghavendra, Santosh Shilimkar, Michael Turquette,
Stephen Boyd, linux-kernel, linux-clk, Rob Herring (Arm),
Lee Jones
On 12:19-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>
Tested-by: Nishanth Menon <nm@ti.com>
Could we get this routed to master as fixes asap please to get a sane 6.14?
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
Cc Rob and Lee
> ---
> drivers/clk/keystone/syscon-clk.c | 14 +++++++++++++-
> 1 file changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/clk/keystone/syscon-clk.c b/drivers/clk/keystone/syscon-clk.c
> index 935d9a2d8c2b3..073c2ebcdf6af 100644
> --- a/drivers/clk/keystone/syscon-clk.c
> +++ b/drivers/clk/keystone/syscon-clk.c
> @@ -105,6 +105,12 @@ static struct clk_hw
> return &priv->hw;
> }
>
> +static const struct regmap_config ti_syscon_regmap_cfg = {
> + .reg_bits = 32,
> + .val_bits = 32,
> + .reg_stride = 4,
> +};
> +
> static int ti_syscon_gate_clk_probe(struct platform_device *pdev)
> {
> const struct ti_syscon_gate_clk_data *data, *p;
> @@ -113,12 +119,18 @@ static int ti_syscon_gate_clk_probe(struct platform_device *pdev)
> int num_clks, num_parents, i;
> const char *parent_name;
> struct regmap *regmap;
> + void __iomem *base;
>
> data = device_get_match_data(dev);
> if (!data)
> return -EINVAL;
>
> - regmap = device_node_to_regmap(dev->of_node);
> + base = devm_platform_ioremap_resource(pdev, 0);
> + if (IS_ERR(base))
> + return dev_err_probe(dev, PTR_ERR(base),
> + "failed to get base memory resource\n");
> +
> + regmap = regmap_init_mmio(dev, base, &ti_syscon_regmap_cfg);
> if (IS_ERR(regmap))
> return dev_err_probe(dev, PTR_ERR(regmap),
> "failed to get regmap\n");
> --
> 2.39.2
>
--
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3 1A34 DDB5 849D 1736 249D
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH] clk: keystone: syscon-clk: Do not use syscon helper to build regmap
2025-01-23 20:02 ` Nishanth Menon
@ 2025-01-24 19:01 ` Stephen Boyd
2025-01-24 22:12 ` Nishanth Menon
0 siblings, 1 reply; 5+ messages in thread
From: Stephen Boyd @ 2025-01-24 19:01 UTC (permalink / raw)
To: Andrew Davis, Nishanth Menon
Cc: Vignesh Raghavendra, Santosh Shilimkar, Michael Turquette,
linux-kernel, linux-clk, Rob Herring, Lee Jones
Quoting Nishanth Menon (2025-01-23 12:02:09)
> On 12:19-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
Please reference the commit where this won't work anymore. It's hard to
know the urgency without this information.
> > 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>
>
> Tested-by: Nishanth Menon <nm@ti.com>
>
> Could we get this routed to master as fixes asap please to get a sane 6.14?
>
Sure. Can you resend with a Fixes tag?
> 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
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] clk: keystone: syscon-clk: Do not use syscon helper to build regmap
2025-01-24 19:01 ` Stephen Boyd
@ 2025-01-24 22:12 ` Nishanth Menon
0 siblings, 0 replies; 5+ messages in thread
From: Nishanth Menon @ 2025-01-24 22:12 UTC (permalink / raw)
To: Stephen Boyd
Cc: Andrew Davis, Vignesh Raghavendra, Santosh Shilimkar,
Michael Turquette, linux-kernel, linux-clk, Rob Herring,
Lee Jones
On 11:01-20250124, Stephen Boyd wrote:
> Quoting Nishanth Menon (2025-01-23 12:02:09)
> > On 12:19-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
>
> Please reference the commit where this won't work anymore. It's hard to
> know the urgency without this information.
>
> > > 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>
> >
> > Tested-by: Nishanth Menon <nm@ti.com>
> >
> > Could we get this routed to master as fixes asap please to get a sane 6.14?
> >
>
> Sure. Can you resend with a Fixes tag?
I think it is less urgent for immediate window given Rob has posted
a restoration of behavior fixup[1]. This patch is still good to be
merged based on [2].
[1] https://lore.kernel.org/all/20250124191644.2309790-1-robh@kernel.org/
[2] https://lore.kernel.org/all/CAL_JsqKVydDqmr-gyn1wt=1PO_p1NMze+1D+4qXWxGiGVLV9EA@mail.gmail.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
> >
--
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3 1A34 DDB5 849D 1736 249D
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] clk: keystone: syscon-clk: Do not use syscon helper to build regmap
2025-01-23 18:19 [PATCH] clk: keystone: syscon-clk: Do not use syscon helper to build regmap Andrew Davis
2025-01-23 20:02 ` Nishanth Menon
@ 2025-03-04 19:49 ` Stephen Boyd
1 sibling, 0 replies; 5+ messages in thread
From: Stephen Boyd @ 2025-03-04 19:49 UTC (permalink / raw)
To: Andrew Davis, Michael Turquette, Nishanth Menon,
Santosh Shilimkar, Vignesh Raghavendra
Cc: linux-kernel, linux-clk, Andrew Davis
Quoting Andrew Davis (2025-01-23 10:19:13)
> 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>
> ---
Applied to clk-next
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-03-04 19:49 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-23 18:19 [PATCH] clk: keystone: syscon-clk: Do not use syscon helper to build regmap Andrew Davis
2025-01-23 20:02 ` Nishanth Menon
2025-01-24 19:01 ` Stephen Boyd
2025-01-24 22:12 ` Nishanth Menon
2025-03-04 19:49 ` Stephen Boyd
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox