1/*
2 * Copyright (c) 2021 The Chromium OS Authors
3 * Copyright (c) 2020 Linaro Limited
4 * Copyright (c) 2024 STMicroelectronics
5 *
6 * SPDX-License-Identifier: Apache-2.0
7 */
8
9
10#include <arm/armv8-m.dtsi>
11#include <zephyr/dt-bindings/clock/stm32l4_clock.h>
12#include <zephyr/dt-bindings/gpio/gpio.h>
13#include <zephyr/dt-bindings/i2c/i2c.h>
14#include <zephyr/dt-bindings/pwm/pwm.h>
15#include <zephyr/dt-bindings/pwm/stm32_pwm.h>
16#include <zephyr/dt-bindings/dma/stm32_dma.h>
17#include <zephyr/dt-bindings/adc/stm32l4_adc.h>
18#include <zephyr/dt-bindings/reset/stm32g4_l4_5_reset.h>
19#include <zephyr/dt-bindings/adc/adc.h>
20#include <zephyr/dt-bindings/flash_controller/ospi.h>
21#include <freq.h>
22
23/ {
24	chosen {
25		zephyr,entropy = &rng;
26		zephyr,flash-controller = &flash;
27	};
28
29	cpus {
30		#address-cells = <1>;
31		#size-cells = <0>;
32
33		cpu0: cpu@0 {
34			device_type = "cpu";
35			compatible = "arm,cortex-m33";
36			reg = <0>;
37			#address-cells = <1>;
38			#size-cells = <1>;
39			cpu-power-states = <&stop0 &stop1 &stop2>;
40
41			mpu: mpu@e000ed90 {
42				compatible = "arm,armv8m-mpu";
43				reg = <0xe000ed90 0x40>;
44			};
45		};
46
47		power-states {
48			stop0: state0 {
49				compatible = "zephyr,power-state";
50				power-state-name = "suspend-to-idle";
51				substate-id = <1>;
52				min-residency-us = <100>;
53			};
54			stop1: state1 {
55				compatible = "zephyr,power-state";
56				power-state-name = "suspend-to-idle";
57				substate-id = <2>;
58				min-residency-us = <500>;
59			};
60			stop2: state2 {
61				compatible = "zephyr,power-state";
62				power-state-name = "suspend-to-idle";
63				substate-id = <3>;
64				min-residency-us = <900>;
65			};
66		};
67	};
68
69	sram0: memory@20000000 {
70		compatible = "mmio-sram";
71	};
72
73	clocks {
74		clk_hse: clk-hse {
75			#clock-cells = <0>;
76			compatible = "st,stm32-hse-clock";
77			status = "disabled";
78		};
79
80		clk_hsi: clk-hsi {
81			#clock-cells = <0>;
82			compatible = "fixed-clock";
83			clock-frequency = <DT_FREQ_M(16)>;
84			status = "disabled";
85		};
86
87		clk_hsi48: clk-hsi48 {
88			#clock-cells = <0>;
89			compatible = "fixed-clock";
90			clock-frequency = <DT_FREQ_M(48)>;
91			status = "disabled";
92		};
93
94		clk_msi: clk-msi {
95			#clock-cells = <0>;
96			compatible = "st,stm32-msi-clock";
97			msi-range = <6>; /* 4MHz (reset value) */
98			status = "disabled";
99		};
100
101		clk_lse: clk-lse {
102			#clock-cells = <0>;
103			compatible = "st,stm32-lse-clock";
104			clock-frequency = <32768>;
105			driving-capability = <0>;
106			status = "disabled";
107		};
108
109		clk_lsi: clk-lsi {
110			#clock-cells = <0>;
111			compatible = "fixed-clock";
112			clock-frequency = <DT_FREQ_K(32)>;
113			status = "disabled";
114		};
115
116		pll: pll {
117			#clock-cells = <0>;
118			compatible = "st,stm32l4-pll-clock";
119			status = "disabled";
120		};
121	};
122
123	soc {
124		flash: flash-controller@40022000 {
125			compatible = "st,stm32-flash-controller", "st,stm32l5-flash-controller";
126			reg = <0x40022000 0x400>;
127			interrupts = <6 0>;
128			clocks = <&rcc STM32_CLOCK(AHB1, 8U)>;
129
130			#address-cells = <1>;
131			#size-cells = <1>;
132
133			flash0: flash@8000000 {
134				compatible = "st,stm32-nv-flash", "soc-nv-flash";
135				write-block-size = <8>;
136				erase-block-size = <2048>;
137
138				/* using maximum erase time(ms) for 4K page, since
139				 * datasheet does not show the maximum erase
140				 * for a 2K(dual-bank) page.
141				 */
142				max-erase-time = <25>;
143			};
144		};
145
146		rcc: rcc@40021000 {
147			compatible = "st,stm32-rcc";
148			clocks-controller;
149			#clock-cells = <2>;
150			reg = <0x40021000 0x400>;
151			undershoot-prevention;
152
153			rctl: reset-controller {
154				compatible = "st,stm32-rcc-rctl";
155				#reset-cells = <1>;
156			};
157		};
158
159		exti: interrupt-controller@4000f400 {
160			compatible = "st,stm32g0-exti", "st,stm32-exti";
161			interrupt-controller;
162			#interrupt-cells = <1>;
163			reg = <0x4000f400 0x400>;
164			num-lines = <16>;
165			interrupts = <11 0>, <12 0>, <13 0>, <14 0>,
166				     <15 0>, <16 0>, <17 0>, <18 0>,
167				     <19 0>, <20 0>, <21 0>, <22 0>,
168				     <23 0>, <24 0>, <25 0>, <26 0>;
169			interrupt-names = "line0", "line1", "line2", "line3",
170					  "line4", "line5", "line6", "line7",
171					  "line8", "line9", "line10", "line11",
172					  "line12", "line13", "line14", "line15";
173			line-ranges = <0 1>, <1 1>, <2 1>, <3 1>,
174				      <4 1>, <5 1>, <6 1>, <7 1>,
175				      <8 1>, <9 1>, <10 1>, <11 1>,
176				      <12 1>, <13 1>, <14 1>, <15 1>;
177		};
178
179		pinctrl: pin-controller@42020000 {
180			compatible = "st,stm32-pinctrl";
181			#address-cells = <1>;
182			#size-cells = <1>;
183			reg = <0x42020000 0x2000>;
184
185			gpioa: gpio@42020000 {
186				compatible = "st,stm32-gpio";
187				gpio-controller;
188				#gpio-cells = <2>;
189				reg = <0x42020000 0x400>;
190				clocks = <&rcc STM32_CLOCK(AHB2, 0U)>;
191			};
192
193			gpiob: gpio@42020400 {
194				compatible = "st,stm32-gpio";
195				gpio-controller;
196				#gpio-cells = <2>;
197				reg = <0x42020400 0x400>;
198				clocks = <&rcc STM32_CLOCK(AHB2, 1U)>;
199			};
200
201			gpioc: gpio@42020800 {
202				compatible = "st,stm32-gpio";
203				gpio-controller;
204				#gpio-cells = <2>;
205				reg = <0x42020800 0x400>;
206				clocks = <&rcc STM32_CLOCK(AHB2, 2U)>;
207			};
208
209			gpiod: gpio@42020c00 {
210				compatible = "st,stm32-gpio";
211				gpio-controller;
212				#gpio-cells = <2>;
213				reg = <0x42020c00 0x400>;
214				clocks = <&rcc STM32_CLOCK(AHB2, 3U)>;
215			};
216
217			gpioe: gpio@42021000 {
218				compatible = "st,stm32-gpio";
219				gpio-controller;
220				#gpio-cells = <2>;
221				reg = <0x42021000 0x400>;
222				clocks = <&rcc STM32_CLOCK(AHB2, 4U)>;
223			};
224
225			gpiof: gpio@42021400 {
226				compatible = "st,stm32-gpio";
227				gpio-controller;
228				#gpio-cells = <2>;
229				reg = <0x42021400 0x400>;
230				clocks = <&rcc STM32_CLOCK(AHB2, 5U)>;
231			};
232
233			gpiog: gpio@42021800 {
234				compatible = "st,stm32-gpio";
235				gpio-controller;
236				#gpio-cells = <2>;
237				reg = <0x42021800 0x400>;
238				clocks = <&rcc STM32_CLOCK(AHB2, 6U)>;
239			};
240
241			gpioh: gpio@42021c00 {
242				compatible = "st,stm32-gpio";
243				gpio-controller;
244				#gpio-cells = <2>;
245				reg = <0x42021c00 0x400>;
246				clocks = <&rcc STM32_CLOCK(AHB2, 7U)>;
247			};
248		};
249
250		iwdg: watchdog@40003000 {
251			compatible = "st,stm32-watchdog";
252			reg = <0x40003000 0x400>;
253			status = "disabled";
254		};
255
256		wwdg: watchdog@40002c00 {
257			compatible = "st,stm32-window-watchdog";
258			reg = <0x40002C00 0x400>;
259			clocks = <&rcc STM32_CLOCK(APB1, 11U)>;
260			interrupts = <0 6>;
261			status = "disabled";
262		};
263
264		usart1: serial@40013800 {
265			compatible = "st,stm32-usart", "st,stm32-uart";
266			reg = <0x40013800 0x400>;
267			clocks = <&rcc STM32_CLOCK(APB2, 14U)>;
268			resets = <&rctl STM32_RESET(APB2, 14U)>;
269			interrupts = <61 0>;
270			status = "disabled";
271		};
272
273		usart2: serial@40004400 {
274			compatible = "st,stm32-usart", "st,stm32-uart";
275			reg = <0x40004400 0x400>;
276			clocks = <&rcc STM32_CLOCK(APB1, 17U)>;
277			resets = <&rctl STM32_RESET(APB1L, 17U)>;
278			interrupts = <62 0>;
279			status = "disabled";
280		};
281
282		usart3: serial@40004800 {
283			compatible = "st,stm32-usart", "st,stm32-uart";
284			reg = <0x40004800 0x400>;
285			clocks = <&rcc STM32_CLOCK(APB1, 18U)>;
286			resets = <&rctl STM32_RESET(APB1L, 18U)>;
287			interrupts = <63 0>;
288			status = "disabled";
289		};
290
291		uart4: serial@40004c00 {
292			compatible = "st,stm32-uart";
293			reg = <0x40004c00 0x400>;
294			clocks = <&rcc STM32_CLOCK(APB1, 19U)>;
295			resets = <&rctl STM32_RESET(APB1L, 19U)>;
296			interrupts = <64 0>;
297			status = "disabled";
298		};
299
300		uart5: serial@40005000 {
301			compatible = "st,stm32-uart";
302			reg = <0x40005000 0x400>;
303			clocks = <&rcc STM32_CLOCK(APB1, 20U)>;
304			resets = <&rctl STM32_RESET(APB1L, 20U)>;
305			interrupts = <65 0>;
306			status = "disabled";
307		};
308
309		lpuart1: serial@40008000 {
310			compatible = "st,stm32-lpuart", "st,stm32-uart";
311			reg = <0x40008000 0x400>;
312			clocks = <&rcc STM32_CLOCK(APB1_2, 0U)>;
313			resets = <&rctl STM32_RESET(APB1H, 0U)>;
314			interrupts = <66 0>;
315			status = "disabled";
316		};
317
318		lptim1: timers@40007c00 {
319			compatible = "st,stm32-lptim";
320			clocks = <&rcc STM32_CLOCK(APB1, 31U)>;
321			#address-cells = <1>;
322			#size-cells = <0>;
323			reg = <0x40007c00 0x400>;
324			interrupts = <67 1>;
325			interrupt-names = "wakeup";
326			status = "disabled";
327		};
328
329		dma1: dma@40020000 {
330			compatible = "st,stm32-dma-v2";
331			#dma-cells = <3>;
332			reg = <0x40020000 0x400>;
333			interrupts = <29 0 30 0 31 0 32 0 33 0 34 0 35 0 36 0>;
334			clocks = <&rcc STM32_CLOCK(AHB1, 0U)>;
335			dma-requests = <8>;
336			dma-offset = <0>;
337			status = "disabled";
338		};
339
340		dma2: dma@40020400 {
341			compatible = "st,stm32-dma-v2";
342			#dma-cells = <3>;
343			reg = <0x40020400 0x400>;
344			interrupts = <80 0 81 0 82 0 83 0 84 0 85 0 86 0 87 0>;
345			clocks = <&rcc STM32_CLOCK(AHB1, 1U)>;
346			dma-requests = <8>;
347			dma-offset = <8>;
348			status = "disabled";
349		};
350
351		dmamux1: dmamux@40020800 {
352			compatible = "st,stm32-dmamux";
353			#dma-cells = <3>;
354			reg = <0x40020800 0x400>;
355			interrupts = <27 0>;
356			clocks = <&rcc STM32_CLOCK(AHB1, 2U)>;
357			dma-channels = <16>;
358			dma-generators = <4>;
359			dma-requests= <90>;
360			status = "disabled";
361		};
362
363		i2c1: i2c@40005400 {
364			compatible = "st,stm32-i2c-v2";
365			clock-frequency = <I2C_BITRATE_STANDARD>;
366			#address-cells = <1>;
367			#size-cells = <0>;
368			reg = <0x40005400 0x400>;
369			clocks = <&rcc STM32_CLOCK(APB1, 21U)>;
370			interrupts = <55 0>, <56 0>;
371			interrupt-names = "event", "error";
372			status = "disabled";
373		};
374
375		i2c2: i2c@40005800 {
376			compatible = "st,stm32-i2c-v2";
377			#address-cells = <1>;
378			#size-cells = <0>;
379			clock-frequency = <I2C_BITRATE_STANDARD>;
380			reg = <0x40005800 0x400>;
381			clocks = <&rcc STM32_CLOCK(APB1, 22U)>;
382			interrupts = <57 0>, <58 0>;
383			interrupt-names = "event", "error";
384			status = "disabled";
385		};
386
387		spi1: spi@40013000 {
388			compatible = "st,stm32-spi-fifo", "st,stm32-spi";
389			#address-cells = <1>;
390			#size-cells = <0>;
391			reg = <0x40013000 0x400>;
392			interrupts = <59 5>;
393			clocks = <&rcc STM32_CLOCK(APB2, 12U)>;
394			status = "disabled";
395		};
396
397		sdmmc1: sdmmc@420c8000 {
398			compatible = "st,stm32-sdmmc";
399			reg = <0x420c8000 0x400>;
400			clocks = <&rcc STM32_CLOCK(AHB2, 22U)>,
401				 <&rcc STM32_SRC_HSI48 SDMMC_SEL(0)>;
402			resets = <&rctl STM32_RESET(AHB2, 22U)>;
403			interrupts = <78 0>;
404			status = "disabled";
405		};
406
407		dac1: dac@40007400 {
408			compatible = "st,stm32-dac";
409			reg = <0x40007400 0x400>;
410			clocks = <&rcc STM32_CLOCK(APB1, 29U)>;
411			status = "disabled";
412			#io-channel-cells = <1>;
413		};
414
415		spi2: spi@40003800 {
416			compatible = "st,stm32-spi-fifo", "st,stm32-spi";
417			#address-cells = <1>;
418			#size-cells = <0>;
419			reg = <0x40003800 0x400>;
420			interrupts = <60 5>;
421			clocks = <&rcc STM32_CLOCK(APB1, 14U)>;
422			status = "disabled";
423		};
424
425		spi3: spi@40003c00 {
426			compatible = "st,stm32-spi-fifo", "st,stm32-spi";
427			#address-cells = <1>;
428			#size-cells = <0>;
429			reg = <0x40003c00 0x400>;
430			interrupts = <99 5>;
431			clocks = <&rcc STM32_CLOCK(APB1, 15U)>;
432			status = "disabled";
433		};
434
435		octospi1: octospi@44021000 {
436			compatible = "st,stm32-ospi";
437			reg = <0x44021000 0x400>;
438			interrupts = <76 0>;
439			clock-names = "ospix", "ospi-ker";
440			clocks = <&rcc STM32_CLOCK(AHB3, 8U)>,
441					<&rcc STM32_SRC_SYSCLK OSPI_SEL(0)>;
442			#address-cells = <1>;
443			#size-cells = <0>;
444			status = "disabled";
445		};
446
447		rng: rng@420c0800 {
448			compatible = "st,stm32-rng";
449			reg = <0x420c0800 0x400>;
450			interrupts = <94 0>;
451			clocks = <&rcc STM32_CLOCK(AHB2, 18U)>;
452			nist-config = <0xf00d00>;
453			health-test-magic = <0x17590abc>;
454			health-test-config = <0xa2b3>;
455			status = "disabled";
456		};
457
458		rtc: rtc@40002800 {
459			compatible = "st,stm32-rtc";
460			reg = <0x40002800 0x400>;
461			interrupts = <2 0>;
462			clocks = <&rcc STM32_CLOCK(APB1, 10U)>;
463			prescaler = <32768>;
464			alarms-count = <2>;
465			alrm-exti-line = <17>;
466			status = "disabled";
467		};
468
469		timers1: timers@40012c00 {
470			compatible = "st,stm32-timers";
471			reg = <0x40012c00 0x400>;
472			clocks = <&rcc STM32_CLOCK(APB2, 11U)>;
473			resets = <&rctl STM32_RESET(APB2, 11U)>;
474			interrupts = <41 0>, <42 0>, <43 0>, <44 0>;
475			interrupt-names = "brk", "up", "trgcom", "cc";
476			st,prescaler = <0>;
477			status = "disabled";
478
479			pwm {
480				compatible = "st,stm32-pwm";
481				status = "disabled";
482				#pwm-cells = <3>;
483			};
484		};
485
486		timers2: timers@40000000 {
487			compatible = "st,stm32-timers";
488			reg = <0x40000000 0x400>;
489			clocks = <&rcc STM32_CLOCK(APB1, 0U)>;
490			resets = <&rctl STM32_RESET(APB1L, 0U)>;
491			interrupts = <45 0>;
492			interrupt-names = "global";
493			st,prescaler = <0>;
494			status = "disabled";
495
496			pwm {
497				compatible = "st,stm32-pwm";
498				status = "disabled";
499				#pwm-cells = <3>;
500			};
501
502			counter {
503				compatible = "st,stm32-counter";
504				status = "disabled";
505			};
506		};
507
508		timers3: timers@40000400 {
509			compatible = "st,stm32-timers";
510			reg = <0x40000400 0x400>;
511			clocks = <&rcc STM32_CLOCK(APB1, 1U)>;
512			resets = <&rctl STM32_RESET(APB1L, 1U)>;
513			interrupts = <46 0>;
514			interrupt-names = "global";
515			st,prescaler = <0>;
516			status = "disabled";
517
518			pwm {
519				compatible = "st,stm32-pwm";
520				status = "disabled";
521				#pwm-cells = <3>;
522			};
523
524			counter {
525				compatible = "st,stm32-counter";
526				status = "disabled";
527			};
528		};
529
530		timers4: timers@40000800 {
531			compatible = "st,stm32-timers";
532			reg = <0x40000800 0x400>;
533			clocks = <&rcc STM32_CLOCK(APB1, 2U)>;
534			resets = <&rctl STM32_RESET(APB1L, 2U)>;
535			interrupts = <47 0>;
536			interrupt-names = "global";
537			st,prescaler = <0>;
538			status = "disabled";
539
540			pwm {
541				compatible = "st,stm32-pwm";
542				status = "disabled";
543				#pwm-cells = <3>;
544			};
545
546			counter {
547				compatible = "st,stm32-counter";
548				status = "disabled";
549			};
550		};
551
552		timers5: timers@40000c00 {
553			compatible = "st,stm32-timers";
554			reg = <0x40000c00 0x400>;
555			clocks = <&rcc STM32_CLOCK(APB1, 3U)>;
556			resets = <&rctl STM32_RESET(APB1L, 3U)>;
557			interrupts = <48 0>;
558			interrupt-names = "global";
559			st,prescaler = <0>;
560			status = "disabled";
561
562			pwm {
563				compatible = "st,stm32-pwm";
564				status = "disabled";
565				#pwm-cells = <3>;
566			};
567
568			counter {
569				compatible = "st,stm32-counter";
570				status = "disabled";
571			};
572		};
573
574		timers8: timers@40013400 {
575			compatible = "st,stm32-timers";
576			reg = <0x40013400 0x400>;
577			clocks = <&rcc STM32_CLOCK(APB2, 13U)>;
578			resets = <&rctl STM32_RESET(APB2, 13U)>;
579			interrupts = <51 0>, <52 0>, <53 0>, <54 0>;
580			interrupt-names = "brk", "up", "trgcom", "cc";
581			st,prescaler = <0>;
582			status = "disabled";
583
584			pwm {
585				compatible = "st,stm32-pwm";
586				status = "disabled";
587				#pwm-cells = <3>;
588			};
589		};
590
591		timers15: timers@40014000 {
592			compatible = "st,stm32-timers";
593			reg = <0x40014000 0x400>;
594			clocks = <&rcc STM32_CLOCK(APB2, 16U)>;
595			resets = <&rctl STM32_RESET(APB2, 16U)>;
596			interrupts = <69 0>;
597			interrupt-names = "global";
598			st,prescaler = <0>;
599			status = "disabled";
600
601			pwm {
602				compatible = "st,stm32-pwm";
603				status = "disabled";
604				#pwm-cells = <3>;
605			};
606
607			counter {
608				compatible = "st,stm32-counter";
609				status = "disabled";
610			};
611		};
612
613		timers16: timers@40014400 {
614			compatible = "st,stm32-timers";
615			reg = <0x40014400 0x400>;
616			clocks = <&rcc STM32_CLOCK(APB2, 17U)>;
617			resets = <&rctl STM32_RESET(APB2, 17U)>;
618			interrupts = <70 0>;
619			interrupt-names = "global";
620			st,prescaler = <0>;
621			status = "disabled";
622
623			pwm {
624				compatible = "st,stm32-pwm";
625				status = "disabled";
626				#pwm-cells = <3>;
627			};
628
629			counter {
630				compatible = "st,stm32-counter";
631				status = "disabled";
632			};
633		};
634
635		timers17: timers@40014800 {
636			compatible = "st,stm32-timers";
637			reg = <0x40014800 0x400>;
638			clocks = <&rcc STM32_CLOCK(APB2, 18U)>;
639			resets = <&rctl STM32_RESET(APB2, 18U)>;
640			interrupts = <71 0>;
641			interrupt-names = "global";
642			st,prescaler = <0>;
643			status = "disabled";
644
645			pwm {
646				compatible = "st,stm32-pwm";
647				status = "disabled";
648				#pwm-cells = <3>;
649			};
650
651			counter {
652				compatible = "st,stm32-counter";
653				status = "disabled";
654			};
655		};
656
657		adc1: adc@42028000 {
658			compatible = "st,stm32-adc";
659			reg = <0x42028000 0x100>;
660			clocks = <&rcc STM32_CLOCK(AHB2, 13U)>;
661			interrupts = <37 0>;
662			status = "disabled";
663			#io-channel-cells = <1>;
664			resolutions = <STM32_ADC_RES(12, 0x00)
665				       STM32_ADC_RES(10, 0x01)
666				       STM32_ADC_RES(8, 0x02)
667				       STM32_ADC_RES(6, 0x03)>;
668			sampling-times = <3 7 13 25 48 93 248 641>;
669			st,adc-sequencer = "FULLY_CONFIGURABLE";
670			st,adc-oversampler = "OVERSAMPLER_MINIMAL";
671		};
672
673		adc2: adc@42028100 {
674			compatible = "st,stm32-adc";
675			reg = <0x42028100 0x100>;
676			clocks = <&rcc STM32_CLOCK(AHB2, 13U)>;
677			interrupts = <37 0>;
678			status = "disabled";
679			#io-channel-cells = <1>;
680			resolutions = <STM32_ADC_RES(12, 0x00)
681				       STM32_ADC_RES(10, 0x01)
682				       STM32_ADC_RES(8, 0x02)
683				       STM32_ADC_RES(6, 0x03)>;
684			sampling-times = <3 7 13 25 48 93 248 641>;
685			st,adc-sequencer = "FULLY_CONFIGURABLE";
686			st,adc-oversampler = "OVERSAMPLER_MINIMAL";
687		};
688
689		usb: usb@4000d400 {
690			compatible = "st,stm32-usb";
691			reg = <0x4000d400 0x400>;
692			interrupts = <73 0>;
693			interrupt-names = "usb";
694			num-bidir-endpoints = <8>;
695			ram-size = <1024>;
696			status = "disabled";
697			clocks = <&rcc STM32_CLOCK(APB1_2, 21U)>,
698				 <&rcc STM32_SRC_HSI48 CLK48_SEL(0)>;
699			phys = <&usb_fs_phy>;
700		};
701
702		ucpd1: ucpd@4000dc00 {
703			compatible = "st,stm32-ucpd";
704			reg = <0x4000dc00 0x400>;
705			clocks = <&rcc STM32_CLOCK(APB1, 23U)>;
706			interrupts = <106 0>;
707			status = "disabled";
708		};
709
710		fmc: fmc@44020000 {
711			compatible = "st,stm32-fmc";
712			reg = <0x44020000 0x400>;
713			clocks = <&rcc STM32_CLOCK(AHB3, 0U)>;
714			status = "disabled";
715		};
716	};
717
718	die_temp: dietemp {
719		compatible = "st,stm32-temp-cal";
720		ts-cal1-addr = <0x0BFA05A8>;
721		ts-cal2-addr = <0x0BFA05CA>;
722		ts-cal1-temp = <30>;
723		ts-cal2-temp = <130>;
724		ts-cal-vrefanalog = <3000>;
725		io-channels = <&adc1 17>;
726		status = "disabled";
727	};
728
729	vref: vref {
730		compatible = "st,stm32-vref";
731		vrefint-cal-addr = <0x0BFA05AA>;
732		vrefint-cal-mv = <3000>;
733		io-channels = <&adc1 0>;
734		status = "disabled";
735	};
736
737	vbat: vbat {
738		compatible = "st,stm32-vbat";
739		ratio = <3>;
740		io-channels = <&adc1 18>;
741		status = "disabled";
742	};
743
744	usb_fs_phy: usbphy {
745		compatible = "usb-nop-xceiv";
746		#phy-cells = <0>;
747	};
748
749	smbus1: smbus1 {
750		compatible = "st,stm32-smbus";
751		#address-cells = <1>;
752		#size-cells = <0>;
753		i2c = <&i2c1>;
754		status = "disabled";
755	};
756
757	smbus2: smbus2 {
758		compatible = "st,stm32-smbus";
759		#address-cells = <1>;
760		#size-cells = <0>;
761		i2c = <&i2c2>;
762		status = "disabled";
763	};
764
765};
766
767&nvic {
768	arm,num-irq-priority-bits = <3>;
769};
770