Skip to content

Commit 1f5a1b5

Browse files
fogzotnashif
authored andcommitted
boards: opta: ADC support
A valid device tree configuration is provided for the ADCs of the 8 input channels and the sample adc_dt works out of the box. Obviously this is not the only possible configuration but it provides a good template for further customization without the need to lookup the ADC GPIOs and connections in the schematics. Signed-off-by: Federico Di Gregorio <[email protected]>
1 parent f8ab959 commit 1f5a1b5

File tree

2 files changed

+130
-0
lines changed

2 files changed

+130
-0
lines changed

boards/arduino/opta/arduino_opta-common.dtsi

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,3 +103,101 @@
103103
re-gpios = <&gpiob 13 GPIO_ACTIVE_LOW>;
104104
};
105105
};
106+
107+
&adc1 {
108+
pinctrl-0 = <&adc1_inp0_pa0_c &adc1_inp6_pf12>;
109+
pinctrl-names = "default";
110+
st,adc-clock-source = <SYNC>;
111+
st,adc-prescaler = <4>;
112+
vref-mv = <10000>;
113+
114+
#address-cells = <1>;
115+
#size-cells = <0>;
116+
117+
a0: channel@0 {
118+
reg = <0>;
119+
zephyr,gain = "ADC_GAIN_1";
120+
zephyr,reference = "ADC_REF_INTERNAL";
121+
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
122+
zephyr,resolution = <16>;
123+
};
124+
125+
a2: channel@6 {
126+
reg = <6>;
127+
zephyr,gain = "ADC_GAIN_1";
128+
zephyr,reference = "ADC_REF_INTERNAL";
129+
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
130+
zephyr,resolution = <16>;
131+
};
132+
133+
};
134+
135+
&adc2 {
136+
pinctrl-0 = <&adc2_inp9_pb0>;
137+
pinctrl-names = "default";
138+
st,adc-clock-source = <SYNC>;
139+
st,adc-prescaler = <4>;
140+
vref-mv = <10000>;
141+
142+
#address-cells = <1>;
143+
#size-cells = <0>;
144+
145+
a3: channel@9 {
146+
reg = <9>;
147+
zephyr,gain = "ADC_GAIN_1";
148+
zephyr,reference = "ADC_REF_INTERNAL";
149+
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
150+
zephyr,resolution = <16>;
151+
};
152+
};
153+
154+
&adc3 {
155+
pinctrl-0 = <&adc3_inp6_pf10 &adc3_inp7_pf8 &adc3_inp8_pf6 &adc3_inp9_pf4 &adc3_inp0_pc2_c>;
156+
pinctrl-names = "default";
157+
st,adc-clock-source = <SYNC>;
158+
st,adc-prescaler = <4>;
159+
vref-mv = <10000>;
160+
161+
#address-cells = <1>;
162+
#size-cells = <0>;
163+
164+
a1: channel@0 {
165+
reg = <0>;
166+
zephyr,gain = "ADC_GAIN_1";
167+
zephyr,reference = "ADC_REF_INTERNAL";
168+
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
169+
zephyr,resolution = <16>;
170+
};
171+
172+
a4: channel@6 {
173+
reg = <6>;
174+
zephyr,gain = "ADC_GAIN_1";
175+
zephyr,reference = "ADC_REF_INTERNAL";
176+
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
177+
zephyr,resolution = <16>;
178+
};
179+
180+
a5: channel@7 {
181+
reg = <7>;
182+
zephyr,gain = "ADC_GAIN_1";
183+
zephyr,reference = "ADC_REF_INTERNAL";
184+
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
185+
zephyr,resolution = <16>;
186+
};
187+
188+
a6: channel@8 {
189+
reg = <8>;
190+
zephyr,gain = "ADC_GAIN_1";
191+
zephyr,reference = "ADC_REF_INTERNAL";
192+
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
193+
zephyr,resolution = <16>;
194+
};
195+
196+
a7: channel@9 {
197+
reg = <9>;
198+
zephyr,gain = "ADC_GAIN_1";
199+
zephyr,reference = "ADC_REF_INTERNAL";
200+
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
201+
zephyr,resolution = <16>;
202+
};
203+
};
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/*
2+
* Copyright (c) 2021 STMicroelectronics
3+
* Copyright (c) 2024 DNDG srl
4+
*
5+
* SPDX-License-Identifier: Apache-2.0
6+
*/
7+
8+
/ {
9+
zephyr,user {
10+
io-channels =
11+
<&adc1 0>, /* I1 */
12+
<&adc3 0>, /* I2 */
13+
<&adc1 6>, /* I3 */
14+
<&adc2 9>, /* I4 */
15+
<&adc3 6>, /* I5 */
16+
<&adc3 7>, /* I6 */
17+
<&adc3 8>, /* I7 */
18+
<&adc3 9>; /* I8 */
19+
};
20+
};
21+
22+
&adc1 {
23+
status ="okay";
24+
};
25+
26+
&adc2 {
27+
status ="okay";
28+
};
29+
30+
&adc3 {
31+
status = "okay";
32+
};

0 commit comments

Comments
 (0)