Skip to content

Commit 10baefb

Browse files
samples: adc: Add cy8ckit_041s_max overlays
Add device tree overlays for ADC samples on CY8CKIT-041S-MAX board. Configures ADC channels with pinctrl for analog inputs on the available header pins. Added overlays for: - adc_dt - adc_sequence - adc_api - adc_error_cases Signed-off-by: Braeden Lane <[email protected]>
1 parent a3a4e93 commit 10baefb

File tree

4 files changed

+298
-0
lines changed

4 files changed

+298
-0
lines changed
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
/*
2+
* Copyright (c) 2025 Infineon Technologies AG,
3+
* or an affiliate of Infineon Technologies AG.
4+
*
5+
* SPDX-License-Identifier: Apache-2.0
6+
*/
7+
8+
/*
9+
* ADC Channel Configuration for CY8CKIT-041S-MAX
10+
*
11+
* Test Setup:
12+
* - Connect 0.616V test voltage to specified pins
13+
* - Using internal 1.2V reference
14+
* - Tests SARMUX (direct GPIO) routing
15+
*
16+
* Physical Connections (Arduino headers):
17+
* - P2.2 (J2-5, A2): Connect to 0.616V (differential V+)
18+
* - P2.3 (J2-7, A3): Connect to GND (differential V-)
19+
* - P2.0 (J2-1, A0): Connect to 0.616V (single-ended)
20+
* - P2.4 (J3-1, A4): Connect to 0.616V (single-ended)
21+
*
22+
* Channel Pin(s) Routing Configuration Test Voltage
23+
* Channel 0 P2.2, P2.3 SARMUX 2/3 Differential V+=0.616V, V-=GND
24+
* Channel 1 P2.0 SARMUX 0 Single-ended 0.616V
25+
* Channel 2 P2.4 SARMUX 4 Single-ended 0.616V
26+
*/
27+
28+
#include <zephyr/dt-bindings/adc/adc.h>
29+
#include <zephyr/dt-bindings/pinctrl/ifx_cat1-pinctrl.h>
30+
31+
/ {
32+
zephyr,user {
33+
io-channels = <&adc0 0>, <&adc0 1>, <&adc0 2>;
34+
};
35+
};
36+
37+
&pinctrl {
38+
p2_2_adc: p2_2_adc {
39+
pinmux = <DT_CAT1_PINMUX(2, 2, HSIOM_SEL_GPIO)>;
40+
};
41+
42+
p2_3_adc: p2_3_adc {
43+
pinmux = <DT_CAT1_PINMUX(2, 3, HSIOM_SEL_GPIO)>;
44+
};
45+
46+
p2_0_adc: p2_0_adc {
47+
pinmux = <DT_CAT1_PINMUX(2, 0, HSIOM_SEL_GPIO)>;
48+
};
49+
50+
p2_4_adc: p2_4_adc {
51+
pinmux = <DT_CAT1_PINMUX(2, 4, HSIOM_SEL_GPIO)>;
52+
};
53+
};
54+
55+
&adc0 {
56+
status = "okay";
57+
vref-src = "internal"; /* Use internal 1.2V reference */
58+
pinctrl-0 = <&p2_2_adc &p2_3_adc &p2_0_adc &p2_4_adc>;
59+
pinctrl-names = "default";
60+
#address-cells = <1>;
61+
#size-cells = <0>;
62+
63+
channel@0 {
64+
reg = <0>;
65+
zephyr,gain = "ADC_GAIN_1";
66+
zephyr,differential;
67+
zephyr,reference = "ADC_REF_INTERNAL";
68+
zephyr,vref-mv = <1200>;
69+
zephyr,input-positive = <2>; /* SARMUX pin 2 = P2.2 (V+) */
70+
zephyr,input-negative = <3>; /* SARMUX pin 3 = P2.3 (V-) */
71+
zephyr,resolution = <12>;
72+
zephyr,oversampling = <0>;
73+
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
74+
};
75+
76+
channel@1 {
77+
reg = <1>;
78+
zephyr,gain = "ADC_GAIN_1";
79+
zephyr,reference = "ADC_REF_INTERNAL";
80+
zephyr,vref-mv = <1200>;
81+
zephyr,input-positive = <0>; /* SARMUX pin 0 = P2.0 */
82+
zephyr,resolution = <12>;
83+
zephyr,oversampling = <0>;
84+
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
85+
};
86+
87+
channel@2 {
88+
reg = <2>;
89+
zephyr,gain = "ADC_GAIN_1";
90+
zephyr,reference = "ADC_REF_INTERNAL";
91+
zephyr,vref-mv = <1200>;
92+
zephyr,input-positive = <4>; /* SARMUX pin 4 = P2.4 */
93+
zephyr,resolution = <12>;
94+
zephyr,oversampling = <0>;
95+
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
96+
};
97+
};
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
/*
2+
* Copyright (c) 2025 Infineon Technologies AG,
3+
* or an affiliate of Infineon Technologies AG.
4+
*
5+
* SPDX-License-Identifier: Apache-2.0
6+
*/
7+
8+
/*
9+
* ADC Channel Configuration for adc_sequence Sample
10+
* This overlay configures multiple ADC channels for sequential sampling.
11+
*
12+
* Test Setup:
13+
* - Connect P2.0 to a test voltage (e.g., 3.3V or variable)
14+
* - Connect P2.2 and P2.3 for differential measurement
15+
* - Connect GND for reference
16+
*/
17+
18+
#include <zephyr/dt-bindings/adc/adc.h>
19+
#include <zephyr/dt-bindings/pinctrl/ifx_cat1-pinctrl.h>
20+
21+
/ {
22+
aliases {
23+
adc0 = &adc0;
24+
};
25+
};
26+
27+
&pinctrl {
28+
p2_0_adc: p2_0_adc {
29+
pinmux = <DT_CAT1_PINMUX(2, 0, HSIOM_SEL_GPIO)>;
30+
};
31+
32+
p2_2_adc: p2_2_adc {
33+
pinmux = <DT_CAT1_PINMUX(2, 2, HSIOM_SEL_GPIO)>;
34+
};
35+
36+
p2_3_adc: p2_3_adc {
37+
pinmux = <DT_CAT1_PINMUX(2, 3, HSIOM_SEL_GPIO)>;
38+
};
39+
};
40+
41+
&adc0 {
42+
status = "okay";
43+
vref-src = "internal"; /* Use internal 1.2V reference */
44+
pinctrl-0 = <&p2_0_adc &p2_2_adc &p2_3_adc>;
45+
pinctrl-names = "default";
46+
#address-cells = <1>;
47+
#size-cells = <0>;
48+
49+
channel@0 {
50+
reg = <0>;
51+
zephyr,gain = "ADC_GAIN_1";
52+
zephyr,reference = "ADC_REF_INTERNAL";
53+
zephyr,vref-mv = <1200>;
54+
zephyr,input-positive = <0>; /* P2.0 - SARMUX direct */
55+
zephyr,resolution = <12>;
56+
zephyr,oversampling = <0>;
57+
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
58+
};
59+
60+
channel@1 {
61+
reg = <1>;
62+
zephyr,gain = "ADC_GAIN_1";
63+
zephyr,reference = "ADC_REF_INTERNAL";
64+
zephyr,vref-mv = <1200>;
65+
zephyr,differential;
66+
zephyr,input-positive = <2>; /* P2.2 */
67+
zephyr,input-negative = <3>; /* P2.3 */
68+
zephyr,resolution = <12>;
69+
zephyr,oversampling = <0>;
70+
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
71+
};
72+
};
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
/*
2+
* Copyright (c) 2025 Infineon Technologies AG,
3+
* or an affiliate of Infineon Technologies AG.
4+
*
5+
* SPDX-License-Identifier: Apache-2.0
6+
*/
7+
8+
/*
9+
* ADC Channel to GPIO Pin Mapping for Testing:
10+
*
11+
* Channel ADC Pin Routing Type GPIO Pin Test Pin (V+) Test Pin (V-)
12+
* Channel 0 0 SARMUX P2.0 P2.0 GND
13+
* Channel 1 2, 3 SARMUX (differential) P2.2 (V+), P2.3 (V-) P2.2 P2.3
14+
* Channel 2 4 SARMUX P2.4 P2.4 GND
15+
*/
16+
17+
#include <zephyr/dt-bindings/adc/adc.h>
18+
#include <zephyr/dt-bindings/pinctrl/ifx_cat1-pinctrl.h>
19+
20+
/ {
21+
zephyr,user {
22+
io-channels = <&adc0 0>, <&adc0 1>, <&adc0 2>;
23+
};
24+
};
25+
26+
&pinctrl {
27+
p2_0_adc: p2_0_adc {
28+
pinmux = <DT_CAT1_PINMUX(2, 0, HSIOM_SEL_GPIO)>;
29+
};
30+
31+
p2_2_adc: p2_2_adc {
32+
pinmux = <DT_CAT1_PINMUX(2, 2, HSIOM_SEL_GPIO)>;
33+
};
34+
35+
p2_3_adc: p2_3_adc {
36+
pinmux = <DT_CAT1_PINMUX(2, 3, HSIOM_SEL_GPIO)>;
37+
};
38+
39+
p2_4_adc: p2_4_adc {
40+
pinmux = <DT_CAT1_PINMUX(2, 4, HSIOM_SEL_GPIO)>;
41+
};
42+
};
43+
44+
&adc0 {
45+
status = "okay";
46+
vref-src = "internal";
47+
pinctrl-0 = <&p2_0_adc &p2_2_adc &p2_3_adc &p2_4_adc>;
48+
pinctrl-names = "default";
49+
#address-cells = <1>;
50+
#size-cells = <0>;
51+
52+
channel@0 {
53+
reg = <0>;
54+
zephyr,gain = "ADC_GAIN_1";
55+
zephyr,reference = "ADC_REF_INTERNAL";
56+
zephyr,vref-mv = <1200>;
57+
zephyr,input-positive = <0>;
58+
zephyr,resolution = <12>;
59+
zephyr,oversampling = <8>;
60+
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
61+
};
62+
63+
channel@1 {
64+
reg = <1>;
65+
zephyr,gain = "ADC_GAIN_1";
66+
zephyr,differential;
67+
zephyr,reference = "ADC_REF_INTERNAL";
68+
zephyr,vref-mv = <1200>;
69+
zephyr,input-positive = <2>;
70+
zephyr,input-negative = <3>;
71+
zephyr,resolution = <12>;
72+
zephyr,oversampling = <0>;
73+
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
74+
};
75+
76+
channel@2 {
77+
reg = <2>;
78+
zephyr,gain = "ADC_GAIN_1";
79+
zephyr,reference = "ADC_REF_INTERNAL";
80+
zephyr,vref-mv = <1200>;
81+
zephyr,input-positive = <4>;
82+
zephyr,resolution = <12>;
83+
zephyr,oversampling = <8>;
84+
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
85+
};
86+
};
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/*
2+
* Copyright (c) 2025 Infineon Technologies AG,
3+
* or an affiliate of Infineon Technologies AG.
4+
*
5+
* SPDX-License-Identifier: Apache-2.0
6+
*/
7+
8+
#include <zephyr/dt-bindings/adc/adc.h>
9+
#include <zephyr/dt-bindings/pinctrl/ifx_cat1-pinctrl.h>
10+
11+
/ {
12+
aliases {
13+
adc = &adc0;
14+
};
15+
16+
zephyr,user {
17+
io-channels = <&adc0 0>;
18+
};
19+
};
20+
21+
&pinctrl {
22+
p2_0_adc: p2_0_adc {
23+
pinmux = <DT_CAT1_PINMUX(2, 0, HSIOM_SEL_GPIO)>;
24+
};
25+
};
26+
27+
&adc0 {
28+
status = "okay";
29+
vref-src = "internal";
30+
pinctrl-0 = <&p2_0_adc>;
31+
pinctrl-names = "default";
32+
#address-cells = <1>;
33+
#size-cells = <0>;
34+
35+
channel@0 {
36+
reg = <0>;
37+
zephyr,gain = "ADC_GAIN_1";
38+
zephyr,reference = "ADC_REF_INTERNAL";
39+
zephyr,input-positive = <0>;
40+
zephyr,resolution = <12>;
41+
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
42+
};
43+
};

0 commit comments

Comments
 (0)