* [PATCH 1/2] dt-bindings: mfd: syscon: Disallow simple-bus with syscon
@ 2026-05-31 11:04 Krzysztof Kozlowski
2026-05-31 11:04 ` [PATCH 2/2] ARM: dts: ti: Add specific compatibles for SCM conf nodes Krzysztof Kozlowski
2026-06-04 21:40 ` [PATCH 1/2] dt-bindings: mfd: syscon: Disallow simple-bus with syscon Rob Herring (Arm)
0 siblings, 2 replies; 6+ messages in thread
From: Krzysztof Kozlowski @ 2026-05-31 11:04 UTC (permalink / raw)
To: Lee Jones, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Aaro Koskinen, Andreas Kemnade, Kevin Hilman, Roger Quadros,
Tony Lindgren, devicetree, linux-kernel, linux-omap
Cc: Krzysztof Kozlowski
"syscon" is a system controller with registers having their own
functions, thus not really a trivial MMIO simple bus. "simple-bus" on
the other hand is just a bus on which multiple devices sit and the
"simple" means no functions are allowed here.
Combination of both "syscon" and "simple-bus" is abuse of DT for easier
instantiating of Linux device drivers so add a schema to disallow that.
Unfortunately there are a few old cases of that patterns, so add
exceptions:
1. "cznic,turris1x-cpld" and "img,pistachio-cr-periph" are already used
in upstream DTS.
2. TI has several DTSI with a child of SCM device (e.g. "ti,am3-scm")
using "syscon" and "simple-bus" but without a dedicated compatible
documented anywhere. Add new compatibles for such cases.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
---
.../bindings/mfd/syscon-common.yaml | 27 +++++++++++++++++--
1 file changed, 25 insertions(+), 2 deletions(-)
diff --git a/Documentation/devicetree/bindings/mfd/syscon-common.yaml b/Documentation/devicetree/bindings/mfd/syscon-common.yaml
index 602a511985cc..315357da146e 100644
--- a/Documentation/devicetree/bindings/mfd/syscon-common.yaml
+++ b/Documentation/devicetree/bindings/mfd/syscon-common.yaml
@@ -63,8 +63,31 @@ allOf:
contains:
const: simple-bus
then:
- required:
- - incorrect-usage-of-simple-bus-and-syscon
+ # simple-bus conflicts with syscon - if a device is a system controller
+ # with miscellaneous registers, then it has at least one dedicated
+ # function thus it is not a simple bus. Allow existing exceptions.
+ if:
+ properties:
+ compatible:
+ not:
+ contains:
+ # This list CANNOT grow
+ enum:
+ - cznic,turris1x-cpld
+ - img,pistachio-cr-periph
+ - ti,am3352-scm-conf
+ - ti,am4372-scm-conf
+ - ti,dm814-scm-conf
+ - ti,dm8168-scm-conf
+ - ti,dra7-scm-conf
+ - ti,omap2-scm-conf
+ - ti,omap3-scm-conf
+ - ti,omap4-sysc-padconf-global
+ - ti,omap5-scm-conf
+ - ti,omap5-scm-wkup-conf
+ then:
+ required:
+ - incorrect-usage-of-simple-bus-and-syscon
additionalProperties: true
--
2.53.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 2/2] ARM: dts: ti: Add specific compatibles for SCM conf nodes
2026-05-31 11:04 [PATCH 1/2] dt-bindings: mfd: syscon: Disallow simple-bus with syscon Krzysztof Kozlowski
@ 2026-05-31 11:04 ` Krzysztof Kozlowski
2026-06-03 15:10 ` Andreas Kemnade
2026-06-04 21:40 ` [PATCH 1/2] dt-bindings: mfd: syscon: Disallow simple-bus with syscon Rob Herring (Arm)
1 sibling, 1 reply; 6+ messages in thread
From: Krzysztof Kozlowski @ 2026-05-31 11:04 UTC (permalink / raw)
To: Lee Jones, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Aaro Koskinen, Andreas Kemnade, Kevin Hilman, Roger Quadros,
Tony Lindgren, devicetree, linux-kernel, linux-omap
Cc: Krzysztof Kozlowski
writing-bindings.rst rules dictate that "syscon" must come with a
specific compatible identifying the register layout. Add specific
compatibles for these devices.
This also allows to solve a different problem: "syscon" is contradictory
to "simple-bus". A system controller with registers having their own
functions is not really a trivial MMIO simple bus. These two cannot be
used together, unless listed as an exception.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
---
arch/arm/boot/dts/ti/omap/am33xx-l4.dtsi | 2 +-
arch/arm/boot/dts/ti/omap/am437x-l4.dtsi | 2 +-
arch/arm/boot/dts/ti/omap/dm814x.dtsi | 2 +-
arch/arm/boot/dts/ti/omap/dm816x.dtsi | 2 +-
arch/arm/boot/dts/ti/omap/dra7-l4.dtsi | 2 +-
arch/arm/boot/dts/ti/omap/omap2430.dtsi | 2 +-
arch/arm/boot/dts/ti/omap/omap3.dtsi | 2 +-
arch/arm/boot/dts/ti/omap/omap4-l4.dtsi | 2 +-
arch/arm/boot/dts/ti/omap/omap5-l4.dtsi | 6 +++---
9 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/arch/arm/boot/dts/ti/omap/am33xx-l4.dtsi b/arch/arm/boot/dts/ti/omap/am33xx-l4.dtsi
index 89d16fcc773e..1e09d2b48925 100644
--- a/arch/arm/boot/dts/ti/omap/am33xx-l4.dtsi
+++ b/arch/arm/boot/dts/ti/omap/am33xx-l4.dtsi
@@ -308,7 +308,7 @@ am33xx_pinmux: pinmux@800 {
};
scm_conf: scm_conf@0 {
- compatible = "syscon", "simple-bus";
+ compatible = "ti,am3352-scm-conf", "syscon", "simple-bus";
reg = <0x0 0x800>;
#address-cells = <1>;
#size-cells = <1>;
diff --git a/arch/arm/boot/dts/ti/omap/am437x-l4.dtsi b/arch/arm/boot/dts/ti/omap/am437x-l4.dtsi
index e08f356e71cb..30fcce33f4b7 100644
--- a/arch/arm/boot/dts/ti/omap/am437x-l4.dtsi
+++ b/arch/arm/boot/dts/ti/omap/am437x-l4.dtsi
@@ -301,7 +301,7 @@ am43xx_pinmux: pinmux@800 {
};
scm_conf: scm_conf@0 {
- compatible = "syscon", "simple-bus";
+ compatible = "ti,am4372-scm-conf", "syscon", "simple-bus";
reg = <0x0 0x800>;
#address-cells = <1>;
#size-cells = <1>;
diff --git a/arch/arm/boot/dts/ti/omap/dm814x.dtsi b/arch/arm/boot/dts/ti/omap/dm814x.dtsi
index 27d1f35a31fd..9e02bfa5c3a2 100644
--- a/arch/arm/boot/dts/ti/omap/dm814x.dtsi
+++ b/arch/arm/boot/dts/ti/omap/dm814x.dtsi
@@ -432,7 +432,7 @@ control: control@140000 {
ranges = <0 0x140000 0x20000>;
scm_conf: scm_conf@0 {
- compatible = "syscon", "simple-bus";
+ compatible = "ti,dm814-scm-conf", "syscon", "simple-bus";
reg = <0x0 0x800>;
#address-cells = <1>;
#size-cells = <1>;
diff --git a/arch/arm/boot/dts/ti/omap/dm816x.dtsi b/arch/arm/boot/dts/ti/omap/dm816x.dtsi
index a1e0e904e0f0..ee0090f7aa64 100644
--- a/arch/arm/boot/dts/ti/omap/dm816x.dtsi
+++ b/arch/arm/boot/dts/ti/omap/dm816x.dtsi
@@ -100,7 +100,7 @@ dm816x_pinmux: pinmux@800 {
/* Device Configuration Registers */
scm_conf: syscon@600 {
- compatible = "syscon", "simple-bus";
+ compatible = "ti,dm8168-scm-conf", "syscon", "simple-bus";
reg = <0x600 0x110>;
#address-cells = <1>;
#size-cells = <1>;
diff --git a/arch/arm/boot/dts/ti/omap/dra7-l4.dtsi b/arch/arm/boot/dts/ti/omap/dra7-l4.dtsi
index c8d325b0f57b..9df7648c4b79 100644
--- a/arch/arm/boot/dts/ti/omap/dra7-l4.dtsi
+++ b/arch/arm/boot/dts/ti/omap/dra7-l4.dtsi
@@ -64,7 +64,7 @@ scm: scm@0 {
ranges = <0 0 0x2000>;
scm_conf: scm_conf@0 {
- compatible = "syscon", "simple-bus";
+ compatible = "ti,dra7-scm-conf", "syscon", "simple-bus";
reg = <0x0 0x1400>;
#address-cells = <1>;
#size-cells = <1>;
diff --git a/arch/arm/boot/dts/ti/omap/omap2430.dtsi b/arch/arm/boot/dts/ti/omap/omap2430.dtsi
index 222613d2a4d1..01bd471f9223 100644
--- a/arch/arm/boot/dts/ti/omap/omap2430.dtsi
+++ b/arch/arm/boot/dts/ti/omap/omap2430.dtsi
@@ -50,7 +50,7 @@ omap2430_pmx: pinmux@30 {
};
scm_conf: scm_conf@270 {
- compatible = "syscon",
+ compatible = "ti,omap2-scm-conf", "syscon",
"simple-bus";
reg = <0x270 0x240>;
#address-cells = <1>;
diff --git a/arch/arm/boot/dts/ti/omap/omap3.dtsi b/arch/arm/boot/dts/ti/omap/omap3.dtsi
index 959069e24730..447736d2e53c 100644
--- a/arch/arm/boot/dts/ti/omap/omap3.dtsi
+++ b/arch/arm/boot/dts/ti/omap/omap3.dtsi
@@ -116,7 +116,7 @@ omap3_pmx_core: pinmux@30 {
};
scm_conf: scm_conf@270 {
- compatible = "syscon", "simple-bus";
+ compatible = "ti,omap3-scm-conf", "syscon", "simple-bus";
reg = <0x270 0x330>;
#address-cells = <1>;
#size-cells = <1>;
diff --git a/arch/arm/boot/dts/ti/omap/omap4-l4.dtsi b/arch/arm/boot/dts/ti/omap/omap4-l4.dtsi
index 4c78a0b28fab..c1afc49f456c 100644
--- a/arch/arm/boot/dts/ti/omap/omap4-l4.dtsi
+++ b/arch/arm/boot/dts/ti/omap/omap4-l4.dtsi
@@ -681,7 +681,7 @@ omap4_pmx_core: pinmux@40 {
};
omap4_padconf_global: omap4_padconf_global@5a0 {
- compatible = "syscon",
+ compatible = "ti,omap4-sysc-padconf-global", "syscon",
"simple-bus";
reg = <0x5a0 0x170>;
#address-cells = <1>;
diff --git a/arch/arm/boot/dts/ti/omap/omap5-l4.dtsi b/arch/arm/boot/dts/ti/omap/omap5-l4.dtsi
index 915870eb5c99..3350128db22d 100644
--- a/arch/arm/boot/dts/ti/omap/omap5-l4.dtsi
+++ b/arch/arm/boot/dts/ti/omap/omap5-l4.dtsi
@@ -96,8 +96,7 @@ omap5_pmx_core: pinmux@40 {
};
omap5_padconf_global: omap5_padconf_global@5a0 {
- compatible = "syscon",
- "simple-bus";
+ compatible = "ti,omap5-scm-conf", "syscon", "simple-bus";
reg = <0x5a0 0xec>;
#address-cells = <1>;
#size-cells = <1>;
@@ -2311,7 +2310,8 @@ omap5_scm_wkup_pad_conf: omap5_scm_wkup_pad_conf@da0 {
ranges = <0 0 0x60>;
scm_wkup_pad_conf: scm_conf@0 {
- compatible = "syscon", "simple-bus";
+ compatible = "ti,omap5-scm-wkup-conf",
+ "syscon", "simple-bus";
reg = <0x0 0x60>;
#address-cells = <1>;
#size-cells = <1>;
--
2.53.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] ARM: dts: ti: Add specific compatibles for SCM conf nodes
2026-05-31 11:04 ` [PATCH 2/2] ARM: dts: ti: Add specific compatibles for SCM conf nodes Krzysztof Kozlowski
@ 2026-06-03 15:10 ` Andreas Kemnade
2026-06-08 13:51 ` Krzysztof Kozlowski
0 siblings, 1 reply; 6+ messages in thread
From: Andreas Kemnade @ 2026-06-03 15:10 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Lee Jones, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Aaro Koskinen, Kevin Hilman, Roger Quadros, Tony Lindgren,
devicetree, linux-kernel, linux-omap
On Sun, 31 May 2026 13:04:06 +0200
Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> wrote:
> writing-bindings.rst rules dictate that "syscon" must come with a
> specific compatible identifying the register layout. Add specific
> compatibles for these devices.
>
> This also allows to solve a different problem: "syscon" is contradictory
> to "simple-bus". A system controller with registers having their own
> functions is not really a trivial MMIO simple bus. These two cannot be
> used together, unless listed as an exception.
>
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Reviewed-By: Andreas Kemnade <andreas@kemnade.info>
> ---
> arch/arm/boot/dts/ti/omap/am33xx-l4.dtsi | 2 +-
> arch/arm/boot/dts/ti/omap/am437x-l4.dtsi | 2 +-
> arch/arm/boot/dts/ti/omap/dm814x.dtsi | 2 +-
> arch/arm/boot/dts/ti/omap/dm816x.dtsi | 2 +-
> arch/arm/boot/dts/ti/omap/dra7-l4.dtsi | 2 +-
> arch/arm/boot/dts/ti/omap/omap2430.dtsi | 2 +-
> arch/arm/boot/dts/ti/omap/omap3.dtsi | 2 +-
> arch/arm/boot/dts/ti/omap/omap4-l4.dtsi | 2 +-
> arch/arm/boot/dts/ti/omap/omap5-l4.dtsi | 6 +++---
> 9 files changed, 11 insertions(+), 11 deletions(-)
>
> diff --git a/arch/arm/boot/dts/ti/omap/am33xx-l4.dtsi b/arch/arm/boot/dts/ti/omap/am33xx-l4.dtsi
> index 89d16fcc773e..1e09d2b48925 100644
> --- a/arch/arm/boot/dts/ti/omap/am33xx-l4.dtsi
> +++ b/arch/arm/boot/dts/ti/omap/am33xx-l4.dtsi
> @@ -308,7 +308,7 @@ am33xx_pinmux: pinmux@800 {
> };
>
> scm_conf: scm_conf@0 {
> - compatible = "syscon", "simple-bus";
> + compatible = "ti,am3352-scm-conf", "syscon", "simple-bus";
> reg = <0x0 0x800>;
> #address-cells = <1>;
> #size-cells = <1>;
> diff --git a/arch/arm/boot/dts/ti/omap/am437x-l4.dtsi b/arch/arm/boot/dts/ti/omap/am437x-l4.dtsi
> index e08f356e71cb..30fcce33f4b7 100644
> --- a/arch/arm/boot/dts/ti/omap/am437x-l4.dtsi
> +++ b/arch/arm/boot/dts/ti/omap/am437x-l4.dtsi
> @@ -301,7 +301,7 @@ am43xx_pinmux: pinmux@800 {
> };
>
> scm_conf: scm_conf@0 {
> - compatible = "syscon", "simple-bus";
> + compatible = "ti,am4372-scm-conf", "syscon", "simple-bus";
> reg = <0x0 0x800>;
> #address-cells = <1>;
> #size-cells = <1>;
> diff --git a/arch/arm/boot/dts/ti/omap/dm814x.dtsi b/arch/arm/boot/dts/ti/omap/dm814x.dtsi
> index 27d1f35a31fd..9e02bfa5c3a2 100644
> --- a/arch/arm/boot/dts/ti/omap/dm814x.dtsi
> +++ b/arch/arm/boot/dts/ti/omap/dm814x.dtsi
> @@ -432,7 +432,7 @@ control: control@140000 {
> ranges = <0 0x140000 0x20000>;
>
> scm_conf: scm_conf@0 {
> - compatible = "syscon", "simple-bus";
> + compatible = "ti,dm814-scm-conf", "syscon", "simple-bus";
> reg = <0x0 0x800>;
> #address-cells = <1>;
> #size-cells = <1>;
> diff --git a/arch/arm/boot/dts/ti/omap/dm816x.dtsi b/arch/arm/boot/dts/ti/omap/dm816x.dtsi
> index a1e0e904e0f0..ee0090f7aa64 100644
> --- a/arch/arm/boot/dts/ti/omap/dm816x.dtsi
> +++ b/arch/arm/boot/dts/ti/omap/dm816x.dtsi
> @@ -100,7 +100,7 @@ dm816x_pinmux: pinmux@800 {
>
> /* Device Configuration Registers */
> scm_conf: syscon@600 {
> - compatible = "syscon", "simple-bus";
> + compatible = "ti,dm8168-scm-conf", "syscon", "simple-bus";
> reg = <0x600 0x110>;
> #address-cells = <1>;
> #size-cells = <1>;
> diff --git a/arch/arm/boot/dts/ti/omap/dra7-l4.dtsi b/arch/arm/boot/dts/ti/omap/dra7-l4.dtsi
> index c8d325b0f57b..9df7648c4b79 100644
> --- a/arch/arm/boot/dts/ti/omap/dra7-l4.dtsi
> +++ b/arch/arm/boot/dts/ti/omap/dra7-l4.dtsi
> @@ -64,7 +64,7 @@ scm: scm@0 {
> ranges = <0 0 0x2000>;
>
> scm_conf: scm_conf@0 {
> - compatible = "syscon", "simple-bus";
> + compatible = "ti,dra7-scm-conf", "syscon", "simple-bus";
> reg = <0x0 0x1400>;
> #address-cells = <1>;
> #size-cells = <1>;
> diff --git a/arch/arm/boot/dts/ti/omap/omap2430.dtsi b/arch/arm/boot/dts/ti/omap/omap2430.dtsi
> index 222613d2a4d1..01bd471f9223 100644
> --- a/arch/arm/boot/dts/ti/omap/omap2430.dtsi
> +++ b/arch/arm/boot/dts/ti/omap/omap2430.dtsi
> @@ -50,7 +50,7 @@ omap2430_pmx: pinmux@30 {
> };
>
> scm_conf: scm_conf@270 {
> - compatible = "syscon",
> + compatible = "ti,omap2-scm-conf", "syscon",
> "simple-bus";
> reg = <0x270 0x240>;
> #address-cells = <1>;
> diff --git a/arch/arm/boot/dts/ti/omap/omap3.dtsi b/arch/arm/boot/dts/ti/omap/omap3.dtsi
> index 959069e24730..447736d2e53c 100644
> --- a/arch/arm/boot/dts/ti/omap/omap3.dtsi
> +++ b/arch/arm/boot/dts/ti/omap/omap3.dtsi
> @@ -116,7 +116,7 @@ omap3_pmx_core: pinmux@30 {
> };
>
> scm_conf: scm_conf@270 {
> - compatible = "syscon", "simple-bus";
> + compatible = "ti,omap3-scm-conf", "syscon", "simple-bus";
> reg = <0x270 0x330>;
> #address-cells = <1>;
> #size-cells = <1>;
> diff --git a/arch/arm/boot/dts/ti/omap/omap4-l4.dtsi b/arch/arm/boot/dts/ti/omap/omap4-l4.dtsi
> index 4c78a0b28fab..c1afc49f456c 100644
> --- a/arch/arm/boot/dts/ti/omap/omap4-l4.dtsi
> +++ b/arch/arm/boot/dts/ti/omap/omap4-l4.dtsi
> @@ -681,7 +681,7 @@ omap4_pmx_core: pinmux@40 {
> };
>
> omap4_padconf_global: omap4_padconf_global@5a0 {
> - compatible = "syscon",
> + compatible = "ti,omap4-sysc-padconf-global", "syscon",
> "simple-bus";
> reg = <0x5a0 0x170>;
> #address-cells = <1>;
> diff --git a/arch/arm/boot/dts/ti/omap/omap5-l4.dtsi b/arch/arm/boot/dts/ti/omap/omap5-l4.dtsi
> index 915870eb5c99..3350128db22d 100644
> --- a/arch/arm/boot/dts/ti/omap/omap5-l4.dtsi
> +++ b/arch/arm/boot/dts/ti/omap/omap5-l4.dtsi
> @@ -96,8 +96,7 @@ omap5_pmx_core: pinmux@40 {
> };
>
> omap5_padconf_global: omap5_padconf_global@5a0 {
> - compatible = "syscon",
> - "simple-bus";
> + compatible = "ti,omap5-scm-conf", "syscon", "simple-bus";
> reg = <0x5a0 0xec>;
> #address-cells = <1>;
> #size-cells = <1>;
> @@ -2311,7 +2310,8 @@ omap5_scm_wkup_pad_conf: omap5_scm_wkup_pad_conf@da0 {
> ranges = <0 0 0x60>;
>
> scm_wkup_pad_conf: scm_conf@0 {
> - compatible = "syscon", "simple-bus";
> + compatible = "ti,omap5-scm-wkup-conf",
> + "syscon", "simple-bus";
> reg = <0x0 0x60>;
> #address-cells = <1>;
> #size-cells = <1>;
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] dt-bindings: mfd: syscon: Disallow simple-bus with syscon
2026-05-31 11:04 [PATCH 1/2] dt-bindings: mfd: syscon: Disallow simple-bus with syscon Krzysztof Kozlowski
2026-05-31 11:04 ` [PATCH 2/2] ARM: dts: ti: Add specific compatibles for SCM conf nodes Krzysztof Kozlowski
@ 2026-06-04 21:40 ` Rob Herring (Arm)
2026-06-08 12:25 ` Krzysztof Kozlowski
1 sibling, 1 reply; 6+ messages in thread
From: Rob Herring (Arm) @ 2026-06-04 21:40 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Aaro Koskinen, Conor Dooley, Kevin Hilman, linux-kernel,
Tony Lindgren, Andreas Kemnade, Krzysztof Kozlowski, linux-omap,
Roger Quadros, Lee Jones, devicetree
On Sun, 31 May 2026 13:04:05 +0200, Krzysztof Kozlowski wrote:
> "syscon" is a system controller with registers having their own
> functions, thus not really a trivial MMIO simple bus. "simple-bus" on
> the other hand is just a bus on which multiple devices sit and the
> "simple" means no functions are allowed here.
>
> Combination of both "syscon" and "simple-bus" is abuse of DT for easier
> instantiating of Linux device drivers so add a schema to disallow that.
>
> Unfortunately there are a few old cases of that patterns, so add
> exceptions:
>
> 1. "cznic,turris1x-cpld" and "img,pistachio-cr-periph" are already used
> in upstream DTS.
>
> 2. TI has several DTSI with a child of SCM device (e.g. "ti,am3-scm")
> using "syscon" and "simple-bus" but without a dedicated compatible
> documented anywhere. Add new compatibles for such cases.
>
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
> ---
> .../bindings/mfd/syscon-common.yaml | 27 +++++++++++++++++--
> 1 file changed, 25 insertions(+), 2 deletions(-)
>
Acked-by: Rob Herring (Arm) <robh@kernel.org>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] dt-bindings: mfd: syscon: Disallow simple-bus with syscon
2026-06-04 21:40 ` [PATCH 1/2] dt-bindings: mfd: syscon: Disallow simple-bus with syscon Rob Herring (Arm)
@ 2026-06-08 12:25 ` Krzysztof Kozlowski
0 siblings, 0 replies; 6+ messages in thread
From: Krzysztof Kozlowski @ 2026-06-08 12:25 UTC (permalink / raw)
To: Rob Herring (Arm), Krzysztof Kozlowski
Cc: Aaro Koskinen, Conor Dooley, Kevin Hilman, linux-kernel,
Tony Lindgren, Andreas Kemnade, Krzysztof Kozlowski, linux-omap,
Roger Quadros, Lee Jones, devicetree
On 04/06/2026 23:40, Rob Herring (Arm) wrote:
>
> On Sun, 31 May 2026 13:04:05 +0200, Krzysztof Kozlowski wrote:
>> "syscon" is a system controller with registers having their own
>> functions, thus not really a trivial MMIO simple bus. "simple-bus" on
>> the other hand is just a bus on which multiple devices sit and the
>> "simple" means no functions are allowed here.
>>
>> Combination of both "syscon" and "simple-bus" is abuse of DT for easier
>> instantiating of Linux device drivers so add a schema to disallow that.
>>
>> Unfortunately there are a few old cases of that patterns, so add
>> exceptions:
>>
>> 1. "cznic,turris1x-cpld" and "img,pistachio-cr-periph" are already used
>> in upstream DTS.
>>
>> 2. TI has several DTSI with a child of SCM device (e.g. "ti,am3-scm")
>> using "syscon" and "simple-bus" but without a dedicated compatible
>> documented anywhere. Add new compatibles for such cases.
>>
>> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
>> ---
>> .../bindings/mfd/syscon-common.yaml | 27 +++++++++++++++++--
>> 1 file changed, 25 insertions(+), 2 deletions(-)
>>
>
> Acked-by: Rob Herring (Arm) <robh@kernel.org>
Thanks for ack, but this is partial patch on top of my earlier work
which I forgot to squash here. I will send a v2 without the ack.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] ARM: dts: ti: Add specific compatibles for SCM conf nodes
2026-06-03 15:10 ` Andreas Kemnade
@ 2026-06-08 13:51 ` Krzysztof Kozlowski
0 siblings, 0 replies; 6+ messages in thread
From: Krzysztof Kozlowski @ 2026-06-08 13:51 UTC (permalink / raw)
To: Andreas Kemnade, Krzysztof Kozlowski
Cc: Lee Jones, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Aaro Koskinen, Kevin Hilman, Roger Quadros, Tony Lindgren,
devicetree, linux-kernel, linux-omap
On 03/06/2026 17:10, Andreas Kemnade wrote:
> On Sun, 31 May 2026 13:04:06 +0200
> Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> wrote:
>
>> writing-bindings.rst rules dictate that "syscon" must come with a
>> specific compatible identifying the register layout. Add specific
>> compatibles for these devices.
>>
>> This also allows to solve a different problem: "syscon" is contradictory
>> to "simple-bus". A system controller with registers having their own
>> functions is not really a trivial MMIO simple bus. These two cannot be
>> used together, unless listed as an exception.
>>
>> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
>
> Reviewed-By: Andreas Kemnade <andreas@kemnade.info>
For the record, that's wrong case in tag. Please use templates.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-06-08 13:51 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-05-31 11:04 [PATCH 1/2] dt-bindings: mfd: syscon: Disallow simple-bus with syscon Krzysztof Kozlowski
2026-05-31 11:04 ` [PATCH 2/2] ARM: dts: ti: Add specific compatibles for SCM conf nodes Krzysztof Kozlowski
2026-06-03 15:10 ` Andreas Kemnade
2026-06-08 13:51 ` Krzysztof Kozlowski
2026-06-04 21:40 ` [PATCH 1/2] dt-bindings: mfd: syscon: Disallow simple-bus with syscon Rob Herring (Arm)
2026-06-08 12:25 ` Krzysztof Kozlowski
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome