* [PATCH v3 0/3] dt-bindings: mfd: syscon: Tighten checks
@ 2026-06-08 20:44 Krzysztof Kozlowski
2026-06-08 20:44 ` [PATCH v3 1/3] dt-bindings: mfd: syscon: Disallow simple-bus with syscon Krzysztof Kozlowski
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Krzysztof Kozlowski @ 2026-06-08 20:44 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
Changes in v3:
- Drop patch #2:
dt-bindings: mfd: syscon: Drop unneeded case for syscon + simple-mfd
- Bump dtschema requirement
- Link to v2: https://patch.msgid.link/20260608-n-dt-bindings-simple-bus-syscon-v2-0-0203e6c249dc@oss.qualcomm.com
Changes in v2:
1. New patches #2 and #3
1. Add missing part of patch #1, thus not adding Rob's Ack.
https://lore.kernel.org/all/20260531110404.12768-3-krzysztof.kozlowski@oss.qualcomm.com/
I tested dt_binding_check and dtbs_check for arm, arm64 and riscv and I
think I did not introduce new dtbs_check warnings. Old code anyway has
multiple abuses of syscon, thus tricky to judge for arm at least.
Best regards,
Krzysztof
---
Krzysztof Kozlowski (3):
dt-bindings: mfd: syscon: Disallow simple-bus with syscon
dt-bindings: mfd: syscon: Drop custom select for older dtschema
ARM: dts: ti: Add specific compatibles for SCM conf nodes
Documentation/devicetree/bindings/Makefile | 2 +-
.../devicetree/bindings/mfd/syscon-common.yaml | 34 ++++++
Documentation/devicetree/bindings/mfd/syscon.yaml | 116 ---------------------
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 +-
12 files changed, 46 insertions(+), 128 deletions(-)
---
base-commit: 78f5e68a8d0a1123dd1b007688ccf0e6876a5c15
change-id: 20260608-n-dt-bindings-simple-bus-syscon-e39df408a02d
Best regards,
--
Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 6+ messages in thread* [PATCH v3 1/3] dt-bindings: mfd: syscon: Disallow simple-bus with syscon 2026-06-08 20:44 [PATCH v3 0/3] dt-bindings: mfd: syscon: Tighten checks Krzysztof Kozlowski @ 2026-06-08 20:44 ` Krzysztof Kozlowski 2026-06-08 20:44 ` [PATCH v3 2/3] dt-bindings: mfd: syscon: Drop custom select for older dtschema Krzysztof Kozlowski 2026-06-08 20:44 ` [PATCH v3 3/3] ARM: dts: ti: Add specific compatibles for SCM conf nodes Krzysztof Kozlowski 2 siblings, 0 replies; 6+ messages in thread From: Krzysztof Kozlowski @ 2026-06-08 20:44 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. Additionally, add comments around code enforcing two or three compatibles: it is similar safeguard detecting incorrect bindings. Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> --- Changes in v3: 1. s/ti,omap5-scm-conf/ti,omap5-sysc-padconf-global/ because it is more appropriate (specific) 2. Add comments, why simple-mfd+syscon has dedicated if:then: 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 | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/Documentation/devicetree/bindings/mfd/syscon-common.yaml b/Documentation/devicetree/bindings/mfd/syscon-common.yaml index 14a08e7bc8bd..2d5eef5add54 100644 --- a/Documentation/devicetree/bindings/mfd/syscon-common.yaml +++ b/Documentation/devicetree/bindings/mfd/syscon-common.yaml @@ -32,6 +32,7 @@ properties: compatible: contains: const: syscon + # Always require a specific compatible for syscon minItems: 2 maxItems: 5 # Should be enough @@ -52,11 +53,44 @@ allOf: contains: const: simple-mfd then: + # Always require a specific compatible for syscon with simple-mfd properties: compatible: 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-wkup-conf + - ti,omap5-sysc-padconf-global + then: + required: + - incorrect-usage-of-simple-bus-and-syscon + additionalProperties: true examples: -- 2.53.0 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v3 2/3] dt-bindings: mfd: syscon: Drop custom select for older dtschema 2026-06-08 20:44 [PATCH v3 0/3] dt-bindings: mfd: syscon: Tighten checks Krzysztof Kozlowski 2026-06-08 20:44 ` [PATCH v3 1/3] dt-bindings: mfd: syscon: Disallow simple-bus with syscon Krzysztof Kozlowski @ 2026-06-08 20:44 ` Krzysztof Kozlowski 2026-06-09 16:28 ` Conor Dooley 2026-06-08 20:44 ` [PATCH v3 3/3] ARM: dts: ti: Add specific compatibles for SCM conf nodes Krzysztof Kozlowski 2 siblings, 1 reply; 6+ messages in thread From: Krzysztof Kozlowski @ 2026-06-08 20:44 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). This requires bumping minimum dtschema requirement to v2024.04, which feels old enough to be a safe requirement. Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> --- Changes in v3: 1. Bump dtschema requirement Changes in v2: 1. New patch --- Documentation/devicetree/bindings/Makefile | 2 +- Documentation/devicetree/bindings/mfd/syscon.yaml | 116 ---------------------- 2 files changed, 1 insertion(+), 117 deletions(-) diff --git a/Documentation/devicetree/bindings/Makefile b/Documentation/devicetree/bindings/Makefile index 7b668f7fd400..40c2094f47c2 100644 --- a/Documentation/devicetree/bindings/Makefile +++ b/Documentation/devicetree/bindings/Makefile @@ -6,7 +6,7 @@ DT_MK_SCHEMA ?= dt-mk-schema DT_SCHEMA_LINT = $(shell which yamllint || \ echo "warning: python package 'yamllint' not installed, skipping" >&2) -DT_SCHEMA_MIN_VERSION = 2023.9 +DT_SCHEMA_MIN_VERSION = 2024.4 PHONY += check_dtschema_version check_dtschema_version: 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] 6+ messages in thread
* Re: [PATCH v3 2/3] dt-bindings: mfd: syscon: Drop custom select for older dtschema 2026-06-08 20:44 ` [PATCH v3 2/3] dt-bindings: mfd: syscon: Drop custom select for older dtschema Krzysztof Kozlowski @ 2026-06-09 16:28 ` Conor Dooley 0 siblings, 0 replies; 6+ messages in thread From: Conor Dooley @ 2026-06-09 16:28 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: 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, devicetree, linux-kernel, linux-arm-kernel, linux-mediatek, linux-renesas-soc, linux-rockchip, linux-omap [-- Attachment #1: Type: text/plain, Size: 6856 bytes --] On Mon, Jun 08, 2026 at 10:44:25PM +0200, Krzysztof Kozlowski wrote: > 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). > > This requires bumping minimum dtschema requirement to v2024.04, which > feels old enough to be a safe requirement. I agree, seems reasonable enough given it's a jump from 2023.09 and not some large jump. The diff is nice too! I assume Rob will be taking it, but just in case.. Acked-by: Conor Dooley <conor.dooley@microchip.com> Cheers, Conor. > > Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> > > --- > > Changes in v3: > 1. Bump dtschema requirement > > Changes in v2: > 1. New patch > --- > Documentation/devicetree/bindings/Makefile | 2 +- > Documentation/devicetree/bindings/mfd/syscon.yaml | 116 ---------------------- > 2 files changed, 1 insertion(+), 117 deletions(-) > > diff --git a/Documentation/devicetree/bindings/Makefile b/Documentation/devicetree/bindings/Makefile > index 7b668f7fd400..40c2094f47c2 100644 > --- a/Documentation/devicetree/bindings/Makefile > +++ b/Documentation/devicetree/bindings/Makefile > @@ -6,7 +6,7 @@ DT_MK_SCHEMA ?= dt-mk-schema > DT_SCHEMA_LINT = $(shell which yamllint || \ > echo "warning: python package 'yamllint' not installed, skipping" >&2) > > -DT_SCHEMA_MIN_VERSION = 2023.9 > +DT_SCHEMA_MIN_VERSION = 2024.4 > > PHONY += check_dtschema_version > check_dtschema_version: > 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 > [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 228 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v3 3/3] ARM: dts: ti: Add specific compatibles for SCM conf nodes 2026-06-08 20:44 [PATCH v3 0/3] dt-bindings: mfd: syscon: Tighten checks Krzysztof Kozlowski 2026-06-08 20:44 ` [PATCH v3 1/3] dt-bindings: mfd: syscon: Disallow simple-bus with syscon Krzysztof Kozlowski 2026-06-08 20:44 ` [PATCH v3 2/3] dt-bindings: mfd: syscon: Drop custom select for older dtschema Krzysztof Kozlowski @ 2026-06-08 20:44 ` Krzysztof Kozlowski 2026-06-09 16:34 ` Conor Dooley 2 siblings, 1 reply; 6+ messages in thread From: Krzysztof Kozlowski @ 2026-06-08 20:44 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> --- Changes in v3: 1. s/ti,omap5-scm-conf/ti,omap5-sysc-padconf-global/ because it is more appropriate (specific) --- 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..72849e1c95b0 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-sysc-padconf-global", "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] 6+ messages in thread
* Re: [PATCH v3 3/3] ARM: dts: ti: Add specific compatibles for SCM conf nodes 2026-06-08 20:44 ` [PATCH v3 3/3] ARM: dts: ti: Add specific compatibles for SCM conf nodes Krzysztof Kozlowski @ 2026-06-09 16:34 ` Conor Dooley 0 siblings, 0 replies; 6+ messages in thread From: Conor Dooley @ 2026-06-09 16:34 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: 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, devicetree, linux-kernel, linux-arm-kernel, linux-mediatek, linux-renesas-soc, linux-rockchip, linux-omap [-- Attachment #1: Type: text/plain, Size: 56 bytes --] Reviewed-by: Conor Dooley <conor.dooley@microchip.com> [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 228 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-06-09 16:34 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-06-08 20:44 [PATCH v3 0/3] dt-bindings: mfd: syscon: Tighten checks Krzysztof Kozlowski 2026-06-08 20:44 ` [PATCH v3 1/3] dt-bindings: mfd: syscon: Disallow simple-bus with syscon Krzysztof Kozlowski 2026-06-08 20:44 ` [PATCH v3 2/3] dt-bindings: mfd: syscon: Drop custom select for older dtschema Krzysztof Kozlowski 2026-06-09 16:28 ` Conor Dooley 2026-06-08 20:44 ` [PATCH v3 3/3] ARM: dts: ti: Add specific compatibles for SCM conf nodes Krzysztof Kozlowski 2026-06-09 16:34 ` Conor Dooley
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox