* [PATCH v4 1/2] dt-bindings: arm: stm32: Document st,stm32mp23/25-syscfg subnodes and cells
@ 2026-08-28 15:11 Marek Vasut
2026-08-28 15:11 ` [PATCH v4 2/2] soc: st: Add STM32MP2 SYSCFG driver Marek Vasut
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Marek Vasut @ 2026-08-28 15:11 UTC (permalink / raw)
To: linux-arm-kernel
Cc: Marek Vasut, Alexandre Torgue, Christophe Roullier, Conor Dooley,
Krzysztof Kozlowski, Maxime Coquelin, Raphael Gallais-Pou,
Rob Herring, Yannick Fertre, devicetree, kernel, linux-kernel,
linux-stm32
The st,stm32mp23-syscfg and st,stm32mp25-syscfg can have subnodes, which
represent the USB 2.0 FEMTO-PHY. Document subnodes pattern properties and
address/size cells.
Signed-off-by: Marek Vasut <marex@nabladev.com>
---
Cc: Alexandre Torgue <alexandre.torgue@foss.st.com>
Cc: Christophe Roullier <christophe.roullier@foss.st.com>
Cc: Conor Dooley <conor+dt@kernel.org>
Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
Cc: Marek Vasut <marex@nabladev.com>
Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
Cc: Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Yannick Fertre <yannick.fertre@foss.st.com>
Cc: devicetree@vger.kernel.org
Cc: kernel@dh-electronics.com
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-stm32@st-md-mailman.stormreply.com
---
V2: New patch
V3: Fix the bindings
V4: - Undo simple-mfd in favor of dedicated SYSCFG SoC driver
- Update commit message to match, this used to be patch
dt-bindings: arm: stm32: Switch st,stm32mp23/25-syscfg into simple-mfd
- Split this from series arm64: dts: phy: st: usb: Add STM32MP2 USB support
https://lore.kernel.org/all/20260822074816.548662-1-marex@nabladev.com/
---
.../bindings/arm/stm32/st,stm32-syscon.yaml | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/arm/stm32/st,stm32-syscon.yaml b/Documentation/devicetree/bindings/arm/stm32/st,stm32-syscon.yaml
index 95d2319afe235..d82afa39960b9 100644
--- a/Documentation/devicetree/bindings/arm/stm32/st,stm32-syscon.yaml
+++ b/Documentation/devicetree/bindings/arm/stm32/st,stm32-syscon.yaml
@@ -39,6 +39,17 @@ properties:
"#clock-cells":
const: 0
+ "#address-cells":
+ const: 1
+
+ "#size-cells":
+ const: 1
+
+patternProperties:
+ "^phy@[0-9a-f]+$":
+ type: object
+ $ref: /schemas/phy/st,stm32-usb2phy.yaml
+
required:
- compatible
- reg
@@ -57,10 +68,14 @@ allOf:
- if:
properties:
compatible:
- const: st,stm32mp25-syscfg
+ enum:
+ - st,stm32mp23-syscfg
+ - st,stm32mp25-syscfg
then:
required:
- "#clock-cells"
+ - "#address-cells"
+ - "#size-cells"
additionalProperties: false
--
2.53.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v4 2/2] soc: st: Add STM32MP2 SYSCFG driver
2026-08-28 15:11 [PATCH v4 1/2] dt-bindings: arm: stm32: Document st,stm32mp23/25-syscfg subnodes and cells Marek Vasut
@ 2026-08-28 15:11 ` Marek Vasut
2026-08-28 15:27 ` [PATCH v4 1/2] dt-bindings: arm: stm32: Document st,stm32mp23/25-syscfg subnodes and cells sashiko-bot
2026-08-28 15:57 ` Conor Dooley
2 siblings, 0 replies; 5+ messages in thread
From: Marek Vasut @ 2026-08-28 15:11 UTC (permalink / raw)
To: linux-arm-kernel
Cc: Marek Vasut, Alexandre Torgue, Christophe Roullier, Conor Dooley,
Krzysztof Kozlowski, Maxime Coquelin, Raphael Gallais-Pou,
Rob Herring, Yannick Fertre, devicetree, kernel, linux-kernel,
linux-stm32
Add trivial SYSCFG driver for ST STM32MP25xx, which binds drivers
to its subnodes. This is currently used to bind USB PHY drivers to
subnodes described in the SYSCFG DT node.
Signed-off-by: Marek Vasut <marex@nabladev.com>
---
Cc: Alexandre Torgue <alexandre.torgue@foss.st.com>
Cc: Christophe Roullier <christophe.roullier@foss.st.com>
Cc: Conor Dooley <conor+dt@kernel.org>
Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
Cc: Marek Vasut <marex@nabladev.com>
Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
Cc: Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Yannick Fertre <yannick.fertre@foss.st.com>
Cc: devicetree@vger.kernel.org
Cc: kernel@dh-electronics.com
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-stm32@st-md-mailman.stormreply.com
---
V4: New patch
---
drivers/soc/Kconfig | 1 +
drivers/soc/Makefile | 1 +
drivers/soc/st/Kconfig | 12 ++++++++++++
drivers/soc/st/Makefile | 1 +
drivers/soc/st/stm32mp2-syscfg.c | 33 ++++++++++++++++++++++++++++++++
5 files changed, 48 insertions(+)
create mode 100644 drivers/soc/st/Kconfig
create mode 100644 drivers/soc/st/Makefile
create mode 100644 drivers/soc/st/stm32mp2-syscfg.c
diff --git a/drivers/soc/Kconfig b/drivers/soc/Kconfig
index a2d65adffb805..dfe5cec592626 100644
--- a/drivers/soc/Kconfig
+++ b/drivers/soc/Kconfig
@@ -24,6 +24,7 @@ source "drivers/soc/renesas/Kconfig"
source "drivers/soc/rockchip/Kconfig"
source "drivers/soc/samsung/Kconfig"
source "drivers/soc/sophgo/Kconfig"
+source "drivers/soc/st/Kconfig"
source "drivers/soc/sunxi/Kconfig"
source "drivers/soc/tegra/Kconfig"
source "drivers/soc/ti/Kconfig"
diff --git a/drivers/soc/Makefile b/drivers/soc/Makefile
index c9e689080ceb7..894bd6ebaaa4d 100644
--- a/drivers/soc/Makefile
+++ b/drivers/soc/Makefile
@@ -30,6 +30,7 @@ obj-y += renesas/
obj-y += rockchip/
obj-$(CONFIG_SOC_SAMSUNG) += samsung/
obj-y += sophgo/
+obj-y += st/
obj-y += sunxi/
obj-$(CONFIG_ARCH_TEGRA) += tegra/
obj-y += ti/
diff --git a/drivers/soc/st/Kconfig b/drivers/soc/st/Kconfig
new file mode 100644
index 0000000000000..2a9d6a77be450
--- /dev/null
+++ b/drivers/soc/st/Kconfig
@@ -0,0 +1,12 @@
+# SPDX-License-Identifier: GPL-2.0-only
+menu "ST SoC drivers"
+
+config SOC_STM32MP2
+ tristate "STM32MP2 SoC family support"
+ depends on ARCH_STM32 || COMPILE_TEST
+ default ARCH_STM32 && ARM64
+ select SOC_BUS
+ help
+ If you say yes here, you get support for the ST STM32MP2 family
+
+endmenu
diff --git a/drivers/soc/st/Makefile b/drivers/soc/st/Makefile
new file mode 100644
index 0000000000000..5ca313476ca93
--- /dev/null
+++ b/drivers/soc/st/Makefile
@@ -0,0 +1 @@
+obj-$(CONFIG_SOC_STM32MP2) += stm32mp2-syscfg.o
diff --git a/drivers/soc/st/stm32mp2-syscfg.c b/drivers/soc/st/stm32mp2-syscfg.c
new file mode 100644
index 0000000000000..102430f258606
--- /dev/null
+++ b/drivers/soc/st/stm32mp2-syscfg.c
@@ -0,0 +1,33 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2026 Marek Vasut
+ */
+
+#include <linux/module.h>
+#include <linux/of_platform.h>
+#include <linux/platform_device.h>
+
+static int stm32mp2_syscfg_probe(struct platform_device *pdev)
+{
+ return devm_of_platform_populate(&pdev->dev);
+}
+
+static const struct of_device_id stm32mp2_syscfg_ids[] = {
+ { .compatible = "st,stm32mp23-syscfg" },
+ { .compatible = "st,stm32mp25-syscfg" },
+ { }
+};
+MODULE_DEVICE_TABLE(of, stm32mp2_syscfg_ids);
+
+static struct platform_driver stm32mp2_syscfg_driver = {
+ .driver = {
+ .name = "stm32mp2_syscfg",
+ .of_match_table = stm32mp2_syscfg_ids,
+ },
+ .probe = stm32mp2_syscfg_probe,
+};
+module_platform_driver(stm32mp2_syscfg_driver);
+
+MODULE_AUTHOR("Marek Vasut <marex@nabladev.com>");
+MODULE_DESCRIPTION("ST STM32MP2 SYSCFG driver");
+MODULE_LICENSE("GPL");
--
2.53.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v4 1/2] dt-bindings: arm: stm32: Document st,stm32mp23/25-syscfg subnodes and cells
2026-08-28 15:11 [PATCH v4 1/2] dt-bindings: arm: stm32: Document st,stm32mp23/25-syscfg subnodes and cells Marek Vasut
2026-08-28 15:11 ` [PATCH v4 2/2] soc: st: Add STM32MP2 SYSCFG driver Marek Vasut
@ 2026-08-28 15:27 ` sashiko-bot
2026-08-28 15:57 ` Conor Dooley
2 siblings, 0 replies; 5+ messages in thread
From: sashiko-bot @ 2026-08-28 15:27 UTC (permalink / raw)
To: Marek Vasut; +Cc: conor+dt, devicetree, robh
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] The conditional `if` block for `st,stm32mp23-syscfg` and `st,stm32mp25-syscfg` uses `enum` directly instead of `contains: enum`, which fails to match the array-typed `compatible` property and bypasses validation.
- [Medium] The schema examples section does not include a demonstration of the newly required properties and subnodes, leaving the new variant untested.
--
commit 756e633a3636918c549af9224be89571f86da4e0
Author: Marek Vasut <marex@nabladev.com>
Subject: dt-bindings: arm: stm32: Document st,stm32mp23/25-syscfg subnodes and cells
The st,stm32mp23-syscfg and st,stm32mp25-syscfg can have subnodes, which
represent the USB 2.0 FEMTO-PHY. Document subnodes pattern properties and
address/size cells.
> diff --git a/Documentation/devicetree/bindings/arm/stm32/st,stm32-syscon.yaml b/Documentation/devicetree/bindings/arm/stm32/st,stm32-syscon.yaml
> index 95d2319afe235..d82afa39960b9 100644
> --- a/Documentation/devicetree/bindings/arm/stm32/st,stm32-syscon.yaml
> +++ b/Documentation/devicetree/bindings/arm/stm32/st,stm32-syscon.yaml
[ ... ]
> @@ -57,10 +68,14 @@ allOf:
> - if:
> properties:
> compatible:
> - const: st,stm32mp25-syscfg
> + enum:
> + - st,stm32mp23-syscfg
> + - st,stm32mp25-syscfg
[Severity: High]
Does checking the array-typed compatible property directly against enum fail
to match here?
Since the compatible property is defined globally as an array (e.g.,
["st,stm32mp25-syscfg", "syscon"]), wouldn't evaluating it against a string
enum evaluate to false and completely bypass the validation constraints?
Should this use contains: enum instead?
> then:
> required:
> - "#clock-cells"
> + - "#address-cells"
> + - "#size-cells"
[Severity: Medium]
Do the newly authored constraints and phy subnode need to be added to the
examples section?
Currently, the examples only cover the older st,stm32mp157-syscfg variant.
Does this mean the new requirements for mp23/mp25 aren't validated when
running make dt_binding_check?
>
> additionalProperties: false
>
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260828151216.175020-1-marex@nabladev.com?part=1
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v4 1/2] dt-bindings: arm: stm32: Document st,stm32mp23/25-syscfg subnodes and cells
2026-08-28 15:11 [PATCH v4 1/2] dt-bindings: arm: stm32: Document st,stm32mp23/25-syscfg subnodes and cells Marek Vasut
2026-08-28 15:11 ` [PATCH v4 2/2] soc: st: Add STM32MP2 SYSCFG driver Marek Vasut
2026-08-28 15:27 ` [PATCH v4 1/2] dt-bindings: arm: stm32: Document st,stm32mp23/25-syscfg subnodes and cells sashiko-bot
@ 2026-08-28 15:57 ` Conor Dooley
2026-08-28 16:05 ` Marek Vasut
2 siblings, 1 reply; 5+ messages in thread
From: Conor Dooley @ 2026-08-28 15:57 UTC (permalink / raw)
To: Marek Vasut
Cc: linux-arm-kernel, Alexandre Torgue, Christophe Roullier,
Conor Dooley, Krzysztof Kozlowski, Maxime Coquelin,
Raphael Gallais-Pou, Rob Herring, Yannick Fertre, devicetree,
kernel, linux-kernel, linux-stm32
[-- Attachment #1: Type: text/plain, Size: 2905 bytes --]
On Fri, Aug 28, 2026 at 05:11:14PM +0200, Marek Vasut wrote:
> The st,stm32mp23-syscfg and st,stm32mp25-syscfg can have subnodes, which
> represent the USB 2.0 FEMTO-PHY. Document subnodes pattern properties and
> address/size cells.
>
> Signed-off-by: Marek Vasut <marex@nabladev.com>
> ---
> Cc: Alexandre Torgue <alexandre.torgue@foss.st.com>
> Cc: Christophe Roullier <christophe.roullier@foss.st.com>
> Cc: Conor Dooley <conor+dt@kernel.org>
> Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
> Cc: Marek Vasut <marex@nabladev.com>
> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
> Cc: Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com>
> Cc: Rob Herring <robh@kernel.org>
> Cc: Yannick Fertre <yannick.fertre@foss.st.com>
> Cc: devicetree@vger.kernel.org
> Cc: kernel@dh-electronics.com
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-kernel@vger.kernel.org
> Cc: linux-stm32@st-md-mailman.stormreply.com
> ---
> V2: New patch
> V3: Fix the bindings
> V4: - Undo simple-mfd in favor of dedicated SYSCFG SoC driver
> - Update commit message to match, this used to be patch
> dt-bindings: arm: stm32: Switch st,stm32mp23/25-syscfg into simple-mfd
> - Split this from series arm64: dts: phy: st: usb: Add STM32MP2 USB support
> https://lore.kernel.org/all/20260822074816.548662-1-marex@nabladev.com/
> ---
> .../bindings/arm/stm32/st,stm32-syscon.yaml | 17 ++++++++++++++++-
> 1 file changed, 16 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/arm/stm32/st,stm32-syscon.yaml b/Documentation/devicetree/bindings/arm/stm32/st,stm32-syscon.yaml
> index 95d2319afe235..d82afa39960b9 100644
> --- a/Documentation/devicetree/bindings/arm/stm32/st,stm32-syscon.yaml
> +++ b/Documentation/devicetree/bindings/arm/stm32/st,stm32-syscon.yaml
> @@ -39,6 +39,17 @@ properties:
> "#clock-cells":
> const: 0
>
> + "#address-cells":
> + const: 1
> +
> + "#size-cells":
> + const: 1
> +
> +patternProperties:
> + "^phy@[0-9a-f]+$":
> + type: object
> + $ref: /schemas/phy/st,stm32-usb2phy.yaml
> +
> required:
> - compatible
> - reg
> @@ -57,10 +68,14 @@ allOf:
> - if:
> properties:
> compatible:
> - const: st,stm32mp25-syscfg
> + enum:
> + - st,stm32mp23-syscfg
> + - st,stm32mp25-syscfg
Sashiko comment here I believe is valid, the syntax here only works if
there's only the listed compatible present. It doesn't work with
fallbacks.
pw-bot: changes-requested
> then:
> required:
> - "#clock-cells"
> + - "#address-cells"
> + - "#size-cells"
else, false? But I'm also not sure what the benefit is of requiring
addr/size cells when the child node is not?
Cheers,
Conor.
>
> additionalProperties: false
>
> --
> 2.53.0
>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v4 1/2] dt-bindings: arm: stm32: Document st,stm32mp23/25-syscfg subnodes and cells
2026-08-28 15:57 ` Conor Dooley
@ 2026-08-28 16:05 ` Marek Vasut
0 siblings, 0 replies; 5+ messages in thread
From: Marek Vasut @ 2026-08-28 16:05 UTC (permalink / raw)
To: Conor Dooley
Cc: linux-arm-kernel, Alexandre Torgue, Christophe Roullier,
Conor Dooley, Krzysztof Kozlowski, Maxime Coquelin,
Raphael Gallais-Pou, Rob Herring, Yannick Fertre, devicetree,
kernel, linux-kernel, linux-stm32
On 8/28/26 5:57 PM, Conor Dooley wrote:
[...]
>> +++ b/Documentation/devicetree/bindings/arm/stm32/st,stm32-syscon.yaml
>> @@ -39,6 +39,17 @@ properties:
>> "#clock-cells":
>> const: 0
>>
>> + "#address-cells":
>> + const: 1
>> +
>> + "#size-cells":
>> + const: 1
>> +
>> +patternProperties:
>> + "^phy@[0-9a-f]+$":
>> + type: object
>> + $ref: /schemas/phy/st,stm32-usb2phy.yaml
>> +
>> required:
>> - compatible
>> - reg
>> @@ -57,10 +68,14 @@ allOf:
>> - if:
>> properties:
>> compatible:
>> - const: st,stm32mp25-syscfg
>> + enum:
>> + - st,stm32mp23-syscfg
>> + - st,stm32mp25-syscfg
>
> Sashiko comment here I believe is valid, the syntax here only works if
> there's only the listed compatible present. It doesn't work with
> fallbacks.
This syntax is used all over the place ?
Documentation/devicetree/bindings/ata/ahci-platform.yaml-allOf:
Documentation/devicetree/bindings/ata/ahci-platform.yaml- - $ref:
ahci-common.yaml#
Documentation/devicetree/bindings/ata/ahci-platform.yaml-
Documentation/devicetree/bindings/ata/ahci-platform.yaml- - if:
Documentation/devicetree/bindings/ata/ahci-platform.yaml- properties:
Documentation/devicetree/bindings/ata/ahci-platform.yaml- compatible:
Documentation/devicetree/bindings/ata/ahci-platform.yaml: contains:
Documentation/devicetree/bindings/ata/ahci-platform.yaml- enum:
Documentation/devicetree/bindings/ata/ahci-platform.yaml- -
qcom,apq8064-ahci
Documentation/devicetree/bindings/ata/ahci-platform.yaml- -
qcom,ipq806x-ahci
> pw-bot: changes-requested
>
>> then:
>> required:
>> - "#clock-cells"
>> + - "#address-cells"
>> + - "#size-cells"
>
> else, false? But I'm also not sure what the benefit is of requiring
> addr/size cells when the child node is not?
The subnodes of this syscfg node have reg property , see [PATCH v4 0/4]
arm64: dts: st: Add STM32MP2 USB support .
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-08-28 18:47 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-28 15:11 [PATCH v4 1/2] dt-bindings: arm: stm32: Document st,stm32mp23/25-syscfg subnodes and cells Marek Vasut
2026-08-28 15:11 ` [PATCH v4 2/2] soc: st: Add STM32MP2 SYSCFG driver Marek Vasut
2026-08-28 15:27 ` [PATCH v4 1/2] dt-bindings: arm: stm32: Document st,stm32mp23/25-syscfg subnodes and cells sashiko-bot
2026-08-28 15:57 ` Conor Dooley
2026-08-28 16:05 ` Marek Vasut
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox