Skip to content

Commit 3818149

Browse files
committed
Merge tag 'stm32-dt-for-v6.16-1' of https://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32 into soc/dt
STM32 DT for v6.16, round 1 Highlights: ---------- - MCU: - Add low power timer on STM32F746 - Add STM32H747 High end MCU support. It embeds: - dual-core (Cortex-M7 + Cortex-M4) - up to 2 Mbytes flash - 1 Mbyte of internal RAM - Add STM32H747i-disco board support. Detailed information can be found at: https://www.st.com/en/evaluation-tools/stm32h747i-disco.html - MPU: - STM32MP13: - Add VREFINT calibration support based on ADC. - STMP32MP15: - Add new Ultratronik Fly board support: - based on STM32MP157C SoC - 1GB of DDR3 - Several connections are available on this boards: 2*USB2.0, 1*USB2.0 MiniUSB, Debug UART, 1*UART, 1*USART, SDcard, RJ45, ... - STM32MP25: - Add OCTOSPI support on STM32MP25 SoCs - Add SPI NOR flash support on STM32MP257F-EV1 connected to OSPI1 - Add Low power timer TIMER (LPTIM) on STM32MP25 SoCs and use LPTIM3 as low power broadcast timer on STM32MP257F-EV1. * tag 'stm32-dt-for-v6.16-1' of https://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32: (22 commits) ARM: dts: stm32: add initial support for stm32mp157-ultra-fly-sbc board MAINTAINERS: Add entry for ULTRATRONIK BOARD SUPPORT dt-bindings: arm: stm32: Document Ultratronik's Fly board DT binding dt-bindings: vendor-prefixes: Add Ultratronik arm64: dts: st: use lptimer3 as tick broadcast source on stm32mp257f-ev1 arm64: dts: st: add low-power timer nodes on stm32mp251 arm64: defconfig: enable STM32 LP timer clockevent driver arm64: dts: st: Add SPI NOR flash support on stm32mp257f-ev1 board arm64: dts: st: Add ospi port1 pinctrl entries in stm32mp25-pinctrl.dtsi arm64: dts: st: Add OMM node on stm32mp251 ARM: dts: stm32: support STM32h747i-disco board ARM: dts: stm32: add an extra pin map for USART1 on stm32h743 ARM: dts: stm32: add pin map for UART8 controller on stm32h743 ARM: dts: stm32: add uart8 node for stm32h743 MCU dt-bindings: clock: stm32h7: rename USART{7,8}_CK to UART{7,8}_CK ARM: stm32: add a new SoC - STM32H747 dt-bindings: arm: stm32: add compatible for stm32h747i-disco board ARM: dts: stm32h7-pinctrl: add _a suffix to u[s]art_pins phandles ARM: dts: st: stm32: Align wifi node name with bindings ARM: dts: stm32: add low power timer on STM32F746 ... Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Arnd Bergmann <[email protected]>
2 parents ba32d96 + 518e8ff commit 3818149

25 files changed

+1725
-18
lines changed

Documentation/devicetree/bindings/arm/stm32/stm32.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,10 @@ properties:
4242
- st,stm32h743i-disco
4343
- st,stm32h743i-eval
4444
- const: st,stm32h743
45+
- items:
46+
- enum:
47+
- st,stm32h747i-disco
48+
- const: st,stm32h747
4549
- items:
4650
- enum:
4751
- st,stm32h750i-art-pi
@@ -184,6 +188,11 @@ properties:
184188
- const: phytec,phycore-stm32mp157c-som
185189
- const: st,stm32mp157
186190

191+
- description: Ultratronik STM32MP1 SBC based Boards
192+
items:
193+
- const: ultratronik,stm32mp157c-ultra-fly-sbc
194+
- const: st,stm32mp157
195+
187196
- description: ST STM32MP257 based Boards
188197
items:
189198
- enum:

Documentation/devicetree/bindings/vendor-prefixes.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1611,6 +1611,8 @@ patternProperties:
16111611
description: Universal Scientific Industrial Co., Ltd.
16121612
"^usr,.*":
16131613
description: U.S. Robotics Corporation
1614+
"^ultratronik,.*":
1615+
description: Ultratronik GmbH
16141616
"^utoo,.*":
16151617
description: Aigo Digital Technology Co., Ltd.
16161618
"^v3,.*":

MAINTAINERS

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24811,6 +24811,12 @@ S: Maintained
2481124811
F: drivers/usb/common/ulpi.c
2481224812
F: include/linux/ulpi/
2481324813

24814+
ULTRATRONIK BOARD SUPPORT
24815+
M: Goran Rađenović <[email protected]>
24816+
M: Börge Strümpfel <[email protected]>
24817+
S: Maintained
24818+
F: arch/arm/boot/dts/st/stm32mp157c-ultra-fly-sbc.dts
24819+
2481424820
UNICODE SUBSYSTEM
2481524821
M: Gabriel Krisman Bertazi <[email protected]>
2481624822

arch/arm/boot/dts/st/Makefile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ dtb-$(CONFIG_ARCH_STM32) += \
2828
stm32746g-eval.dtb \
2929
stm32h743i-eval.dtb \
3030
stm32h743i-disco.dtb \
31+
stm32h747i-disco.dtb \
3132
stm32h750i-art-pi.dtb \
3233
stm32mp133c-prihmb.dtb \
3334
stm32mp135f-dhcor-dhsbc.dtb \
@@ -70,7 +71,8 @@ dtb-$(CONFIG_ARCH_STM32) += \
7071
stm32mp157c-lxa-tac-gen2.dtb \
7172
stm32mp157c-odyssey.dtb \
7273
stm32mp157c-osd32mp1-red.dtb \
73-
stm32mp157c-phycore-stm32mp1-3.dtb
74+
stm32mp157c-phycore-stm32mp1-3.dtb \
75+
stm32mp157c-ultra-fly-sbc.dtb
7476
dtb-$(CONFIG_ARCH_U8500) += \
7577
ste-snowball.dtb \
7678
ste-hrefprev60-stuib.dtb \

arch/arm/boot/dts/st/stm32f746.dtsi

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
#include "../armv7-m.dtsi"
4444
#include <dt-bindings/clock/stm32fx-clock.h>
4545
#include <dt-bindings/mfd/stm32f7-rcc.h>
46+
#include <dt-bindings/interrupt-controller/irq.h>
4647

4748
/ {
4849
#address-cells = <1>;
@@ -245,6 +246,39 @@
245246
};
246247
};
247248

249+
lptimer1: timer@40002400 {
250+
#address-cells = <1>;
251+
#size-cells = <0>;
252+
compatible = "st,stm32-lptimer";
253+
reg = <0x40002400 0x400>;
254+
interrupts-extended = <&exti 23 IRQ_TYPE_EDGE_RISING>;
255+
clocks = <&rcc 1 CLK_LPTIMER>;
256+
clock-names = "mux";
257+
status = "disabled";
258+
259+
pwm {
260+
compatible = "st,stm32-pwm-lp";
261+
#pwm-cells = <3>;
262+
status = "disabled";
263+
};
264+
265+
trigger@0 {
266+
compatible = "st,stm32-lptimer-trigger";
267+
reg = <0>;
268+
status = "disabled";
269+
};
270+
271+
counter {
272+
compatible = "st,stm32-lptimer-counter";
273+
status = "disabled";
274+
};
275+
276+
timer {
277+
compatible = "st,stm32-lptimer-timer";
278+
status = "disabled";
279+
};
280+
};
281+
248282
rtc: rtc@40002800 {
249283
compatible = "st,stm32-rtc";
250284
reg = <0x40002800 0x400>;

arch/arm/boot/dts/st/stm32h7-pinctrl.dtsi

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@
198198
};
199199
};
200200

201-
uart4_pins: uart4-0 {
201+
uart4_pins_a: uart4-0 {
202202
pins1 {
203203
pinmux = <STM32_PINMUX('A', 0, AF8)>; /* UART4_TX */
204204
bias-disable;
@@ -211,7 +211,20 @@
211211
};
212212
};
213213

214-
usart1_pins: usart1-0 {
214+
uart8_pins_a: uart8-0 {
215+
pins1 {
216+
pinmux = <STM32_PINMUX('J', 8, AF8)>; /* UART8_TX */
217+
bias-disable;
218+
drive-push-pull;
219+
slew-rate = <0>;
220+
};
221+
pins2 {
222+
pinmux = <STM32_PINMUX('J', 9, AF8)>; /* UART8_RX */
223+
bias-disable;
224+
};
225+
};
226+
227+
usart1_pins_a: usart1-0 {
215228
pins1 {
216229
pinmux = <STM32_PINMUX('B', 14, AF4)>; /* USART1_TX */
217230
bias-disable;
@@ -224,7 +237,20 @@
224237
};
225238
};
226239

227-
usart2_pins: usart2-0 {
240+
usart1_pins_b: usart1-1 {
241+
pins1 {
242+
pinmux = <STM32_PINMUX('A', 9, AF7)>; /* USART1_TX */
243+
bias-disable;
244+
drive-push-pull;
245+
slew-rate = <0>;
246+
};
247+
pins2 {
248+
pinmux = <STM32_PINMUX('A', 10, AF7)>; /* USART1_RX */
249+
bias-disable;
250+
};
251+
};
252+
253+
usart2_pins_a: usart2-0 {
228254
pins1 {
229255
pinmux = <STM32_PINMUX('D', 5, AF7)>; /* USART2_TX */
230256
bias-disable;
@@ -237,7 +263,7 @@
237263
};
238264
};
239265

240-
usart3_pins: usart3-0 {
266+
usart3_pins_a: usart3-0 {
241267
pins1 {
242268
pinmux = <STM32_PINMUX('B', 10, AF7)>, /* USART3_TX */
243269
<STM32_PINMUX('D', 12, AF7)>; /* USART3_RTS_DE */

arch/arm/boot/dts/st/stm32h743.dtsi

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,14 @@
211211
};
212212
};
213213

214+
uart8: serial@40007c00 {
215+
compatible = "st,stm32h7-uart";
216+
reg = <0x40007c00 0x400>;
217+
interrupts = <83>;
218+
status = "disabled";
219+
clocks = <&rcc UART8_CK>;
220+
};
221+
214222
usart1: serial@40011000 {
215223
compatible = "st,stm32h7-uart";
216224
reg = <0x40011000 0x400>;

arch/arm/boot/dts/st/stm32h743i-disco.dts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@
105105
};
106106

107107
&usart2 {
108-
pinctrl-0 = <&usart2_pins>;
108+
pinctrl-0 = <&usart2_pins_a>;
109109
pinctrl-names = "default";
110110
status = "okay";
111111
};

arch/arm/boot/dts/st/stm32h743i-eval.dts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@
145145
};
146146

147147
&usart1 {
148-
pinctrl-0 = <&usart1_pins>;
148+
pinctrl-0 = <&usart1_pins_a>;
149149
pinctrl-names = "default";
150150
status = "okay";
151151
};
Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
// SPDX-License-Identifier: GPL-2.0
2+
/*
3+
* Copyright (C) 2025 Amarula Solutions, Dario Binacchi <[email protected]>
4+
*/
5+
6+
/dts-v1/;
7+
#include "stm32h743.dtsi"
8+
#include "stm32h7-pinctrl.dtsi"
9+
#include <dt-bindings/gpio/gpio.h>
10+
#include <dt-bindings/input/input.h>
11+
12+
/ {
13+
model = "STMicroelectronics STM32H747i-Discovery board";
14+
compatible = "st,stm32h747i-disco", "st,stm32h747";
15+
16+
chosen {
17+
bootargs = "root=/dev/ram";
18+
stdout-path = "serial0:115200n8";
19+
};
20+
21+
memory@d0000000 {
22+
device_type = "memory";
23+
reg = <0xd0000000 0x2000000>;
24+
};
25+
26+
aliases {
27+
serial0 = &usart1;
28+
serial1 = &uart8;
29+
};
30+
31+
v3v3: regulator-v3v3 {
32+
compatible = "regulator-fixed";
33+
regulator-name = "v3v3";
34+
regulator-min-microvolt = <3300000>;
35+
regulator-max-microvolt = <3300000>;
36+
regulator-always-on;
37+
};
38+
39+
leds {
40+
compatible = "gpio-leds";
41+
led-green {
42+
gpios = <&gpioi 12 GPIO_ACTIVE_LOW>;
43+
linux,default-trigger = "heartbeat";
44+
};
45+
led-orange {
46+
gpios = <&gpioi 13 GPIO_ACTIVE_LOW>;
47+
};
48+
led-red {
49+
gpios = <&gpioi 14 GPIO_ACTIVE_LOW>;
50+
};
51+
led-blue {
52+
gpios = <&gpioi 15 GPIO_ACTIVE_LOW>;
53+
};
54+
};
55+
56+
gpio-keys {
57+
compatible = "gpio-keys";
58+
autorepeat;
59+
button-0 {
60+
label = "User";
61+
linux,code = <KEY_WAKEUP>;
62+
gpios = <&gpioc 13 GPIO_ACTIVE_HIGH>;
63+
};
64+
button-1 {
65+
label = "JoySel";
66+
linux,code = <KEY_ENTER>;
67+
gpios = <&gpiok 2 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
68+
};
69+
button-2 {
70+
label = "JoyDown";
71+
linux,code = <KEY_DOWN>;
72+
gpios = <&gpiok 3 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
73+
};
74+
button-3 {
75+
label = "JoyUp";
76+
linux,code = <KEY_UP>;
77+
gpios = <&gpiok 6 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
78+
};
79+
button-4 {
80+
label = "JoyLeft";
81+
linux,code = <KEY_LEFT>;
82+
gpios = <&gpiok 4 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
83+
};
84+
button-5 {
85+
label = "JoyRight";
86+
linux,code = <KEY_RIGHT>;
87+
gpios = <&gpiok 5 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
88+
};
89+
};
90+
};
91+
92+
&clk_hse {
93+
clock-frequency = <25000000>;
94+
};
95+
96+
&mac {
97+
status = "disabled";
98+
pinctrl-0 = <&ethernet_rmii>;
99+
pinctrl-names = "default";
100+
phy-mode = "rmii";
101+
phy-handle = <&phy0>;
102+
103+
mdio0 {
104+
#address-cells = <1>;
105+
#size-cells = <0>;
106+
compatible = "snps,dwmac-mdio";
107+
phy0: ethernet-phy@0 {
108+
reg = <0>;
109+
};
110+
};
111+
};
112+
113+
&sdmmc1 {
114+
pinctrl-names = "default", "opendrain", "sleep";
115+
pinctrl-0 = <&sdmmc1_b4_pins_a>;
116+
pinctrl-1 = <&sdmmc1_b4_od_pins_a>;
117+
pinctrl-2 = <&sdmmc1_b4_sleep_pins_a>;
118+
cd-gpios = <&gpioi 8 GPIO_ACTIVE_LOW>;
119+
broken-cd;
120+
st,neg-edge;
121+
bus-width = <4>;
122+
vmmc-supply = <&v3v3>;
123+
status = "okay";
124+
};
125+
126+
&usart1 {
127+
pinctrl-0 = <&usart1_pins_b>;
128+
pinctrl-names = "default";
129+
status = "okay";
130+
};
131+
132+
&uart8 {
133+
pinctrl-0 = <&uart8_pins_a>;
134+
pinctrl-names = "default";
135+
status = "okay";
136+
};

0 commit comments

Comments
 (0)