1/*
2 * Copyright (c) 2024 STMicroelectronics
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#include <arm/armv7-m.dtsi>
8#include <zephyr/dt-bindings/clock/stm32h7rs_clock.h>
9#include <zephyr/dt-bindings/gpio/gpio.h>
10#include <zephyr/dt-bindings/i2c/i2c.h>
11#include <zephyr/dt-bindings/pwm/pwm.h>
12#include <zephyr/dt-bindings/pwm/stm32_pwm.h>
13#include <zephyr/dt-bindings/reset/stm32h7rs_reset.h>
14#include <zephyr/dt-bindings/adc/stm32h7_adc.h>
15#include <zephyr/dt-bindings/adc/adc.h>
16#include <zephyr/dt-bindings/memory-attr/memory-attr.h>
17#include <zephyr/dt-bindings/memory-attr/memory-attr-arm.h>
18#include <freq.h>
19
20/*
21 * STM32H7RS line contains has many common peripherals with STM32H7.
22 */
23
24/ {
25	chosen {
26		zephyr,entropy = &rng;
27		zephyr,flash-controller = &flash;
28	};
29
30	cpus {
31		#address-cells = <1>;
32		#size-cells = <0>;
33
34		cpu0: cpu@0 {
35			device_type = "cpu";
36			compatible = "arm,cortex-m7";
37			reg = <0>;
38			#address-cells = <1>;
39			#size-cells = <1>;
40
41			mpu: mpu@e000ed90 {
42				compatible = "arm,armv7m-mpu";
43				reg = <0xe000ed90 0x40>;
44			};
45		};
46	};
47
48	/* System data RAM accessible over AXI bus: AXI SRAM1 in CD domain */
49	sram0: memory@24000000 {
50		compatible = "mmio-sram";
51		reg = <0x24000000 DT_SIZE_K(128)>;
52	};
53
54	/* System data RAM accessible over AHB bus: SRAM1 in D2 domain */
55	sram1: memory@30000000 {
56		reg = <0x30000000 DT_SIZE_K(16)>;
57		compatible = "zephyr,memory-region", "mmio-sram";
58		zephyr,memory-region = "SRAM1";
59	};
60
61	/* System data RAM accessible over AHB bus: SRAM2 in D2 domain */
62	sram2: memory@30004000 {
63		compatible = "zephyr,memory-region", "mmio-sram";
64		reg = <0x30004000 DT_SIZE_K(16)>;
65		zephyr,memory-region = "SRAM2";
66	};
67
68	dtcm: memory@20000000 {
69		compatible = "zephyr,memory-region", "arm,dtcm";
70		reg = <0x20000000 DT_SIZE_K(128)>;
71		zephyr,memory-region = "DTCM";
72	};
73
74	itcm: memory@0 {
75		compatible = "zephyr,memory-region", "arm,itcm";
76		reg = <0x00000000 DT_SIZE_K(64)>;
77		zephyr,memory-region = "ITCM";
78	};
79
80	ext_memory: memory@70000000 {
81		compatible = "zephyr,memory-region";
82		reg = <0x70000000 DT_SIZE_M(256)>;
83		zephyr,memory-region = "EXTMEM";
84		zephyr,memory-attr = <( DT_MEM_ARM(ATTR_MPU_EXTMEM) )>;
85	};
86
87	clocks {
88		#address-cells = <1>;
89		#size-cells = <0>;
90
91		clk_hse: clk-hse {
92			#clock-cells = <0>;
93			compatible = "st,stm32-hse-clock";
94			status = "disabled";
95		};
96
97		clk_hsi: clk-hsi {
98			#clock-cells = <0>;
99			compatible = "st,stm32h7-hsi-clock";
100			clock-frequency = <DT_FREQ_M(64)>;
101			status = "disabled";
102		};
103
104		clk_hsi48: clk-hsi48 {
105			#clock-cells = <0>;
106			compatible = "fixed-clock";
107			clock-frequency = <DT_FREQ_M(48)>;
108			status = "disabled";
109		};
110
111		clk_csi: clk-csi {
112			#clock-cells = <0>;
113			compatible = "fixed-clock";
114			clock-frequency = <DT_FREQ_M(4)>;
115			status = "disabled";
116		};
117
118		clk_lse: clk-lse {
119			#clock-cells = <0>;
120			compatible = "st,stm32-lse-clock";
121			clock-frequency = <32768>;
122			driving-capability = <0>;
123			status = "disabled";
124		};
125
126		clk_lsi: clk-lsi {
127			#clock-cells = <0>;
128			compatible = "fixed-clock";
129			clock-frequency = <DT_FREQ_K(32)>;
130			status = "disabled";
131		};
132
133		pll: pll@0 {
134			#clock-cells = <0>;
135			compatible = "st,stm32h7rs-pll-clock";
136			reg = <0>;
137			status = "disabled";
138		};
139
140		pll2: pll@1 {
141			#clock-cells = <0>;
142			compatible = "st,stm32h7rs-pll-clock";
143			reg = <1>;
144			status = "disabled";
145		};
146
147		pll3: pll@2 {
148			#clock-cells = <0>;
149			compatible = "st,stm32h7rs-pll-clock";
150			reg = <2>;
151			status = "disabled";
152		};
153
154		perck: perck {
155			#clock-cells = <0>;
156			compatible = "st,stm32-clock-mux";
157			status = "disabled";
158		};
159	};
160
161	soc {
162		flash: flash-controller@52002000 {
163			compatible = "st,stm32-flash-controller", "st,stm32h7-flash-controller";
164			reg = <0x52002000 0x400>;
165			interrupts = <8 0>;
166			clocks = <&rcc STM32_CLOCK_BUS_AHB3 0x00000100>;
167
168			#address-cells = <1>;
169			#size-cells = <1>;
170
171			flash0: flash@8000000 {
172				compatible = "st,stm32-nv-flash", "soc-nv-flash";
173				write-block-size = <32>;
174				erase-block-size = <DT_SIZE_K(8)>;
175				/* maximum erase time for a 8K sector */
176				max-erase-time = <3>;
177			};
178		};
179
180		rcc: rcc@58024400 {
181			compatible = "st,stm32h7rs-rcc";
182			#clock-cells = <2>;
183			reg = <0x58024400 0x400>;
184
185			rctl: reset-controller {
186				compatible = "st,stm32-rcc-rctl";
187				#reset-cells = <1>;
188			};
189		};
190
191		exti: interrupt-controller@58000000 {
192			compatible = "st,stm32h7rs-exti", "st,stm32-exti";
193			interrupt-controller;
194			#interrupt-cells = <1>;
195			#address-cells = <1>;
196			reg = <0x58000000 0x400>;
197			/* SBS for interrupt */
198			num-lines = <16>;
199			interrupts = <16 0>, <17 0>, <18 0>, <19 0>,
200				     <20 0>, <21 0>, <22 0>, <23 0>,
201				     <24 0>, <25 0>, <26 0>, <27 0>,
202				     <28 0>, <29 0>, <30 0>, <31 0>;
203			interrupt-names = "line0", "line1", "line2", "line3",
204					  "line4", "line5", "line6", "line7",
205					  "line8", "line9", "line10", "line11",
206					  "line12", "line13", "line14", "line15";
207			line-ranges = <0 1>, <1 1>, <2 1>, <3 1>,
208				      <4 1>, <5 1>, <6 1>, <7 1>,
209				      <8 1>, <9 1>, <10 1>, <11 1>,
210				      <12 1>, <13 1>, <14 1>, <15 1>;
211		};
212
213		pinctrl: pin-controller@58020000 {
214			compatible = "st,stm32-pinctrl";
215			#address-cells = <1>;
216			#size-cells = <1>;
217			reg = <0x58020000 0x2400>;
218
219			gpioa: gpio@58020000 {
220				compatible = "st,stm32-gpio";
221				gpio-controller;
222				#gpio-cells = <2>;
223				reg = <0x58020000 0x400>;
224				clocks = <&rcc STM32_CLOCK_BUS_AHB4 0x00000001>;
225			};
226
227			gpiob: gpio@58020400 {
228				compatible = "st,stm32-gpio";
229				gpio-controller;
230				#gpio-cells = <2>;
231				reg = <0x58020400 0x400>;
232				clocks = <&rcc STM32_CLOCK_BUS_AHB4 0x00000002>;
233			};
234
235			gpioc: gpio@58020800 {
236				compatible = "st,stm32-gpio";
237				gpio-controller;
238				#gpio-cells = <2>;
239				reg = <0x58020800 0x400>;
240				clocks = <&rcc STM32_CLOCK_BUS_AHB4 0x00000004>;
241			};
242
243			gpiod: gpio@58020C00 {
244				compatible = "st,stm32-gpio";
245				gpio-controller;
246				#gpio-cells = <2>;
247				reg = <0x58020C00 0x400>;
248				clocks = <&rcc STM32_CLOCK_BUS_AHB4 0x00000008>;
249			};
250
251			gpioe: gpio@58021000 {
252				compatible = "st,stm32-gpio";
253				gpio-controller;
254				#gpio-cells = <2>;
255				reg = <0x58021000 0x400>;
256				clocks = <&rcc STM32_CLOCK_BUS_AHB4 0x00000010>;
257			};
258
259			gpiof: gpio@58021400 {
260				compatible = "st,stm32-gpio";
261				gpio-controller;
262				#gpio-cells = <2>;
263				reg = <0x58021400 0x400>;
264				clocks = <&rcc STM32_CLOCK_BUS_AHB4 0x00000020>;
265			};
266
267			gpiog: gpio@58021800 {
268				compatible = "st,stm32-gpio";
269				gpio-controller;
270				#gpio-cells = <2>;
271				reg = <0x58021800 0x400>;
272				clocks = <&rcc STM32_CLOCK_BUS_AHB4 0x00000040>;
273			};
274
275			gpioh: gpio@58021c00 {
276				compatible = "st,stm32-gpio";
277				gpio-controller;
278				#gpio-cells = <2>;
279				reg = <0x58021c00 0x400>;
280				clocks = <&rcc STM32_CLOCK_BUS_AHB4 0x00000080>;
281			};
282
283			gpiom: gpio@58023000 {
284				compatible = "st,stm32-gpio";
285				gpio-controller;
286				#gpio-cells = <2>;
287				reg = <0x58023000 0x400>;
288				clocks = <&rcc STM32_CLOCK_BUS_AHB4 0x00001000>;
289			};
290
291			gpion: gpio@58023400 {
292				compatible = "st,stm32-gpio";
293				gpio-controller;
294				#gpio-cells = <2>;
295				reg = <0x58023400 0x400>;
296				clocks = <&rcc STM32_CLOCK_BUS_AHB4 0x00002000>;
297			};
298
299			gpioo: gpio@58023800 {
300				compatible = "st,stm32-gpio";
301				gpio-controller;
302				#gpio-cells = <2>;
303				reg = <0x58023800 0x400>;
304				clocks = <&rcc STM32_CLOCK_BUS_AHB4 0x00004000>;
305			};
306
307			gpiop: gpio@58023c00 {
308				compatible = "st,stm32-gpio";
309				gpio-controller;
310				#gpio-cells = <2>;
311				reg = <0x58023c00 0x400>;
312				clocks = <&rcc STM32_CLOCK_BUS_AHB4 0x00008000>;
313			};
314		};
315
316		usart1: serial@42001000 {
317			compatible = "st,stm32-usart", "st,stm32-uart";
318			reg = <0x42001000 0x400>;
319			clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00000010>;
320			resets = <&rctl STM32_RESET(APB2, 4U)>;
321			interrupts = <82 0>;
322			status = "disabled";
323		};
324		usart2: serial@40004400 {
325			compatible = "st,stm32-usart", "st,stm32-uart";
326			reg = <0x40004400 0x400>;
327			clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00020000>;
328			resets = <&rctl STM32_RESET(APB1L, 17U)>;
329			interrupts = <83 0>;
330			status = "disabled";
331		};
332		usart3: serial@40004800 {
333			compatible = "st,stm32-usart", "st,stm32-uart";
334			reg = <0x40004800 0x400>;
335			clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00040000>;
336			resets = <&rctl STM32_RESET(APB1L, 18U)>;
337			interrupts = <84 0>;
338			status = "disabled";
339		};
340		uart4: serial@40004c00 {
341			compatible ="st,stm32-uart";
342			reg = <0x40004c00 0x400>;
343			clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00080000>;
344			resets = <&rctl STM32_RESET(APB1L, 19U)>;
345			interrupts = <85 0>;
346			status = "disabled";
347		};
348		uart5: serial@40005000 {
349			compatible = "st,stm32-uart";
350			reg = <0x40005000 0x400>;
351			clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00100000>;
352			resets = <&rctl STM32_RESET(APB1L, 20U)>;
353			interrupts = <86 0>;
354			status = "disabled";
355		};
356		uart7: serial@40007800 {
357			compatible = "st,stm32-uart";
358			reg = <0x40007800 0x400>;
359			clocks = <&rcc STM32_CLOCK_BUS_APB1 0x40000000>;
360			resets = <&rctl STM32_RESET(APB1L, 30U)>;
361			interrupts = <87 0>;
362			status = "disabled";
363		};
364		uart8: serial@40007c00 {
365			compatible = "st,stm32-uart";
366			reg = <0x40007c00 0x400>;
367			clocks = <&rcc STM32_CLOCK_BUS_APB1 0x80000000>;
368			resets = <&rctl STM32_RESET(APB1L, 31U)>;
369			interrupts = <88 0>;
370			status = "disabled";
371		};
372
373		lpuart1: serial@58000c00 {
374			compatible = "st,stm32-lpuart", "st,stm32-uart";
375			reg = <0x58000c00 0x400>;
376			clocks = <&rcc STM32_CLOCK_BUS_APB4 0x00000008>;
377			resets = <&rctl STM32_RESET(APB4, 3U)>;
378			interrupts = <131 0>;
379			status = "disabled";
380		};
381
382		i2c1: i2c@40005400 {
383			compatible = "st,stm32-i2c-v2";
384			clock-frequency = <I2C_BITRATE_STANDARD>;
385			#address-cells = <1>;
386			#size-cells = <0>;
387			reg = <0x40005400 0x400>;
388			clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00200000>;
389			interrupts = <76 0>, <77 0>;
390			interrupt-names = "event", "error";
391			status = "disabled";
392		};
393
394		i2c2: i2c@40005800 {
395			compatible = "st,stm32-i2c-v2";
396			clock-frequency = <I2C_BITRATE_STANDARD>;
397			#address-cells = <1>;
398			#size-cells = <0>;
399			reg = <0x40005800 0x400>;
400			clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00400000>;
401			interrupts = <78 0>, <79 0>;
402			interrupt-names = "event", "error";
403			status = "disabled";
404		};
405
406		i2c3: i2c@40005c00 {
407			compatible = "st,stm32-i2c-v2";
408			clock-frequency = <I2C_BITRATE_STANDARD>;
409			#address-cells = <1>;
410			#size-cells = <0>;
411			reg = <0x40005c00 0x400>;
412			clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00800000>;
413			interrupts = <80 0>, <81 0>;
414			interrupt-names = "event", "error";
415			status = "disabled";
416		};
417
418		spi1: spi@42003000 {
419			compatible = "st,stm32h7-spi", "st,stm32-spi-fifo", "st,stm32-spi";
420			#address-cells = <1>;
421			#size-cells = <0>;
422			reg = <0x42003000 0x400>;
423			clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00001000>,
424				<&rcc STM32_SRC_PLL1_Q SPI1_SEL(0)>;
425			interrupts = <58 0>;
426			status = "disabled";
427		};
428
429		spi2: spi@40003800 {
430			compatible = "st,stm32h7-spi", "st,stm32-spi-fifo", "st,stm32-spi";
431			#address-cells = <1>;
432			#size-cells = <0>;
433			reg = <0x40003800 0x400>;
434			clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00004000>,
435				<&rcc STM32_SRC_PLL1_Q SPI23_SEL(0)>;
436			interrupts = <59 0>;
437			status = "disabled";
438		};
439
440		spi3: spi@40003c00 {
441			compatible = "st,stm32h7-spi", "st,stm32-spi-fifo", "st,stm32-spi";
442			#address-cells = <1>;
443			#size-cells = <0>;
444			reg = <0x40003c00 0x400>;
445			clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00008000>,
446				<&rcc STM32_SRC_PLL1_Q SPI23_SEL(0)>;
447			interrupts = <60 0>;
448			status = "disabled";
449		};
450
451		spi4: spi@42003400 {
452			compatible = "st,stm32h7-spi", "st,stm32-spi-fifo", "st,stm32-spi";
453			#address-cells = <1>;
454			#size-cells = <0>;
455			reg = <0x42003400 0x400>;
456			clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00002000>;
457			interrupts = <61 0>;
458			status = "disabled";
459		};
460
461		spi5: spi@42005000 {
462			compatible = "st,stm32h7-spi", "st,stm32-spi-fifo", "st,stm32-spi";
463			#address-cells = <1>;
464			#size-cells = <0>;
465			reg = <0x42005000 0x400>;
466			clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00100000>;
467			interrupts = <62 0>;
468			status = "disabled";
469		};
470
471		i2s1: i2s@40013000 {
472			compatible = "st,stm32h7-i2s", "st,stm32-i2s";
473			#address-cells = <1>;
474			#size-cells = <0>;
475			reg = <0x40013000 0x400>;
476			clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00001000>,
477				 <&rcc STM32_SRC_PLL1_Q SPI1_SEL(0)>;
478			interrupts = <35 3>;
479			status = "disabled";
480		};
481
482		iwdg: iwdg1: watchdog@58004800 {
483			compatible = "st,stm32-watchdog";
484			reg = <0x58004800 0x400>;
485			interrupts = <3 0>;
486			status = "disabled";
487		};
488
489		wwdg: wwdg1: watchdog@40002c00 {
490			compatible = "st,stm32-window-watchdog";
491			reg = <0x40002c00 0x1000>;
492			clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000800>;
493			interrupts = <4 7>;
494			status = "disabled";
495		};
496
497		timers1: timers@42000000 {
498			compatible = "st,stm32-timers";
499			reg = <0x42000000 0x400>;
500			clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00000001>;
501			resets = <&rctl STM32_RESET(APB2, 0U)>;
502			interrupts = <47 0>, <48 0>, <49 0>, <50 0>;
503			interrupt-names = "brk", "up", "trgcom", "cc";
504			st,prescaler = <0>;
505			status = "disabled";
506
507			pwm {
508				compatible = "st,stm32-pwm";
509				status = "disabled";
510				#pwm-cells = <3>;
511			};
512		};
513
514		timers2: timers@40000000 {
515			compatible = "st,stm32-timers";
516			reg = <0x40000000 0x400>;
517			clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000001>;
518			resets = <&rctl STM32_RESET(APB1L, 0U)>;
519			interrupts = <51 0>;
520			interrupt-names = "global";
521			st,prescaler = <0>;
522			status = "disabled";
523
524			pwm {
525				compatible = "st,stm32-pwm";
526				status = "disabled";
527				#pwm-cells = <3>;
528			};
529
530			counter {
531				compatible = "st,stm32-counter";
532				status = "disabled";
533			};
534		};
535
536		timers3: timers@40000400 {
537			compatible = "st,stm32-timers";
538			reg = <0x40000400 0x400>;
539			clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000002>;
540			resets = <&rctl STM32_RESET(APB1L, 1U)>;
541			interrupts = <52 0>;
542			interrupt-names = "global";
543			st,prescaler = <0>;
544			status = "disabled";
545
546			pwm {
547				compatible = "st,stm32-pwm";
548				status = "disabled";
549				#pwm-cells = <3>;
550			};
551
552			counter {
553				compatible = "st,stm32-counter";
554				status = "disabled";
555			};
556		};
557
558		timers4: timers@40000800 {
559			compatible = "st,stm32-timers";
560			reg = <0x40000800 0x400>;
561			clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000004>;
562			resets = <&rctl STM32_RESET(APB1L, 2U)>;
563			interrupts = <53 0>;
564			interrupt-names = "global";
565			st,prescaler = <0>;
566			status = "disabled";
567
568			pwm {
569				compatible = "st,stm32-pwm";
570				status = "disabled";
571				#pwm-cells = <3>;
572			};
573
574			counter {
575				compatible = "st,stm32-counter";
576				status = "disabled";
577			};
578		};
579
580		timers5: timers@40000c00 {
581			compatible = "st,stm32-timers";
582			reg = <0x40000c00 0x400>;
583			clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000008>;
584			resets = <&rctl STM32_RESET(APB1L, 3U)>;
585			interrupts = <54 0>;
586			interrupt-names = "global";
587			st,prescaler = <0>;
588			status = "disabled";
589
590			pwm {
591				compatible = "st,stm32-pwm";
592				status = "disabled";
593				#pwm-cells = <3>;
594			};
595
596			counter {
597				compatible = "st,stm32-counter";
598				status = "disabled";
599			};
600		};
601
602		timers6: timers@40001000 {
603			compatible = "st,stm32-timers";
604			reg = <0x40001000 0x400>;
605			clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000010>;
606			resets = <&rctl STM32_RESET(APB1L, 4U)>;
607			interrupts = <55 0>;
608			interrupt-names = "global";
609			st,prescaler = <0>;
610			status = "disabled";
611
612			counter {
613				compatible = "st,stm32-counter";
614				status = "disabled";
615			};
616		};
617
618		timers7: timers@40001400 {
619			compatible = "st,stm32-timers";
620			reg = <0x40001400 0x400>;
621			clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000020>;
622			resets = <&rctl STM32_RESET(APB1L, 5U)>;
623			interrupts = <56 0>;
624			interrupt-names = "global";
625			st,prescaler = <0>;
626			status = "disabled";
627
628			counter {
629				compatible = "st,stm32-counter";
630				status = "disabled";
631			};
632		};
633
634		timers9: timers@42004c00 {
635			compatible = "st,stm32-timers";
636			reg = <0x42004c00 0x400>;
637			clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00080000>;
638			resets = <&rctl STM32_RESET(APB2, 19U)>;
639			interrupts = <57 0>;
640			interrupt-names = "global";
641			st,prescaler = <0>;
642			status = "disabled";
643
644			counter {
645				compatible = "st,stm32-counter";
646				status = "disabled";
647			};
648		};
649
650		timers15: timers@42004000 {
651			compatible = "st,stm32-timers";
652			reg = <0x42004000 0x400>;
653			clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00010000>;
654			resets = <&rctl STM32_RESET(APB2, 16U)>;
655			interrupts = <116 0>;
656			interrupt-names = "global";
657			st,prescaler = <0>;
658			status = "disabled";
659
660			pwm {
661				compatible = "st,stm32-pwm";
662				status = "disabled";
663				#pwm-cells = <3>;
664			};
665
666			counter {
667				compatible = "st,stm32-counter";
668				status = "disabled";
669			};
670		};
671
672		timers16: timers@42004400 {
673			compatible = "st,stm32-timers";
674			reg = <0x42004400 0x400>;
675			clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00020000>;
676			resets = <&rctl STM32_RESET(APB2, 17U)>;
677			interrupts = <117 0>;
678			interrupt-names = "global";
679			st,prescaler = <0>;
680			status = "disabled";
681
682			pwm {
683				compatible = "st,stm32-pwm";
684				status = "disabled";
685				#pwm-cells = <3>;
686			};
687
688			counter {
689				compatible = "st,stm32-counter";
690				status = "disabled";
691			};
692		};
693
694		timers17: timers@42004800 {
695			compatible = "st,stm32-timers";
696			reg = <0x42004800 0x400>;
697			clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00040000>;
698			resets = <&rctl STM32_RESET(APB2, 18U)>;
699			interrupts = <118 0>;
700			interrupt-names = "global";
701			st,prescaler = <0>;
702			status = "disabled";
703
704			pwm {
705				compatible = "st,stm32-pwm";
706				status = "disabled";
707				#pwm-cells = <3>;
708			};
709
710			counter {
711				compatible = "st,stm32-counter";
712				status = "disabled";
713			};
714		};
715
716		lptim1: timers@40002400 {
717			compatible = "st,stm32-lptim";
718			clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000200>;
719			#address-cells = <1>;
720			#size-cells = <0>;
721			reg = <0x40002400 0x400>;
722			interrupts = <119 1>;
723			interrupt-names = "wakeup";
724			status = "disabled";
725		};
726
727		adc1: adc@40022000 {
728			compatible = "st,stm32-adc";
729			reg = <0x40022000 0x400>;
730			clocks = <&rcc STM32_CLOCK_BUS_AHB1 0x00000020>;
731			interrupts = <38 0>;
732			status = "disabled";
733			#io-channel-cells = <1>;
734			resolutions = <STM32_ADC_RES(12, 0x00)
735					STM32_ADC_RES(10, 0x01)
736					STM32_ADC_RES(8, 0x2)
737					STM32_ADC_RES(6, 0x3)>;
738			sampling-times = <3 7 13 25 48 93 248 641>;
739			st,adc-sequencer = <FULLY_CONFIGURABLE>;
740		};
741
742		adc2: adc@40022100 {
743			compatible = "st,stm32-adc";
744			reg = <0x40022100 0x400>;
745			clocks = <&rcc STM32_CLOCK_BUS_AHB1 0x00000020>;
746			interrupts = <38 0>;
747			status = "disabled";
748			#io-channel-cells = <1>;
749			resolutions = <STM32_ADC_RES(12, 0x00)
750					STM32_ADC_RES(10, 0x01)
751					STM32_ADC_RES(8, 0x02)
752					STM32_ADC_RES(6, 0x03)>;
753			sampling-times = <3 7 13 25 48 93 248 641>;
754			st,adc-sequencer = <FULLY_CONFIGURABLE>;
755		};
756
757		rng: rng@48020000 {
758			compatible = "st,stm32-rng";
759			reg = <0x48020000 0x400>;
760			clocks = <&rcc STM32_CLOCK_BUS_AHB3 0x00000001>;
761			interrupts = <37 0>;
762			status = "disabled";
763		};
764	};
765
766	die_temp: dietemp {
767		compatible = "st,stm32-temp-cal";
768		ts-cal1-addr = <0x08FFF814>;
769		ts-cal2-addr = <0x08FFF818>;
770		ts-cal1-temp = <30>;
771		ts-cal2-temp = <130>;
772		ts-cal-vrefanalog = <3300>;
773		ts-cal-resolution = <12>;
774		io-channels = <&adc1 16>;
775		status = "disabled";
776	};
777
778	vbat: vbat {
779		compatible = "st,stm32-vbat";
780		ratio = <4>;
781		status = "disabled";
782		io-channels = <&adc2 16>;
783	};
784
785	vref: vref {
786		compatible = "st,stm32-vref";
787		vrefint-cal-addr = <0x08fff810>;
788		vrefint-cal-mv = <3300>;
789		status = "disabled";
790		io-channels = <&adc1 17>;
791	};
792};
793
794&nvic {
795	arm,num-irq-priority-bits = <4>;
796};
797