From: Rob Herring <robh@kernel.org>
To: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Cc: Lee Jones <lee@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Lars Povlsen <lars.povlsen@microchip.com>,
Steen Hegelund <Steen.Hegelund@microchip.com>,
Daniel Machon <daniel.machon@microchip.com>,
UNGLinuxDriver@microchip.com, Nishanth Menon <nm@ti.com>,
Matthias Brugger <matthias.bgg@gmail.com>,
AngeloGioacchino Del Regno
<angelogioacchino.delregno@collabora.com>,
Jiaxun Yang <jiaxun.yang@flygoat.com>,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org
Subject: Re: [PATCH 6/8] dt-bindings: mfd: syscon: Split and enforce documenting MFD children
Date: Mon, 20 May 2024 16:20:25 -0500 [thread overview]
Message-ID: <20240520212025.GA1531862-robh@kernel.org> (raw)
In-Reply-To: <20240519-dt-bindings-mfd-syscon-split-v1-6-aaf996e2313a@linaro.org>
On Sun, May 19, 2024 at 08:42:21PM +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@linaro.org>
>
> ---
>
> Depends on:
> 1. https://lore.kernel.org/r/20240510123018.3902184-1-robh@kernel.org
> 2. Previous patches in the series.
> ---
> .../devicetree/bindings/mfd/syscon-common.yaml | 72 +++++++
> Documentation/devicetree/bindings/mfd/syscon.yaml | 212 +++++++++------------
> 2 files changed, 162 insertions(+), 122 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: |
> + 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@kernel.org>
> +
> +select:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - syscon
> +
> + required:
> + - compatible
> +
> +properties:
> + compatible:
> + contains:
> + const: syscon
> + minItems: 2
> + maxItems: 5 # Should be enough
> +
> + reg:
> + maxItems: 1
> +
> + reg-io-width:
> + description: |
> + 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@1c00000 {
> + 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 b17fa0487178..70e3961bc96f 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,122 +19,99 @@ description: |
> maintainers:
> - Lee Jones <lee@kernel.org>
>
> -select:
> - properties:
> - compatible:
> - contains:
> - enum:
> - - syscon
> -
> - required:
> - - compatible
> -
Removing this is only going to work with v2024.04. The only way it
works for older versions is listing all the compatibles here. That's a
bit new for us to require it.
Rob
WARNING: multiple messages have this Message-ID (diff)
From: Rob Herring <robh@kernel.org>
To: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Cc: Lee Jones <lee@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Lars Povlsen <lars.povlsen@microchip.com>,
Steen Hegelund <Steen.Hegelund@microchip.com>,
Daniel Machon <daniel.machon@microchip.com>,
UNGLinuxDriver@microchip.com, Nishanth Menon <nm@ti.com>,
Matthias Brugger <matthias.bgg@gmail.com>,
AngeloGioacchino Del Regno
<angelogioacchino.delregno@collabora.com>,
Jiaxun Yang <jiaxun.yang@flygoat.com>,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org
Subject: Re: [PATCH 6/8] dt-bindings: mfd: syscon: Split and enforce documenting MFD children
Date: Mon, 20 May 2024 16:20:25 -0500 [thread overview]
Message-ID: <20240520212025.GA1531862-robh@kernel.org> (raw)
In-Reply-To: <20240519-dt-bindings-mfd-syscon-split-v1-6-aaf996e2313a@linaro.org>
On Sun, May 19, 2024 at 08:42:21PM +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@linaro.org>
>
> ---
>
> Depends on:
> 1. https://lore.kernel.org/r/20240510123018.3902184-1-robh@kernel.org
> 2. Previous patches in the series.
> ---
> .../devicetree/bindings/mfd/syscon-common.yaml | 72 +++++++
> Documentation/devicetree/bindings/mfd/syscon.yaml | 212 +++++++++------------
> 2 files changed, 162 insertions(+), 122 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: |
> + 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@kernel.org>
> +
> +select:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - syscon
> +
> + required:
> + - compatible
> +
> +properties:
> + compatible:
> + contains:
> + const: syscon
> + minItems: 2
> + maxItems: 5 # Should be enough
> +
> + reg:
> + maxItems: 1
> +
> + reg-io-width:
> + description: |
> + 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@1c00000 {
> + 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 b17fa0487178..70e3961bc96f 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,122 +19,99 @@ description: |
> maintainers:
> - Lee Jones <lee@kernel.org>
>
> -select:
> - properties:
> - compatible:
> - contains:
> - enum:
> - - syscon
> -
> - required:
> - - compatible
> -
Removing this is only going to work with v2024.04. The only way it
works for older versions is listing all the compatibles here. That's a
bit new for us to require it.
Rob
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2024-05-20 21:20 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-19 18:42 [PATCH 0/8] dt-bindings: mfd: syscon: Document more compatibles and require simpe-mfd description Krzysztof Kozlowski
2024-05-19 18:42 ` Krzysztof Kozlowski
2024-05-19 18:42 ` [PATCH 1/8] dt-bindings: mfd: syscon: Drop hwlocks Krzysztof Kozlowski
2024-05-19 18:42 ` Krzysztof Kozlowski
2024-05-20 21:05 ` Rob Herring (Arm)
2024-05-20 21:05 ` Rob Herring (Arm)
2024-05-19 18:42 ` [PATCH 2/8] dt-bindings: soc: sprd: sc9863a-glbregs: Document SC9863A syscon Krzysztof Kozlowski
2024-05-19 18:42 ` Krzysztof Kozlowski
2024-05-20 21:06 ` Rob Herring (Arm)
2024-05-20 21:06 ` Rob Herring (Arm)
2024-05-19 18:42 ` [PATCH 3/8] dt-bindings: soc: intel: lgm-syscon: Move to dedicated schema Krzysztof Kozlowski
2024-05-19 18:42 ` Krzysztof Kozlowski
2024-05-20 21:07 ` Rob Herring
2024-05-20 21:07 ` Rob Herring
2024-05-21 8:00 ` Krzysztof Kozlowski
2024-05-21 8:00 ` Krzysztof Kozlowski
2024-05-19 18:42 ` [PATCH 4/8] dt-bindings: soc: microchip: sparx5-cpu-syscon: " Krzysztof Kozlowski
2024-05-19 18:42 ` Krzysztof Kozlowski
2024-05-20 21:08 ` Rob Herring (Arm)
2024-05-20 21:08 ` Rob Herring (Arm)
2024-05-19 18:42 ` [PATCH 5/8] dt-bindings: soc: ti: am654-serdes-ctrl: " Krzysztof Kozlowski
2024-05-19 18:42 ` Krzysztof Kozlowski
2024-05-20 21:08 ` Rob Herring (Arm)
2024-05-20 21:08 ` Rob Herring (Arm)
2024-05-19 18:42 ` [PATCH 6/8] dt-bindings: mfd: syscon: Split and enforce documenting MFD children Krzysztof Kozlowski
2024-05-19 18:42 ` Krzysztof Kozlowski
2024-05-20 21:20 ` Rob Herring [this message]
2024-05-20 21:20 ` Rob Herring
2024-05-21 8:02 ` Krzysztof Kozlowski
2024-05-21 8:02 ` Krzysztof Kozlowski
2024-05-19 18:42 ` [PATCH 7/8] dt-bindings: mfd: syscon: Add APM poweroff mailbox Krzysztof Kozlowski
2024-05-19 18:42 ` Krzysztof Kozlowski
2024-05-20 21:22 ` Rob Herring (Arm)
2024-05-20 21:22 ` Rob Herring (Arm)
2024-05-19 18:42 ` [PATCH 8/8] arm64: dts: apm: Add dedicated syscon poweroff compatibles Krzysztof Kozlowski
2024-05-19 18:42 ` Krzysztof Kozlowski
2024-07-01 12:27 ` (subset) " Krzysztof Kozlowski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240520212025.GA1531862-robh@kernel.org \
--to=robh@kernel.org \
--cc=Steen.Hegelund@microchip.com \
--cc=UNGLinuxDriver@microchip.com \
--cc=angelogioacchino.delregno@collabora.com \
--cc=conor+dt@kernel.org \
--cc=daniel.machon@microchip.com \
--cc=devicetree@vger.kernel.org \
--cc=jiaxun.yang@flygoat.com \
--cc=krzk+dt@kernel.org \
--cc=krzysztof.kozlowski@linaro.org \
--cc=lars.povlsen@microchip.com \
--cc=lee@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=matthias.bgg@gmail.com \
--cc=nm@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.