1/*
2 * Copyright (c) 2023-2024 STMicroelectronics
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7
8#include <arm/armv8-m.dtsi>
9#include <zephyr/dt-bindings/adc/adc.h>
10#include <zephyr/dt-bindings/clock/stm32h5_clock.h>
11#include <zephyr/dt-bindings/gpio/gpio.h>
12#include <zephyr/dt-bindings/i2c/i2c.h>
13#include <zephyr/dt-bindings/reset/stm32h5_reset.h>
14#include <zephyr/dt-bindings/dma/stm32_dma.h>
15#include <zephyr/dt-bindings/pwm/pwm.h>
16#include <zephyr/dt-bindings/adc/stm32l4_adc.h>
17#include <freq.h>
18
19/ {
20	chosen {
21		zephyr,flash-controller = &flash;
22		zephyr,entropy = &rng;
23	};
24
25	cpus {
26		#address-cells = <1>;
27		#size-cells = <0>;
28
29		cpu0: cpu@0 {
30			device_type = "cpu";
31			compatible = "arm,cortex-m33";
32			reg = <0>;
33			cpu-power-states = <&stop>;
34			#address-cells = <1>;
35			#size-cells = <1>;
36
37			mpu: mpu@e000ed90 {
38				compatible = "arm,armv8m-mpu";
39				reg = <0xe000ed90 0x40>;
40			};
41		};
42	};
43
44	clocks {
45		clk_hse: clk-hse {
46			#clock-cells = <0>;
47			compatible = "st,stm32-hse-clock";
48			status = "disabled";
49		};
50
51		clk_hsi: clk-hsi {
52			#clock-cells = <0>;
53			compatible = "st,stm32h7-hsi-clock";
54			hsi-div = <1>;		/* HSI RC: 64MHz, hsi_clk = 64MHz */
55			clock-frequency = <DT_FREQ_M(64)>;
56			status = "disabled";
57		};
58
59		clk_hsi48: clk-hsi48 {
60			#clock-cells = <0>;
61			compatible = "fixed-clock";
62			clock-frequency = <DT_FREQ_M(48)>;
63			status = "disabled";
64		};
65
66		clk_csi: clk-csi {
67			#clock-cells = <0>;
68			compatible = "fixed-clock";
69			clock-frequency = <DT_FREQ_M(4)>;
70			status = "disabled";
71		};
72
73		clk_lse: clk-lse {
74			#clock-cells = <0>;
75			compatible = "st,stm32-lse-clock";
76			clock-frequency = <32768>;
77			driving-capability = <2>;
78			status = "disabled";
79		};
80
81		clk_lsi: clk-lsi {
82			#clock-cells = <0>;
83			compatible = "fixed-clock";
84			clock-frequency = <DT_FREQ_K(32)>;
85			status = "disabled";
86		};
87		/* The pll scheme is similar to stm32u5 */
88		pll1: pll: pll {
89			#clock-cells = <0>;
90			compatible = "st,stm32u5-pll-clock";
91			status = "disabled";
92		};
93
94		pll2: pll2 {
95			#clock-cells = <0>;
96			compatible = "st,stm32u5-pll-clock";
97			status = "disabled";
98		};
99	};
100
101	mcos {
102		mco1: mco1 {
103			compatible = "st,stm32-clock-mco";
104			status = "disabled";
105		};
106
107		mco2: mco2 {
108			compatible = "st,stm32-clock-mco";
109			status = "disabled";
110		};
111	};
112
113	soc {
114		flash: flash-controller@40022000 {
115			compatible = "st,stm32-flash-controller", "st,stm32l5-flash-controller";
116			reg = <0x40022000 0x400>;
117			interrupts = <6 0>;
118
119			#address-cells = <1>;
120			#size-cells = <1>;
121
122			flash0: flash@8000000 {
123				compatible = "st,stm32-nv-flash", "soc-nv-flash";
124
125				write-block-size = <16>;
126				erase-block-size = <8192>;
127				/* maximum erase time(ms) for a 8K sector */
128				max-erase-time = <5>;
129			};
130		};
131
132		backup_sram: memory@40036400 {
133			compatible = "zephyr,memory-region", "st,stm32-backup-sram";
134			reg = <0x40036400 DT_SIZE_K(2)>;
135			clocks = <&rcc STM32_CLOCK(AHB1, 28U)>;
136			zephyr,memory-region = "BACKUP_SRAM";
137			status = "disabled";
138		};
139
140		power-states {
141			stop: state0 {
142				compatible = "zephyr,power-state";
143				power-state-name = "suspend-to-idle";
144				substate-id = <1>;
145				min-residency-us = <20>;
146			};
147		};
148
149		rcc: rcc@44020c00 {
150			compatible = "st,stm32u5-rcc";
151			clocks-controller;
152			#clock-cells = <2>;
153			reg = <0x44020c00 0x400>;
154
155			rctl: reset-controller {
156				compatible = "st,stm32-rcc-rctl";
157				#reset-cells = <1>;
158			};
159		};
160
161		exti: interrupt-controller@44022000 {
162			compatible = "st,stm32g0-exti", "st,stm32-exti";
163			interrupt-controller;
164			#interrupt-cells = <1>;
165			#address-cells = <1>;
166			reg = <0x44022000 0x400>;
167			num-lines = <16>;
168			interrupts = <11 0>, <12 0>, <13 0>, <14 0>,
169				     <15 0>, <16 0>, <17 0>, <18 0>,
170				     <19 0>, <20 0>, <21 0>, <22 0>,
171				     <23 0>, <24 0>, <25 0>, <26 0>;
172			interrupt-names = "line0", "line1", "line2", "line3",
173					  "line4", "line5", "line6", "line7",
174					  "line8", "line9", "line10", "line11",
175					  "line12", "line13", "line14", "line15";
176			line-ranges = <0 1>, <1 1>, <2 1>, <3 1>,
177				      <4 1>, <5 1>, <6 1>, <7 1>,
178				      <8 1>, <9 1>, <10 1>, <11 1>,
179				      <12 1>, <13 1>, <14 1>, <15 1>;
180		};
181
182		pinctrl: pin-controller@42020000 {
183			compatible = "st,stm32-pinctrl";
184			#address-cells = <1>;
185			#size-cells = <1>;
186			reg = <0x42020000 0x2000>;
187
188			gpioa: gpio@42020000 {
189				compatible = "st,stm32-gpio";
190				gpio-controller;
191				#gpio-cells = <2>;
192				reg = <0x42020000 0x400>;
193				clocks = <&rcc STM32_CLOCK(AHB2, 0U)>;
194			};
195
196			gpiob: gpio@42020400 {
197				compatible = "st,stm32-gpio";
198				gpio-controller;
199				#gpio-cells = <2>;
200				reg = <0x42020400 0x400>;
201				clocks = <&rcc STM32_CLOCK(AHB2, 1U)>;
202			};
203
204			gpioc: gpio@42020800 {
205				compatible = "st,stm32-gpio";
206				gpio-controller;
207				#gpio-cells = <2>;
208				reg = <0x42020800 0x400>;
209				clocks = <&rcc STM32_CLOCK(AHB2, 2U)>;
210			};
211
212			gpiod: gpio@42020c00 {
213				compatible = "st,stm32-gpio";
214				gpio-controller;
215				#gpio-cells = <2>;
216				reg = <0x42020c00 0x400>;
217				clocks = <&rcc STM32_CLOCK(AHB2, 3U)>;
218			};
219
220			gpioh: gpio@42021c00 {
221				compatible = "st,stm32-gpio";
222				gpio-controller;
223				#gpio-cells = <2>;
224				reg = <0x42021c00 0x400>;
225				clocks = <&rcc STM32_CLOCK(AHB2, 7U)>;
226			};
227		};
228
229		lptim1: timers@44004400 {
230			compatible = "st,stm32-lptim";
231			clocks = <&rcc STM32_CLOCK(APB3, 11U)>;
232			#address-cells = <1>;
233			#size-cells = <0>;
234			reg = <0x44004400 0x400>;
235			interrupts = <64 1>;
236			interrupt-names = "wakeup";
237			status = "disabled";
238		};
239
240		lptim2: timers@40009400 {
241			compatible = "st,stm32-lptim";
242			clocks = <&rcc STM32_CLOCK(APB1_2, 5U)>;
243			#address-cells = <1>;
244			#size-cells = <0>;
245			reg = <0x40009400 0x400>;
246			interrupts = <70 1>;
247			interrupt-names = "wakeup";
248			status = "disabled";
249		};
250
251		usart1: serial@40013800 {
252			compatible = "st,stm32-usart", "st,stm32-uart";
253			reg = <0x40013800 0x400>;
254			clocks = <&rcc STM32_CLOCK(APB2, 14U)>;
255			resets = <&rctl STM32_RESET(APB2, 14U)>;
256			interrupts = <58 0>;
257			status = "disabled";
258		};
259
260		usart2: serial@40004400 {
261			compatible = "st,stm32-usart", "st,stm32-uart";
262			reg = <0x40004400 0x400>;
263			clocks = <&rcc STM32_CLOCK(APB1, 17U)>;
264			resets = <&rctl STM32_RESET(APB1L, 17U)>;
265			interrupts = <59 0>;
266			status = "disabled";
267		};
268
269		usart3: serial@40004800 {
270			compatible = "st,stm32-usart", "st,stm32-uart";
271			reg = <0x40004800 0x400>;
272			clocks = <&rcc STM32_CLOCK(APB1, 18U)>;
273			resets = <&rctl STM32_RESET(APB1L, 18U)>;
274			interrupts = <60 0>;
275			status = "disabled";
276		};
277
278		lpuart1: serial@44002400 {
279			compatible = "st,stm32-lpuart", "st,stm32-uart";
280			reg = <0x44002400 0x400>;
281			clocks = <&rcc STM32_CLOCK(APB3, 6U)>;
282			resets = <&rctl STM32_RESET(APB3, 6U)>;
283			interrupts = <63 0>;
284			status = "disabled";
285		};
286
287		iwdg: watchdog@40003000 {
288			compatible = "st,stm32-watchdog";
289			reg = <0x40003000 0x400>;
290			status = "disabled";
291		};
292
293		wwdg: watchdog@40002c00 {
294			compatible = "st,stm32-window-watchdog";
295			reg = <0x40002c00 0x400>;
296			clocks = <&rcc STM32_CLOCK(APB1, 11U)>;
297			interrupts = <0 7>;
298			status = "disabled";
299		};
300
301		dac1: dac@42028400 {
302			compatible = "st,stm32-dac";
303			reg = <0x42028400 0x400>;
304			clocks = <&rcc STM32_CLOCK(AHB2, 11U)>;
305			status = "disabled";
306			#io-channel-cells = <1>;
307		};
308
309		adc1: adc@42028000 {
310			compatible = "st,stm32-adc";
311			reg = <0x42028000 0x400>;
312			clocks = <&rcc STM32_CLOCK(AHB2, 10U)>;
313			interrupts = <37 0>;
314			status = "disabled";
315			vref-mv = <3300>;
316			#io-channel-cells = <1>;
317			resolutions = <STM32_ADC_RES(12, 0x00)
318				       STM32_ADC_RES(10, 0x01)
319				       STM32_ADC_RES(8, 0x02)
320				       STM32_ADC_RES(6, 0x03)>;
321			sampling-times = <3 7 13 25 48 93 248 641>;
322			st,adc-sequencer = "FULLY_CONFIGURABLE";
323			st,adc-oversampler = "OVERSAMPLER_MINIMAL";
324		};
325
326		rtc: rtc@44007800 {
327			compatible = "st,stm32-rtc";
328			reg = <0x44007800 0x400>;
329			interrupts = <2 0>;
330			clocks = <&rcc STM32_CLOCK(APB3, 21U)>;
331			prescaler = <32768>;
332			alarms-count = <2>;
333			alrm-exti-line = <17>;
334			status = "disabled";
335		};
336
337		timers1: timers@40012c00 {
338			compatible = "st,stm32-timers";
339			reg = <0x40012c00 0x400>;
340			clocks = <&rcc STM32_CLOCK(APB2, 11U)>;
341			resets = <&rctl STM32_RESET(APB2, 11U)>;
342			interrupts = <41 0>, <42 0>, <43 0>, <44 0>;
343			interrupt-names = "brk", "up", "trgcom", "cc";
344			status = "disabled";
345
346			pwm {
347				compatible = "st,stm32-pwm";
348				status = "disabled";
349				#pwm-cells = <3>;
350			};
351		};
352
353		timers2: timers@40000000 {
354			compatible = "st,stm32-timers";
355			reg = <0x40000000 0x400>;
356			clocks = <&rcc STM32_CLOCK(APB1, 0U)>;
357			resets = <&rctl STM32_RESET(APB1L, 0U)>;
358			interrupts = <45 0>;
359			interrupt-names = "global";
360			status = "disabled";
361
362			pwm {
363				compatible = "st,stm32-pwm";
364				status = "disabled";
365				#pwm-cells = <3>;
366			};
367
368			counter {
369				compatible = "st,stm32-counter";
370				status = "disabled";
371			};
372		};
373
374		timers3: timers@40000400 {
375			compatible = "st,stm32-timers";
376			reg = <0x40000400 0x400>;
377			clocks = <&rcc STM32_CLOCK(APB1, 1U)>;
378			resets = <&rctl STM32_RESET(APB1L, 1U)>;
379			interrupts = <46 0>;
380			interrupt-names = "global";
381			status = "disabled";
382
383			pwm {
384				compatible = "st,stm32-pwm";
385				status = "disabled";
386				#pwm-cells = <3>;
387			};
388
389			counter {
390				compatible = "st,stm32-counter";
391				status = "disabled";
392			};
393		};
394
395		timers6: timers@40001000 {
396			compatible = "st,stm32-timers";
397			reg = <0x40001000 0x400>;
398			clocks = <&rcc STM32_CLOCK(APB1, 4U)>;
399			resets = <&rctl STM32_RESET(APB1L, 4U)>;
400			interrupts = <49 0>;
401			interrupt-names = "global";
402			status = "disabled";
403
404			pwm {
405				compatible = "st,stm32-pwm";
406				status = "disabled";
407				#pwm-cells = <3>;
408			};
409
410			counter {
411				compatible = "st,stm32-counter";
412				status = "disabled";
413			};
414		};
415
416		timers7: timers@40001400 {
417			compatible = "st,stm32-timers";
418			reg = <0x40001400 0x400>;
419			clocks = <&rcc STM32_CLOCK(APB1, 5U)>;
420			resets = <&rctl STM32_RESET(APB1L, 5U)>;
421			interrupts = <50 0>;
422			interrupt-names = "global";
423			status = "disabled";
424
425			pwm {
426				compatible = "st,stm32-pwm";
427				status = "disabled";
428				#pwm-cells = <3>;
429			};
430
431			counter {
432				compatible = "st,stm32-counter";
433				status = "disabled";
434			};
435		};
436
437		i2c1: i2c@40005400 {
438			compatible = "st,stm32-i2c-v2";
439			clock-frequency = <I2C_BITRATE_STANDARD>;
440			#address-cells = <1>;
441			#size-cells = <0>;
442			reg = <0x40005400 0x400>;
443			clocks = <&rcc STM32_CLOCK(APB1, 21U)>;
444			interrupts = <51 0>, <52 0>;
445			interrupt-names = "event", "error";
446			status = "disabled";
447		};
448
449		i2c2: i2c@40005800 {
450			compatible = "st,stm32-i2c-v2";
451			clock-frequency = <I2C_BITRATE_STANDARD>;
452			#address-cells = <1>;
453			#size-cells = <0>;
454			reg = <0x40005800 0x400>;
455			clocks = <&rcc STM32_CLOCK(APB1, 22U)>;
456			interrupts = <53 0>, <54 0>;
457			interrupt-names = "event", "error";
458			status = "disabled";
459		};
460
461		i3c1: i3c@40005c00 {
462			compatible = "st,stm32-i3c";
463			reg = <0x40005c00 0x400>;
464			interrupts = <123 0>, <124 0>;
465			interrupt-names = "event", "error";
466			#address-cells = <3>;
467			#size-cells = <0>;
468			clocks = <&rcc STM32_CLOCK(APB1, 23U)>;
469			resets = <&rctl STM32_RESET(APB1L, 23U)>;
470			zephyr,pm-device-runtime-auto;
471			status = "disabled";
472		};
473
474		i3c2: i3c@44003000 {
475			compatible = "st,stm32-i3c";
476			reg = <0x44003000 0x400>;
477			interrupts = <131 0>, <132 0>;
478			interrupt-names = "event", "error";
479			#address-cells = <3>;
480			#size-cells = <0>;
481			clocks = <&rcc STM32_CLOCK(APB3, 9U)>;
482			resets = <&rctl STM32_RESET(APB3, 9U)>;
483			zephyr,pm-device-runtime-auto;
484			status = "disabled";
485		};
486
487		spi1: spi@40013000 {
488			compatible = "st,stm32h7-spi", "st,stm32-spi-fifo", "st,stm32-spi";
489			#address-cells = <1>;
490			#size-cells = <0>;
491			reg = <0x40013000 0x400>;
492			interrupts = <55 5>;
493			clocks = <&rcc STM32_CLOCK(APB2, 12U)>,
494				 <&rcc STM32_SRC_PLL1_Q SPI1_SEL(0)>;
495			status = "disabled";
496		};
497
498		spi2: spi@40003800 {
499			compatible = "st,stm32h7-spi", "st,stm32-spi-fifo", "st,stm32-spi";
500			#address-cells = <1>;
501			#size-cells = <0>;
502			reg = <0x40003800 0x400>;
503			interrupts = <56 5>;
504			clocks = <&rcc STM32_CLOCK(APB1, 14U)>,
505				 <&rcc STM32_SRC_PLL1_Q SPI2_SEL(0)>;
506			status = "disabled";
507		};
508
509		spi3: spi@40003c00 {
510			compatible = "st,stm32h7-spi", "st,stm32-spi-fifo", "st,stm32-spi";
511			#address-cells = <1>;
512			#size-cells = <0>;
513			reg = <0x40003c00 0x400>;
514			interrupts = <57 5>;
515			clocks = <&rcc STM32_CLOCK(APB1, 15U)>,
516				 <&rcc STM32_SRC_PLL1_Q SPI3_SEL(0)>;
517			status = "disabled";
518		};
519
520		fdcan1: can@4000a400 {
521			compatible = "st,stm32-fdcan";
522			reg = <0x4000a400 0x400>, <0x4000ac00 0x350>;
523			reg-names = "m_can", "message_ram";
524			interrupts = <39 0>, <40 0>;
525			interrupt-names = "int0", "int1";
526			clocks = <&rcc STM32_CLOCK(APB1_2, 9U)>;
527			bosch,mram-cfg = <0x0 28 8 3 3 0 3 3>;
528			status = "disabled";
529		};
530
531		rng: rng@420c0800 {
532			compatible = "st,stm32-rng";
533			reg = <0x420c0800 0x400>;
534			clocks = <&rcc STM32_CLOCK(AHB2, 18U)>;
535			interrupts = <114 0>;
536			nist-config = <0xf00d00>;
537			health-test-config = <0xaac7>;
538			status = "disabled";
539		};
540
541		mac: ethernet@40028000 {
542			compatible = "st,stm32h7-ethernet", "st,stm32-ethernet";
543			reg = <0x40028000 0x8000>;
544			interrupts = <106 0>;
545			clock-names = "stmmaceth", "mac-clk-tx", "mac-clk-rx";
546			clocks = <&rcc STM32_CLOCK(AHB1, 19U)>,
547				 <&rcc STM32_CLOCK(AHB1, 20U)>,
548				 <&rcc STM32_CLOCK(AHB1, 21U)>;
549			status = "disabled";
550
551			mdio: mdio {
552				compatible = "st,stm32-mdio";
553				#address-cells = <1>;
554				#size-cells = <0>;
555				status = "disabled";
556			};
557		};
558
559		gpdma1: dma@40020000 {
560			compatible = "st,stm32u5-dma";
561			#dma-cells = <3>;
562			reg = <0x40020000 0x1000>;
563			interrupts = <27 0 28 0 29 0 30 0 31 0 32 0 33 0 34 0>;
564			clocks = <&rcc STM32_CLOCK(AHB1, 0U)>;
565			dma-channels = <8>;
566			dma-requests = <140>;
567			dma-offset = <0>;
568			status = "disabled";
569		};
570
571		gpdma2: dma@40021000 {
572			compatible = "st,stm32u5-dma";
573			#dma-cells = <3>;
574			reg = <0x40021000 0x1000>;
575			interrupts = <90 0 91 0 92 0 93 0 94 0 95 0 96 0 97 0>;
576			clocks = <&rcc STM32_CLOCK(AHB1, 1U)>;
577			dma-channels = <8>;
578			dma-requests = <140>;
579			dma-offset = <8>;
580			status = "disabled";
581		};
582
583		i2s1: i2s@40013000 {
584			compatible = "st,stm32h7-i2s", "st,stm32-i2s";
585			#address-cells = <1>;
586			#size-cells = <0>;
587			reg = <0x40013000 0x400>;
588			clocks = <&rcc STM32_CLOCK(APB2, 12U)>,
589				<&rcc STM32_SRC_PLL1_Q SPI1_SEL(0)>;
590			dmas = <&gpdma1 0 7 (STM32_DMA_PERIPH_TX |STM32_DMA_16BITS | \
591					STM32_DMA_PRIORITY_HIGH)
592				&gpdma1 1 6 (STM32_DMA_PERIPH_RX | STM32_DMA_16BITS | \
593					STM32_DMA_PRIORITY_HIGH)>;
594			dma-names = "tx", "rx";
595			interrupts = <55 3>;
596			status = "disabled";
597		};
598
599		i2s2: i2s@40003800 {
600			compatible = "st,stm32h7-i2s", "st,stm32-i2s";
601			#address-cells = <1>;
602			#size-cells = <0>;
603			reg = <0x40003800 0x400>;
604			clocks = <&rcc STM32_CLOCK(APB1, 14U)>,
605				<&rcc STM32_SRC_PLL1_Q SPI2_SEL(0)>;
606			dmas = <&gpdma1 2 9 (STM32_DMA_PERIPH_TX | STM32_DMA_16BITS | \
607					STM32_DMA_PRIORITY_HIGH)
608				&gpdma1 3 8 (STM32_DMA_PERIPH_RX | STM32_DMA_16BITS | \
609					STM32_DMA_PRIORITY_HIGH)>;
610			dma-names = "tx", "rx";
611			interrupts = <56 3>;
612			status = "disabled";
613		};
614
615		i2s3: i2s@40003c00 {
616			compatible = "st,stm32h7-i2s", "st,stm32-i2s";
617			#address-cells = <1>;
618			#size-cells = <0>;
619			reg = <0x40003c00 0x400>;
620			clocks = <&rcc STM32_CLOCK(APB1, 15U)>,
621				<&rcc STM32_SRC_PLL1_Q SPI3_SEL(0)>;
622			dmas = <&gpdma1 4 11 (STM32_DMA_PERIPH_TX  | STM32_DMA_16BITS | \
623					STM32_DMA_PRIORITY_HIGH)
624				&gpdma1 5 10 (STM32_DMA_PERIPH_RX | STM32_DMA_16BITS | \
625					STM32_DMA_PRIORITY_HIGH)>;
626			dma-names = "tx", "rx";
627			interrupts = <57 3>;
628			status = "disabled";
629		};
630
631		usb: usb@40016000 {
632			compatible = "st,stm32-usb";
633			reg = <0x40016000 0x400>;
634			interrupts = <74 0>;
635			interrupt-names = "usb";
636			num-bidir-endpoints = <8>;
637			ram-size = <2048>;
638			phys = <&usb_fs_phy>;
639			clocks = <&rcc STM32_CLOCK(APB2, 24U)>,
640				 <&rcc STM32_SRC_HSI48 USB_SEL(3)>;
641			status = "disabled";
642		};
643
644		digi_die_temp: digi_dietemp@40008c00 {
645			compatible = "st,stm32-digi-temp";
646			reg = <0x40008c00 0x400>;
647			interrupts = <113 0>;
648			interrupt-names = "digi_temp";
649			clocks = <&rcc STM32_CLOCK(APB1_2, 3U)>;
650			status = "disabled";
651		};
652	};
653
654	die_temp: dietemp {
655		compatible = "st,stm32-temp-cal";
656		ts-cal1-addr = <0x08fff814>;
657		ts-cal2-addr = <0x08fff818>;
658		ts-cal1-temp = <30>;
659		ts-cal2-temp = <130>;
660		ts-cal-vrefanalog = <3300>;
661		ts-cal-resolution = <12>;
662		io-channels = <&adc1 16>;
663		status = "disabled";
664	};
665
666	vref: vref {
667		compatible = "st,stm32-vref";
668		vrefint-cal-addr = <0x08FFF810>;
669		vrefint-cal-mv = <3300>;
670		io-channels = <&adc1 17>;
671		status = "disabled";
672	};
673
674	vbat: vbat {
675		compatible = "st,stm32-vbat";
676		ratio = <4>;
677		io-channels = <&adc1 2>;
678		status = "disabled";
679	};
680
681	usb_fs_phy: usbphy {
682		compatible = "usb-nop-xceiv";
683		#phy-cells = <0>;
684	};
685
686	smbus1: smbus1 {
687		compatible = "st,stm32-smbus";
688		#address-cells = <1>;
689		#size-cells = <0>;
690		i2c = <&i2c1>;
691		status = "disabled";
692	};
693
694	smbus2: smbus2 {
695		compatible = "st,stm32-smbus";
696		#address-cells = <1>;
697		#size-cells = <0>;
698		i2c = <&i2c2>;
699		status = "disabled";
700	};
701};
702
703&nvic {
704	arm,num-irq-priority-bits = <4>;
705};
706