Skip to content

Commit eb6224f

Browse files
author
Amneesh Singh
committed
am243x_evm/am2434/r5f0_0: change ADC reference
Change the ADC reference for channels from internal to VDD. Additionally, move the child nodes for ADC from board device tree to ADC sample overlays as the board should not define any channels by default. Signed-off-by: Amneesh Singh <[email protected]>
1 parent dc140c0 commit eb6224f

File tree

5 files changed

+140
-96
lines changed

5 files changed

+140
-96
lines changed

boards/ti/am243x_evm/am243x_evm_am2434_r5f0_0.dts

Lines changed: 0 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424

2525
aliases {
2626
led0 = &ld26;
27-
adc0 = &adc0;
2827
};
2928

3029
leds: leds {
@@ -89,89 +88,8 @@
8988
};
9089

9190
&adc0 {
92-
ti,vrefp = <1800>;
9391
ti,fifo = <0>;
9492
status = "okay";
95-
96-
channel@0 {
97-
reg = <0>;
98-
ti,open-delay = <0>;
99-
zephyr,gain = "ADC_GAIN_1";
100-
zephyr,reference = "ADC_REF_INTERNAL";
101-
zephyr,acquisition-time = <0>;
102-
zephyr,resolution = <12>;
103-
zephyr,oversampling = <4>;
104-
};
105-
106-
channel@1 {
107-
reg = <1>;
108-
ti,open-delay = <0>;
109-
zephyr,gain = "ADC_GAIN_1";
110-
zephyr,reference = "ADC_REF_INTERNAL";
111-
zephyr,acquisition-time = <0>;
112-
zephyr,resolution = <12>;
113-
zephyr,oversampling = <4>;
114-
};
115-
116-
channel@2 {
117-
reg = <2>;
118-
ti,open-delay = <0>;
119-
zephyr,gain = "ADC_GAIN_1";
120-
zephyr,reference = "ADC_REF_INTERNAL";
121-
zephyr,acquisition-time = <0>;
122-
zephyr,resolution = <12>;
123-
zephyr,oversampling = <4>;
124-
};
125-
126-
channel@3 {
127-
reg = <3>;
128-
ti,open-delay = <0>;
129-
zephyr,gain = "ADC_GAIN_1";
130-
zephyr,reference = "ADC_REF_INTERNAL";
131-
zephyr,acquisition-time = <0>;
132-
zephyr,resolution = <12>;
133-
zephyr,oversampling = <4>;
134-
};
135-
136-
channel@4 {
137-
reg = <4>;
138-
ti,open-delay = <0>;
139-
zephyr,gain = "ADC_GAIN_1";
140-
zephyr,reference = "ADC_REF_INTERNAL";
141-
zephyr,acquisition-time = <0>;
142-
zephyr,resolution = <12>;
143-
zephyr,oversampling = <4>;
144-
};
145-
146-
channel@5 {
147-
reg = <5>;
148-
ti,open-delay = <0>;
149-
zephyr,gain = "ADC_GAIN_1";
150-
zephyr,reference = "ADC_REF_INTERNAL";
151-
zephyr,acquisition-time = <0>;
152-
zephyr,resolution = <12>;
153-
zephyr,oversampling = <4>;
154-
};
155-
156-
channel@6 {
157-
reg = <6>;
158-
ti,open-delay = <0>;
159-
zephyr,gain = "ADC_GAIN_1";
160-
zephyr,reference = "ADC_REF_INTERNAL";
161-
zephyr,acquisition-time = <0>;
162-
zephyr,resolution = <12>;
163-
zephyr,oversampling = <4>;
164-
};
165-
166-
channel@7 {
167-
reg = <7>;
168-
ti,open-delay = <0>;
169-
zephyr,gain = "ADC_GAIN_1";
170-
zephyr,reference = "ADC_REF_INTERNAL";
171-
zephyr,acquisition-time = <0>;
172-
zephyr,resolution = <12>;
173-
zephyr,oversampling = <4>;
174-
};
17593
};
17694

17795
&mbox6 {

drivers/adc/adc_ti_am335x.c

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,11 @@ static int ti_adc_channel_setup(const struct device *dev, const struct adc_chann
186186
return -EINVAL;
187187
}
188188

189+
if (chan_cfg->reference != ADC_REF_VDD_1) {
190+
LOG_ERR("Invalid channel reference");
191+
return -EINVAL;
192+
}
193+
189194
if (chan_cfg->gain != ADC_GAIN_1) {
190195
LOG_ERR("Gain must be 1x");
191196
return -EINVAL;
@@ -370,13 +375,15 @@ static void ti_adc_isr(const struct device *dev)
370375

371376
#define CHAN_PROP_LIST(n, prop) {DT_INST_FOREACH_CHILD_SEP_VARGS(n, EXPLICIT_CHAN_PROP, (,), prop)}
372377

378+
static DEVICE_API(adc, ti_adc_driver_api) = {
379+
.channel_setup = ti_adc_channel_setup,
380+
.read = ti_adc_read,
381+
#ifdef CONFIG_ADC_ASYNC
382+
.read_async = ti_adc_read_async,
383+
#endif /* CONFIG_ADC_ASYNC */
384+
};
385+
373386
#define TI_ADC_INIT(n) \
374-
static DEVICE_API(adc, ti_adc_driver_api_##n) = { \
375-
.channel_setup = ti_adc_channel_setup, \
376-
.read = ti_adc_read, \
377-
.ref_internal = DT_INST_PROP(n, ti_vrefp), \
378-
IF_ENABLED(CONFIG_ADC_ASYNC, (.read_async = ti_adc_read_async,)) }; \
379-
\
380387
static void ti_adc_irq_setup_##n(const struct device *dev) \
381388
{ \
382389
IRQ_CONNECT(DT_INST_IRQN(n), DT_INST_IRQ(n, priority), ti_adc_isr, \
@@ -400,6 +407,6 @@ static void ti_adc_isr(const struct device *dev)
400407
}; \
401408
\
402409
DEVICE_DT_INST_DEFINE(n, &ti_adc_init, NULL, &ti_adc_data_##n, &ti_adc_cfg_##n, \
403-
POST_KERNEL, CONFIG_ADC_INIT_PRIORITY, &ti_adc_driver_api_##n);
410+
POST_KERNEL, CONFIG_ADC_INIT_PRIORITY, &ti_adc_driver_api);
404411

405412
DT_INST_FOREACH_STATUS_OKAY(TI_ADC_INIT)

dts/bindings/adc/ti,am335x-adc.yaml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,6 @@ properties:
1212
interrupts:
1313
required: true
1414

15-
ti,vrefp:
16-
type: int
17-
required: true
18-
description: Reference Voltage (in mV)
19-
2015
ti,fifo:
2116
type: int
2217
required: true

samples/drivers/adc/adc_dt/boards/am243x_evm_am2434_r5f0_0.overlay

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,30 @@
66

77
/ {
88
zephyr,user {
9-
io-channels = <&adc0 0>, <&adc0 1>, <&adc0 2>, <&adc0 3>, <&adc0 4>, <&adc0 5>,
10-
<&adc0 6>, <&adc0 7>;
9+
io-channels = <&adc0 0>, <&adc0 7>;
10+
};
11+
};
12+
13+
&adc0 {
14+
channel@0 {
15+
reg = <0>;
16+
ti,open-delay = <0>;
17+
zephyr,gain = "ADC_GAIN_1";
18+
zephyr,reference = "ADC_REF_VDD_1";
19+
zephyr,acquisition-time = <0>;
20+
zephyr,resolution = <12>;
21+
zephyr,oversampling = <4>;
22+
zephyr,vref-mv = <1800>;
23+
};
24+
25+
channel@7 {
26+
reg = <7>;
27+
ti,open-delay = <0>;
28+
zephyr,gain = "ADC_GAIN_1";
29+
zephyr,reference = "ADC_REF_VDD_1";
30+
zephyr,acquisition-time = <0>;
31+
zephyr,resolution = <12>;
32+
zephyr,oversampling = <4>;
33+
zephyr,vref-mv = <1800>;
1134
};
1235
};
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
/*
2+
* Copyright (c) 2025 Texas Instruments
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
/ {
8+
aliases {
9+
adc0 = &adc0;
10+
};
11+
};
12+
13+
&adc0 {
14+
channel@0 {
15+
reg = <0>;
16+
ti,open-delay = <0>;
17+
zephyr,gain = "ADC_GAIN_1";
18+
zephyr,reference = "ADC_REF_VDD_1";
19+
zephyr,acquisition-time = <0>;
20+
zephyr,resolution = <12>;
21+
zephyr,oversampling = <4>;
22+
zephyr,vref-mv = <1800>;
23+
};
24+
25+
channel@1 {
26+
reg = <1>;
27+
ti,open-delay = <0>;
28+
zephyr,gain = "ADC_GAIN_1";
29+
zephyr,reference = "ADC_REF_VDD_1";
30+
zephyr,acquisition-time = <0>;
31+
zephyr,resolution = <12>;
32+
zephyr,oversampling = <4>;
33+
zephyr,vref-mv = <1800>;
34+
};
35+
36+
channel@2 {
37+
reg = <2>;
38+
ti,open-delay = <0>;
39+
zephyr,gain = "ADC_GAIN_1";
40+
zephyr,reference = "ADC_REF_VDD_1";
41+
zephyr,acquisition-time = <0>;
42+
zephyr,resolution = <12>;
43+
zephyr,oversampling = <4>;
44+
zephyr,vref-mv = <1800>;
45+
};
46+
47+
channel@3 {
48+
reg = <3>;
49+
ti,open-delay = <0>;
50+
zephyr,gain = "ADC_GAIN_1";
51+
zephyr,reference = "ADC_REF_VDD_1";
52+
zephyr,acquisition-time = <0>;
53+
zephyr,resolution = <12>;
54+
zephyr,oversampling = <4>;
55+
zephyr,vref-mv = <1800>;
56+
};
57+
58+
channel@4 {
59+
reg = <4>;
60+
ti,open-delay = <0>;
61+
zephyr,gain = "ADC_GAIN_1";
62+
zephyr,reference = "ADC_REF_VDD_1";
63+
zephyr,acquisition-time = <0>;
64+
zephyr,resolution = <12>;
65+
zephyr,oversampling = <4>;
66+
zephyr,vref-mv = <1800>;
67+
};
68+
69+
channel@5 {
70+
reg = <5>;
71+
ti,open-delay = <0>;
72+
zephyr,gain = "ADC_GAIN_1";
73+
zephyr,reference = "ADC_REF_VDD_1";
74+
zephyr,acquisition-time = <0>;
75+
zephyr,resolution = <12>;
76+
zephyr,oversampling = <4>;
77+
zephyr,vref-mv = <1800>;
78+
};
79+
80+
channel@6 {
81+
reg = <6>;
82+
ti,open-delay = <0>;
83+
zephyr,gain = "ADC_GAIN_1";
84+
zephyr,reference = "ADC_REF_VDD_1";
85+
zephyr,acquisition-time = <0>;
86+
zephyr,resolution = <12>;
87+
zephyr,oversampling = <4>;
88+
zephyr,vref-mv = <1800>;
89+
};
90+
91+
channel@7 {
92+
reg = <7>;
93+
ti,open-delay = <0>;
94+
zephyr,gain = "ADC_GAIN_1";
95+
zephyr,reference = "ADC_REF_VDD_1";
96+
zephyr,acquisition-time = <0>;
97+
zephyr,resolution = <12>;
98+
zephyr,oversampling = <4>;
99+
zephyr,vref-mv = <1800>;
100+
};
101+
};

0 commit comments

Comments
 (0)