* [PATCH v2 00/11] Rework and fix STM32MP15x PHYTEC dts
@ 2025-07-09 15:10 Christophe Parant
2025-07-09 15:10 ` [PATCH v2 01/11] ARM: dts: stm32: phycore-stm32mp15: Rename device tree files Christophe Parant
` (10 more replies)
0 siblings, 11 replies; 14+ messages in thread
From: Christophe Parant @ 2025-07-09 15:10 UTC (permalink / raw)
To: devicetree, linux-stm32, linux-arm-kernel, linux-kernel
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Maxime Coquelin,
Alexandre Torgue, upstream
This patch series rename and reorganize the STM32MP15x PHYTEC
baseboard (phyBOARD-Sargas) and SoM (phyCORE-STM32MP15x) device tree
files.
Indeed, the current device tree naming and organization is not really
consistent as it does not align with others STM32MP boards (use common
dtsi file as much as possible, use one dtsi for SoM and one dtsi for
baseboard).
The series also fixes some important pinctrl issues and minor one (coding
style). Additional pinctrl is also added for the optionnal interfaces
that are not enabled by default (FMC, LTDC, DCMI, PWM).
Changes in v2:
- Rebase on v6.16-rc5
- Rework Patch 3 (stm32.yaml): for board description, keep "compatible"
string identifiers as before to not break ABI. But use "enum" type
instead of "const" for the SoM and phyBOARD indentifiers.
Christophe Parant (11):
ARM: dts: stm32: phycore-stm32mp15: Rename device tree files
ARM: dts: stm32: phyboard-sargas: Introduce SoM device tree
dt-bindings: arm: stm32: Modify STM32MP15x Phytec board items types
ARM: dts: stm32: Add new pinmux groups for phyboard-sargas and phycore
ARM: dts: stm32: phyboard-sargas: Fix uart4 and sai2 pinctrl
ARM: dts: stm32: phycore-stm32mp15: qspi: Fix memory map and pinctrl
ARM: dts: stm32: phycore-stm32mp15: Add dummy memory-node
ARM: dts: stm32: phyboard-sargas: Move aliases from dts to dtsi
ARM: dts: stm32: phycore-stm32mp15: Disable optional SoM peripherals
ARM: dts: stm32: phyboard-sargas and phycore: Fix coding style issues
ARM: dts: stm32: phyboard-sargas and phycore: Add optional interfaces
.../devicetree/bindings/arm/stm32/stm32.yaml | 8 +-
arch/arm/boot/dts/st/Makefile | 2 +-
arch/arm/boot/dts/st/stm32mp15-pinctrl.dtsi | 164 +++++++++
...ts => stm32mp157c-phyboard-sargas-rdk.dts} | 24 +-
.../dts/st/stm32mp15xx-phyboard-sargas.dtsi | 285 +++++++++++++++
...-som.dtsi => stm32mp15xx-phycore-som.dtsi} | 344 ++++--------------
6 files changed, 525 insertions(+), 302 deletions(-)
rename arch/arm/boot/dts/st/{stm32mp157c-phycore-stm32mp1-3.dts => stm32mp157c-phyboard-sargas-rdk.dts} (58%)
create mode 100644 arch/arm/boot/dts/st/stm32mp15xx-phyboard-sargas.dtsi
rename arch/arm/boot/dts/st/{stm32mp157c-phycore-stm32mp15-som.dtsi => stm32mp15xx-phycore-som.dtsi} (53%)
--
2.34.1
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v2 01/11] ARM: dts: stm32: phycore-stm32mp15: Rename device tree files
2025-07-09 15:10 [PATCH v2 00/11] Rework and fix STM32MP15x PHYTEC dts Christophe Parant
@ 2025-07-09 15:10 ` Christophe Parant
2025-07-09 15:10 ` [PATCH v2 02/11] ARM: dts: stm32: phyboard-sargas: Introduce SoM device tree Christophe Parant
` (9 subsequent siblings)
10 siblings, 0 replies; 14+ messages in thread
From: Christophe Parant @ 2025-07-09 15:10 UTC (permalink / raw)
To: devicetree, linux-stm32, linux-arm-kernel, linux-kernel
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Maxime Coquelin,
Alexandre Torgue, upstream
Rename "stm32mp157c-phycore-*" device tree for the following reasons:
- The name of the dts should match to the phyBOARD name and not the name
of the SoM ("phycore-stm32mp1-3" was initialy coming from the name of
the yocto machine from meta-phytec).
- PHYTEC manages different SoM configurations with different STM32MP15x
SoC versions, so common dtsi files starting with "stm32mp15xx-*" should
be used (as it is done for ST boards for example).
- Add "-rdk" as suffix (for "Rapid Development Kit") to match our others
phytec boards dts names (imx6, imx6ul,..).
- "model" property is updated to introduce the name "phyBOARD-Sargas".
Signed-off-by: Christophe Parant <c.parant@phytec.fr>
---
arch/arm/boot/dts/st/Makefile | 2 +-
...ore-stm32mp1-3.dts => stm32mp157c-phyboard-sargas-rdk.dts} | 4 ++--
...re-stm32mp15-som.dtsi => stm32mp15xx-phyboard-sargas.dtsi} | 3 ---
3 files changed, 3 insertions(+), 6 deletions(-)
rename arch/arm/boot/dts/st/{stm32mp157c-phycore-stm32mp1-3.dts => stm32mp157c-phyboard-sargas-rdk.dts} (89%)
rename arch/arm/boot/dts/st/{stm32mp157c-phycore-stm32mp15-som.dtsi => stm32mp15xx-phyboard-sargas.dtsi} (99%)
diff --git a/arch/arm/boot/dts/st/Makefile b/arch/arm/boot/dts/st/Makefile
index cc9948b9870f..099199f3e5f3 100644
--- a/arch/arm/boot/dts/st/Makefile
+++ b/arch/arm/boot/dts/st/Makefile
@@ -71,7 +71,7 @@ dtb-$(CONFIG_ARCH_STM32) += \
stm32mp157c-lxa-tac-gen2.dtb \
stm32mp157c-odyssey.dtb \
stm32mp157c-osd32mp1-red.dtb \
- stm32mp157c-phycore-stm32mp1-3.dtb \
+ stm32mp157c-phyboard-sargas-rdk.dtb \
stm32mp157c-ultra-fly-sbc.dtb
dtb-$(CONFIG_ARCH_U8500) += \
ste-snowball.dtb \
diff --git a/arch/arm/boot/dts/st/stm32mp157c-phycore-stm32mp1-3.dts b/arch/arm/boot/dts/st/stm32mp157c-phyboard-sargas-rdk.dts
similarity index 89%
rename from arch/arm/boot/dts/st/stm32mp157c-phycore-stm32mp1-3.dts
rename to arch/arm/boot/dts/st/stm32mp157c-phyboard-sargas-rdk.dts
index 28d7203264ce..26995eb2a619 100644
--- a/arch/arm/boot/dts/st/stm32mp157c-phycore-stm32mp1-3.dts
+++ b/arch/arm/boot/dts/st/stm32mp157c-phyboard-sargas-rdk.dts
@@ -10,10 +10,10 @@
#include "stm32mp157.dtsi"
#include "stm32mp15xc.dtsi"
#include "stm32mp15xxac-pinctrl.dtsi"
-#include "stm32mp157c-phycore-stm32mp15-som.dtsi"
+#include "stm32mp15xx-phyboard-sargas.dtsi"
/ {
- model = "PHYTEC phyCORE-STM32MP1-3 Dev Board";
+ model = "PHYTEC phyBOARD-Sargas STM32MP157C";
compatible = "phytec,phycore-stm32mp1-3",
"phytec,phycore-stm32mp157c-som", "st,stm32mp157";
diff --git a/arch/arm/boot/dts/st/stm32mp157c-phycore-stm32mp15-som.dtsi b/arch/arm/boot/dts/st/stm32mp15xx-phyboard-sargas.dtsi
similarity index 99%
rename from arch/arm/boot/dts/st/stm32mp157c-phycore-stm32mp15-som.dtsi
rename to arch/arm/boot/dts/st/stm32mp15xx-phyboard-sargas.dtsi
index bf0c32027baf..ebbb82c09a1e 100644
--- a/arch/arm/boot/dts/st/stm32mp157c-phycore-stm32mp15-som.dtsi
+++ b/arch/arm/boot/dts/st/stm32mp15xx-phyboard-sargas.dtsi
@@ -16,9 +16,6 @@
#include "stm32mp15-pinctrl.dtsi"
/ {
- model = "PHYTEC phyCORE-STM32MP15 SOM";
- compatible = "phytec,phycore-stm32mp157c-som", "st,stm32mp157";
-
aliases {
ethernet0 = ðernet0;
rtc0 = &i2c4_rtc;
--
2.34.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v2 02/11] ARM: dts: stm32: phyboard-sargas: Introduce SoM device tree
2025-07-09 15:10 [PATCH v2 00/11] Rework and fix STM32MP15x PHYTEC dts Christophe Parant
2025-07-09 15:10 ` [PATCH v2 01/11] ARM: dts: stm32: phycore-stm32mp15: Rename device tree files Christophe Parant
@ 2025-07-09 15:10 ` Christophe Parant
2025-07-09 15:10 ` [PATCH v2 03/11] dt-bindings: arm: stm32: Modify STM32MP15x Phytec board items types Christophe Parant
` (8 subsequent siblings)
10 siblings, 0 replies; 14+ messages in thread
From: Christophe Parant @ 2025-07-09 15:10 UTC (permalink / raw)
To: devicetree, linux-stm32, linux-arm-kernel, linux-kernel
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Maxime Coquelin,
Alexandre Torgue, upstream
Add stm32mp15xx-phycore-som.dtsi device tree file to split hardware
features between the phyBOARD (baseboard) and the phyCORE (SoM).
Signed-off-by: Christophe Parant <c.parant@phytec.fr>
---
.../st/stm32mp157c-phyboard-sargas-rdk.dts | 2 +-
.../dts/st/stm32mp15xx-phyboard-sargas.dtsi | 317 +----------------
.../boot/dts/st/stm32mp15xx-phycore-som.dtsi | 329 ++++++++++++++++++
3 files changed, 331 insertions(+), 317 deletions(-)
create mode 100644 arch/arm/boot/dts/st/stm32mp15xx-phycore-som.dtsi
diff --git a/arch/arm/boot/dts/st/stm32mp157c-phyboard-sargas-rdk.dts b/arch/arm/boot/dts/st/stm32mp157c-phyboard-sargas-rdk.dts
index 26995eb2a619..48adc3462958 100644
--- a/arch/arm/boot/dts/st/stm32mp157c-phyboard-sargas-rdk.dts
+++ b/arch/arm/boot/dts/st/stm32mp157c-phyboard-sargas-rdk.dts
@@ -9,7 +9,7 @@
#include <dt-bindings/pinctrl/stm32-pinfunc.h>
#include "stm32mp157.dtsi"
#include "stm32mp15xc.dtsi"
-#include "stm32mp15xxac-pinctrl.dtsi"
+#include "stm32mp15xx-phycore-som.dtsi"
#include "stm32mp15xx-phyboard-sargas.dtsi"
/ {
diff --git a/arch/arm/boot/dts/st/stm32mp15xx-phyboard-sargas.dtsi b/arch/arm/boot/dts/st/stm32mp15xx-phyboard-sargas.dtsi
index ebbb82c09a1e..2fdab99fc562 100644
--- a/arch/arm/boot/dts/st/stm32mp15xx-phyboard-sargas.dtsi
+++ b/arch/arm/boot/dts/st/stm32mp15xx-phyboard-sargas.dtsi
@@ -5,23 +5,13 @@
* Author: Dom VOVARD <dom.vovard@linrt.com>.
*/
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
+
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/leds/leds-pca9532.h>
-#include <dt-bindings/mfd/st,stpmic1.h>
-#include <dt-bindings/net/ti-dp83867.h>
-#include "stm32mp15-pinctrl.dtsi"
/ {
- aliases {
- ethernet0 = ðernet0;
- rtc0 = &i2c4_rtc;
- rtc1 = &rtc;
- };
-
chosen {
stdout-path = "serial0:115200n8";
};
@@ -42,48 +32,6 @@ key-enter {
};
};
- reserved-memory {
- #address-cells = <1>;
- #size-cells = <1>;
- ranges;
-
- retram: retram@38000000 {
- compatible = "shared-dma-pool";
- reg = <0x38000000 0x10000>;
- no-map;
- };
-
- mcuram: mcuram@30000000 {
- compatible = "shared-dma-pool";
- reg = <0x30000000 0x40000>;
- no-map;
- };
-
- mcuram2: mcuram2@10000000 {
- compatible = "shared-dma-pool";
- reg = <0x10000000 0x40000>;
- no-map;
- };
-
- vdev0vring0: vdev0vring0@10040000 {
- compatible = "shared-dma-pool";
- reg = <0x10040000 0x1000>;
- no-map;
- };
-
- vdev0vring1: vdev0vring1@10041000 {
- compatible = "shared-dma-pool";
- reg = <0x10041000 0x1000>;
- no-map;
- };
-
- vdev0buffer: vdev0buffer@10042000 {
- compatible = "shared-dma-pool";
- reg = <0x10042000 0x4000>;
- no-map;
- };
- };
-
sound {
compatible = "audio-graph-card";
label = "STM32MP1-PHYCORE";
@@ -93,44 +41,6 @@ sound {
dais = <&sai2b_port>,
<&sai2a_port>;
};
-
- regulator_vin: regulator {
- compatible = "regulator-fixed";
- regulator-name = "vin";
- regulator-min-microvolt = <5000000>;
- regulator-max-microvolt = <5000000>;
- regulator-always-on;
- };
-};
-
-ðernet0 {
- pinctrl-0 = <ðernet0_rgmii_pins_d>;
- pinctrl-1 = <ðernet0_rgmii_sleep_pins_d>;
- pinctrl-names = "default", "sleep";
- phy-mode = "rgmii-id";
- max-speed = <1000>;
- phy-handle = <&phy0>;
- st,eth-clk-sel;
- status = "okay";
-
- mdio {
- #address-cells = <1>;
- #size-cells = <0>;
- compatible = "snps,dwmac-mdio";
-
- phy0: ethernet-phy@1 {
- compatible = "ethernet-phy-ieee802.3-c22";
- reg = <1>;
- interrupt-parent = <&gpiog>;
- interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
- ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
- ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
- ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
- ti,min-output-impedance;
- enet-phy-lane-no-swap;
- ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
- };
- };
};
&i2c1 {
@@ -222,176 +132,6 @@ led-2 {
};
};
-&i2c4 {
- pinctrl-names = "default", "sleep";
- pinctrl-0 = <&i2c4_pins_a>;
- pinctrl-1 = <&i2c4_sleep_pins_a>;
- i2c-scl-rising-time-ns = <185>;
- i2c-scl-falling-time-ns = <20>;
- status = "okay";
-
- pmic@33 {
- compatible = "st,stpmic1";
- reg = <0x33>;
- interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>;
- interrupt-controller;
- #interrupt-cells = <2>;
-
- regulators {
- compatible = "st,stpmic1-regulators";
- buck1-supply = <®ulator_vin>;
- buck2-supply = <®ulator_vin>;
- buck3-supply = <®ulator_vin>;
- buck4-supply = <®ulator_vin>;
- ldo1-supply = <&v3v3>;
- ldo2-supply = <&v3v3>;
- ldo3-supply = <&vdd_ddr>;
- ldo4-supply = <®ulator_vin>;
- ldo5-supply = <&v3v3>;
- ldo6-supply = <&v3v3>;
- boost-supply = <®ulator_vin>;
- pwr_sw1-supply = <&bst_out>;
- pwr_sw2-supply = <&bst_out>;
-
- vddcore: buck1 {
- regulator-name = "vddcore";
- regulator-min-microvolt = <1200000>;
- regulator-max-microvolt = <1350000>;
- regulator-always-on;
- regulator-initial-mode = <0>;
- };
-
- vdd_ddr: buck2 {
- regulator-name = "vdd_ddr";
- regulator-min-microvolt = <1350000>;
- regulator-max-microvolt = <1350000>;
- regulator-always-on;
- regulator-initial-mode = <0>;
- };
-
- vdd: buck3 {
- regulator-name = "vdd";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- regulator-always-on;
- st,mask-reset;
- regulator-initial-mode = <0>;
- };
-
- v3v3: buck4 {
- regulator-name = "v3v3";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- regulator-always-on;
- regulator-initial-mode = <0>;
- };
-
- v1v8_audio: ldo1 {
- regulator-name = "v1v8_audio";
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <1800000>;
- regulator-always-on;
- interrupts = <IT_CURLIM_LDO1 0>;
-
- };
-
- vdd_eth_2v5: ldo2 {
- regulator-name = "dd_eth_2v5";
- regulator-min-microvolt = <2500000>;
- regulator-max-microvolt = <2500000>;
- regulator-always-on;
- interrupts = <IT_CURLIM_LDO2 0>;
-
- };
-
- vtt_ddr: ldo3 {
- regulator-name = "vtt_ddr";
- regulator-min-microvolt = <500000>;
- regulator-max-microvolt = <750000>;
- regulator-always-on;
- regulator-over-current-protection;
- };
-
- vdd_usb: ldo4 {
- regulator-name = "vdd_usb";
- interrupts = <IT_CURLIM_LDO4 0>;
- };
-
- vdda: ldo5 {
- regulator-name = "vdda";
- regulator-min-microvolt = <2900000>;
- regulator-max-microvolt = <2900000>;
- interrupts = <IT_CURLIM_LDO5 0>;
- regulator-boot-on;
- };
-
- vdd_eth_1v0: ldo6 {
- regulator-name = "vdd_eth_1v0";
- regulator-min-microvolt = <1000000>;
- regulator-max-microvolt = <1000000>;
- regulator-always-on;
- interrupts = <IT_CURLIM_LDO6 0>;
-
- };
-
- vref_ddr: vref_ddr {
- regulator-name = "vref_ddr";
- regulator-always-on;
- };
-
- bst_out: boost {
- regulator-name = "bst_out";
- interrupts = <IT_OCP_BOOST 0>;
- };
-
- vbus_otg: pwr_sw1 {
- regulator-name = "vbus_otg";
- interrupts = <IT_OCP_OTG 0>;
- regulator-active-discharge = <1>;
- };
-
- vbus_sw: pwr_sw2 {
- regulator-name = "vbus_sw";
- interrupts = <IT_OCP_SWOUT 0>;
- regulator-active-discharge = <1>;
- };
- };
-
- onkey {
- compatible = "st,stpmic1-onkey";
- interrupts = <IT_PONKEY_F 0>,
- <IT_PONKEY_R 0>;
- interrupt-names = "onkey-falling",
- "onkey-rising";
- power-off-time-sec = <10>;
- };
-
- watchdog {
- compatible = "st,stpmic1-wdt";
- };
- };
-
- i2c4_eeprom: eeprom@50 {
- compatible = "microchip,24c32",
- "atmel,24c32";
- reg = <0x50>;
- };
-
- i2c4_rtc: rtc@52 {
- compatible = "microcrystal,rv3028";
- reg = <0x52>;
- };
-};
-
-&ipcc {
- status = "okay";
-};
-
-&iwdg2 {
- timeout-sec = <32>;
- status = "okay";
-};
-
&m_can2 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&m_can2_pins_a>;
@@ -399,46 +139,6 @@ &m_can2 {
status = "okay";
};
-&m4_rproc {
- memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
- <&vdev0vring1>, <&vdev0buffer>;
- mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>, <&ipcc 3>;
- mbox-names = "vq0", "vq1", "shutdown", "detach";
- interrupt-parent = <&exti>;
- interrupts = <68 1>;
- status = "okay";
-};
-
-&pwr_regulators {
- vdd-supply = <&vdd>;
- vdd_3v3_usbfs-supply = <&vdd_usb>;
-};
-
-&qspi {
- pinctrl-names = "default", "sleep";
- pinctrl-0 = <&qspi_clk_pins_a &qspi_bk1_pins_a>;
- pinctrl-1 = <&qspi_clk_sleep_pins_a &qspi_bk1_sleep_pins_a>;
- status = "okay";
-
- flash0: flash@0 {
- compatible = "winbond,w25q128", "jedec,spi-nor";
- reg = <0>;
- spi-rx-bus-width = <4>;
- spi-max-frequency = <50000000>;
- m25p,fast-read;
- #address-cells = <1>;
- #size-cells = <1>;
- };
-};
-
-&rng1 {
- status = "okay";
-};
-
-&rtc {
- status = "okay";
-};
-
&sai2 {
clocks = <&rcc SAI2>, <&rcc PLL3_Q>, <&rcc PLL3_R>;
clock-names = "pclk", "x8k", "x11k";
@@ -492,21 +192,6 @@ &sdmmc1 {
status = "okay";
};
-&sdmmc2 {
- pinctrl-names = "default", "opendrain", "sleep";
- pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_e>;
- pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_e>;
- pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_e>;
- non-removable;
- no-sd;
- no-sdio;
- st,neg-edge;
- bus-width = <8>;
- vmmc-supply = <&v3v3>;
- vqmmc-supply = <&v3v3>;
- mmc-ddr-3_3v;
-};
-
&spi1 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&spi1_pins_a>;
diff --git a/arch/arm/boot/dts/st/stm32mp15xx-phycore-som.dtsi b/arch/arm/boot/dts/st/stm32mp15xx-phycore-som.dtsi
new file mode 100644
index 000000000000..660cdc260963
--- /dev/null
+++ b/arch/arm/boot/dts/st/stm32mp15xx-phycore-som.dtsi
@@ -0,0 +1,329 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) Phytec GmbH 2019-2020 - All Rights Reserved
+ * Author: Dom VOVARD <dom.vovard@linrt.com>
+ * Copyright (C) 2022-2023 Steffen Trumtrar <kernel@pengutronix.de>
+ * Copyright (C) 2024 PHYTEC Messtechnik GmbH
+ * Author: Christophe Parant <c.parant@phytec.fr>
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/mfd/st,stpmic1.h>
+#include <dt-bindings/net/ti-dp83867.h>
+#include "stm32mp15-pinctrl.dtsi"
+#include "stm32mp15xxac-pinctrl.dtsi"
+
+/ {
+
+ aliases {
+ ethernet0 = ðernet0;
+ rtc0 = &i2c4_rtc;
+ rtc1 = &rtc;
+ };
+
+ reserved-memory {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+
+ retram: retram@38000000 {
+ compatible = "shared-dma-pool";
+ reg = <0x38000000 0x10000>;
+ no-map;
+ };
+
+ mcuram: mcuram@30000000 {
+ compatible = "shared-dma-pool";
+ reg = <0x30000000 0x40000>;
+ no-map;
+ };
+
+ mcuram2: mcuram2@10000000 {
+ compatible = "shared-dma-pool";
+ reg = <0x10000000 0x40000>;
+ no-map;
+ };
+
+ vdev0vring0: vdev0vring0@10040000 {
+ compatible = "shared-dma-pool";
+ reg = <0x10040000 0x1000>;
+ no-map;
+ };
+
+ vdev0vring1: vdev0vring1@10041000 {
+ compatible = "shared-dma-pool";
+ reg = <0x10041000 0x1000>;
+ no-map;
+ };
+
+ vdev0buffer: vdev0buffer@10042000 {
+ compatible = "shared-dma-pool";
+ reg = <0x10042000 0x4000>;
+ no-map;
+ };
+ };
+
+ regulator_vin: regulator {
+ compatible = "regulator-fixed";
+ regulator-name = "vin";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ regulator-always-on;
+ };
+};
+
+ðernet0 {
+ pinctrl-0 = <ðernet0_rgmii_pins_d>;
+ pinctrl-1 = <ðernet0_rgmii_sleep_pins_d>;
+ pinctrl-names = "default", "sleep";
+ phy-mode = "rgmii-id";
+ max-speed = <1000>;
+ phy-handle = <&phy0>;
+ st,eth-clk-sel;
+ status = "okay";
+
+ mdio {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "snps,dwmac-mdio";
+
+ phy0: ethernet-phy@1 {
+ compatible = "ethernet-phy-ieee802.3-c22";
+ reg = <1>;
+ interrupt-parent = <&gpiog>;
+ interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
+ ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
+ ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
+ ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+ ti,min-output-impedance;
+ enet-phy-lane-no-swap;
+ ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
+ };
+ };
+};
+
+&i2c4 {
+ pinctrl-names = "default", "sleep";
+ pinctrl-0 = <&i2c4_pins_a>;
+ pinctrl-1 = <&i2c4_sleep_pins_a>;
+ i2c-scl-rising-time-ns = <185>;
+ i2c-scl-falling-time-ns = <20>;
+ status = "okay";
+
+ pmic@33 {
+ compatible = "st,stpmic1";
+ reg = <0x33>;
+ interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>;
+ interrupt-controller;
+ #interrupt-cells = <2>;
+
+ regulators {
+ compatible = "st,stpmic1-regulators";
+ buck1-supply = <®ulator_vin>;
+ buck2-supply = <®ulator_vin>;
+ buck3-supply = <®ulator_vin>;
+ buck4-supply = <®ulator_vin>;
+ ldo1-supply = <&v3v3>;
+ ldo2-supply = <&v3v3>;
+ ldo3-supply = <&vdd_ddr>;
+ ldo4-supply = <®ulator_vin>;
+ ldo5-supply = <&v3v3>;
+ ldo6-supply = <&v3v3>;
+ boost-supply = <®ulator_vin>;
+ pwr_sw1-supply = <&bst_out>;
+ pwr_sw2-supply = <&bst_out>;
+
+ vddcore: buck1 {
+ regulator-name = "vddcore";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1350000>;
+ regulator-always-on;
+ regulator-initial-mode = <0>;
+ };
+
+ vdd_ddr: buck2 {
+ regulator-name = "vdd_ddr";
+ regulator-min-microvolt = <1350000>;
+ regulator-max-microvolt = <1350000>;
+ regulator-always-on;
+ regulator-initial-mode = <0>;
+ };
+
+ vdd: buck3 {
+ regulator-name = "vdd";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ st,mask-reset;
+ regulator-initial-mode = <0>;
+ };
+
+ v3v3: buck4 {
+ regulator-name = "v3v3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ regulator-initial-mode = <0>;
+ };
+
+ v1v8_audio: ldo1 {
+ regulator-name = "v1v8_audio";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+ interrupts = <IT_CURLIM_LDO1 0>;
+
+ };
+
+ vdd_eth_2v5: ldo2 {
+ regulator-name = "dd_eth_2v5";
+ regulator-min-microvolt = <2500000>;
+ regulator-max-microvolt = <2500000>;
+ regulator-always-on;
+ interrupts = <IT_CURLIM_LDO2 0>;
+
+ };
+
+ vtt_ddr: ldo3 {
+ regulator-name = "vtt_ddr";
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <750000>;
+ regulator-always-on;
+ regulator-over-current-protection;
+ };
+
+ vdd_usb: ldo4 {
+ regulator-name = "vdd_usb";
+ interrupts = <IT_CURLIM_LDO4 0>;
+ };
+
+ vdda: ldo5 {
+ regulator-name = "vdda";
+ regulator-min-microvolt = <2900000>;
+ regulator-max-microvolt = <2900000>;
+ interrupts = <IT_CURLIM_LDO5 0>;
+ regulator-boot-on;
+ };
+
+ vdd_eth_1v0: ldo6 {
+ regulator-name = "vdd_eth_1v0";
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <1000000>;
+ regulator-always-on;
+ interrupts = <IT_CURLIM_LDO6 0>;
+
+ };
+
+ vref_ddr: vref_ddr {
+ regulator-name = "vref_ddr";
+ regulator-always-on;
+ };
+
+ bst_out: boost {
+ regulator-name = "bst_out";
+ interrupts = <IT_OCP_BOOST 0>;
+ };
+
+ vbus_otg: pwr_sw1 {
+ regulator-name = "vbus_otg";
+ interrupts = <IT_OCP_OTG 0>;
+ regulator-active-discharge = <1>;
+ };
+
+ vbus_sw: pwr_sw2 {
+ regulator-name = "vbus_sw";
+ interrupts = <IT_OCP_SWOUT 0>;
+ regulator-active-discharge = <1>;
+ };
+ };
+
+ onkey {
+ compatible = "st,stpmic1-onkey";
+ interrupts = <IT_PONKEY_F 0>,
+ <IT_PONKEY_R 0>;
+ interrupt-names = "onkey-falling",
+ "onkey-rising";
+ power-off-time-sec = <10>;
+ };
+
+ watchdog {
+ compatible = "st,stpmic1-wdt";
+ };
+ };
+
+ i2c4_eeprom: eeprom@50 {
+ compatible = "microchip,24c32",
+ "atmel,24c32";
+ reg = <0x50>;
+ };
+
+ i2c4_rtc: rtc@52 {
+ compatible = "microcrystal,rv3028";
+ reg = <0x52>;
+ };
+};
+
+&ipcc {
+ status = "okay";
+};
+
+&iwdg2 {
+ timeout-sec = <32>;
+ status = "okay";
+};
+
+&m4_rproc {
+ memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
+ <&vdev0vring1>, <&vdev0buffer>;
+ mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>, <&ipcc 3>;
+ mbox-names = "vq0", "vq1", "shutdown", "detach";
+ interrupt-parent = <&exti>;
+ interrupts = <68 1>;
+ status = "okay";
+};
+
+&pwr_regulators {
+ vdd-supply = <&vdd>;
+ vdd_3v3_usbfs-supply = <&vdd_usb>;
+};
+
+&qspi {
+ pinctrl-names = "default", "sleep";
+ pinctrl-0 = <&qspi_clk_pins_a &qspi_bk1_pins_a>;
+ pinctrl-1 = <&qspi_clk_sleep_pins_a &qspi_bk1_sleep_pins_a>;
+ status = "okay";
+
+ flash0: flash@0 {
+ compatible = "winbond,w25q128", "jedec,spi-nor";
+ reg = <0>;
+ spi-rx-bus-width = <4>;
+ spi-max-frequency = <50000000>;
+ m25p,fast-read;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ };
+};
+
+&rng1 {
+ status = "okay";
+};
+
+&rtc {
+ status = "okay";
+};
+
+&sdmmc2 {
+ pinctrl-names = "default", "opendrain", "sleep";
+ pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_e>;
+ pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_e>;
+ pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_e>;
+ non-removable;
+ no-sd;
+ no-sdio;
+ st,neg-edge;
+ bus-width = <8>;
+ vmmc-supply = <&v3v3>;
+ vqmmc-supply = <&v3v3>;
+ mmc-ddr-3_3v;
+};
--
2.34.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v2 03/11] dt-bindings: arm: stm32: Modify STM32MP15x Phytec board items types
2025-07-09 15:10 [PATCH v2 00/11] Rework and fix STM32MP15x PHYTEC dts Christophe Parant
2025-07-09 15:10 ` [PATCH v2 01/11] ARM: dts: stm32: phycore-stm32mp15: Rename device tree files Christophe Parant
2025-07-09 15:10 ` [PATCH v2 02/11] ARM: dts: stm32: phyboard-sargas: Introduce SoM device tree Christophe Parant
@ 2025-07-09 15:10 ` Christophe Parant
2025-07-10 22:25 ` Rob Herring
2025-07-09 15:10 ` [PATCH v2 04/11] ARM: dts: stm32: Add new pinmux groups for phyboard-sargas and phycore Christophe Parant
` (7 subsequent siblings)
10 siblings, 1 reply; 14+ messages in thread
From: Christophe Parant @ 2025-07-09 15:10 UTC (permalink / raw)
To: devicetree, linux-stm32, linux-arm-kernel, linux-kernel
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Maxime Coquelin,
Alexandre Torgue, upstream
As Phytec manages different SoM configurations with different STM32MP15
SoC versions, modify the phyBOARD and SoM compatible items to "enum"
instead of "const".
The description concerns PHYTEC SoM equipped with STM32MP157
("st,stm32mp157" is "const").
Also add comments in front of the enum items to be able to identify the
compatible string with the phyBOARD/phyCORE names.
Signed-off-by: Christophe Parant <c.parant@phytec.fr>
---
Documentation/devicetree/bindings/arm/stm32/stm32.yaml | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/Documentation/devicetree/bindings/arm/stm32/stm32.yaml b/Documentation/devicetree/bindings/arm/stm32/stm32.yaml
index 408532504a24..fbd3d364c1f7 100644
--- a/Documentation/devicetree/bindings/arm/stm32/stm32.yaml
+++ b/Documentation/devicetree/bindings/arm/stm32/stm32.yaml
@@ -182,10 +182,12 @@ properties:
- const: seeed,stm32mp157c-odyssey-som
- const: st,stm32mp157
- - description: Phytec STM32MP1 SoM based Boards
+ - description: Phytec STM32MP157 SoM based Boards
items:
- - const: phytec,phycore-stm32mp1-3
- - const: phytec,phycore-stm32mp157c-som
+ - enum:
+ - phytec,phycore-stm32mp1-3 # phyBOARD-Sargas with phyCORE-STM32MP157C SoM
+ - enum:
+ - phytec,phycore-stm32mp157c-som # phyCORE-STM32MP157C SoM
- const: st,stm32mp157
- description: Ultratronik STM32MP1 SBC based Boards
--
2.34.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v2 04/11] ARM: dts: stm32: Add new pinmux groups for phyboard-sargas and phycore
2025-07-09 15:10 [PATCH v2 00/11] Rework and fix STM32MP15x PHYTEC dts Christophe Parant
` (2 preceding siblings ...)
2025-07-09 15:10 ` [PATCH v2 03/11] dt-bindings: arm: stm32: Modify STM32MP15x Phytec board items types Christophe Parant
@ 2025-07-09 15:10 ` Christophe Parant
2025-07-09 15:10 ` [PATCH v2 05/11] ARM: dts: stm32: phyboard-sargas: Fix uart4 and sai2 pinctrl Christophe Parant
` (6 subsequent siblings)
10 siblings, 0 replies; 14+ messages in thread
From: Christophe Parant @ 2025-07-09 15:10 UTC (permalink / raw)
To: devicetree, linux-stm32, linux-arm-kernel, linux-kernel
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Maxime Coquelin,
Alexandre Torgue, upstream
Add add alternate pinmux for following interfaces used on
phyBOARD-Sargas:
- UART4
- LTDC
- DCMI
- TIM5
- SAI2
Fix "ethernet0_rgmii_pins_d" pinmux used on phyCORE-STM32MP15x:
ETH_RGMII_GTX_CLK pin was missing.
Signed-off-by: Christophe Parant <c.parant@phytec.fr>
---
arch/arm/boot/dts/st/stm32mp15-pinctrl.dtsi | 164 ++++++++++++++++++++
1 file changed, 164 insertions(+)
diff --git a/arch/arm/boot/dts/st/stm32mp15-pinctrl.dtsi b/arch/arm/boot/dts/st/stm32mp15-pinctrl.dtsi
index 40605ea85ee1..f242959e8716 100644
--- a/arch/arm/boot/dts/st/stm32mp15-pinctrl.dtsi
+++ b/arch/arm/boot/dts/st/stm32mp15-pinctrl.dtsi
@@ -223,6 +223,45 @@ pins {
};
};
+ /omit-if-no-ref/
+ dcmi_pins_d: dcmi-3 {
+ pins {
+ pinmux = <STM32_PINMUX('H', 8, AF13)>,/* DCMI_HSYNC */
+ <STM32_PINMUX('B', 7, AF13)>,/* DCMI_VSYNC */
+ <STM32_PINMUX('A', 6, AF13)>,/* DCMI_PIXCLK */
+ <STM32_PINMUX('H', 9, AF13)>,/* DCMI_D0 */
+ <STM32_PINMUX('C', 7, AF13)>,/* DCMI_D1 */
+ <STM32_PINMUX('E', 0, AF13)>,/* DCMI_D2 */
+ <STM32_PINMUX('E', 1, AF13)>,/* DCMI_D3 */
+ <STM32_PINMUX('H', 14, AF13)>,/* DCMI_D4 */
+ <STM32_PINMUX('I', 4, AF13)>,/* DCMI_D5 */
+ <STM32_PINMUX('E', 5, AF13)>,/* DCMI_D6 */
+ <STM32_PINMUX('I', 7, AF13)>,/* DCMI_D7 */
+ <STM32_PINMUX('I', 1, AF13)>,/* DCMI_D8 */
+ <STM32_PINMUX('H', 7, AF13)>;/* DCMI_D9 */
+ bias-disable;
+ };
+ };
+
+ /omit-if-no-ref/
+ dcmi_sleep_pins_d: dcmi-sleep-3 {
+ pins {
+ pinmux = <STM32_PINMUX('H', 8, ANALOG)>,/* DCMI_HSYNC */
+ <STM32_PINMUX('B', 7, ANALOG)>,/* DCMI_VSYNC */
+ <STM32_PINMUX('A', 6, ANALOG)>,/* DCMI_PIXCLK */
+ <STM32_PINMUX('H', 9, ANALOG)>,/* DCMI_D0 */
+ <STM32_PINMUX('C', 7, ANALOG)>,/* DCMI_D1 */
+ <STM32_PINMUX('E', 0, ANALOG)>,/* DCMI_D2 */
+ <STM32_PINMUX('E', 1, ANALOG)>,/* DCMI_D3 */
+ <STM32_PINMUX('H', 14, ANALOG)>,/* DCMI_D4 */
+ <STM32_PINMUX('I', 4, ANALOG)>,/* DCMI_D5 */
+ <STM32_PINMUX('E', 5, ANALOG)>,/* DCMI_D6 */
+ <STM32_PINMUX('I', 7, ANALOG)>,/* DCMI_D7 */
+ <STM32_PINMUX('I', 1, ANALOG)>,/* DCMI_D8 */
+ <STM32_PINMUX('H', 7, ANALOG)>;/* DCMI_D9 */
+ };
+ };
+
/omit-if-no-ref/
ethernet0_rgmii_pins_a: rgmii-0 {
pins1 {
@@ -386,6 +425,7 @@ pins1 {
ethernet0_rgmii_pins_d: rgmii-3 {
pins1 {
pinmux = <STM32_PINMUX('G', 5, AF11)>, /* ETH_RGMII_CLK125 */
+ <STM32_PINMUX('G', 4, AF11)>, /* ETH_RGMII_GTX_CLK */
<STM32_PINMUX('G', 13, AF11)>, /* ETH_RGMII_TXD0 */
<STM32_PINMUX('G', 14, AF11)>, /* ETH_RGMII_TXD1 */
<STM32_PINMUX('C', 2, AF11)>, /* ETH_RGMII_TXD2 */
@@ -1304,6 +1344,65 @@ pins {
};
};
+ /omit-if-no-ref/
+ ltdc_pins_f: ltdc-5 {
+ pins {
+ pinmux = <STM32_PINMUX('G', 7, AF14)>, /* LCD_CLK */
+ <STM32_PINMUX('I', 10, AF14)>, /* LCD_HSYNC */
+ <STM32_PINMUX('I', 9, AF14)>, /* LCD_VSYNC */
+ <STM32_PINMUX('E', 13, AF14)>, /* LCD_DE */
+ <STM32_PINMUX('C', 10, AF14)>, /* LCD_R2 */
+ <STM32_PINMUX('B', 0, AF9)>, /* LCD_R3 */
+ <STM32_PINMUX('H', 10, AF14)>, /* LCD_R4 */
+ <STM32_PINMUX('H', 11, AF14)>, /* LCD_R5 */
+ <STM32_PINMUX('H', 12, AF14)>, /* LCD_R6 */
+ <STM32_PINMUX('E', 15, AF14)>, /* LCD_R7 */
+ <STM32_PINMUX('H', 13, AF14)>, /* LCD_G2 */
+ <STM32_PINMUX('E', 11, AF14)>, /* LCD_G3 */
+ <STM32_PINMUX('H', 15, AF14)>, /* LCD_G4 */
+ <STM32_PINMUX('H', 4, AF9)>, /* LCD_G5 */
+ <STM32_PINMUX('I', 11, AF9)>, /* LCD_G6 */
+ <STM32_PINMUX('I', 2, AF14)>, /* LCD_G7 */
+ <STM32_PINMUX('G', 10, AF14)>, /* LCD_B2 */
+ <STM32_PINMUX('G', 11, AF14)>, /* LCD_B3 */
+ <STM32_PINMUX('E', 12, AF14)>, /* LCD_B4 */
+ <STM32_PINMUX('I', 5, AF14)>, /* LCD_B5 */
+ <STM32_PINMUX('B', 8, AF14)>, /* LCD_B6 */
+ <STM32_PINMUX('D', 8, AF14)>; /* LCD_B7 */
+ bias-disable;
+ drive-push-pull;
+ slew-rate = <1>;
+ };
+ };
+
+ /omit-if-no-ref/
+ ltdc_sleep_pins_f: ltdc-sleep-5 {
+ pins {
+ pinmux = <STM32_PINMUX('G', 7, ANALOG)>, /* LCD_CLK */
+ <STM32_PINMUX('I', 10, ANALOG)>, /* LCD_HSYNC */
+ <STM32_PINMUX('I', 9, ANALOG)>, /* LCD_VSYNC */
+ <STM32_PINMUX('E', 13, ANALOG)>, /* LCD_DE */
+ <STM32_PINMUX('C', 10, ANALOG)>, /* LCD_R2 */
+ <STM32_PINMUX('B', 0, ANALOG)>, /* LCD_R3 */
+ <STM32_PINMUX('H', 10, ANALOG)>, /* LCD_R4 */
+ <STM32_PINMUX('H', 11, ANALOG)>, /* LCD_R5 */
+ <STM32_PINMUX('H', 12, ANALOG)>, /* LCD_R6 */
+ <STM32_PINMUX('E', 15, ANALOG)>, /* LCD_R7 */
+ <STM32_PINMUX('H', 13, ANALOG)>, /* LCD_G2 */
+ <STM32_PINMUX('E', 11, ANALOG)>, /* LCD_G3 */
+ <STM32_PINMUX('H', 15, ANALOG)>, /* LCD_G4 */
+ <STM32_PINMUX('H', 4, ANALOG)>, /* LCD_G5 */
+ <STM32_PINMUX('I', 11, ANALOG)>, /* LCD_G6 */
+ <STM32_PINMUX('I', 2, ANALOG)>, /* LCD_G7 */
+ <STM32_PINMUX('G', 10, ANALOG)>, /* LCD_B2 */
+ <STM32_PINMUX('G', 11, ANALOG)>, /* LCD_B3 */
+ <STM32_PINMUX('E', 12, ANALOG)>, /* LCD_B4 */
+ <STM32_PINMUX('I', 5, ANALOG)>, /* LCD_B5 */
+ <STM32_PINMUX('B', 8, ANALOG)>, /* LCD_B6 */
+ <STM32_PINMUX('D', 8, ANALOG)>; /* LCD_B7 */
+ };
+ };
+
/omit-if-no-ref/
mco1_pins_a: mco1-0 {
pins {
@@ -1644,6 +1743,23 @@ pins {
};
};
+ /omit-if-no-ref/
+ pwm5_pins_c: pwm5-2 {
+ pins {
+ pinmux = <STM32_PINMUX('I', 0, AF2)>; /* TIM5_CH4 */
+ bias-pull-down;
+ drive-push-pull;
+ slew-rate = <0>;
+ };
+ };
+
+ /omit-if-no-ref/
+ pwm5_sleep_pins_c: pwm5-sleep-2 {
+ pins {
+ pinmux = <STM32_PINMUX('I', 0, ANALOG)>; /* TIM5_CH4 */
+ };
+ };
+
/omit-if-no-ref/
pwm8_pins_a: pwm8-0 {
pins {
@@ -1869,6 +1985,21 @@ pins {
};
};
+ /omit-if-no-ref/
+ sai2a_pins_d: sai2a-3 {
+ pins {
+ pinmux = <STM32_PINMUX('I', 6, AF10)>; /* SAI2_SD_A */
+ bias-disable;
+ };
+ };
+
+ /omit-if-no-ref/
+ sai2a_sleep_pins_d: sai2a-3 {
+ pins {
+ pinmux = <STM32_PINMUX('I', 6, ANALOG)>; /* SAI2_SD_A */
+ };
+ };
+
/omit-if-no-ref/
sai2b_pins_a: sai2b-0 {
pins1 {
@@ -2856,6 +2987,39 @@ pins {
};
};
+ /omit-if-no-ref/
+ uart4_pins_f: uart4-5 {
+ pins1 {
+ pinmux = <STM32_PINMUX('B', 9, AF8)>; /* UART4_TX */
+ bias-disable;
+ drive-push-pull;
+ slew-rate = <0>;
+ };
+ pins2 {
+ pinmux = <STM32_PINMUX('B', 2, AF8)>; /* UART4_RX */
+ bias-disable;
+ };
+ };
+
+ /omit-if-no-ref/
+ uart4_idle_pins_f: uart4-idle-5 {
+ pins1 {
+ pinmux = <STM32_PINMUX('B', 9, ANALOG)>; /* UART4_TX */
+ };
+ pins2 {
+ pinmux = <STM32_PINMUX('B', 2, AF8)>; /* UART4_RX */
+ bias-disable;
+ };
+ };
+
+ /omit-if-no-ref/
+ uart4_sleep_pins_f: uart4-sleep-5 {
+ pins {
+ pinmux = <STM32_PINMUX('B', 9, ANALOG)>, /* UART4_TX */
+ <STM32_PINMUX('B', 2, ANALOG)>; /* UART4_RX */
+ };
+ };
+
/omit-if-no-ref/
uart5_pins_a: uart5-0 {
pins1 {
--
2.34.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v2 05/11] ARM: dts: stm32: phyboard-sargas: Fix uart4 and sai2 pinctrl
2025-07-09 15:10 [PATCH v2 00/11] Rework and fix STM32MP15x PHYTEC dts Christophe Parant
` (3 preceding siblings ...)
2025-07-09 15:10 ` [PATCH v2 04/11] ARM: dts: stm32: Add new pinmux groups for phyboard-sargas and phycore Christophe Parant
@ 2025-07-09 15:10 ` Christophe Parant
2025-07-09 15:10 ` [PATCH v2 06/11] ARM: dts: stm32: phycore-stm32mp15: qspi: Fix memory map and pinctrl Christophe Parant
` (5 subsequent siblings)
10 siblings, 0 replies; 14+ messages in thread
From: Christophe Parant @ 2025-07-09 15:10 UTC (permalink / raw)
To: devicetree, linux-stm32, linux-arm-kernel, linux-kernel
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Maxime Coquelin,
Alexandre Torgue, upstream
- UART4:
"uart4_pins_a" pinmux option does not apply here, as PB9 should be
used for UART4_TX instead of PG11 (PG11 is LCD_B3 on Sargas).
Use "uart4_pins_f" instead.
Also remove "pinctrl-3" which is useless (identical to "pinctrl-1").
- SAI2 A:
"sai2a_pins_b" pinmux option does not apply here, as only PI6 is used
for SAI2 A ("SAI2_SD_A"). Other pins of this group (PI7 and PD13) are
not used for audio.
Use "sai2a_sleep_pins_d" instead.
Signed-off-by: Christophe Parant <c.parant@phytec.fr>
---
arch/arm/boot/dts/st/stm32mp15xx-phyboard-sargas.dtsi | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/arch/arm/boot/dts/st/stm32mp15xx-phyboard-sargas.dtsi b/arch/arm/boot/dts/st/stm32mp15xx-phyboard-sargas.dtsi
index 2fdab99fc562..44f3aa1ddebf 100644
--- a/arch/arm/boot/dts/st/stm32mp15xx-phyboard-sargas.dtsi
+++ b/arch/arm/boot/dts/st/stm32mp15xx-phyboard-sargas.dtsi
@@ -143,8 +143,8 @@ &sai2 {
clocks = <&rcc SAI2>, <&rcc PLL3_Q>, <&rcc PLL3_R>;
clock-names = "pclk", "x8k", "x11k";
pinctrl-names = "default", "sleep";
- pinctrl-0 = <&sai2a_pins_b>, <&sai2b_pins_d>;
- pinctrl-1 = <&sai2a_sleep_pins_b>, <&sai2b_sleep_pins_d>;
+ pinctrl-0 = <&sai2a_pins_d>, <&sai2b_pins_d>;
+ pinctrl-1 = <&sai2a_sleep_pins_d>, <&sai2b_sleep_pins_d>;
status = "okay";
};
@@ -202,10 +202,9 @@ &spi1 {
&uart4 {
pinctrl-names = "default", "sleep", "idle";
- pinctrl-0 = <&uart4_pins_a>;
- pinctrl-1 = <&uart4_sleep_pins_a>;
- pinctrl-2 = <&uart4_idle_pins_a>;
- pinctrl-3 = <&uart4_pins_a>;
+ pinctrl-0 = <&uart4_pins_f>;
+ pinctrl-1 = <&uart4_sleep_pins_f>;
+ pinctrl-2 = <&uart4_idle_pins_f>;
/delete-property/dmas;
/delete-property/dma-names;
status = "okay";
--
2.34.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v2 06/11] ARM: dts: stm32: phycore-stm32mp15: qspi: Fix memory map and pinctrl
2025-07-09 15:10 [PATCH v2 00/11] Rework and fix STM32MP15x PHYTEC dts Christophe Parant
` (4 preceding siblings ...)
2025-07-09 15:10 ` [PATCH v2 05/11] ARM: dts: stm32: phyboard-sargas: Fix uart4 and sai2 pinctrl Christophe Parant
@ 2025-07-09 15:10 ` Christophe Parant
2025-07-09 15:10 ` [PATCH v2 07/11] ARM: dts: stm32: phycore-stm32mp15: Add dummy memory-node Christophe Parant
` (4 subsequent siblings)
10 siblings, 0 replies; 14+ messages in thread
From: Christophe Parant @ 2025-07-09 15:10 UTC (permalink / raw)
To: devicetree, linux-stm32, linux-arm-kernel, linux-kernel
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Maxime Coquelin,
Alexandre Torgue, upstream
- Add missing chip select pin group in pinctrl.
- Overwrite the memory map to the Flash device size (16MB) is necessary
to avoid waste of virtual memory that will not be used.
Without this modification, qspi probe fails because of ioremap error.
Signed-off-by: Christophe Parant <c.parant@phytec.fr>
---
arch/arm/boot/dts/st/stm32mp15xx-phycore-som.dtsi | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/arch/arm/boot/dts/st/stm32mp15xx-phycore-som.dtsi b/arch/arm/boot/dts/st/stm32mp15xx-phycore-som.dtsi
index 660cdc260963..72926c3de52c 100644
--- a/arch/arm/boot/dts/st/stm32mp15xx-phycore-som.dtsi
+++ b/arch/arm/boot/dts/st/stm32mp15xx-phycore-som.dtsi
@@ -290,8 +290,14 @@ &pwr_regulators {
&qspi {
pinctrl-names = "default", "sleep";
- pinctrl-0 = <&qspi_clk_pins_a &qspi_bk1_pins_a>;
- pinctrl-1 = <&qspi_clk_sleep_pins_a &qspi_bk1_sleep_pins_a>;
+ pinctrl-0 = <&qspi_clk_pins_a
+ &qspi_bk1_pins_a
+ &qspi_cs1_pins_a>;
+ pinctrl-1 = <&qspi_clk_sleep_pins_a
+ &qspi_bk1_sleep_pins_a
+ &qspi_cs1_sleep_pins_a>;
+ reg = <0x58003000 0x1000>,
+ <0x70000000 0x1000000>;
status = "okay";
flash0: flash@0 {
--
2.34.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v2 07/11] ARM: dts: stm32: phycore-stm32mp15: Add dummy memory-node
2025-07-09 15:10 [PATCH v2 00/11] Rework and fix STM32MP15x PHYTEC dts Christophe Parant
` (5 preceding siblings ...)
2025-07-09 15:10 ` [PATCH v2 06/11] ARM: dts: stm32: phycore-stm32mp15: qspi: Fix memory map and pinctrl Christophe Parant
@ 2025-07-09 15:10 ` Christophe Parant
2025-07-09 15:10 ` [PATCH v2 08/11] ARM: dts: stm32: phyboard-sargas: Move aliases from dts to dtsi Christophe Parant
` (3 subsequent siblings)
10 siblings, 0 replies; 14+ messages in thread
From: Christophe Parant @ 2025-07-09 15:10 UTC (permalink / raw)
To: devicetree, linux-stm32, linux-arm-kernel, linux-kernel
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Maxime Coquelin,
Alexandre Torgue, upstream
"memory" node is not necessary as the bootloader is taking care of
passing the correct DDR size.
However keep a dummy memory node with the minimum DDR size (512MB) with
comment explaining that.
Signed-off-by: Christophe Parant <c.parant@phytec.fr>
---
arch/arm/boot/dts/st/stm32mp15xx-phycore-som.dtsi | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/arch/arm/boot/dts/st/stm32mp15xx-phycore-som.dtsi b/arch/arm/boot/dts/st/stm32mp15xx-phycore-som.dtsi
index 72926c3de52c..ce859b94ae26 100644
--- a/arch/arm/boot/dts/st/stm32mp15xx-phycore-som.dtsi
+++ b/arch/arm/boot/dts/st/stm32mp15xx-phycore-som.dtsi
@@ -22,6 +22,15 @@ aliases {
rtc1 = &rtc;
};
+ /*
+ * Set the minimum memory size here and
+ * let the bootloader set the real size.
+ */
+ memory@c0000000 {
+ device_type = "memory";
+ reg = <0xc0000000 0x20000000>;
+ };
+
reserved-memory {
#address-cells = <1>;
#size-cells = <1>;
--
2.34.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v2 08/11] ARM: dts: stm32: phyboard-sargas: Move aliases from dts to dtsi
2025-07-09 15:10 [PATCH v2 00/11] Rework and fix STM32MP15x PHYTEC dts Christophe Parant
` (6 preceding siblings ...)
2025-07-09 15:10 ` [PATCH v2 07/11] ARM: dts: stm32: phycore-stm32mp15: Add dummy memory-node Christophe Parant
@ 2025-07-09 15:10 ` Christophe Parant
2025-07-09 15:10 ` [PATCH v2 09/11] ARM: dts: stm32: phycore-stm32mp15: Disable optional SoM peripherals Christophe Parant
` (2 subsequent siblings)
10 siblings, 0 replies; 14+ messages in thread
From: Christophe Parant @ 2025-07-09 15:10 UTC (permalink / raw)
To: devicetree, linux-stm32, linux-arm-kernel, linux-kernel
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Maxime Coquelin,
Alexandre Torgue, upstream
aliases are common to every phyboard-sargas version. So move it to
the common phyboard dtsi file.
Signed-off-by: Christophe Parant <c.parant@phytec.fr>
---
arch/arm/boot/dts/st/stm32mp157c-phyboard-sargas-rdk.dts | 9 ---------
arch/arm/boot/dts/st/stm32mp15xx-phyboard-sargas.dtsi | 9 +++++++++
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/arch/arm/boot/dts/st/stm32mp157c-phyboard-sargas-rdk.dts b/arch/arm/boot/dts/st/stm32mp157c-phyboard-sargas-rdk.dts
index 48adc3462958..f7c02a381304 100644
--- a/arch/arm/boot/dts/st/stm32mp157c-phyboard-sargas-rdk.dts
+++ b/arch/arm/boot/dts/st/stm32mp157c-phyboard-sargas-rdk.dts
@@ -16,15 +16,6 @@ / {
model = "PHYTEC phyBOARD-Sargas STM32MP157C";
compatible = "phytec,phycore-stm32mp1-3",
"phytec,phycore-stm32mp157c-som", "st,stm32mp157";
-
- aliases {
- mmc0 = &sdmmc1;
- mmc1 = &sdmmc2;
- mmc2 = &sdmmc3;
- serial0 = &uart4;
- serial1 = &usart3;
- serial2 = &usart1;
- };
};
&cryp1 {
diff --git a/arch/arm/boot/dts/st/stm32mp15xx-phyboard-sargas.dtsi b/arch/arm/boot/dts/st/stm32mp15xx-phyboard-sargas.dtsi
index 44f3aa1ddebf..9578e78bcc1d 100644
--- a/arch/arm/boot/dts/st/stm32mp15xx-phyboard-sargas.dtsi
+++ b/arch/arm/boot/dts/st/stm32mp15xx-phyboard-sargas.dtsi
@@ -12,6 +12,15 @@
#include <dt-bindings/leds/leds-pca9532.h>
/ {
+ aliases {
+ mmc0 = &sdmmc1;
+ mmc1 = &sdmmc2;
+ mmc2 = &sdmmc3;
+ serial0 = &uart4;
+ serial1 = &usart3;
+ serial2 = &usart1;
+ };
+
chosen {
stdout-path = "serial0:115200n8";
};
--
2.34.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v2 09/11] ARM: dts: stm32: phycore-stm32mp15: Disable optional SoM peripherals
2025-07-09 15:10 [PATCH v2 00/11] Rework and fix STM32MP15x PHYTEC dts Christophe Parant
` (7 preceding siblings ...)
2025-07-09 15:10 ` [PATCH v2 08/11] ARM: dts: stm32: phyboard-sargas: Move aliases from dts to dtsi Christophe Parant
@ 2025-07-09 15:10 ` Christophe Parant
2025-07-09 15:10 ` [PATCH v2 10/11] ARM: dts: stm32: phyboard-sargas and phycore: Fix coding style issues Christophe Parant
2025-07-09 15:10 ` [PATCH v2 11/11] ARM: dts: stm32: phyboard-sargas and phycore: Add optional interfaces Christophe Parant
10 siblings, 0 replies; 14+ messages in thread
From: Christophe Parant @ 2025-07-09 15:10 UTC (permalink / raw)
To: devicetree, linux-stm32, linux-arm-kernel, linux-kernel
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Maxime Coquelin,
Alexandre Torgue, upstream
Following peripherals are optional on phyCORE-STM32MP15x following
PHYTEC standard SoM variants: external RTC, EEPROM, SPI NOR.
Also NAND (fmc) can be populated instead of eMMC (sdmmc2).
So disable those peripherals on SoM dtsi file and enable them on board
dts file.
Additionally, enable by default the "DTS" SoC IP on common SoM dtsi file
as it is not an optional IP in STM32MP15x SoC.
Signed-off-by: Christophe Parant <c.parant@phytec.fr>
---
arch/arm/boot/dts/st/stm32mp157c-phyboard-sargas-rdk.dts | 8 --------
arch/arm/boot/dts/st/stm32mp15xx-phycore-som.dtsi | 9 ++++++++-
2 files changed, 8 insertions(+), 9 deletions(-)
diff --git a/arch/arm/boot/dts/st/stm32mp157c-phyboard-sargas-rdk.dts b/arch/arm/boot/dts/st/stm32mp157c-phyboard-sargas-rdk.dts
index f7c02a381304..c90b12a479c9 100644
--- a/arch/arm/boot/dts/st/stm32mp157c-phyboard-sargas-rdk.dts
+++ b/arch/arm/boot/dts/st/stm32mp157c-phyboard-sargas-rdk.dts
@@ -22,14 +22,6 @@ &cryp1 {
status = "okay";
};
-&dts {
- status = "okay";
-};
-
-&fmc {
- status = "disabled";
-};
-
&gpu {
status = "okay";
};
diff --git a/arch/arm/boot/dts/st/stm32mp15xx-phycore-som.dtsi b/arch/arm/boot/dts/st/stm32mp15xx-phycore-som.dtsi
index ce859b94ae26..3f60f184978c 100644
--- a/arch/arm/boot/dts/st/stm32mp15xx-phycore-som.dtsi
+++ b/arch/arm/boot/dts/st/stm32mp15xx-phycore-som.dtsi
@@ -265,11 +265,13 @@ i2c4_eeprom: eeprom@50 {
compatible = "microchip,24c32",
"atmel,24c32";
reg = <0x50>;
+ status = "disabled";
};
i2c4_rtc: rtc@52 {
compatible = "microcrystal,rv3028";
reg = <0x52>;
+ status = "disabled";
};
};
@@ -307,7 +309,7 @@ &qspi_bk1_sleep_pins_a
&qspi_cs1_sleep_pins_a>;
reg = <0x58003000 0x1000>,
<0x70000000 0x1000000>;
- status = "okay";
+ status = "disabled";
flash0: flash@0 {
compatible = "winbond,w25q128", "jedec,spi-nor";
@@ -328,6 +330,10 @@ &rtc {
status = "okay";
};
+&dts {
+ status = "okay";
+};
+
&sdmmc2 {
pinctrl-names = "default", "opendrain", "sleep";
pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_e>;
@@ -341,4 +347,5 @@ &sdmmc2 {
vmmc-supply = <&v3v3>;
vqmmc-supply = <&v3v3>;
mmc-ddr-3_3v;
+ status = "disabled";
};
--
2.34.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v2 10/11] ARM: dts: stm32: phyboard-sargas and phycore: Fix coding style issues
2025-07-09 15:10 [PATCH v2 00/11] Rework and fix STM32MP15x PHYTEC dts Christophe Parant
` (8 preceding siblings ...)
2025-07-09 15:10 ` [PATCH v2 09/11] ARM: dts: stm32: phycore-stm32mp15: Disable optional SoM peripherals Christophe Parant
@ 2025-07-09 15:10 ` Christophe Parant
2025-07-09 15:10 ` [PATCH v2 11/11] ARM: dts: stm32: phyboard-sargas and phycore: Add optional interfaces Christophe Parant
10 siblings, 0 replies; 14+ messages in thread
From: Christophe Parant @ 2025-07-09 15:10 UTC (permalink / raw)
To: devicetree, linux-stm32, linux-arm-kernel, linux-kernel
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Maxime Coquelin,
Alexandre Torgue, upstream
- Remove "stm32-pinfunc.h" include as it is already include in
"stm32mp15-pinctrl.dtsi" file.
- reserved-memory: reorder the memory sections (lower to higher
addresses).
- Move vendor properties (go last).
- Remove useless compatible values:
- QSPI flash: remove the winbond compatible. jedec is enought as the
NOR flahses are detectable.
- EEPROM: "atmel,24c32" is enought.
- Use uppercase for regulator-name properties.
- In pmic node: use the names from the PHYTEC SoM schematics.
- stmpe811 touch: fix dts schema to comply with st,stmpe.yaml.
- Fix one "multiple blank lines" detected by checkpatch.
Signed-off-by: Christophe Parant <c.parant@phytec.fr>
---
.../st/stm32mp157c-phyboard-sargas-rdk.dts | 1 -
.../dts/st/stm32mp15xx-phyboard-sargas.dtsi | 13 ++--
.../boot/dts/st/stm32mp15xx-phycore-som.dtsi | 64 +++++++++----------
3 files changed, 36 insertions(+), 42 deletions(-)
diff --git a/arch/arm/boot/dts/st/stm32mp157c-phyboard-sargas-rdk.dts b/arch/arm/boot/dts/st/stm32mp157c-phyboard-sargas-rdk.dts
index c90b12a479c9..c18a37266083 100644
--- a/arch/arm/boot/dts/st/stm32mp157c-phyboard-sargas-rdk.dts
+++ b/arch/arm/boot/dts/st/stm32mp157c-phyboard-sargas-rdk.dts
@@ -6,7 +6,6 @@
/dts-v1/;
-#include <dt-bindings/pinctrl/stm32-pinfunc.h>
#include "stm32mp157.dtsi"
#include "stm32mp15xc.dtsi"
#include "stm32mp15xx-phycore-som.dtsi"
diff --git a/arch/arm/boot/dts/st/stm32mp15xx-phyboard-sargas.dtsi b/arch/arm/boot/dts/st/stm32mp15xx-phyboard-sargas.dtsi
index 9578e78bcc1d..20684b497c99 100644
--- a/arch/arm/boot/dts/st/stm32mp15xx-phyboard-sargas.dtsi
+++ b/arch/arm/boot/dts/st/stm32mp15xx-phyboard-sargas.dtsi
@@ -5,7 +5,6 @@
* Author: Dom VOVARD <dom.vovard@linrt.com>.
*/
-
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/leds/common.h>
@@ -101,13 +100,13 @@ touch@44 {
interrupt-parent = <&gpioi>;
vio-supply = <&v3v3>;
vcc-supply = <&v3v3>;
+ st,sample-time = <4>;
+ st,mod-12b = <1>;
+ st,ref-sel = <0>;
+ st,adc-freq = <1>;
touchscreen {
compatible = "st,stmpe-ts";
- st,sample-time = <4>;
- st,mod-12b = <1>;
- st,ref-sel = <0>;
- st,adc-freq = <1>;
st,ave-ctrl = <1>;
st,touch-det-delay = <2>;
st,settling = <2>;
@@ -159,10 +158,10 @@ &sai2 {
&sai2a {
dma-names = "rx";
- st,sync = <&sai2b 2>;
clocks = <&rcc SAI2_K>, <&sai2b>;
clock-names = "sai_ck", "MCLK";
#clock-cells = <0>;
+ st,sync = <&sai2b 2>;
sai2a_port: port {
sai2a_endpoint: endpoint {
@@ -195,9 +194,9 @@ &sdmmc1 {
pinctrl-2 = <&sdmmc1_b4_sleep_pins_b>;
cd-gpios = <&gpiof 3 GPIO_ACTIVE_LOW>;
disable-wp;
- st,neg-edge;
bus-width = <4>;
vmmc-supply = <&v3v3>;
+ st,neg-edge;
status = "okay";
};
diff --git a/arch/arm/boot/dts/st/stm32mp15xx-phycore-som.dtsi b/arch/arm/boot/dts/st/stm32mp15xx-phycore-som.dtsi
index 3f60f184978c..0689967b8c56 100644
--- a/arch/arm/boot/dts/st/stm32mp15xx-phycore-som.dtsi
+++ b/arch/arm/boot/dts/st/stm32mp15xx-phycore-som.dtsi
@@ -36,18 +36,6 @@ reserved-memory {
#size-cells = <1>;
ranges;
- retram: retram@38000000 {
- compatible = "shared-dma-pool";
- reg = <0x38000000 0x10000>;
- no-map;
- };
-
- mcuram: mcuram@30000000 {
- compatible = "shared-dma-pool";
- reg = <0x30000000 0x40000>;
- no-map;
- };
-
mcuram2: mcuram2@10000000 {
compatible = "shared-dma-pool";
reg = <0x10000000 0x40000>;
@@ -71,11 +59,22 @@ vdev0buffer: vdev0buffer@10042000 {
reg = <0x10042000 0x4000>;
no-map;
};
+ mcuram: mcuram@30000000 {
+ compatible = "shared-dma-pool";
+ reg = <0x30000000 0x40000>;
+ no-map;
+ };
+
+ retram: retram@38000000 {
+ compatible = "shared-dma-pool";
+ reg = <0x38000000 0x10000>;
+ no-map;
+ };
};
regulator_vin: regulator {
compatible = "regulator-fixed";
- regulator-name = "vin";
+ regulator-name = "VIN";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
regulator-always-on;
@@ -102,11 +101,11 @@ phy0: ethernet-phy@1 {
reg = <1>;
interrupt-parent = <&gpiog>;
interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
+ enet-phy-lane-no-swap;
ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
ti,min-output-impedance;
- enet-phy-lane-no-swap;
ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
};
};
@@ -144,7 +143,7 @@ regulators {
pwr_sw2-supply = <&bst_out>;
vddcore: buck1 {
- regulator-name = "vddcore";
+ regulator-name = "VDD_CORE";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1350000>;
regulator-always-on;
@@ -152,7 +151,7 @@ vddcore: buck1 {
};
vdd_ddr: buck2 {
- regulator-name = "vdd_ddr";
+ regulator-name = "VDD_DDR";
regulator-min-microvolt = <1350000>;
regulator-max-microvolt = <1350000>;
regulator-always-on;
@@ -160,7 +159,7 @@ vdd_ddr: buck2 {
};
vdd: buck3 {
- regulator-name = "vdd";
+ regulator-name = "VDD";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
@@ -169,7 +168,7 @@ vdd: buck3 {
};
v3v3: buck4 {
- regulator-name = "v3v3";
+ regulator-name = "VDD_BUCK4";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
@@ -177,7 +176,7 @@ v3v3: buck4 {
};
v1v8_audio: ldo1 {
- regulator-name = "v1v8_audio";
+ regulator-name = "VDD_LDO1";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
@@ -186,7 +185,7 @@ v1v8_audio: ldo1 {
};
vdd_eth_2v5: ldo2 {
- regulator-name = "dd_eth_2v5";
+ regulator-name = "VDD_ETH_2V5";
regulator-min-microvolt = <2500000>;
regulator-max-microvolt = <2500000>;
regulator-always-on;
@@ -195,7 +194,7 @@ vdd_eth_2v5: ldo2 {
};
vtt_ddr: ldo3 {
- regulator-name = "vtt_ddr";
+ regulator-name = "VTT_DDR";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <750000>;
regulator-always-on;
@@ -203,12 +202,12 @@ vtt_ddr: ldo3 {
};
vdd_usb: ldo4 {
- regulator-name = "vdd_usb";
+ regulator-name = "VDD_USB";
interrupts = <IT_CURLIM_LDO4 0>;
};
vdda: ldo5 {
- regulator-name = "vdda";
+ regulator-name = "VDDA";
regulator-min-microvolt = <2900000>;
regulator-max-microvolt = <2900000>;
interrupts = <IT_CURLIM_LDO5 0>;
@@ -216,7 +215,7 @@ vdda: ldo5 {
};
vdd_eth_1v0: ldo6 {
- regulator-name = "vdd_eth_1v0";
+ regulator-name = "VDD_ETH_1V0";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>;
regulator-always-on;
@@ -225,23 +224,23 @@ vdd_eth_1v0: ldo6 {
};
vref_ddr: vref_ddr {
- regulator-name = "vref_ddr";
+ regulator-name = "VDD_REFDDR";
regulator-always-on;
};
bst_out: boost {
- regulator-name = "bst_out";
+ regulator-name = "BST_OUT";
interrupts = <IT_OCP_BOOST 0>;
};
vbus_otg: pwr_sw1 {
- regulator-name = "vbus_otg";
+ regulator-name = "VBUS_OTG";
interrupts = <IT_OCP_OTG 0>;
regulator-active-discharge = <1>;
};
vbus_sw: pwr_sw2 {
- regulator-name = "vbus_sw";
+ regulator-name = "VBUS_SW";
interrupts = <IT_OCP_SWOUT 0>;
regulator-active-discharge = <1>;
};
@@ -262,8 +261,7 @@ watchdog {
};
i2c4_eeprom: eeprom@50 {
- compatible = "microchip,24c32",
- "atmel,24c32";
+ compatible = "atmel,24c32";
reg = <0x50>;
status = "disabled";
};
@@ -312,13 +310,11 @@ &qspi_bk1_sleep_pins_a
status = "disabled";
flash0: flash@0 {
- compatible = "winbond,w25q128", "jedec,spi-nor";
+ compatible = "jedec,spi-nor";
reg = <0>;
spi-rx-bus-width = <4>;
spi-max-frequency = <50000000>;
m25p,fast-read;
- #address-cells = <1>;
- #size-cells = <1>;
};
};
@@ -342,10 +338,10 @@ &sdmmc2 {
non-removable;
no-sd;
no-sdio;
- st,neg-edge;
bus-width = <8>;
vmmc-supply = <&v3v3>;
vqmmc-supply = <&v3v3>;
mmc-ddr-3_3v;
+ st,neg-edge;
status = "disabled";
};
--
2.34.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v2 11/11] ARM: dts: stm32: phyboard-sargas and phycore: Add optional interfaces
2025-07-09 15:10 [PATCH v2 00/11] Rework and fix STM32MP15x PHYTEC dts Christophe Parant
` (9 preceding siblings ...)
2025-07-09 15:10 ` [PATCH v2 10/11] ARM: dts: stm32: phyboard-sargas and phycore: Fix coding style issues Christophe Parant
@ 2025-07-09 15:10 ` Christophe Parant
10 siblings, 0 replies; 14+ messages in thread
From: Christophe Parant @ 2025-07-09 15:10 UTC (permalink / raw)
To: devicetree, linux-stm32, linux-arm-kernel, linux-kernel
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Maxime Coquelin,
Alexandre Torgue, upstream
- stm32mp15xx-phycore-som: add NAND device on FMC interface to support
the SoM version equipped with NAND flash instead of eMMC.
- stm32mp15xx-phyboard-sargas: define pinctrl for PWM5, LTDC and DCMI
interfaces used on phyBOARD-Sargas. Those interfaces are not enabled by
default as PHYTEC displays and PHYTEC cameras are enabled and configured
throught device tree overlays.
PWM5 is used for LCD backlight command.
Signed-off-by: Christophe Parant <c.parant@phytec.fr>
---
.../dts/st/stm32mp15xx-phyboard-sargas.dtsi | 23 +++++++++++++++++++
.../boot/dts/st/stm32mp15xx-phycore-som.dtsi | 16 +++++++++++++
2 files changed, 39 insertions(+)
diff --git a/arch/arm/boot/dts/st/stm32mp15xx-phyboard-sargas.dtsi b/arch/arm/boot/dts/st/stm32mp15xx-phyboard-sargas.dtsi
index 20684b497c99..28a21dec9cd7 100644
--- a/arch/arm/boot/dts/st/stm32mp15xx-phyboard-sargas.dtsi
+++ b/arch/arm/boot/dts/st/stm32mp15xx-phyboard-sargas.dtsi
@@ -260,3 +260,26 @@ &usbphyc_port0 {
&usbphyc_port1 {
phy-supply = <&vdd_usb>;
};
+
+&timers5 {
+ /* spare dmas for other usage */
+ /delete-property/dmas;
+ /delete-property/dma-names;
+ pwm5: pwm {
+ pinctrl-names = "default", "sleep";
+ pinctrl-0 = <&pwm5_pins_c>;
+ pinctrl-1 = <&pwm5_sleep_pins_c>;
+ };
+};
+
+<dc {
+ pinctrl-names = "default", "sleep";
+ pinctrl-0 = <<dc_pins_f>;
+ pinctrl-1 = <<dc_sleep_pins_f>;
+};
+
+&dcmi {
+ pinctrl-names = "default", "sleep";
+ pinctrl-0 = <&dcmi_pins_d>;
+ pinctrl-1 = <&dcmi_sleep_pins_d>;
+};
diff --git a/arch/arm/boot/dts/st/stm32mp15xx-phycore-som.dtsi b/arch/arm/boot/dts/st/stm32mp15xx-phycore-som.dtsi
index 0689967b8c56..23db635c39a1 100644
--- a/arch/arm/boot/dts/st/stm32mp15xx-phycore-som.dtsi
+++ b/arch/arm/boot/dts/st/stm32mp15xx-phycore-som.dtsi
@@ -345,3 +345,19 @@ &sdmmc2 {
st,neg-edge;
status = "disabled";
};
+
+&fmc {
+ pinctrl-names = "default", "sleep";
+ pinctrl-0 = <&fmc_pins_a>;
+ pinctrl-1 = <&fmc_sleep_pins_a>;
+ status = "disabled";
+
+ nand-controller@4,0 {
+ nand0: nand@0 {
+ reg = <0>;
+ nand-on-flash-bbt;
+ nand-ecc-strength = <4>;
+ nand-ecc-step-size = <512>;
+ };
+ };
+};
--
2.34.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH v2 03/11] dt-bindings: arm: stm32: Modify STM32MP15x Phytec board items types
2025-07-09 15:10 ` [PATCH v2 03/11] dt-bindings: arm: stm32: Modify STM32MP15x Phytec board items types Christophe Parant
@ 2025-07-10 22:25 ` Rob Herring
2025-07-11 7:25 ` Christophe Parant
0 siblings, 1 reply; 14+ messages in thread
From: Rob Herring @ 2025-07-10 22:25 UTC (permalink / raw)
To: Christophe Parant
Cc: devicetree, linux-stm32, linux-arm-kernel, linux-kernel,
Krzysztof Kozlowski, Conor Dooley, Maxime Coquelin,
Alexandre Torgue, upstream
On Wed, Jul 09, 2025 at 05:10:03PM +0200, Christophe Parant wrote:
> As Phytec manages different SoM configurations with different STM32MP15
> SoC versions, modify the phyBOARD and SoM compatible items to "enum"
> instead of "const".
> The description concerns PHYTEC SoM equipped with STM32MP157
> ("st,stm32mp157" is "const").
> Also add comments in front of the enum items to be able to identify the
> compatible string with the phyBOARD/phyCORE names.
I don't understand the point of this patch.
> Signed-off-by: Christophe Parant <c.parant@phytec.fr>
> ---
> Documentation/devicetree/bindings/arm/stm32/stm32.yaml | 8 +++++---
> 1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/arm/stm32/stm32.yaml b/Documentation/devicetree/bindings/arm/stm32/stm32.yaml
> index 408532504a24..fbd3d364c1f7 100644
> --- a/Documentation/devicetree/bindings/arm/stm32/stm32.yaml
> +++ b/Documentation/devicetree/bindings/arm/stm32/stm32.yaml
> @@ -182,10 +182,12 @@ properties:
> - const: seeed,stm32mp157c-odyssey-som
> - const: st,stm32mp157
>
> - - description: Phytec STM32MP1 SoM based Boards
> + - description: Phytec STM32MP157 SoM based Boards
> items:
> - - const: phytec,phycore-stm32mp1-3
> - - const: phytec,phycore-stm32mp157c-som
> + - enum:
> + - phytec,phycore-stm32mp1-3 # phyBOARD-Sargas with phyCORE-STM32MP157C SoM
> + - enum:
> + - phytec,phycore-stm32mp157c-som # phyCORE-STM32MP157C SoM
Are you going to add more entries to the enums? Wouldn't those be a
different SoC and a whole other 'items' list because it wouldn't be the
157 SoC?
> - const: st,stm32mp157
>
> - description: Ultratronik STM32MP1 SBC based Boards
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 03/11] dt-bindings: arm: stm32: Modify STM32MP15x Phytec board items types
2025-07-10 22:25 ` Rob Herring
@ 2025-07-11 7:25 ` Christophe Parant
0 siblings, 0 replies; 14+ messages in thread
From: Christophe Parant @ 2025-07-11 7:25 UTC (permalink / raw)
To: robh@kernel.org
Cc: alexandre.torgue@foss.st.com,
linux-stm32@st-md-mailman.stormreply.com,
devicetree@vger.kernel.org, upstream@lists.phytec.de,
linux-kernel@vger.kernel.org, krzk+dt@kernel.org,
linux-arm-kernel@lists.infradead.org, conor+dt@kernel.org,
mcoquelin.stm32@gmail.com
Hello Rob,
Le jeudi 10 juillet 2025 à 17:25 -0500, Rob Herring a écrit :
> On Wed, Jul 09, 2025 at 05:10:03PM +0200, Christophe Parant wrote:
> > As Phytec manages different SoM configurations with different
> > STM32MP15
> > SoC versions, modify the phyBOARD and SoM compatible items to
> > "enum"
> > instead of "const".
> > The description concerns PHYTEC SoM equipped with STM32MP157
> > ("st,stm32mp157" is "const").
> > Also add comments in front of the enum items to be able to identify
> > the
> > compatible string with the phyBOARD/phyCORE names.
>
> I don't understand the point of this patch.
>
Thank your for your feedback.
> > Signed-off-by: Christophe Parant <c.parant@phytec.fr>
> > ---
> > Documentation/devicetree/bindings/arm/stm32/stm32.yaml | 8 +++++--
> > -
> > 1 file changed, 5 insertions(+), 3 deletions(-)
> >
> > diff --git a/Documentation/devicetree/bindings/arm/stm32/stm32.yaml
> > b/Documentation/devicetree/bindings/arm/stm32/stm32.yaml
> > index 408532504a24..fbd3d364c1f7 100644
> > --- a/Documentation/devicetree/bindings/arm/stm32/stm32.yaml
> > +++ b/Documentation/devicetree/bindings/arm/stm32/stm32.yaml
> > @@ -182,10 +182,12 @@ properties:
> > - const: seeed,stm32mp157c-odyssey-som
> > - const: st,stm32mp157
> >
> > - - description: Phytec STM32MP1 SoM based Boards
> > + - description: Phytec STM32MP157 SoM based Boards
> > items:
> > - - const: phytec,phycore-stm32mp1-3
> > - - const: phytec,phycore-stm32mp157c-som
> > + - enum:
> > + - phytec,phycore-stm32mp1-3 # phyBOARD-Sargas with
> > phyCORE-STM32MP157C SoM
> > + - enum:
> > + - phytec,phycore-stm32mp157c-som # phyCORE-
> > STM32MP157C SoM
>
> Are you going to add more entries to the enums? Wouldn't those be a
> different SoC and a whole other 'items' list because it wouldn't be
> the
> 157 SoC?
>
Yes, here we would also like to add our "phycore-stm32mp1-4" which is
equipped with the "F" version of stm32mp157: "stm32mp157f" (which is
another board device tree).
But didn't want to add it now in this patch series.
We also have "phycore-stm32mp1-6" which is equipped with "stm32mp153a".
The idea was to keep this Description section for the "st,stm32mp157"
(const items) and would need another section for the "st,stm32mp13a".
Best Regards,
Christophe
> > - const: st,stm32mp157
> >
> > - description: Ultratronik STM32MP1 SBC based Boards
> > --
> > 2.34.1
> >
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2025-07-11 7:25 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-09 15:10 [PATCH v2 00/11] Rework and fix STM32MP15x PHYTEC dts Christophe Parant
2025-07-09 15:10 ` [PATCH v2 01/11] ARM: dts: stm32: phycore-stm32mp15: Rename device tree files Christophe Parant
2025-07-09 15:10 ` [PATCH v2 02/11] ARM: dts: stm32: phyboard-sargas: Introduce SoM device tree Christophe Parant
2025-07-09 15:10 ` [PATCH v2 03/11] dt-bindings: arm: stm32: Modify STM32MP15x Phytec board items types Christophe Parant
2025-07-10 22:25 ` Rob Herring
2025-07-11 7:25 ` Christophe Parant
2025-07-09 15:10 ` [PATCH v2 04/11] ARM: dts: stm32: Add new pinmux groups for phyboard-sargas and phycore Christophe Parant
2025-07-09 15:10 ` [PATCH v2 05/11] ARM: dts: stm32: phyboard-sargas: Fix uart4 and sai2 pinctrl Christophe Parant
2025-07-09 15:10 ` [PATCH v2 06/11] ARM: dts: stm32: phycore-stm32mp15: qspi: Fix memory map and pinctrl Christophe Parant
2025-07-09 15:10 ` [PATCH v2 07/11] ARM: dts: stm32: phycore-stm32mp15: Add dummy memory-node Christophe Parant
2025-07-09 15:10 ` [PATCH v2 08/11] ARM: dts: stm32: phyboard-sargas: Move aliases from dts to dtsi Christophe Parant
2025-07-09 15:10 ` [PATCH v2 09/11] ARM: dts: stm32: phycore-stm32mp15: Disable optional SoM peripherals Christophe Parant
2025-07-09 15:10 ` [PATCH v2 10/11] ARM: dts: stm32: phyboard-sargas and phycore: Fix coding style issues Christophe Parant
2025-07-09 15:10 ` [PATCH v2 11/11] ARM: dts: stm32: phyboard-sargas and phycore: Add optional interfaces Christophe Parant
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).