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

From: Ayush Singh
Date: Sun Aug 17 2025 - 04:42:50 EST


On 8/17/25 13:52, Krzysztof Kozlowski wrote:

On 17/08/2025 10:18, Ayush Singh wrote:
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.
And the first syntax solves this how? I don't see the practical difference.

Well, I was more worried about matching which phandle belongs to which
symbol easily. Let us assume that 2 symbols will be in each line (after
accounting for the indention and 80 char limit) and we have 70 symbols,
so 35 lines. To check which phandle belongs to the 2nd symbol on line
25th line of  symbol-names, well, you would at the best case need to
have something like relative line numbers in your editor. Then you know
that the 35th line from the current one is where you need to look.

In the current syntax, the symbol name and phandle are on the same line.
So well, easy to see which symbols refers to which phandle.
OK, that's valid point. Any ideas how to solve it without introducing
underscores for properties?

Best regards,
Krzysztof


Well, we can modify `get_phandle_from_symbols_node` to allow matching `*_*` to `*-*`. And we can do the same in devicetree easily enough. Not sure if implicit loose matching like that are the best idea.

Zephyr does something similar for compatible strings. It pretty much replaces the all non alphanumeric characters with `_` in compatible string match. Although that is more to do with the limitation they are working with, i.e. the devicetree being converted to static headers instead of being runtime thing.

Best Regards,

Ayush Singh