Re: [PATCH v2 1/7] dt-bindings: Add support for export-symbols node

David Gibson <[email protected]> Mon, 8 Sep 2025 14:44:03 +1000
Newsgroups org.kernel.vger.devicetree-compiler,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel
Message-ID <aL5fEzN2S058oSAI@zatzit>
On Wed, Jun 18, 2025 at 03:24:07PM +0530, Ayush Singh wrote:
> 
> On 6/18/25 15:02, Herve Codina wrote:
> > Hi Krzysztof,
> > 
> > On Wed, 4 Jun 2025 20:35:51 +0200
> > Krzysztof Kozlowski <[email protected]> wrote:
> > 
> > ...
> > 
> > > > Symbols are exported only when an overlay is applied on the node where the
> > > > export-symbols node is available. Those symbols are visible only from the
> > > > overlay applied. Symbols exported thanks to export-symbols are not global
> > > > to the all device-tree (it is not __symbols__) but local to a node.
> > > > 
> > > > If an overlay is applied at connector1 node, it can use the 'connector'
> > > > symbols and thanks to export-symbols, the 'connector' symbol will be
> > > > resolved to foo_connector.
> > > > 
> > > > If the overlay is applied at connector2 node, the 'connector' symbol is then
> > > > resolved to bar_connector.
> > > OK, this explains a lot. Unless I missed it, would be nice to include it
> > > in binding description.
> > Sure, I will add something in the next iteration.
> > 
> > ...
> > 
> > > > > > +patternProperties:
> > > > > > +  "^[a-zA-Z_]?[a-zA-Z0-9_]*$":
> > > > > This messes up with coding style which I would prefer keep intact.
> > > > > Basically these properties will be using label style.
> > > > Yes, those properties remap phandles.
> > > > 
> > > > Their names are the name of the label used from the overlay and their
> > > > values are the phandle mapped.
> > > > 
> > > > You already have this kind properties using label style in __symbols__,
> > > > __fixups__, __local_fixups__ nodes.
> > > I have them in DTB, but I don't have these in DTS. The exported-symbols
> > > would be in the DTS and that is what coding style is about.
> > > 
> > I think export-symbols has to be in DTS.
> > Maybe it could be described in an other way in order to avoid the coding style
> > issue you reported.
> > 
> > Hardware:
> >    i2c0 from SoC --------- connector 1, I2C A signals
> >    i2c1 from SoC --------- connector 1, I2C B signals
> > 
> >    connector1 {
> >        export-symbols {
> > 	  i2c_a = <&i2c0>;
> > 	  i2c_b = <&i2c1>;
> >        };
> >    };
> > 
> > In order to avoid the coding style issue, this could be replace
> > with:
> >   connector1 {
> >        export-symbols {
> > 	  symbol-names = "i2c_a", "i2c_b";
> > 	  symbols = <&i2c0>, <&i2c1>;
> >        };
> >    };
> > 
> > Krzysztof, Rob, do you think this could be accepted ?
> > 
> > Ayush, David, do you thing this could be easily implemented in fdtoverlay ?
> > 
> > Best regards,
> > Hervé
> > 
> 
> Well, it is possible.
> 
> However, on connectors like pb2 header, there will be 50-100 export symbols.
> So it will start becoming difficult to maintain.
> 
> Additionally, the further away we move from __symbols__ style, the more
> difficult the implementation will become since we can currently very easily
> piggy-back on __symbols__ resolution implementation.

I think that should be a non-goal.  Current __symbols__ resolution was
a quick hack.  Design what makes sense rather than being tied to the
ugly past.

-- 
David Gibson (he or they)	| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you, not the other way
				| around.
http://www.ozlabs.org/~dgibson
signature.asc (application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEO+dNsU4E3yXUXRK2zQJF27ox2GcFAmi+XxIACgkQzQJF27ox
2GeRBw//R3k0RWzq0QCFmnitALPrVvhXXVB/fSiSyqxkmkeN7zORxOWE+kuz1YUe
VbZC3hZtI+BJ5espIa8InwO+1/NhleVks8lSEJ+b/eDfNvTtAq2PbI39jRzGODOV
8XUHau+Ma+/MSSeDDZm+WWmn87EEKHH2JIfSOXRB1p+Pxv+1spD5iZDXfm5kcMPv
zQ66vCkwyiGLzy15a0NP6kXaAbMB3/vMnRmEP1iRr07PJaTrvffoTbdcpsXNByOy
nx4XndA/9yDnOgEAkSs1iBtHdjL6fEdv0a0+iAiQfQbRqsEWAtZuVXdIY+UjgKPY
rRSefxji/jcrHmq/B78XORNZ7Nb8SON32Y3y4/mUf5Brl1VQGu3f3Nui675AHHbb
1c+Jwh/LcLfER8jiJkF3zfZghL2AE6xS8Uz6lXyxKuo8a49AciihQznHAZKz/FcY
V7g9Gr140bC5Sy2D1NTBbGhnohE0kujCk8guMRljOvVbC7uYPWt1EmcVkUywQQCH
L0C61/d8wWPkDrKVZQWnE6Jc57UVVxFn/wPI3PAzuFb3W/yomj1rpZDAplIWpB5K
5rOBWTe9A6OoREjsW/+0Q8BPRKHMg7sbsqP2fCGjFzskXaqBQLXTclJpy8FkHRcD
1wMDVArGkQMSgaIsx1LG0ev0T6KRumSo5TJkD7NxmN4cC8O1Mq4=
=aIlq
-----END PGP SIGNATURE-----