* [PATCH v2 1/4] dt-bindings: mfd: syscon: Disallow simple-bus with syscon
2026-06-08 13:54 [PATCH v2 0/4] dt-bindings: mfd: syscon: Tighten checks Krzysztof Kozlowski
@ 2026-06-08 13:54 ` Krzysztof Kozlowski
2026-06-08 14:06 ` sashiko-bot
2026-06-08 13:54 ` [PATCH v2 2/4] dt-bindings: mfd: syscon: Drop unneeded case for syscon + simple-mfd Krzysztof Kozlowski
` (2 subsequent siblings)
3 siblings, 1 reply; 10+ messages in thread
From: Krzysztof Kozlowski @ 2026-06-08 13:54 UTC (permalink / raw)
To: Lee Jones, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Matthias Brugger, AngeloGioacchino Del Regno, Jacky Huang,
Shan-Chun Hung, Geert Uytterhoeven, Magnus Damm, Heiko Stuebner,
Aaro Koskinen, Andreas Kemnade, Kevin Hilman, Roger Quadros,
Tony Lindgren
Cc: devicetree, linux-kernel, linux-arm-kernel, linux-mediatek,
linux-renesas-soc, linux-rockchip, linux-omap,
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>
---
Changes in v2:
1. Complete patch. I accidentally sent only part of it, built on top of
internal WIP which I forgot to squash.
I received Ack from Rob, but change is significant, so please kindly
re-review.
---
.../devicetree/bindings/mfd/syscon-common.yaml | 32 ++++++++++++++++++++++
1 file changed, 32 insertions(+)
diff --git a/Documentation/devicetree/bindings/mfd/syscon-common.yaml b/Documentation/devicetree/bindings/mfd/syscon-common.yaml
index 14a08e7bc8bd..315357da146e 100644
--- a/Documentation/devicetree/bindings/mfd/syscon-common.yaml
+++ b/Documentation/devicetree/bindings/mfd/syscon-common.yaml
@@ -57,6 +57,38 @@ allOf:
minItems: 3
maxItems: 5
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: simple-bus
+ then:
+ # 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
examples:
--
2.53.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [PATCH v2 1/4] dt-bindings: mfd: syscon: Disallow simple-bus with syscon
2026-06-08 13:54 ` [PATCH v2 1/4] dt-bindings: mfd: syscon: Disallow simple-bus with syscon Krzysztof Kozlowski
@ 2026-06-08 14:06 ` sashiko-bot
0 siblings, 0 replies; 10+ messages in thread
From: sashiko-bot @ 2026-06-08 14:06 UTC (permalink / raw)
To: Krzysztof Kozlowski; +Cc: conor+dt, wsa+renesas, robh, devicetree
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] DT Binding Violation: Undocumented Compatibles and Validation Breakage
--
commit 73d2cc9a54e99039c48884fc1ade73467dc1c67d
Author: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
dt-bindings: mfd: syscon: Disallow simple-bus with syscon
This commit adds a schema rule to disallow the combination of syscon and
simple-bus compatibles. It creates exceptions for existing upstream device
trees that already use this pattern. It also introduces new compatibles for
several TI platforms to bypass this restriction without a dedicated schema.
> diff --git a/Documentation/devicetree/bindings/mfd/syscon-common.yaml b/Documentation/devicetree/bindings/mfd/syscon-common.yaml
> index 14a08e7bc8bdd..315357da146ea 100644
> --- a/Documentation/devicetree/bindings/mfd/syscon-common.yaml
> +++ b/Documentation/devicetree/bindings/mfd/syscon-common.yaml
> @@ -57,6 +57,38 @@ allOf:
> minItems: 3
> maxItems: 5
>
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: simple-bus
> + then:
> + # 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
[Severity: Medium]
Does this cause make dtbs_check to report undocumented compatible warnings
for the newly added TI platforms?
Since these new compatibles are introduced in this exclusion list but are
not defined under a standard properties compatible block in syscon.yaml
or another dedicated schema, it appears the tooling will fail to extract
them. Will this lead to schema validation skipping hardware-specific
constraints for these TI platforms?
> + - 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
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260608-n-dt-bindings-simple-bus-syscon-v2-0-0203e6c249dc@oss.qualcomm.com?part=1
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2 2/4] dt-bindings: mfd: syscon: Drop unneeded case for syscon + simple-mfd
2026-06-08 13:54 [PATCH v2 0/4] dt-bindings: mfd: syscon: Tighten checks Krzysztof Kozlowski
2026-06-08 13:54 ` [PATCH v2 1/4] dt-bindings: mfd: syscon: Disallow simple-bus with syscon Krzysztof Kozlowski
@ 2026-06-08 13:54 ` Krzysztof Kozlowski
2026-06-08 14:08 ` sashiko-bot
2026-06-08 13:54 ` [PATCH v2 3/4] dt-bindings: mfd: syscon: Drop custom select for older dtschema Krzysztof Kozlowski
2026-06-08 13:54 ` [PATCH v2 4/4] ARM: dts: ti: Add specific compatibles for SCM conf nodes Krzysztof Kozlowski
3 siblings, 1 reply; 10+ messages in thread
From: Krzysztof Kozlowski @ 2026-06-08 13:54 UTC (permalink / raw)
To: Lee Jones, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Matthias Brugger, AngeloGioacchino Del Regno, Jacky Huang,
Shan-Chun Hung, Geert Uytterhoeven, Magnus Damm, Heiko Stuebner,
Aaro Koskinen, Andreas Kemnade, Kevin Hilman, Roger Quadros,
Tony Lindgren
Cc: devicetree, linux-kernel, linux-arm-kernel, linux-mediatek,
linux-renesas-soc, linux-rockchip, linux-omap,
Krzysztof Kozlowski
Commit f97b0435c857 ("dt-bindings: mfd: syscon: Split and enforce
documenting MFD children") split the syscon.yaml bindings with intention
that combinations of "syscon" and "simple-mfd" will own bindings file
referencing the common syscon-common.yaml file and define its children.
That is why it left the quite generic/wide compatible list of up to five
entries with simple-mfd.
This permissive list of up to five entries with simple-mfd can be
removed because:
1. Such case - referencing syscon-common.yaml - did not materialize.
2. All documented bindings combining "syscon" and "simple-mfd" have
their own schemas.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
---
Changes in v2:
1. New patch
---
Documentation/devicetree/bindings/mfd/syscon-common.yaml | 11 -----------
1 file changed, 11 deletions(-)
diff --git a/Documentation/devicetree/bindings/mfd/syscon-common.yaml b/Documentation/devicetree/bindings/mfd/syscon-common.yaml
index 315357da146e..b3462e876622 100644
--- a/Documentation/devicetree/bindings/mfd/syscon-common.yaml
+++ b/Documentation/devicetree/bindings/mfd/syscon-common.yaml
@@ -46,17 +46,6 @@ required:
- reg
allOf:
- - if:
- properties:
- compatible:
- contains:
- const: simple-mfd
- then:
- properties:
- compatible:
- minItems: 3
- maxItems: 5
-
- if:
properties:
compatible:
--
2.53.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [PATCH v2 2/4] dt-bindings: mfd: syscon: Drop unneeded case for syscon + simple-mfd
2026-06-08 13:54 ` [PATCH v2 2/4] dt-bindings: mfd: syscon: Drop unneeded case for syscon + simple-mfd Krzysztof Kozlowski
@ 2026-06-08 14:08 ` sashiko-bot
0 siblings, 0 replies; 10+ messages in thread
From: sashiko-bot @ 2026-06-08 14:08 UTC (permalink / raw)
To: Krzysztof Kozlowski; +Cc: wsa+renesas, devicetree, conor+dt, robh
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Removing the `minItems: 3` constraint introduces a schema validation loophole, allowing device trees to use exactly `compatible = "syscon", "simple-mfd";` without a vendor-specific compatible string.
--
commit 882002de06044bfb3632f58a13384021911573e1
Author: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
dt-bindings: mfd: syscon: Drop unneeded case for syscon + simple-mfd
This commit removes the conditional block enforcing the number of compatible
items for devices combining "syscon" and "simple-mfd". The intention was to
remove a permissive list that the author believed was unused because
specific bindings handle their own schemas.
> diff --git a/Documentation/devicetree/bindings/mfd/syscon-common.yaml b/Documentation/devicetree/bindings/mfd/syscon-common.yaml
> index 315357da146ea..b3462e876622f 100644
> --- a/Documentation/devicetree/bindings/mfd/syscon-common.yaml
> +++ b/Documentation/devicetree/bindings/mfd/syscon-common.yaml
> @@ -46,17 +46,6 @@ required:
> - reg
>
> allOf:
> - - if:
> - properties:
> - compatible:
> - contains:
> - const: simple-mfd
> - then:
> - properties:
> - compatible:
> - minItems: 3
> - maxItems: 5
[Severity: Medium]
Does removing this conditional block reintroduce a schema validation loophole?
By removing the minItems requirement for simple-mfd, the compatible array
length constraint falls back to the base minimum of 2 defined earlier in the
file. Since syscon-common.yaml uses additionalProperties: true, device tree
nodes using exactly "syscon", "simple-mfd" without a vendor-specific
compatible string might now silently pass validation.
Are there still undocumented device tree nodes in the kernel
(such as arch/arm/boot/dts/nxp/imx/imx51-ts4800.dts) using exactly this
2-item compatible string that will now bypass validation instead of being
properly flagged as errors?
> -
> - if:
> properties:
> compatible:
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260608-n-dt-bindings-simple-bus-syscon-v2-0-0203e6c249dc@oss.qualcomm.com?part=2
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2 3/4] dt-bindings: mfd: syscon: Drop custom select for older dtschema
2026-06-08 13:54 [PATCH v2 0/4] dt-bindings: mfd: syscon: Tighten checks Krzysztof Kozlowski
2026-06-08 13:54 ` [PATCH v2 1/4] dt-bindings: mfd: syscon: Disallow simple-bus with syscon Krzysztof Kozlowski
2026-06-08 13:54 ` [PATCH v2 2/4] dt-bindings: mfd: syscon: Drop unneeded case for syscon + simple-mfd Krzysztof Kozlowski
@ 2026-06-08 13:54 ` Krzysztof Kozlowski
2026-06-08 14:01 ` sashiko-bot
2026-06-08 13:54 ` [PATCH v2 4/4] ARM: dts: ti: Add specific compatibles for SCM conf nodes Krzysztof Kozlowski
3 siblings, 1 reply; 10+ messages in thread
From: Krzysztof Kozlowski @ 2026-06-08 13:54 UTC (permalink / raw)
To: Lee Jones, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Matthias Brugger, AngeloGioacchino Del Regno, Jacky Huang,
Shan-Chun Hung, Geert Uytterhoeven, Magnus Damm, Heiko Stuebner,
Aaro Koskinen, Andreas Kemnade, Kevin Hilman, Roger Quadros,
Tony Lindgren
Cc: devicetree, linux-kernel, linux-arm-kernel, linux-mediatek,
linux-renesas-soc, linux-rockchip, linux-omap,
Krzysztof Kozlowski
Older dtschema <2024.02 required custom select to avoid applying this
binding to anything having "syscon" compatible. That's not the case
anymore and this additional select has two headaches:
1. Duplicates all the compatibles listed in the schema.
2. Is error-prone, because it requires contributor to add the compatible
in two places, otherwise the schema will be silently ignored.
The select list already misses mentioning compatibles:
mediatek,mt8365-infracfg-nao and renesas,r9a08g046-lvds-cmn (with the
latter being reverted for different reasons).
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
---
Changes in v2:
1. New patch
---
Documentation/devicetree/bindings/mfd/syscon.yaml | 116 ----------------------
1 file changed, 116 deletions(-)
diff --git a/Documentation/devicetree/bindings/mfd/syscon.yaml b/Documentation/devicetree/bindings/mfd/syscon.yaml
index 9c81010d5a74..b70018bf1bcf 100644
--- a/Documentation/devicetree/bindings/mfd/syscon.yaml
+++ b/Documentation/devicetree/bindings/mfd/syscon.yaml
@@ -19,122 +19,6 @@ description: |
maintainers:
- Lee Jones <lee@kernel.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:
- - airoha,en7581-pbus-csr
- - al,alpine-sysfabric-service
- - allwinner,sun8i-a83t-system-controller
- - allwinner,sun8i-h3-system-controller
- - allwinner,sun8i-v3s-system-controller
- - allwinner,sun50i-a64-system-controller
- - altr,l3regs
- - altr,sdr-ctl
- - amd,pensando-elba-syscon
- - amlogic,meson-mx-assist
- - amlogic,meson-mx-bootrom
- - amlogic,meson8-analog-top
- - amlogic,meson8b-analog-top
- - amlogic,meson8-pmu
- - amlogic,meson8b-pmu
- - apm,merlin-poweroff-mailbox
- - apm,mustang-poweroff-mailbox
- - apm,xgene-csw
- - apm,xgene-efuse
- - apm,xgene-mcb
- - apm,xgene-rb
- - apm,xgene-scu
- - atmel,sama5d2-sfrbu
- - atmel,sama5d3-nfc-io
- - atmel,sama5d3-sfrbu
- - atmel,sama5d4-sfrbu
- - axis,artpec6-syscon
- - brcm,cru-clkset
- - brcm,sr-cdru
- - brcm,sr-mhb
- - cirrus,ep7209-syscon1
- - cirrus,ep7209-syscon2
- - cirrus,ep7209-syscon3
- - cnxt,cx92755-uc
- - econet,en751221-chip-scu
- - freecom,fsg-cs2-system-controller
- - fsl,imx93-aonmix-ns-syscfg
- - fsl,imx93-wakeupmix-syscfg
- - fsl,ls1088a-reset
- - fsl,vf610-anatop
- - fsl,vf610-mscm-cpucfg
- - hisilicon,dsa-subctrl
- - hisilicon,hi6220-sramctrl
- - hisilicon,hip04-ppe
- - hisilicon,pcie-sas-subctrl
- - hisilicon,peri-subctrl
- - hpe,gxp-sysreg
- - loongson,ls1b-syscon
- - loongson,ls1c-syscon
- - lsi,axxia-syscon
- - marvell,armada-3700-cpu-misc
- - marvell,armada-3700-nb-pm
- - marvell,armada-3700-avs
- - marvell,armada-3700-usb2-host-device-misc
- - marvell,armada-3700-usb2-host-misc
- - marvell,dove-global-config
- - mediatek,mt2701-pctl-a-syscfg
- - mediatek,mt2712-pctl-a-syscfg
- - mediatek,mt6397-pctl-pmic-syscfg
- - mediatek,mt7981-topmisc
- - mediatek,mt7988-topmisc
- - mediatek,mt8135-pctl-a-syscfg
- - mediatek,mt8135-pctl-b-syscfg
- - mediatek,mt8173-pctl-a-syscfg
- - mediatek,mt8365-syscfg
- - microchip,lan966x-cpu-syscon
- - microchip,mpfs-control-scb
- - microchip,mpfs-sysreg-scb
- - microchip,sam9x60-sfr
- - microchip,sama7d65-ddr3phy
- - microchip,sama7d65-sfrbu
- - microchip,sama7g5-ddr3phy
- - mscc,ocelot-cpu-syscon
- - mstar,msc313-pmsleep
- - nuvoton,ma35d1-sys
- - nuvoton,wpcm450-shm
- - nxp,s32g2-gpr
- - nxp,s32g3-gpr
- - qcom,apq8064-mmss-sfpb
- - qcom,apq8064-sps-sic
- - rockchip,px30-qos
- - rockchip,rk3036-qos
- - rockchip,rk3066-qos
- - rockchip,rk3128-qos
- - rockchip,rk3228-qos
- - rockchip,rk3288-qos
- - rockchip,rk3368-qos
- - rockchip,rk3399-qos
- - rockchip,rk3528-qos
- - rockchip,rk3562-qos
- - rockchip,rk3568-qos
- - rockchip,rk3576-qos
- - rockchip,rk3588-qos
- - rockchip,rv1126-qos
- - st,spear1340-misc
- - stericsson,nomadik-pmu
- - starfive,jh7100-sysmain
- - ti,am62-opp-efuse-table
- - ti,am62-usb-phy-ctrl
- - ti,am625-dss-oldi-io-ctrl
- - ti,am62p-cpsw-mac-efuse
- - ti,am654-dss-oldi-io-ctrl
- - ti,j784s4-acspcie-proxy-ctrl
- - ti,j784s4-pcie-ctrl
- - ti,keystone-pllctrl
- required:
- - compatible
-
properties:
compatible:
oneOf:
--
2.53.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [PATCH v2 3/4] dt-bindings: mfd: syscon: Drop custom select for older dtschema
2026-06-08 13:54 ` [PATCH v2 3/4] dt-bindings: mfd: syscon: Drop custom select for older dtschema Krzysztof Kozlowski
@ 2026-06-08 14:01 ` sashiko-bot
2026-06-08 14:07 ` Krzysztof Kozlowski
0 siblings, 1 reply; 10+ messages in thread
From: sashiko-bot @ 2026-06-08 14:01 UTC (permalink / raw)
To: Krzysztof Kozlowski; +Cc: robh, wsa+renesas, devicetree, conor+dt
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Removal of the custom `select` block breaks device tree validation for `dtschema` versions older than 2024.02, which are still permitted by the kernel build system.
--
commit f0ac964d90c2fab365a733b219f9d7ce636b7fb6
Author: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
dt-bindings: mfd: syscon: Drop custom select for older dtschema
This commit removes a custom select block from the syscon binding that was
previously required for compatibility with dtschema versions older than
2024.02. The change aims to reduce duplication and prevent errors when adding
new compatible strings.
> diff --git a/Documentation/devicetree/bindings/mfd/syscon.yaml b/Documentation/devicetree/bindings/mfd/syscon.yaml
> index e228670880631..fe882d3f828b1 100644
> --- a/Documentation/devicetree/bindings/mfd/syscon.yaml
> +++ b/Documentation/devicetree/bindings/mfd/syscon.yaml
> @@ -19,122 +19,6 @@ description: |
> maintainers:
> - Lee Jones <lee@kernel.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:
[Severity: Medium]
Will removing this select block break schema validation for toolchain
versions that are still officially permitted?
Looking at Documentation/devicetree/bindings/Makefile, the minimum
supported version is currently explicitly maintained as:
DT_SCHEMA_MIN_VERSION = 2023.9
Since the kernel build system still officially supports dtschema versions
between 2023.9 and 2024.01, wouldn't dropping this select cause syscon.yaml
to erroneously apply to all syscon nodes and generate false-positive
schema validation failures for users on those older versions?
[ ... ]
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260608-n-dt-bindings-simple-bus-syscon-v2-0-0203e6c249dc@oss.qualcomm.com?part=3
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 3/4] dt-bindings: mfd: syscon: Drop custom select for older dtschema
2026-06-08 14:01 ` sashiko-bot
@ 2026-06-08 14:07 ` Krzysztof Kozlowski
0 siblings, 0 replies; 10+ messages in thread
From: Krzysztof Kozlowski @ 2026-06-08 14:07 UTC (permalink / raw)
To: sashiko-reviews; +Cc: robh, wsa+renesas, devicetree, conor+dt
On 08/06/2026 16:01, sashiko-bot@kernel.org wrote:
> Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
> - [Medium] Removal of the custom `select` block breaks device tree validation for `dtschema` versions older than 2024.02, which are still permitted by the kernel build system.
Rob,
Shall I bump kernel's requirement of dtschema version?
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2 4/4] ARM: dts: ti: Add specific compatibles for SCM conf nodes
2026-06-08 13:54 [PATCH v2 0/4] dt-bindings: mfd: syscon: Tighten checks Krzysztof Kozlowski
` (2 preceding siblings ...)
2026-06-08 13:54 ` [PATCH v2 3/4] dt-bindings: mfd: syscon: Drop custom select for older dtschema Krzysztof Kozlowski
@ 2026-06-08 13:54 ` Krzysztof Kozlowski
2026-06-08 14:11 ` sashiko-bot
3 siblings, 1 reply; 10+ messages in thread
From: Krzysztof Kozlowski @ 2026-06-08 13:54 UTC (permalink / raw)
To: Lee Jones, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Matthias Brugger, AngeloGioacchino Del Regno, Jacky Huang,
Shan-Chun Hung, Geert Uytterhoeven, Magnus Damm, Heiko Stuebner,
Aaro Koskinen, Andreas Kemnade, Kevin Hilman, Roger Quadros,
Tony Lindgren
Cc: devicetree, linux-kernel, linux-arm-kernel, linux-mediatek,
linux-renesas-soc, linux-rockchip, linux-omap,
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.
Reviewed-by: Andreas Kemnade <andreas@kemnade.info>
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 related [flat|nested] 10+ messages in thread* Re: [PATCH v2 4/4] ARM: dts: ti: Add specific compatibles for SCM conf nodes
2026-06-08 13:54 ` [PATCH v2 4/4] ARM: dts: ti: Add specific compatibles for SCM conf nodes Krzysztof Kozlowski
@ 2026-06-08 14:11 ` sashiko-bot
0 siblings, 0 replies; 10+ messages in thread
From: sashiko-bot @ 2026-06-08 14:11 UTC (permalink / raw)
To: Krzysztof Kozlowski; +Cc: devicetree, wsa+renesas, robh, conor+dt
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] The compatible `ti,omap5-scm-conf` is incorrectly and generically assigned to the `omap5_padconf_global` node instead of a dedicated padconf compatible.
--
commit e73bdcc41065ea6e37040a568932068a0bac18ec
Author: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
ARM: dts: ti: Add specific compatibles for SCM conf nodes
This commit adds specific compatible strings to the syscon SCM conf nodes
across several TI SoCs to comply with writing-bindings.rst rules, and to
resolve a contradiction between "syscon" and "simple-bus".
> diff --git a/arch/arm/boot/dts/ti/omap/omap5-l4.dtsi b/arch/arm/boot/dts/ti/omap/omap5-l4.dtsi
> index 915870eb5c990..3350128db22df 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";
[Severity: Low]
Should this node use a dedicated padconf compatible string similar to the
OMAP4 implementation? The OMAP4 equivalent correctly received
"ti,omap4-sysc-padconf-global", but here the generic "ti,omap5-scm-conf" is
being applied to the padconf global node, which creates a semantic mismatch
with the actual SCM conf node.
> reg = <0x5a0 0xec>;
> #address-cells = <1>;
> #size-cells = <1>;
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260608-n-dt-bindings-simple-bus-syscon-v2-0-0203e6c249dc@oss.qualcomm.com?part=4
^ permalink raw reply [flat|nested] 10+ messages in thread