[PATCH v1] i3c: master: ast2600: Fix missing of_node for virtual I2C adapter

Peter Yin posted 1 patch 1 month, 2 weeks ago
drivers/i3c/master/ast2600-i3c-master.c | 1 +
1 file changed, 1 insertion(+)
[PATCH v1] i3c: master: ast2600: Fix missing of_node for virtual I2C adapter
Posted by Peter Yin 1 month, 2 weeks ago
The ASPEED AST2600 I3C master driver creates a virtual I2C adapter to
provide backward compatibility with I2C devices. However, the current
implementation does not associate this virtual adapter with any
Device Tree node.

This patch propagates the of_node from the I3C master platform device
to the virtual I2C adapter's device structure. This ensures that
standard I2C aliases are correctly resolved and bus numbering remains
consistent across reboots.

Signed-off-by: Peter Yin <peteryin.openbmc@gmail.com>
---
 drivers/i3c/master/ast2600-i3c-master.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/i3c/master/ast2600-i3c-master.c b/drivers/i3c/master/ast2600-i3c-master.c
index e05e83812c71..a1c6c9d97d11 100644
--- a/drivers/i3c/master/ast2600-i3c-master.c
+++ b/drivers/i3c/master/ast2600-i3c-master.c
@@ -156,6 +156,7 @@ static int ast2600_i3c_probe(struct platform_device *pdev)
 			i3c->sda_pullup);
 
 	i3c->dw.platform_ops = &ast2600_i3c_ops;
+	i3c->dw.base.i2c.dev.of_node = np;
 	return dw_i3c_common_probe(&i3c->dw, pdev);
 }
 
-- 
2.43.0
Re: [PATCH v1] i3c: master: ast2600: Fix missing of_node for virtual I2C adapter
Posted by Jeremy Kerr 1 month, 2 weeks ago
Hi Peter,

> The ASPEED AST2600 I3C master driver creates a virtual I2C adapter to
> provide backward compatibility with I2C devices. However, the current
> implementation does not associate this virtual adapter with any
> Device Tree node.
> 
> This patch propagates the of_node from the I3C master platform device
> to the virtual I2C adapter's device structure. This ensures that
> standard I2C aliases are correctly resolved and bus numbering remains
> consistent across reboots.

Sounds sensible - but:

> --- a/drivers/i3c/master/ast2600-i3c-master.c
> +++ b/drivers/i3c/master/ast2600-i3c-master.c
> @@ -156,6 +156,7 @@ static int ast2600_i3c_probe(struct platform_device *pdev)
>                         i3c->sda_pullup);
>  
>         i3c->dw.platform_ops = &ast2600_i3c_ops;
> +       i3c->dw.base.i2c.dev.of_node = np;
>         return dw_i3c_common_probe(&i3c->dw, pdev);
>  }

Why not do this in the common (dw) driver? Nothing about the of_node
association is aspeed-specific.

Cheers,


Jeremy
Re: [PATCH v1] i3c: master: ast2600: Fix missing of_node for virtual I2C adapter
Posted by Peter Yin 1 month, 2 weeks ago
Jeremy Kerr <jk@codeconstruct.com.au> 於 2026年2月25日週三 下午2:43寫道:
>
> Hi Peter,
>
> > The ASPEED AST2600 I3C master driver creates a virtual I2C adapter to
> > provide backward compatibility with I2C devices. However, the current
> > implementation does not associate this virtual adapter with any
> > Device Tree node.
> >
> > This patch propagates the of_node from the I3C master platform device
> > to the virtual I2C adapter's device structure. This ensures that
> > standard I2C aliases are correctly resolved and bus numbering remains
> > consistent across reboots.
>
> Sounds sensible - but:
>
> > --- a/drivers/i3c/master/ast2600-i3c-master.c
> > +++ b/drivers/i3c/master/ast2600-i3c-master.c
> > @@ -156,6 +156,7 @@ static int ast2600_i3c_probe(struct platform_device *pdev)
> >                         i3c->sda_pullup);
> >
> >         i3c->dw.platform_ops = &ast2600_i3c_ops;
> > +       i3c->dw.base.i2c.dev.of_node = np;
> >         return dw_i3c_common_probe(&i3c->dw, pdev);
> >  }
>
> Why not do this in the common (dw) driver? Nothing about the of_node
> association is aspeed-specific.
>
> Cheers,
>
>
> Jeremy

Hi Jeremy,
  I will move the fix to dw_i3c_common_probe in
drivers/i3c/master/dw-i3c-master.c and send out a V2 patch shortly.