From nobody Tue Dec 16 23:43:30 2025 Received: from metis.whiteo.stw.pengutronix.de (metis.whiteo.stw.pengutronix.de [185.203.201.7]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BBB3C248894 for ; Wed, 5 Mar 2025 13:14:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.203.201.7 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741180489; cv=none; b=M+QgeR/IYjkcl0r4fL6crzmHpflyPOSBRYalUfsSkj674TE8rVhF538gFrDAA78zXXU3fjQ4b/jOyETz+nF8mHCWvhpVDWHETlDrllh6XSo6DykyWr9mcJooDoY2XjY3J4ubMg3H1xGvl49h86YuK5B7Y7wbkypVbQ9b9EznS5U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741180489; c=relaxed/simple; bh=qu3dMnrB/+ZKvw1h6CFmaump0y4uo0s27FlaBehBgbM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=tSjZ92elT7UzPYGGUSt/TRziE+dRScYA216pDLHqcKDhmB8XtagOSZRBGThMnuzcVwnBNzIV4R5CgD7FhvIXomxD4hLXMm3Xgb5mUVT1EXyTh6vPVu9Gx4X9QU4Le49tyCrv/HrurQntaBDcfZd/0AYnaKIWicTrTQQImsMmgNM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=pengutronix.de; spf=pass smtp.mailfrom=pengutronix.de; arc=none smtp.client-ip=185.203.201.7 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=pengutronix.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pengutronix.de Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.whiteo.stw.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1tpoZw-0000xe-A1; Wed, 05 Mar 2025 14:14:28 +0100 Received: from dude04.red.stw.pengutronix.de ([2a0a:edc0:0:1101:1d::ac]) by drehscheibe.grey.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1tpoZv-0049PB-1k; Wed, 05 Mar 2025 14:14:27 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.96) (envelope-from ) id 1tpoZv-006G63-1T; Wed, 05 Mar 2025 14:14:27 +0100 From: Oleksij Rempel To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Maxime Coquelin , Alexandre Torgue , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Woojung Huh , Andrew Lunn Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com Subject: [PATCH v5 4/4] arm: dts: stm32: Add Plymovent AQM devicetree Date: Wed, 5 Mar 2025 14:14:25 +0100 Message-Id: <20250305131425.1491769-5-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250305131425.1491769-1-o.rempel@pengutronix.de> References: <20250305131425.1491769-1-o.rempel@pengutronix.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.whiteo.stw.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org Introduce the devicetree for the Plymovent AQM board (stm32mp151c-plyaqm), based on the STM32MP151 SoC. Signed-off-by: Oleksij Rempel --- changes v4: - move all pinctrls to stm32mp15-pinctrl.dtsi - remove some of comments changes v2: - remove spidev --- arch/arm/boot/dts/st/Makefile | 1 + arch/arm/boot/dts/st/stm32mp151c-plyaqm.dts | 376 ++++++++++++++++++++ 2 files changed, 377 insertions(+) create mode 100644 arch/arm/boot/dts/st/stm32mp151c-plyaqm.dts diff --git a/arch/arm/boot/dts/st/Makefile b/arch/arm/boot/dts/st/Makefile index d8f297035812..561819ef7a32 100644 --- a/arch/arm/boot/dts/st/Makefile +++ b/arch/arm/boot/dts/st/Makefile @@ -38,6 +38,7 @@ dtb-$(CONFIG_ARCH_STM32) +=3D \ stm32mp151a-dhcor-testbench.dtb \ stm32mp151c-mecio1r0.dtb \ stm32mp151c-mect1s.dtb \ + stm32mp151c-plyaqm.dtb \ stm32mp153c-dhcom-drc02.dtb \ stm32mp153c-dhcor-drc-compact.dtb \ stm32mp153c-lxa-tac-gen3.dtb \ diff --git a/arch/arm/boot/dts/st/stm32mp151c-plyaqm.dts b/arch/arm/boot/dt= s/st/stm32mp151c-plyaqm.dts new file mode 100644 index 000000000000..39a3211c6133 --- /dev/null +++ b/arch/arm/boot/dts/st/stm32mp151c-plyaqm.dts @@ -0,0 +1,376 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) +/dts-v1/; + +#include +#include +#include +#include +#include +#include +#include + +/ { + model =3D "Plymovent AQM board"; + compatible =3D "ply,plyaqm", "st,stm32mp151"; + + aliases { + ethernet0 =3D ðernet0; + serial0 =3D &uart4; + serial1 =3D &uart7; + }; + + codec { + compatible =3D "invensense,ics43432"; + + port { + codec_endpoint: endpoint { + remote-endpoint =3D <&i2s1_endpoint>; + dai-format =3D "i2s"; + }; + }; + }; + + firmware { + optee { + compatible =3D "linaro,optee-tz"; + method =3D "smc"; + }; + }; + + leds { + compatible =3D "gpio-leds"; + + led-0 { + gpios =3D <&gpioa 3 GPIO_ACTIVE_HIGH>; /* WHITE_EN */ + color =3D ; + default-state =3D "on"; + }; + }; + + v3v3: fixed-regulator-v3v3 { + compatible =3D "regulator-fixed"; + regulator-name =3D "v3v3"; + regulator-min-microvolt =3D <3300000>; + regulator-max-microvolt =3D <3300000>; + }; + + v5v_sw: fixed-regulator-v5sw { + compatible =3D "regulator-fixed"; + regulator-name =3D "5v-switched"; + regulator-min-microvolt =3D <5000000>; + regulator-max-microvolt =3D <5000000>; + gpio =3D <&gpioe 10 GPIO_ACTIVE_HIGH>; /* 5V_SWITCHED_EN */ + startup-delay-us =3D <100000>; + enable-active-high; + regulator-boot-on; + }; + + reserved-memory { + #address-cells =3D <1>; + #size-cells =3D <1>; + ranges; + + optee@cfd00000 { + reg =3D <0xcfd00000 0x300000>; + no-map; + }; + }; + + sound { + compatible =3D "audio-graph-card"; + label =3D "STM32MP15"; + dais =3D <&i2s1_port>; + }; + + wifi_pwrseq: wifi-pwrseq { + compatible =3D "mmc-pwrseq-simple"; + reset-gpios =3D <&gpioe 12 GPIO_ACTIVE_LOW>; /* WLAN_REG_ON */ + }; +}; + +&adc { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&adc1_in10_pins_a>; + vdda-supply =3D <&v3v3>; + vref-supply =3D <&v3v3>; + status =3D "okay"; + + adc@0 { + #address-cells =3D <1>; + #size-cells =3D <0>; + status =3D "okay"; + + channel@10 { /* NTC */ + reg =3D <10>; + st,min-sample-time-ns =3D <10000>; /* 10=C2=B5s sampling time */ + }; + }; +}; + +&cpu0 { + clocks =3D <&scmi_clk CK_SCMI_MPU>; +}; + +&cryp1 { + clocks =3D <&scmi_clk CK_SCMI_CRYP1>; + resets =3D <&scmi_reset RST_SCMI_CRYP1>; + status =3D "okay"; +}; + +ðernet0 { + pinctrl-names =3D "default", "sleep"; + pinctrl-0 =3D <ðernet0_rmii_pins_d>; + pinctrl-1 =3D <ðernet0_rmii_sleep_pins_d>; + phy-mode =3D "rmii"; + max-speed =3D <100>; + phy-handle =3D <ðphy0>; + status =3D "okay"; + + mdio { + #address-cells =3D <1>; + #size-cells =3D <0>; + compatible =3D "snps,dwmac-mdio"; + + /* KSZ8081RNA PHY */ + ethphy0: ethernet-phy@0 { + reg =3D <0>; + interrupts-extended =3D <&gpiob 0 IRQ_TYPE_LEVEL_LOW>; + reset-gpios =3D <&gpiob 1 GPIO_ACTIVE_LOW>; + reset-assert-us =3D <10000>; + reset-deassert-us =3D <300>; + }; + }; +}; + +&gpioa { + gpio-line-names =3D + "", "", "", "", "", "", "", "", + "", "", "", "", "", "HWID_PL_N", "HWID_CP", ""; +}; + +&gpiob { + gpio-line-names =3D + "", "", "", "", "", "", "LED_LATCH", "", + "", "RELAY1_EN", "", "", "", "", "", ""; +}; + +&gpioc { + gpio-line-names =3D + "", "", "", "", "", "", "", "", + "", "", "", "", "", "HWID_Q7", "", ""; +}; + +&gpioe { + gpio-line-names =3D + "", "", "", "", "RELAY2_EN", "", "", "", + "", "", "", "", "", "", "", ""; +}; + +&gpiog { + gpio-line-names =3D + "", "", "", "", "", "", "", "SW1", + "", "", "", "", "", "", "", ""; +}; + +&gpioz { + clocks =3D <&scmi_clk CK_SCMI_GPIOZ>; +}; + +&hash1 { + clocks =3D <&scmi_clk CK_SCMI_HASH1>; + resets =3D <&scmi_reset RST_SCMI_HASH1>; +}; + +&i2c1 { + pinctrl-names =3D "default", "sleep"; + pinctrl-0 =3D <&i2c1_pins_c>; + pinctrl-1 =3D <&i2c1_sleep_pins_c>; + i2c-scl-rising-time-ns =3D <185>; + i2c-scl-falling-time-ns =3D <20>; + status =3D "okay"; + /delete-property/dmas; + /delete-property/dma-names; +}; + +&i2c4 { + clocks =3D <&scmi_clk CK_SCMI_I2C4>; + resets =3D <&scmi_reset RST_SCMI_I2C4>; +}; + +&i2c6 { + pinctrl-names =3D "default", "sleep"; + pinctrl-0 =3D <&i2c6_pins_b>; + pinctrl-1 =3D <&i2c6_sleep_pins_b>; + i2c-scl-rising-time-ns =3D <185>; + i2c-scl-falling-time-ns =3D <20>; + clocks =3D <&scmi_clk CK_SCMI_I2C6>; + resets =3D <&scmi_reset RST_SCMI_I2C6>; + status =3D "okay"; + /delete-property/dmas; + /delete-property/dma-names; + + pressure-sensor@47 { + compatible =3D "bosch,bmp580"; + reg =3D <0x47>; + vdda-supply =3D <&v5v_sw>; + vddd-supply =3D <&v5v_sw>; + }; + + co2-sensor@62 { + compatible =3D "sensirion,scd41"; + reg =3D <0x62>; + vdd-supply =3D <&v5v_sw>; + }; + + pm-sensor@69 { + compatible =3D "sensirion,sps30"; + reg =3D <0x69>; + }; +}; + +&i2s1 { + pinctrl-names =3D "default", "sleep"; + pinctrl-0 =3D <&i2s1_pins_a>; + pinctrl-1 =3D <&i2s1_sleep_pins_a>; + clocks =3D <&rcc SPI1>, <&rcc SPI1_K>, <&rcc PLL3_Q>, <&rcc PLL3_R>; + clock-names =3D "pclk", "i2sclk", "x8k", "x11k"; + #clock-cells =3D <0>; /* Set I2S2 as master clock provider */ + status =3D "okay"; + + i2s1_port: port { + i2s1_endpoint: endpoint { + format =3D "i2s"; + mclk-fs =3D <256>; + remote-endpoint =3D <&codec_endpoint>; + }; + }; +}; + +&iwdg2 { + clocks =3D <&rcc IWDG2>, <&scmi_clk CK_SCMI_LSI>; + status =3D "okay"; +}; + +&m4_rproc { + /delete-property/ st,syscfg-holdboot; + resets =3D <&scmi_reset RST_SCMI_MCU>, + <&scmi_reset RST_SCMI_MCU_HOLD_BOOT>; + reset-names =3D "mcu_rst", "hold_boot"; +}; + +&mdma1 { + resets =3D <&scmi_reset RST_SCMI_MDMA>; +}; + +&rcc { + compatible =3D "st,stm32mp1-rcc-secure", "syscon"; + clock-names =3D "hse", "hsi", "csi", "lse", "lsi"; + clocks =3D <&scmi_clk CK_SCMI_HSE>, + <&scmi_clk CK_SCMI_HSI>, + <&scmi_clk CK_SCMI_CSI>, + <&scmi_clk CK_SCMI_LSE>, + <&scmi_clk CK_SCMI_LSI>; +}; + +&rng1 { + clocks =3D <&scmi_clk CK_SCMI_RNG1>; + resets =3D <&scmi_reset RST_SCMI_RNG1>; + status =3D "okay"; +}; + +&rtc { + clocks =3D <&scmi_clk CK_SCMI_RTCAPB>, <&scmi_clk CK_SCMI_RTC>; +}; + +/* SD card without Card-detect */ +&sdmmc1 { + pinctrl-names =3D "default", "opendrain", "sleep"; + pinctrl-0 =3D <&sdmmc1_b4_pins_a>; + pinctrl-1 =3D <&sdmmc1_b4_od_pins_a>; + pinctrl-2 =3D <&sdmmc1_b4_sleep_pins_a>; + broken-cd; + no-sdio; + no-1-8-v; + st,neg-edge; + bus-width =3D <4>; + vmmc-supply =3D <&v3v3>; + status =3D "okay"; +}; + +/* EMMC */ +&sdmmc2 { + pinctrl-names =3D "default", "opendrain", "sleep"; + pinctrl-0 =3D <&sdmmc2_b4_pins_c &sdmmc2_d47_pins_b>; + pinctrl-1 =3D <&sdmmc2_b4_od_pins_c &sdmmc2_d47_pins_b>; + pinctrl-2 =3D <&sdmmc2_b4_sleep_pins_c &sdmmc2_d47_sleep_pins_b>; + non-removable; + no-sd; + no-sdio; + no-1-8-v; + st,neg-edge; + bus-width =3D <8>; + vmmc-supply =3D <&v3v3>; + status =3D "okay"; +}; + +/* Wifi */ +&sdmmc3 { + pinctrl-names =3D "default", "opendrain", "sleep"; + pinctrl-0 =3D <&sdmmc3_b4_pins_c>; + pinctrl-1 =3D <&sdmmc3_b4_od_pins_c>; + pinctrl-2 =3D <&sdmmc3_b4_sleep_pins_c>; + non-removable; + st,neg-edge; + bus-width =3D <4>; + vmmc-supply =3D <&v3v3>; + mmc-pwrseq =3D <&wifi_pwrseq>; + #address-cells =3D <1>; + #size-cells =3D <0>; + status =3D "okay"; + + wifi@1 { + reg =3D <1>; + compatible =3D "brcm,bcm4329-fmac"; + }; +}; + +&timers5 { + status =3D "okay"; + /delete-property/dmas; + /delete-property/dma-names; + + pwm { + pinctrl-0 =3D <&pwm1_pins_d>; + pinctrl-1 =3D <&pwm1_sleep_pins_d>; + pinctrl-names =3D "default", "sleep"; + status =3D "okay"; + }; +}; + +&uart4 { + pinctrl-names =3D "default", "sleep", "idle"; + pinctrl-0 =3D <&uart4_pins_e>; + pinctrl-1 =3D <&uart4_idle_pins_e>; + pinctrl-2 =3D <&uart4_sleep_pins_e>; + /delete-property/dmas; + /delete-property/dma-names; + status =3D "okay"; +}; + +&uart7 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&uart7_pins_d>; + uart-has-rtscts; + status =3D "okay"; + + bluetooth { + compatible =3D "brcm,bcm43438-bt"; + shutdown-gpios =3D <&gpioe 11 GPIO_ACTIVE_HIGH>; /* BT_REG_ON */ + max-speed =3D <4000000>; + vbat-supply =3D <&v3v3>; + vddio-supply =3D <&v3v3>; + interrupt-parent =3D <&gpiog>; + interrupts =3D <12 IRQ_TYPE_EDGE_RISING>; /* BT_HOST_WAKE */ + interrupt-names =3D "host-wakeup"; + }; +}; --=20 2.39.5