[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240617-purge-family-c0c62b8e73d8@spud>
Date: Mon, 17 Jun 2024 17:46:27 +0100
From: Conor Dooley <conor@...nel.org>
To: Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>
Cc: Orson Zhai <orsonzhai@...il.com>,
Baolin Wang <baolin.wang@...ux.alibaba.com>,
Chunyan Zhang <zhang.lyra@...il.com>,
Vadivel Murugan <vadivel.muruganx.ramuthevar@...ux.intel.com>,
Jacky Huang <ychuang3@...oton.com>,
Shan-Chun Hung <schung@...oton.com>,
Khuong Dinh <khuong@...amperecomputing.com>,
Lee Jones <lee@...nel.org>, Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>,
Lars Povlsen <lars.povlsen@...rochip.com>,
Steen Hegelund <Steen.Hegelund@...rochip.com>,
Daniel Machon <daniel.machon@...rochip.com>,
UNGLinuxDriver@...rochip.com, Nishanth Menon <nm@...com>,
Matthias Brugger <matthias.bgg@...il.com>,
AngeloGioacchino Del Regno <angelogioacchino.delregno@...labora.com>,
Jiaxun Yang <jiaxun.yang@...goat.com>, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
linux-mediatek@...ts.infradead.org
Subject: Re: [PATCH v2 6/7] dt-bindings: mfd: syscon: Split and enforce
documenting MFD children
On Mon, Jun 17, 2024 at 05:44:52PM +0100, Conor Dooley wrote:
> On Sun, Jun 16, 2024 at 03:19:26PM +0200, Krzysztof Kozlowski wrote:
> > Simple syscon nodes can be documented in common syscon.yaml, however
> > devices with simple-mfd compatible, thus with some children, should have
> > their own schema listing these children. Such listing makes the binding
> > specific, allows better validation (so the incorrect child would not
> > appear in the simple-mfd node) and actually enforces repeated rule for
> > simple-mfd devices:
> >
> > "simple-mfd" is only for simple devices, where the children do not
> > depend on the parent.
> >
> > Currently the syscon+simple-mfd binding is quite broad and allows
> > any child or property, thus above rule cannot be enforced.
> >
> > Split the syscon.yaml binding into:
> > 1. Common syscon properties, used potentially by many bindings.
> > 2. Simple syscon devices (NO simple-mfd!).
> >
> > Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>
> >
> > ---
> >
> > Depends on:
> > 1. Patch in MFD: https://lore.kernel.org/all/171828959006.2643902.8308227314531523435.b4-ty@kernel.org/
> > 2. Previous patches in the series.
> > ---
> > .../devicetree/bindings/mfd/syscon-common.yaml | 72 +++++
> > Documentation/devicetree/bindings/mfd/syscon.yaml | 294 +++++++++++++--------
> > 2 files changed, 251 insertions(+), 115 deletions(-)
> >
> > diff --git a/Documentation/devicetree/bindings/mfd/syscon-common.yaml b/Documentation/devicetree/bindings/mfd/syscon-common.yaml
> > new file mode 100644
> > index 000000000000..c3ff3a7afce3
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/mfd/syscon-common.yaml
> > @@ -0,0 +1,72 @@
> > +# SPDX-License-Identifier: GPL-2.0
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/mfd/syscon-common.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: System Controller Registers R/W Common Properties
> > +
> > +description: |
>
> This | can go, right?
>
> > + System controller node represents a register region containing a set
> > + of miscellaneous registers. The registers are not cohesive enough to
> > + represent as any specific type of device. The typical use-case is
> > + for some other node's driver, or platform-specific code, to acquire
> > + a reference to the syscon node (e.g. by phandle, node path, or
> > + search using a specific compatible value), interrogate the node (or
> > + associated OS driver) to determine the location of the registers,
> > + and access the registers directly.
> > +
> > +maintainers:
> > + - Lee Jones <lee@...nel.org>
> > +
> > +select:
> > + properties:
> > + compatible:
> > + contains:
> > + enum:
>
> And this can be const, given it's unlikely to grow?
>
> > + - syscon
> > +
> > + required:
> > + - compatible
> > +
> > +properties:
> > + compatible:
> > + contains:
> > + const: syscon
> > + minItems: 2
> > + maxItems: 5 # Should be enough
> > +
> > + reg:
> > + maxItems: 1
> > +
> > + reg-io-width:
> > + description: |
>
> Same with this one.
>
> > + The size (in bytes) of the IO accesses that should be performed
> > + on the device.
> > + enum: [1, 2, 4, 8]
> > +
> > +required:
> > + - compatible
> > + - reg
> > +
> > +allOf:
> > + - if:
> > + properties:
> > + compatible:
> > + contains:
> > + const: simple-mfd
> > + then:
> > + properties:
> > + compatible:
> > + minItems: 3
> > + maxItems: 5
> > +
> > +additionalProperties: true
> > +
> > +examples:
> > + - |
> > + syscon: syscon@...0000 {
> > + compatible = "allwinner,sun8i-h3-system-controller", "syscon";
> > + reg = <0x01c00000 0x1000>;
> > + };
> > +...
> > diff --git a/Documentation/devicetree/bindings/mfd/syscon.yaml b/Documentation/devicetree/bindings/mfd/syscon.yaml
> > index d6fa58c9e4de..d4e9533cf3fe 100644
> > --- a/Documentation/devicetree/bindings/mfd/syscon.yaml
> > +++ b/Documentation/devicetree/bindings/mfd/syscon.yaml
> > @@ -4,7 +4,7 @@
> > $id: http://devicetree.org/schemas/mfd/syscon.yaml#
> > $schema: http://devicetree.org/meta-schemas/core.yaml#
> >
> > -title: System Controller Registers R/W
> > +title: System Controller Devices
> >
> > description: |
> > System controller node represents a register region containing a set
> > @@ -19,123 +19,196 @@ description: |
> > maintainers:
> > - Lee Jones <lee@...nel.org>
> >
> > +# Need a select with all compatibles listed for compatibility with older
> > +# dtschema (<2024.02), so this will not be selected for other schemas having
> > +# syscon fallback.
> > select:
> > properties:
> > compatible:
> > contains:
> > enum:
> > - - syscon
>
> Wow, this is noisy. Is it not possible to achieve something similar by
> making the select check for not: compatible: contains: simple-mfd? Or
> did I misunderstand the intention here?
Ah, you'd match things then like the intel,lgm-syscon, right?
Download attachment "signature.asc" of type "application/pgp-signature" (229 bytes)
Powered by blists - more mailing lists