From: Amelie Delaunay <amelie.delaunay@foss.st.com>
To: Dario Binacchi <dario.binacchi@amarulasolutions.com>,
<linux-kernel@vger.kernel.org>
Cc: Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
<devicetree@vger.kernel.org>, <francesco.utel@engicam.com>,
<domenico.acri@engicam.com>,
Maxime Coquelin <mcoquelin.stm32@gmail.com>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
<michael@amarulasolutions.com>,
<linux-amarula@amarulasolutions.com>,
<linux-stm32@st-md-mailman.stormreply.com>,
<linux-arm-kernel@lists.infradead.org>
Subject: Re: [Linux-stm32] [PATCH v3 13/14] arm64: dts: st: support Engicam MicroGEA-STM32MP257-RMM board
Date: Fri, 5 Jun 2026 09:55:29 +0200 [thread overview]
Message-ID: <08a2e8ec-9dd4-4530-be04-f06b7c1137fa@foss.st.com> (raw)
In-Reply-To: <20260605062900.368376-14-dario.binacchi@amarulasolutions.com>
Hi Dario,
On 6/5/26 08:27, Dario Binacchi wrote:
> Support for Engicam MicroGEA-STM32MP257-RMM board with:
>
> - 8 GB eMMC Flash
> - 2 GB LPDDR4 DRAM
> - CAN
> - LEDs
> - LCD panel with touchscreen
> - Micro SD card connector
> - Audio codec
> - Buzzer
>
> Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
>
> ---
>
> (no changes since v2)
>
> Changes in v2:
> - Drop the clocks property from the sai1 node in stm32mp257-engicam-microgea-rmm.dts
> to avoid overriding the peripheral bus clock reference defined in the base
> SoC device tree. Suggested by Sashiko.
> - Reference the existing labeled nodes directly at the root level using
> &sai1a and &sai1b in stm32mp257-engicam-microgea-rmm.dts instead of
> redefining the entire node structure and redeclaring the labels. Suggested by Sashiko.
> - Drop the #clock-cells property from sai1a and remove the reference to sai1a from
> the clocks array in sai1b, relying strictly on the st,sync property to handle
> internal synchronization.
>
> arch/arm64/boot/dts/st/Makefile | 1 +
> .../st/stm32mp257-engicam-microgea-rmm.dts | 319 ++++++++++++++++++
> 2 files changed, 320 insertions(+)
> create mode 100644 arch/arm64/boot/dts/st/stm32mp257-engicam-microgea-rmm.dts
>
> diff --git a/arch/arm64/boot/dts/st/Makefile b/arch/arm64/boot/dts/st/Makefile
> index 63908113ae36..386eca593c54 100644
> --- a/arch/arm64/boot/dts/st/Makefile
> +++ b/arch/arm64/boot/dts/st/Makefile
> @@ -2,5 +2,6 @@
> dtb-$(CONFIG_ARCH_STM32) += \
> stm32mp215f-dk.dtb \
> stm32mp235f-dk.dtb \
> + stm32mp257-engicam-microgea-rmm.dtb \
> stm32mp257f-dk.dtb \
> stm32mp257f-ev1.dtb
> diff --git a/arch/arm64/boot/dts/st/stm32mp257-engicam-microgea-rmm.dts b/arch/arm64/boot/dts/st/stm32mp257-engicam-microgea-rmm.dts
> new file mode 100644
> index 000000000000..0212c03aae1a
> --- /dev/null
> +++ b/arch/arm64/boot/dts/st/stm32mp257-engicam-microgea-rmm.dts
> @@ -0,0 +1,319 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Copyright (C) 2026 Amarula Solutions, Dario Binacchi <dario.binacchi@amarulasolutions.com>
> + * Copyright (C) 2026 Engicam srl
> + */
> +
> +/dts-v1/;
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/input.h>
> +#include <dt-bindings/leds/common.h>
> +
> +#include "stm32mp257-engicam-microgea.dtsi"
> +
> +/ {
> + model = "Engicam MicroGEA STM32MP257D RMM Board";
If the SoC is an STM32MP257D, as mentionned in the board model,
stm32mp25xf.dtsi should not be included in
stm32mp257-engicam-microgea.dtsi (in PATCH 12).
Unless the SoM can be fitted with any STM32MP257, in which case, when
stm32mp25xf.dtsi is populated, you will need to add /delete-node/
statements on the board side, to remove the HW crypto support.
Regards,
Amelie
> + compatible = "engicam,microgea-stm32mp257-rmm",
> + "engicam,microgea-stm32mp257", "st,stm32mp257";
> +
> + aliases {
> + mmc0 = &sdmmc1;
> + mmc1 = &sdmmc2;
> + serial0 = &usart2;
> + serial1 = &usart1;
> + };
> +
> + backlight: backlight {
> + compatible = "pwm-backlight";
> + brightness-levels = <0 100>;
> + num-interpolated-steps = <100>;
> + default-brightness-level = <85>;
> + pwms = <&pwm2 0 100000 0>;
> + };
> +
> + buzzer {
> + compatible = "pwm-beeper";
> + pwms = <&pwm4 0 1000000 0>;
> + };
> +
> + chosen {
> + stdout-path = "serial0:115200n8";
> + #address-cells = <2>;
> + #size-cells = <2>;
> + ranges;
> +
> + framebuffer {
> + compatible = "simple-framebuffer";
> + clocks = <&rcc CK_BUS_LTDC>, <&rcc CK_KER_LTDC>;
> + lcd-supply = <®_3v3>;
> + status = "disabled";
> + };
> + };
> +
> + leds {
> + compatible = "gpio-leds";
> +
> + led-0 {
> + gpios = <&gpioh 2 GPIO_ACTIVE_HIGH>;
> + default-state = "off";
> + status = "okay";
> + };
> +
> + led-1 {
> + gpios = <&gpioh 6 GPIO_ACTIVE_HIGH>;
> + default-state = "off";
> + status = "okay";
> + };
> + };
> +
> + mclk: clock-mclk {
> + compatible = "fixed-clock";
> + #clock-cells = <0>;
> + clock-frequency = <24000000>;
> + };
> +
> + reg_1v8: regulator-1v8 {
> + compatible = "regulator-fixed";
> + regulator-name = "1v8";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + };
> +
> + reg_3v3: regulator-3v3 {
> + compatible = "regulator-fixed";
> + regulator-name = "3v3";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + };
> +
> + reg_ext_pwr: regulator-ext-pwr {
> + compatible = "regulator-fixed";
> + regulator-name = "ext-pwr";
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + gpio = <&gpiog 0 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> + regulator-always-on;
> + };
> +
> + sound {
> + compatible = "audio-graph-card";
> + label = "STM32MP25-RMM";
> + widgets = "Headphone", "Headphone Jack",
> + "Microphone", "Microphone Jack";
> + routing = "Headphone Jack", "HP_OUT",
> + "MIC_IN", "Microphone Jack",
> + "Microphone Jack", "Mic Bias";
> + dais = <&sai1a_port &sai1b_port>;
> + status = "okay";
> + };
> +};
> +
> +&arm_wdt {
> + timeout-sec = <32>;
> + status = "okay";
> +};
> +
> +&i2c1 {
> + pinctrl-names = "default", "sleep";
> + pinctrl-0 = <&i2c1_pins_a>;
> + pinctrl-1 = <&i2c1_sleep_pins_a>;
> + i2c-scl-rising-time-ns = <185>;
> + i2c-scl-falling-time-ns = <20>;
> + status = "okay";
> + /* spare dmas for other usage */
> + /delete-property/dmas;
> + /delete-property/dma-names;
> +
> + touchscreen@38 {
> + compatible = "edt,edt-ft5306";
> + reg = <0x38>;
> + interrupt-parent = <&gpiob>;
> + interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
> + reset-gpios = <&gpiod 1 GPIO_ACTIVE_LOW>;
> + touchscreen-size-x = <1280>;
> + touchscreen-size-y = <800>;
> + };
> +};
> +
> +&i2c2 {
> + pinctrl-names = "default", "sleep";
> + pinctrl-0 = <&i2c2_pins_a>;
> + pinctrl-1 = <&i2c2_sleep_pins_a>;
> + i2c-scl-rising-time-ns = <185>;
> + i2c-scl-falling-time-ns = <20>;
> + status = "okay";
> + /* spare dmas for other usage */
> + /delete-property/dmas;
> + /delete-property/dma-names;
> +
> + sgtl5000: codec@a {
> + compatible = "fsl,sgtl5000";
> + reg = <0x0a>;
> + #sound-dai-cells = <0>;
> + clocks = <&mclk>;
> +
> + VDDA-supply = <®_3v3>;
> + VDDIO-supply = <®_3v3>;
> + VDDD-supply = <®_1v8>;
> +
> + sgtl5000_port: port {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + sgtl5000_tx_endpoint: endpoint@0 {
> + reg = <0>;
> + remote-endpoint = <&sai1a_endpoint>;
> + frame-master = <&sgtl5000_tx_endpoint>;
> + bitclock-master = <&sgtl5000_tx_endpoint>;
> + };
> +
> + sgtl5000_rx_endpoint: endpoint@1 {
> + reg = <1>;
> + remote-endpoint = <&sai1b_endpoint>;
> + frame-master = <&sgtl5000_rx_endpoint>;
> + bitclock-master = <&sgtl5000_rx_endpoint>;
> + };
> + };
> + };
> +};
> +
> +<dc {
> + pinctrl-names = "default", "sleep";
> + pinctrl-0 = <<dc_pins_a>;
> + pinctrl-1 = <<dc_sleep_pins_a>;
> + status = "okay";
> +
> + port {
> + ltdc_out: endpoint {
> + remote-endpoint = <&panel_in>;
> + };
> + };
> +};
> +
> +&m_can1 {
> + pinctrl-names = "default", "sleep";
> + pinctrl-0 = <&m_can1_pins_a>;
> + pinctrl-1 = <&m_can1_sleep_pins_a>;
> + status = "okay";
> +};
> +
> +&sai1 {
> + pinctrl-names = "default", "sleep";
> + pinctrl-0 = <&sai1a_pins_a>, <&sai1b_pins_a>;
> + pinctrl-1 = <&sai1a_sleep_pins_a>, <&sai1b_sleep_pins_a>;
> + status = "okay";
> +};
> +
> +&sai1a {
> + dma-names = "tx";
> + status = "okay";
> +
> + sai1a_port: port {
> + sai1a_endpoint: endpoint {
> + remote-endpoint = <&sgtl5000_tx_endpoint>;
> + dai-format = "i2s";
> + mclk-fs = <512>;
> + };
> + };
> +};
> +
> +&sai1b {
> + dma-names = "rx";
> + st,sync = <&sai1a 2>;
> + clocks = <&rcc CK_KER_SAI1>;
> + clock-names = "sai_ck";
> + status = "okay";
> +
> + sai1b_port: port {
> + sai1b_endpoint: endpoint {
> + remote-endpoint = <&sgtl5000_rx_endpoint>;
> + dai-format = "i2s";
> + mclk-fs = <512>;
> + };
> + };
> +};
> +
> +/* MicroSD */
> +&sdmmc1 {
> + pinctrl-names = "default", "opendrain", "sleep";
> + pinctrl-0 = <&sdmmc1_b4_pins_a>;
> + pinctrl-1 = <&sdmmc1_b4_od_pins_a>;
> + pinctrl-2 = <&sdmmc1_b4_sleep_pins_a>;
> + broken-cd;
> + disable-wp;
> + st,neg-edge;
> + bus-width = <4>;
> + vmmc-supply = <&scmi_v3v3>;
> + vqmmc-supply = <&scmi_vddio1>;
> + no-1-8-v;
> + status = "okay";
> +};
> +
> +&spi1 {
> + pinctrl-names = "default", "sleep";
> + pinctrl-0 = <&spi1_pins_a>;
> + pinctrl-1 = <&spi1_sleep_pins_a>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> + cs-gpios = <&gpioh 8 GPIO_ACTIVE_HIGH>, <&gpioh 3 GPIO_ACTIVE_HIGH>;
> + status = "okay";
> +
> + display: display@0 {
> + compatible = "rocktech,rk050hr345-ct106a", "ilitek,ili9806e";
> + reg = <0>;
> + vdd-supply = <®_3v3>;
> + spi-max-frequency = <10000000>;
> + reset-gpios = <&gpiob 6 GPIO_ACTIVE_LOW>;
> + backlight = <&backlight>;
> +
> + port {
> + panel_in: endpoint {
> + remote-endpoint = <<dc_out>;
> + };
> + };
> + };
> +};
> +
> +&timers2 {
> + status = "okay";
> +
> + pwm2: pwm {
> + pinctrl-0 = <&pwm2_pins_a>;
> + pinctrl-1 = <&pwm2_sleep_pins_a>;
> + pinctrl-names = "default", "sleep";
> + status = "okay";
> + };
> +};
> +
> +&timers4 {
> + status = "okay";
> +
> + pwm4: pwm {
> + pinctrl-names = "default", "sleep";
> + pinctrl-0 = <&pwm4_pins_a>;
> + pinctrl-1 = <&pwm4_sleep_pins_a>;
> + status = "okay";
> + };
> +};
> +
> +&usart1 {
> + pinctrl-names = "default", "idle", "sleep";
> + pinctrl-0 = <&usart1_pins_b>;
> + pinctrl-1 = <&usart1_idle_pins_b>;
> + pinctrl-2 = <&usart1_sleep_pins_b>;
> + /delete-property/ dmas;
> + /delete-property/ dma-names;
> + status = "okay";
> +};
> +
> +&usart2 {
> + pinctrl-names = "default", "idle", "sleep";
> + pinctrl-0 = <&usart2_pins_a>;
> + pinctrl-1 = <&usart2_idle_pins_a>;
> + pinctrl-2 = <&usart2_sleep_pins_a>;
> + /delete-property/ dmas;
> + /delete-property/ dma-names;
> + status = "okay";
> +};
prev parent reply other threads:[~2026-06-05 7:56 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-05 6:27 [PATCH v3 00/14] arm64: support Engicam MicroGEA-STM32MP257-RMM board Dario Binacchi
2026-06-05 6:27 ` [PATCH v3 01/14] dt-bindings: arm: stm32: " Dario Binacchi
2026-06-05 6:27 ` [PATCH v3 02/14] arm64: dts: st: add SDMMC2 support on stm32mp25 Dario Binacchi
2026-06-05 6:27 ` [PATCH v3 03/14] arm64: dts: st: add CAN1 " Dario Binacchi
2026-06-05 6:27 ` [PATCH v3 04/14] arm64: dts: st: add i2c1 pins for stm32mp25 Dario Binacchi
2026-06-05 6:27 ` [PATCH v3 05/14] arm64: dts: st: add ltdc " Dario Binacchi
2026-06-05 6:27 ` [PATCH v3 06/14] arm64: dts: st: add can1 " Dario Binacchi
2026-06-05 6:27 ` [PATCH v3 07/14] arm64: dts: st: add pwm2/pwm4 " Dario Binacchi
2026-06-05 6:27 ` [PATCH v3 08/14] arm64: dts: st: add sai1 " Dario Binacchi
2026-06-05 6:27 ` [PATCH v3 09/14] arm64: dts: st: add sdmmc2 " Dario Binacchi
2026-06-05 6:27 ` [PATCH v3 10/14] arm64: dts: st: add spi1 " Dario Binacchi
2026-06-05 6:27 ` [PATCH v3 11/14] arm64: dts: st: add usart1 " Dario Binacchi
2026-06-05 6:27 ` [PATCH v3 12/14] arm64: dts: st: support Engicam MicroGEA-STM32MP257 SoM Dario Binacchi
2026-06-05 6:27 ` [PATCH v3 13/14] arm64: dts: st: support Engicam MicroGEA-STM32MP257-RMM board Dario Binacchi
2026-06-05 7:55 ` Amelie Delaunay [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=08a2e8ec-9dd4-4530-be04-f06b7c1137fa@foss.st.com \
--to=amelie.delaunay@foss.st.com \
--cc=conor+dt@kernel.org \
--cc=dario.binacchi@amarulasolutions.com \
--cc=devicetree@vger.kernel.org \
--cc=domenico.acri@engicam.com \
--cc=francesco.utel@engicam.com \
--cc=krzk+dt@kernel.org \
--cc=linux-amarula@amarulasolutions.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-stm32@st-md-mailman.stormreply.com \
--cc=mcoquelin.stm32@gmail.com \
--cc=michael@amarulasolutions.com \
--cc=robh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox