Re: [PATCH] docs: dt-bindings: add DTS Coding Style document

From: Heiko Stuebner
Date: Thu Nov 16 2023 - 15:03:20 EST


Am Donnerstag, 16. November 2023, 20:51:24 CET schrieb Krzysztof Kozlowski:
> On 16/11/2023 20:26, Heiko Stuebner wrote:
> > Hi Krzysztof,
> > Am Donnerstag, 16. November 2023, 19:12:18 CET schrieb Krzysztof Kozlowski:
> >> Document preferred coding style for Devicetree sources (DTS and DTSI),
> >> to bring consistency among all (sub)architectures and ease in reviews.
> >>
> >> Cc: AngeloGioacchino Del Regno <angelogioacchino.delregno@xxxxxxxxxxxxx>
> >> Cc: Arnd Bergmann <arnd@xxxxxxxx>
> >> Cc: Bjorn Andersson <andersson@xxxxxxxxxx>
> >> Cc: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
> >> Cc: Heiko Stuebner <heiko@xxxxxxxxx>
> >> Cc: Konrad Dybcio <konrad.dybcio@xxxxxxxxxx>
> >> Cc: Matthias Brugger <matthias.bgg@xxxxxxxxx>
> >> Cc: Michal Simek <michal.simek@xxxxxxx>
> >> Cc: Neil Armstrong <neil.armstrong@xxxxxxxxxx>
> >> Cc: Nishanth Menon <nm@xxxxxx>
> >> Cc: Olof Johansson <olof@xxxxxxxxx>
> >> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx>
> >>
> >
> >> +Order of Properties in Device Node
> >> +----------------------------------
> >> +
> >> +Following order of properties in device nodes is preferred:
> >> +
> >> +1. compatible
> >> +2. reg
> >> +3. ranges
> >> +4. All properties with values
> >> +5. Boolean properties
> >
> > I guess the only thing I do have questions about is the part
> >
> >> +4. All properties with values
> >> +5. Boolean properties
> >
> > Is there a rationale for it? Because with it things like regulator-*
> > properties then end up in two different blocks.
>
> Good point. It is only a matter of style that this:
>
> foo {
> compatible = "foo";
> reg = <0x1>;
> clocks = <&clk>;
> wakeup-source;
> key-autorepeat;
> }
>
> looks better to me than:
>
>
> foo {
> compatible = "foo";
> reg = <0x1>;
> key-autorepeat;
> wakeup-source;
> clocks = <&clk>;
> }
>
> But you have good point that similar properties should be usually
> grouped together.
>
> About which regulator properties are you thinking now? You mean the
> supplies or the provider?

I was thinking about the provider. There are
regulator-min-microvolt = <>;
and friends, but also
regulator-boot-on;


I guess I would just go with

1. compatible
2. reg
3. ranges
4. All other properties
5. status (if applicable)
6. Child nodes

aka grouping the old 4+5 together. The difference is probably minimal
but doesn't create corner cases and you don't need to know if a property
has a value or is boolean when looking for it.


Heiko