mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [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