1/*
2 * Copyright (c) 2017 Linaro Limited
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#include <st/f3/stm32f3.dtsi>
8#include <zephyr/dt-bindings/adc/stm32f1_adc.h>
9
10/ {
11	soc {
12		compatible = "st,stm32f373", "st,stm32f3", "simple-bus";
13
14		rcc: rcc@40021000 {
15			/*
16			 * Use the STM32F1 compatible that define the same ADC
17			 * prescaler in the RCC register
18			 */
19			compatible = "st,stm32f1-rcc";
20		};
21
22		pinctrl: pin-controller@48000000 {
23			gpioe: gpio@48001000 {
24				compatible = "st,stm32-gpio";
25				gpio-controller;
26				#gpio-cells = <2>;
27				reg = <0x48001000 0x400>;
28				clocks = <&rcc STM32_CLOCK_BUS_AHB1 0x00200000>;
29			};
30		};
31
32		i2c2: i2c@40005800 {
33			compatible = "st,stm32-i2c-v2";
34			clock-frequency = <I2C_BITRATE_STANDARD>;
35			#address-cells = <1>;
36			#size-cells = <0>;
37			reg = <0x40005800 0x400>;
38			clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00400000>,
39				 /* I2C clock source should always be defined,
40				  * even for the default value
41				  */
42				 <&rcc STM32_SRC_SYSCLK I2C2_SEL(1)>;
43			interrupts = <33 0>, <34 0>;
44			interrupt-names = "event", "error";
45			status = "disabled";
46		};
47
48		spi2: spi@40003800 {
49			compatible = "st,stm32-spi-fifo", "st,stm32-spi";
50			#address-cells = <1>;
51			#size-cells = <0>;
52			reg = <0x40003800 0x400>;
53			clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00004000>;
54			interrupts = <36 5>;
55			status = "disabled";
56		};
57
58		spi3: spi@40003c00 {
59			compatible = "st,stm32-spi-fifo", "st,stm32-spi";
60			#address-cells = <1>;
61			#size-cells = <0>;
62			reg = <0x40003c00 0x400>;
63			clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00008000>;
64			interrupts = <51 5>;
65			status = "disabled";
66		};
67
68		timers4: timers@40000800 {
69			compatible = "st,stm32-timers";
70			reg = <0x40000800 0x400>;
71			clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000004>;
72			resets = <&rctl STM32_RESET(APB1, 2U)>;
73			interrupts = <30 0>;
74			interrupt-names = "global";
75			st,prescaler = <0>;
76			status = "disabled";
77
78			pwm {
79				compatible = "st,stm32-pwm";
80				status = "disabled";
81				#pwm-cells = <3>;
82			};
83		};
84
85		timers5: timers@40000c00 {
86			compatible = "st,stm32-timers";
87			reg = <0x40000c00 0x400>;
88			clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000008>;
89			resets = <&rctl STM32_RESET(APB1, 3U)>;
90			interrupts = <50 0>;
91			interrupt-names = "global";
92			st,prescaler = <0>;
93			status = "disabled";
94
95			pwm {
96				compatible = "st,stm32-pwm";
97				status = "disabled";
98				#pwm-cells = <3>;
99			};
100		};
101
102		timers12: timers@40001800 {
103			compatible = "st,stm32-timers";
104			reg = <0x40001800 0x400>;
105			clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000040>;
106			resets = <&rctl STM32_RESET(APB1, 6U)>;
107			interrupts = <43 0>;
108			interrupt-names = "global";
109			st,prescaler = <0>;
110			status = "disabled";
111
112			pwm {
113				compatible = "st,stm32-pwm";
114				status = "disabled";
115				#pwm-cells = <3>;
116			};
117		};
118
119		timers13: timers@40001c00 {
120			compatible = "st,stm32-timers";
121			reg = <0x40001c00 0x400>;
122			clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000080>;
123			resets = <&rctl STM32_RESET(APB1, 7U)>;
124			interrupts = <44 0>;
125			interrupt-names = "global";
126			st,prescaler = <0>;
127			status = "disabled";
128
129			pwm {
130				compatible = "st,stm32-pwm";
131				status = "disabled";
132				#pwm-cells = <3>;
133			};
134		};
135
136		timers14: timers@40002000 {
137			compatible = "st,stm32-timers";
138			reg = <0x40002000 0x400>;
139			clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000100>;
140			resets = <&rctl STM32_RESET(APB1, 8U)>;
141			interrupts = <45 0>;
142			interrupt-names = "global";
143			st,prescaler = <0>;
144			status = "disabled";
145
146			pwm {
147				compatible = "st,stm32-pwm";
148				status = "disabled";
149				#pwm-cells = <3>;
150			};
151		};
152
153		timers18: timers@40009c00 {
154			compatible = "st,stm32-timers";
155			reg = <0x40009c00 0x400>;
156			clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000200>;
157			resets = <&rctl STM32_RESET(APB1, 9U)>;
158			interrupts = <27 0>;
159			interrupt-names = "global";
160			st,prescaler = <0>;
161			status = "disabled";
162
163			pwm {
164				compatible = "st,stm32-pwm";
165				status = "disabled";
166				#pwm-cells = <3>;
167			};
168		};
169
170		timers19: timers@40015c00 {
171			compatible = "st,stm32-timers";
172			reg = <0x40015c00 0x400>;
173			clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00080000>;
174			resets = <&rctl STM32_RESET(APB2, 19U)>;
175			interrupts = <78 0>;
176			interrupt-names = "global";
177			st,prescaler = <0>;
178			status = "disabled";
179
180			pwm {
181				compatible = "st,stm32-pwm";
182				status = "disabled";
183				#pwm-cells = <3>;
184			};
185		};
186
187		adc1: adc@40012400 {
188			compatible = "st,stm32f1-adc", "st,stm32-adc";
189			reg = <0x40012400 0x400>;
190			clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00000200>;
191			interrupts = <18 0>;
192			status = "disabled";
193			#io-channel-cells = <1>;
194			resolutions = <STM32F1_ADC_RES(12)>;
195			sampling-times = <2 8 14 29 42 56 72 240>;
196			st,adc-sequencer = <FULLY_CONFIGURABLE>;
197		};
198
199		rtc@40002800 {
200			bbram: backup_regs {
201				compatible = "st,stm32-bbram";
202				st,backup-regs = <32>;
203				status = "disabled";
204			};
205		};
206	};
207
208	vref: vref {
209		io-channels = <&adc1 17>;
210	};
211
212	vbat: vbat {
213		io-channels = <&adc1 18>;
214	};
215};
216