lkml.org 
[lkml]   [2023]   [Nov]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [PATCH v3] docs: dt-bindings: add DTS Coding Style document
    Hi Francesco,

    On Wed, Nov 29, 2023 at 8:29 AM Francesco Dolcini <francesco@dolcini.it> wrote:
    > On Sat, Nov 25, 2023 at 07:44:22PM +0100, Krzysztof Kozlowski wrote:
    > > Document preferred coding style for Devicetree sources (DTS and DTSI),
    > > to bring consistency among all (sub)architectures and ease in reviews.
    >
    > Thank Krzysztof, we had most of this collected as BKM in some internal
    > documents and it's great to see the effort to consolidate this and add
    > it to the kernel documentation.
    >
    > > ---
    > > +Following order of properties in device nodes is preferred:
    > > +
    > > +1. compatible
    > > +2. reg
    > > +3. ranges
    > > +4. Standard/common properties (defined by common bindings, e.g. without
    > > + vendor-prefixes)
    > > +5. Vendor-specific properties
    > > +6. status (if applicable)
    > > +7. Child nodes, where each node is preceded with a blank line
    >
    > On point 4, do you have a more explicit way to define what is an actual
    > standard/common property? You mention the vendor-prefixes as an example,
    > is this just an example or this is the whole definition?

    I think there are three classes of standard properties:
    1. Device Tree Specification (from devicetree.org)
    2. dt-schema
    3. Common subsystem bindings (Documentation/devicetree/bindings/)
    (may be moved to 2).

    > What would be the order for this for example (from an existing DTS file)?
    >
    > reg_sdhc1_vmmc: regulator-sdhci1 {
    > compatible = "regulator-fixed";
    > pinctrl-names = "default";
    > pinctrl-0 = <&pinctrl_sd1_pwr_en>;
    > enable-active-high;
    > gpio = <&main_gpio0 29 GPIO_ACTIVE_HIGH>;
    > off-on-delay-us = <100000>;
    > regulator-max-microvolt = <3300000>;
    > regulator-min-microvolt = <3300000>;
    > regulator-name = "+V3.3_SD";
    > startup-delay-us = <2000>;
    > };
    >
    > I guess the point that is not obvious to me here is where do we want
    > pinctrl. I like it at position between 3 and 4, the rationale is that is
    > a very frequent property and this way it will be in a similar place for
    > every node.

    The pinctrl properties are only present in board DTS files, not in
    SoC DTSi files. There are two classes of them:
    1. Extension of on-SoC devices, where they are added to already
    existing nodes, defined in the SoC DTSi files, e.g. (from the same
    existing DTS file):

    &cpsw3g {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_rgmii1>;
    status = "disabled";
    };

    2. Pure board devices, in new nodes (e.g. your regulator example).
    These are less common, so I don't even know from the top of my
    mind when I last added one, and where ;-)
    I'd guess after all standard properties?

    Gr{oetje,eeting}s,

    Geert

    --
    Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

    In personal conversations with technical people, I call myself a hacker. But
    when I'm talking to journalists I just say "programmer" or something like that.
    -- Linus Torvalds

    \
     
     \ /
      Last update: 2023-11-29 09:48    [W:4.069 / U:0.108 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site