public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
* [RESEND 1/1] phy: freescale: imx8qm-hsio: provide regmap names
@ 2026-02-11 14:49 Alexander Stein
  2026-02-11 15:31 ` Frank Li
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Alexander Stein @ 2026-02-11 14:49 UTC (permalink / raw)
  To: Vinod Koul, Neil Armstrong, Frank Li, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam
  Cc: Alexander Stein, linux-phy, imx, linux-arm-kernel, linux-kernel

This driver uses multiple regmaps, which will causes name conflicts
in debugfs like:
  debugfs: '5f1a0000.phy' already exists in 'regmap'
Fix this by using a dedicated regmap config for each resource, each
having a dedicated regmap name.

Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
---
Same as the one sent in December but with an updated CC list.

 drivers/phy/freescale/phy-fsl-imx8qm-hsio.c | 23 +++++++++++++++++----
 1 file changed, 19 insertions(+), 4 deletions(-)

diff --git a/drivers/phy/freescale/phy-fsl-imx8qm-hsio.c b/drivers/phy/freescale/phy-fsl-imx8qm-hsio.c
index 279b8ac7822df..4ab45c9f53dff 100644
--- a/drivers/phy/freescale/phy-fsl-imx8qm-hsio.c
+++ b/drivers/phy/freescale/phy-fsl-imx8qm-hsio.c
@@ -107,7 +107,22 @@ static const char * const lan2_pcieb_clks[] = {"apb_pclk2", "pclk2", "ctl1_crr",
 static const char * const lan2_sata_clks[] = {"pclk2", "epcs_tx", "epcs_rx",
 					      "phy1_crr", "misc_crr"};
 
-static const struct regmap_config regmap_config = {
+static const struct regmap_config regmap_phy_config = {
+	.name = "phy",
+	.reg_bits = 32,
+	.val_bits = 32,
+	.reg_stride = 4,
+};
+
+static const struct regmap_config regmap_ctrl_config = {
+	.name = "ctrl",
+	.reg_bits = 32,
+	.val_bits = 32,
+	.reg_stride = 4,
+};
+
+static const struct regmap_config regmap_misc_config = {
+	.name = "misc",
 	.reg_bits = 32,
 	.val_bits = 32,
 	.reg_stride = 4,
@@ -562,19 +577,19 @@ static int imx_hsio_probe(struct platform_device *pdev)
 		return PTR_ERR(priv->base);
 
 	off = devm_platform_ioremap_resource_byname(pdev, "phy");
-	priv->phy = devm_regmap_init_mmio(dev, off, &regmap_config);
+	priv->phy = devm_regmap_init_mmio(dev, off, &regmap_phy_config);
 	if (IS_ERR(priv->phy))
 		return dev_err_probe(dev, PTR_ERR(priv->phy),
 				     "unable to find phy csr registers\n");
 
 	off = devm_platform_ioremap_resource_byname(pdev, "ctrl");
-	priv->ctrl = devm_regmap_init_mmio(dev, off, &regmap_config);
+	priv->ctrl = devm_regmap_init_mmio(dev, off, &regmap_ctrl_config);
 	if (IS_ERR(priv->ctrl))
 		return dev_err_probe(dev, PTR_ERR(priv->ctrl),
 				     "unable to find ctrl csr registers\n");
 
 	off = devm_platform_ioremap_resource_byname(pdev, "misc");
-	priv->misc = devm_regmap_init_mmio(dev, off, &regmap_config);
+	priv->misc = devm_regmap_init_mmio(dev, off, &regmap_misc_config);
 	if (IS_ERR(priv->misc))
 		return dev_err_probe(dev, PTR_ERR(priv->misc),
 				     "unable to find misc csr registers\n");
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [RESEND 1/1] phy: freescale: imx8qm-hsio: provide regmap names
  2026-02-11 14:49 [RESEND 1/1] phy: freescale: imx8qm-hsio: provide regmap names Alexander Stein
@ 2026-02-11 15:31 ` Frank Li
  2026-03-04 14:36   ` Alexander Stein
  2026-03-04 21:27 ` Vladimir Oltean
  2026-03-06 10:39 ` Neil Armstrong
  2 siblings, 1 reply; 5+ messages in thread
From: Frank Li @ 2026-02-11 15:31 UTC (permalink / raw)
  To: Alexander Stein
  Cc: Vinod Koul, Neil Armstrong, Sascha Hauer, Pengutronix Kernel Team,
	Fabio Estevam, linux-phy, imx, linux-arm-kernel, linux-kernel

On Wed, Feb 11, 2026 at 03:49:48PM +0100, Alexander Stein wrote:
> This driver uses multiple regmaps, which will causes name conflicts
> in debugfs like:
>   debugfs: '5f1a0000.phy' already exists in 'regmap'
> Fix this by using a dedicated regmap config for each resource, each
> having a dedicated regmap name.
>
> Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
> ---
Reviewed-by: Frank Li <Frank.Li@nxp.com>
> Same as the one sent in December but with an updated CC list.
>
>  drivers/phy/freescale/phy-fsl-imx8qm-hsio.c | 23 +++++++++++++++++----
>  1 file changed, 19 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/phy/freescale/phy-fsl-imx8qm-hsio.c b/drivers/phy/freescale/phy-fsl-imx8qm-hsio.c
> index 279b8ac7822df..4ab45c9f53dff 100644
> --- a/drivers/phy/freescale/phy-fsl-imx8qm-hsio.c
> +++ b/drivers/phy/freescale/phy-fsl-imx8qm-hsio.c
> @@ -107,7 +107,22 @@ static const char * const lan2_pcieb_clks[] = {"apb_pclk2", "pclk2", "ctl1_crr",
>  static const char * const lan2_sata_clks[] = {"pclk2", "epcs_tx", "epcs_rx",
>  					      "phy1_crr", "misc_crr"};
>
> -static const struct regmap_config regmap_config = {
> +static const struct regmap_config regmap_phy_config = {
> +	.name = "phy",
> +	.reg_bits = 32,
> +	.val_bits = 32,
> +	.reg_stride = 4,
> +};
> +
> +static const struct regmap_config regmap_ctrl_config = {
> +	.name = "ctrl",
> +	.reg_bits = 32,
> +	.val_bits = 32,
> +	.reg_stride = 4,
> +};
> +
> +static const struct regmap_config regmap_misc_config = {
> +	.name = "misc",
>  	.reg_bits = 32,
>  	.val_bits = 32,
>  	.reg_stride = 4,
> @@ -562,19 +577,19 @@ static int imx_hsio_probe(struct platform_device *pdev)
>  		return PTR_ERR(priv->base);
>
>  	off = devm_platform_ioremap_resource_byname(pdev, "phy");
> -	priv->phy = devm_regmap_init_mmio(dev, off, &regmap_config);
> +	priv->phy = devm_regmap_init_mmio(dev, off, &regmap_phy_config);
>  	if (IS_ERR(priv->phy))
>  		return dev_err_probe(dev, PTR_ERR(priv->phy),
>  				     "unable to find phy csr registers\n");
>
>  	off = devm_platform_ioremap_resource_byname(pdev, "ctrl");
> -	priv->ctrl = devm_regmap_init_mmio(dev, off, &regmap_config);
> +	priv->ctrl = devm_regmap_init_mmio(dev, off, &regmap_ctrl_config);
>  	if (IS_ERR(priv->ctrl))
>  		return dev_err_probe(dev, PTR_ERR(priv->ctrl),
>  				     "unable to find ctrl csr registers\n");
>
>  	off = devm_platform_ioremap_resource_byname(pdev, "misc");
> -	priv->misc = devm_regmap_init_mmio(dev, off, &regmap_config);
> +	priv->misc = devm_regmap_init_mmio(dev, off, &regmap_misc_config);
>  	if (IS_ERR(priv->misc))
>  		return dev_err_probe(dev, PTR_ERR(priv->misc),
>  				     "unable to find misc csr registers\n");
> --
> 2.43.0
>


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [RESEND 1/1] phy: freescale: imx8qm-hsio: provide regmap names
  2026-02-11 15:31 ` Frank Li
@ 2026-03-04 14:36   ` Alexander Stein
  0 siblings, 0 replies; 5+ messages in thread
From: Alexander Stein @ 2026-03-04 14:36 UTC (permalink / raw)
  To: Frank Li, Vinod Koul
  Cc: Neil Armstrong, Sascha Hauer, Pengutronix Kernel Team,
	Fabio Estevam, linux-phy, imx, linux-arm-kernel, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 3277 bytes --]

Hi,

Am Mittwoch, 11. Februar 2026, 16:31:26 CET schrieb Frank Li:
> On Wed, Feb 11, 2026 at 03:49:48PM +0100, Alexander Stein wrote:
> > This driver uses multiple regmaps, which will causes name conflicts
> > in debugfs like:
> >   debugfs: '5f1a0000.phy' already exists in 'regmap'
> > Fix this by using a dedicated regmap config for each resource, each
> > having a dedicated regmap name.
> >
> > Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
> > ---
> Reviewed-by: Frank Li <Frank.Li@nxp.com>

gentle ping. Any additional feedback?

Best regards,
Alexander

> > Same as the one sent in December but with an updated CC list.
> >
> >  drivers/phy/freescale/phy-fsl-imx8qm-hsio.c | 23 +++++++++++++++++----
> >  1 file changed, 19 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/phy/freescale/phy-fsl-imx8qm-hsio.c b/drivers/phy/freescale/phy-fsl-imx8qm-hsio.c
> > index 279b8ac7822df..4ab45c9f53dff 100644
> > --- a/drivers/phy/freescale/phy-fsl-imx8qm-hsio.c
> > +++ b/drivers/phy/freescale/phy-fsl-imx8qm-hsio.c
> > @@ -107,7 +107,22 @@ static const char * const lan2_pcieb_clks[] = {"apb_pclk2", "pclk2", "ctl1_crr",
> >  static const char * const lan2_sata_clks[] = {"pclk2", "epcs_tx", "epcs_rx",
> >  					      "phy1_crr", "misc_crr"};
> >
> > -static const struct regmap_config regmap_config = {
> > +static const struct regmap_config regmap_phy_config = {
> > +	.name = "phy",
> > +	.reg_bits = 32,
> > +	.val_bits = 32,
> > +	.reg_stride = 4,
> > +};
> > +
> > +static const struct regmap_config regmap_ctrl_config = {
> > +	.name = "ctrl",
> > +	.reg_bits = 32,
> > +	.val_bits = 32,
> > +	.reg_stride = 4,
> > +};
> > +
> > +static const struct regmap_config regmap_misc_config = {
> > +	.name = "misc",
> >  	.reg_bits = 32,
> >  	.val_bits = 32,
> >  	.reg_stride = 4,
> > @@ -562,19 +577,19 @@ static int imx_hsio_probe(struct platform_device *pdev)
> >  		return PTR_ERR(priv->base);
> >
> >  	off = devm_platform_ioremap_resource_byname(pdev, "phy");
> > -	priv->phy = devm_regmap_init_mmio(dev, off, &regmap_config);
> > +	priv->phy = devm_regmap_init_mmio(dev, off, &regmap_phy_config);
> >  	if (IS_ERR(priv->phy))
> >  		return dev_err_probe(dev, PTR_ERR(priv->phy),
> >  				     "unable to find phy csr registers\n");
> >
> >  	off = devm_platform_ioremap_resource_byname(pdev, "ctrl");
> > -	priv->ctrl = devm_regmap_init_mmio(dev, off, &regmap_config);
> > +	priv->ctrl = devm_regmap_init_mmio(dev, off, &regmap_ctrl_config);
> >  	if (IS_ERR(priv->ctrl))
> >  		return dev_err_probe(dev, PTR_ERR(priv->ctrl),
> >  				     "unable to find ctrl csr registers\n");
> >
> >  	off = devm_platform_ioremap_resource_byname(pdev, "misc");
> > -	priv->misc = devm_regmap_init_mmio(dev, off, &regmap_config);
> > +	priv->misc = devm_regmap_init_mmio(dev, off, &regmap_misc_config);
> >  	if (IS_ERR(priv->misc))
> >  		return dev_err_probe(dev, PTR_ERR(priv->misc),
> >  				     "unable to find misc csr registers\n");
> > --
> > 2.43.0
> >
> 


-- 
TQ-Systems GmbH | Mühlstraße 2, Gut Delling | 82229 Seefeld, Germany
Amtsgericht München, HRB 105018
Geschäftsführer: Detlef Schneider, Rüdiger Stahl, Stefan Schneider
http://www.tq-group.com/

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [RESEND 1/1] phy: freescale: imx8qm-hsio: provide regmap names
  2026-02-11 14:49 [RESEND 1/1] phy: freescale: imx8qm-hsio: provide regmap names Alexander Stein
  2026-02-11 15:31 ` Frank Li
@ 2026-03-04 21:27 ` Vladimir Oltean
  2026-03-06 10:39 ` Neil Armstrong
  2 siblings, 0 replies; 5+ messages in thread
From: Vladimir Oltean @ 2026-03-04 21:27 UTC (permalink / raw)
  To: Alexander Stein
  Cc: Vinod Koul, Neil Armstrong, Frank Li, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, linux-phy, imx,
	linux-arm-kernel, linux-kernel

On Wed, Feb 11, 2026 at 03:49:48PM +0100, Alexander Stein wrote:
> This driver uses multiple regmaps, which will causes name conflicts
> in debugfs like:
>   debugfs: '5f1a0000.phy' already exists in 'regmap'
> Fix this by using a dedicated regmap config for each resource, each
> having a dedicated regmap name.
> 
> Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
> ---
> Same as the one sent in December but with an updated CC list.
> 
>  drivers/phy/freescale/phy-fsl-imx8qm-hsio.c | 23 +++++++++++++++++----
>  1 file changed, 19 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/phy/freescale/phy-fsl-imx8qm-hsio.c b/drivers/phy/freescale/phy-fsl-imx8qm-hsio.c
> index 279b8ac7822df..4ab45c9f53dff 100644
> --- a/drivers/phy/freescale/phy-fsl-imx8qm-hsio.c
> +++ b/drivers/phy/freescale/phy-fsl-imx8qm-hsio.c
> @@ -107,7 +107,22 @@ static const char * const lan2_pcieb_clks[] = {"apb_pclk2", "pclk2", "ctl1_crr",
>  static const char * const lan2_sata_clks[] = {"pclk2", "epcs_tx", "epcs_rx",
>  					      "phy1_crr", "misc_crr"};
>  
> -static const struct regmap_config regmap_config = {
> +static const struct regmap_config regmap_phy_config = {
> +	.name = "phy",
> +	.reg_bits = 32,
> +	.val_bits = 32,
> +	.reg_stride = 4,
> +};
> +
> +static const struct regmap_config regmap_ctrl_config = {
> +	.name = "ctrl",
> +	.reg_bits = 32,
> +	.val_bits = 32,
> +	.reg_stride = 4,
> +};
> +
> +static const struct regmap_config regmap_misc_config = {
> +	.name = "misc",

Since __regmap_init() doesn't keep a persistent reference to the config,
just performs a deep copy of it (including regmap_set_name() ->
kstrdup_const()), technically you could have gotten away with just a
single on-stack regmap_config whose .name you kept changing for all 3
calls.

But this is perfectly valid as well.

Reviewed-by: Vladimir Oltean <olteanv@gmail.com>

I don't think you need to do anything further, just wait for Vinod to
start going through the backlog.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [RESEND 1/1] phy: freescale: imx8qm-hsio: provide regmap names
  2026-02-11 14:49 [RESEND 1/1] phy: freescale: imx8qm-hsio: provide regmap names Alexander Stein
  2026-02-11 15:31 ` Frank Li
  2026-03-04 21:27 ` Vladimir Oltean
@ 2026-03-06 10:39 ` Neil Armstrong
  2 siblings, 0 replies; 5+ messages in thread
From: Neil Armstrong @ 2026-03-06 10:39 UTC (permalink / raw)
  To: Alexander Stein, Vinod Koul, Frank Li, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam
  Cc: linux-phy, imx, linux-arm-kernel, linux-kernel

On 2/11/26 15:49, Alexander Stein wrote:
> This driver uses multiple regmaps, which will causes name conflicts
> in debugfs like:
>    debugfs: '5f1a0000.phy' already exists in 'regmap'
> Fix this by using a dedicated regmap config for each resource, each
> having a dedicated regmap name.
> 
> Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
> ---
> Same as the one sent in December but with an updated CC list.
> 
>   drivers/phy/freescale/phy-fsl-imx8qm-hsio.c | 23 +++++++++++++++++----
>   1 file changed, 19 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/phy/freescale/phy-fsl-imx8qm-hsio.c b/drivers/phy/freescale/phy-fsl-imx8qm-hsio.c
> index 279b8ac7822df..4ab45c9f53dff 100644
> --- a/drivers/phy/freescale/phy-fsl-imx8qm-hsio.c
> +++ b/drivers/phy/freescale/phy-fsl-imx8qm-hsio.c
> @@ -107,7 +107,22 @@ static const char * const lan2_pcieb_clks[] = {"apb_pclk2", "pclk2", "ctl1_crr",
>   static const char * const lan2_sata_clks[] = {"pclk2", "epcs_tx", "epcs_rx",
>   					      "phy1_crr", "misc_crr"};
>   
> -static const struct regmap_config regmap_config = {
> +static const struct regmap_config regmap_phy_config = {
> +	.name = "phy",
> +	.reg_bits = 32,
> +	.val_bits = 32,
> +	.reg_stride = 4,
> +};
> +
> +static const struct regmap_config regmap_ctrl_config = {
> +	.name = "ctrl",
> +	.reg_bits = 32,
> +	.val_bits = 32,
> +	.reg_stride = 4,
> +};
> +
> +static const struct regmap_config regmap_misc_config = {
> +	.name = "misc",
>   	.reg_bits = 32,
>   	.val_bits = 32,
>   	.reg_stride = 4,
> @@ -562,19 +577,19 @@ static int imx_hsio_probe(struct platform_device *pdev)
>   		return PTR_ERR(priv->base);
>   
>   	off = devm_platform_ioremap_resource_byname(pdev, "phy");
> -	priv->phy = devm_regmap_init_mmio(dev, off, &regmap_config);
> +	priv->phy = devm_regmap_init_mmio(dev, off, &regmap_phy_config);
>   	if (IS_ERR(priv->phy))
>   		return dev_err_probe(dev, PTR_ERR(priv->phy),
>   				     "unable to find phy csr registers\n");
>   
>   	off = devm_platform_ioremap_resource_byname(pdev, "ctrl");
> -	priv->ctrl = devm_regmap_init_mmio(dev, off, &regmap_config);
> +	priv->ctrl = devm_regmap_init_mmio(dev, off, &regmap_ctrl_config);
>   	if (IS_ERR(priv->ctrl))
>   		return dev_err_probe(dev, PTR_ERR(priv->ctrl),
>   				     "unable to find ctrl csr registers\n");
>   
>   	off = devm_platform_ioremap_resource_byname(pdev, "misc");
> -	priv->misc = devm_regmap_init_mmio(dev, off, &regmap_config);
> +	priv->misc = devm_regmap_init_mmio(dev, off, &regmap_misc_config);
>   	if (IS_ERR(priv->misc))
>   		return dev_err_probe(dev, PTR_ERR(priv->misc),
>   				     "unable to find misc csr registers\n");

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>

Thanks,
Neil


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-03-06 10:39 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-11 14:49 [RESEND 1/1] phy: freescale: imx8qm-hsio: provide regmap names Alexander Stein
2026-02-11 15:31 ` Frank Li
2026-03-04 14:36   ` Alexander Stein
2026-03-04 21:27 ` Vladimir Oltean
2026-03-06 10:39 ` Neil Armstrong

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox