Skip to content

Commit 490cc1e

Browse files
committed
tests: drivers: i2c: Add test that validates all TWIM instances
Add basic test which checks that all available TWIM instances: - are defined in the board DTS, - are supported by the driver, - can be configured. Test doesn't check parallel operation. Signed-off-by: Sebastian Głąb <[email protected]>
1 parent 02c5b98 commit 490cc1e

File tree

9 files changed

+613
-0
lines changed

9 files changed

+613
-0
lines changed

scripts/ci/tags.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1383,6 +1383,17 @@ ci_tests_drivers_gpio:
13831383
- zephyr/drivers/gpio/
13841384
- zephyr/soc/nordic/
13851385

1386+
ci_tests_drivers_i2c:
1387+
files:
1388+
- nrf/tests/drivers/i2c/
1389+
- zephyr/drivers/i2c/Kconfig.nrfx
1390+
- zephyr/drivers/i2c/i2c_nrfx_twim.c
1391+
- zephyr/drivers/i2c/i2c_nrfx_twim_rtio.c
1392+
- zephyr/drivers/i2c/i2c_nrfx_twis.c
1393+
- zephyr/modules/hal_nordic/nrfx/Kconfig
1394+
- zephyr/modules/hal_nordic/nrfx/nrfx_kconfig.h
1395+
- zephyr/soc/nordic/common/Kconfig.peripherals
1396+
13861397
ci_tests_drivers_watchdog:
13871398
files:
13881399
- nrf/tests/drivers/watchdog/
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
2+
3+
cmake_minimum_required(VERSION 3.20.0)
4+
5+
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
6+
project(twim_instances)
7+
8+
FILE(GLOB app_sources src/*.c)
9+
target_sources(app PRIVATE ${app_sources})
Lines changed: 194 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,194 @@
1+
/*
2+
* Copyright (c) 2025 Nordic Semiconductor ASA
3+
*
4+
* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5+
*/
6+
7+
&pinctrl {
8+
i2c130_default_test: i2c130_default_test {
9+
group1 {
10+
psels = <NRF_PSEL(TWIM_SDA, 9, 5)>,
11+
<NRF_PSEL(TWIM_SCL, 9, 4)>;
12+
};
13+
};
14+
15+
i2c130_sleep_test: i2c130_sleep_test {
16+
group1 {
17+
psels = <NRF_PSEL(TWIM_SDA, 9, 5)>,
18+
<NRF_PSEL(TWIM_SCL, 9, 4)>;
19+
low-power-enable;
20+
};
21+
};
22+
23+
i2c131_default_test: i2c131_default_test {
24+
group1 {
25+
psels = <NRF_PSEL(TWIM_SDA, 9, 0)>,
26+
<NRF_PSEL(TWIM_SCL, 9, 1)>;
27+
bias-pull-up;
28+
};
29+
};
30+
31+
i2c131_sleep_test: i2c131_sleep_test {
32+
group1 {
33+
psels = <NRF_PSEL(TWIM_SDA, 9, 0)>,
34+
<NRF_PSEL(TWIM_SCL, 9, 1)>;
35+
low-power-enable;
36+
};
37+
};
38+
39+
i2c132_default_test: i2c132_default_test {
40+
group1 {
41+
psels = <NRF_PSEL(TWIM_SDA, 0, 5)>,
42+
<NRF_PSEL(TWIM_SCL, 0, 0)>;
43+
bias-pull-up;
44+
};
45+
};
46+
47+
i2c132_sleep_test: i2c132_sleep_test {
48+
group1 {
49+
psels = <NRF_PSEL(TWIM_SDA, 0, 5)>,
50+
<NRF_PSEL(TWIM_SCL, 0, 0)>;
51+
low-power-enable;
52+
};
53+
};
54+
55+
i2c133_default_test: i2c133_default_test {
56+
group1 {
57+
psels = <NRF_PSEL(TWIM_SDA, 0, 6)>,
58+
<NRF_PSEL(TWIM_SCL, 0, 2)>;
59+
bias-pull-up;
60+
};
61+
};
62+
63+
i2c133_sleep_test: i2c133_sleep_test {
64+
group1 {
65+
psels = <NRF_PSEL(TWIM_SDA, 0, 6)>,
66+
<NRF_PSEL(TWIM_SCL, 0, 2)>;
67+
low-power-enable;
68+
};
69+
};
70+
71+
i2c134_default_test: i2c134_default_test {
72+
group1 {
73+
psels = <NRF_PSEL(TWIM_SDA, 0, 8)>,
74+
<NRF_PSEL(TWIM_SCL, 1, 0)>;
75+
bias-pull-up;
76+
};
77+
};
78+
79+
i2c134_sleep_test: i2c134_sleep_test {
80+
group1 {
81+
psels = <NRF_PSEL(TWIM_SDA, 0, 8)>,
82+
<NRF_PSEL(TWIM_SCL, 1, 0)>;
83+
low-power-enable;
84+
};
85+
};
86+
87+
i2c135_default_test: i2c135_default_test {
88+
group1 {
89+
psels = <NRF_PSEL(TWIM_SDA, 0, 10)>,
90+
<NRF_PSEL(TWIM_SCL, 1, 2)>;
91+
bias-pull-up;
92+
};
93+
};
94+
95+
i2c135_sleep_test: i2c135_sleep_test {
96+
group1 {
97+
psels = <NRF_PSEL(TWIM_SDA, 0, 10)>,
98+
<NRF_PSEL(TWIM_SCL, 1, 2)>;
99+
low-power-enable;
100+
};
101+
};
102+
103+
i2c137_default_test: i2c137_default_test {
104+
group1 {
105+
psels = <NRF_PSEL(TWIM_SDA, 2, 8)>,
106+
<NRF_PSEL(TWIM_SCL, 2, 0)>;
107+
bias-pull-up;
108+
};
109+
};
110+
111+
i2c137_sleep_test: i2c137_sleep_test {
112+
group1 {
113+
psels = <NRF_PSEL(TWIM_SDA, 2, 10)>,
114+
<NRF_PSEL(TWIM_SCL, 2, 0)>;
115+
low-power-enable;
116+
};
117+
};
118+
};
119+
120+
&can120 {
121+
status = "disabled";
122+
};
123+
124+
&i2c130 {
125+
compatible = "nordic,nrf-twim";
126+
status = "okay";
127+
pinctrl-0 = <&i2c130_default_test>;
128+
pinctrl-1 = <&i2c130_sleep_test>;
129+
pinctrl-names = "default", "sleep";
130+
memory-regions = <&cpuapp_dma_region>;
131+
zephyr,concat-buf-size = <512>;
132+
};
133+
134+
&i2c131 {
135+
compatible = "nordic,nrf-twim";
136+
status = "okay";
137+
pinctrl-0 = <&i2c131_default_test>;
138+
pinctrl-1 = <&i2c131_sleep_test>;
139+
pinctrl-names = "default", "sleep";
140+
memory-regions = <&cpuapp_dma_region>;
141+
zephyr,concat-buf-size = <512>;
142+
};
143+
144+
&i2c132 {
145+
compatible = "nordic,nrf-twim";
146+
status = "okay";
147+
pinctrl-0 = <&i2c132_default_test>;
148+
pinctrl-1 = <&i2c132_sleep_test>;
149+
pinctrl-names = "default", "sleep";
150+
memory-regions = <&cpuapp_dma_region>;
151+
zephyr,concat-buf-size = <512>;
152+
};
153+
154+
&i2c133 {
155+
compatible = "nordic,nrf-twim";
156+
status = "okay";
157+
pinctrl-0 = <&i2c133_default_test>;
158+
pinctrl-1 = <&i2c133_sleep_test>;
159+
pinctrl-names = "default", "sleep";
160+
memory-regions = <&cpuapp_dma_region>;
161+
zephyr,concat-buf-size = <512>;
162+
};
163+
164+
&i2c134 {
165+
compatible = "nordic,nrf-twim";
166+
status = "okay";
167+
pinctrl-0 = <&i2c134_default_test>;
168+
pinctrl-1 = <&i2c134_sleep_test>;
169+
pinctrl-names = "default", "sleep";
170+
memory-regions = <&cpuapp_dma_region>;
171+
zephyr,concat-buf-size = <512>;
172+
};
173+
174+
&i2c135 {
175+
compatible = "nordic,nrf-twim";
176+
status = "okay";
177+
pinctrl-0 = <&i2c135_default_test>;
178+
pinctrl-1 = <&i2c135_sleep_test>;
179+
pinctrl-names = "default", "sleep";
180+
memory-regions = <&cpuapp_dma_region>;
181+
zephyr,concat-buf-size = <512>;
182+
};
183+
184+
/* i2c136 inaccessible due to console on uart136 */
185+
186+
&i2c137 {
187+
compatible = "nordic,nrf-twim";
188+
status = "okay";
189+
pinctrl-0 = <&i2c137_default_test>;
190+
pinctrl-1 = <&i2c137_sleep_test>;
191+
pinctrl-names = "default", "sleep";
192+
memory-regions = <&cpuapp_dma_region>;
193+
zephyr,concat-buf-size = <512>;
194+
};
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
/*
2+
* Copyright (c) 2025 Nordic Semiconductor ASA
3+
*
4+
* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5+
*/
6+
7+
&pinctrl {
8+
i2c21_default_test: i2c21_default_test {
9+
group1 {
10+
psels = <NRF_PSEL(TWIM_SDA, 1, 2)>,
11+
<NRF_PSEL(TWIM_SCL, 1, 8)>;
12+
};
13+
};
14+
15+
i2c21_sleep_test: i2c21_sleep_test {
16+
group1 {
17+
psels = <NRF_PSEL(TWIM_SDA, 1, 2)>,
18+
<NRF_PSEL(TWIM_SCL, 1, 8)>;
19+
low-power-enable;
20+
};
21+
};
22+
23+
i2c22_default_test: i2c22_default_test {
24+
group1 {
25+
psels = <NRF_PSEL(TWIM_SDA, 1, 10)>,
26+
<NRF_PSEL(TWIM_SCL, 1, 12)>;
27+
bias-pull-up;
28+
};
29+
};
30+
31+
i2c22_sleep_test: i2c22_sleep_test {
32+
group1 {
33+
psels = <NRF_PSEL(TWIM_SDA, 1, 10)>,
34+
<NRF_PSEL(TWIM_SCL, 1, 12)>;
35+
low-power-enable;
36+
};
37+
};
38+
39+
i2c30_default_test: i2c30_default_test {
40+
group1 {
41+
psels = <NRF_PSEL(TWIM_SDA, 0, 0)>,
42+
<NRF_PSEL(TWIM_SCL, 0, 2)>;
43+
bias-pull-up;
44+
};
45+
};
46+
47+
i2c30_sleep_test: i2c30_sleep_test {
48+
group1 {
49+
psels = <NRF_PSEL(TWIM_SDA, 0, 0)>,
50+
<NRF_PSEL(TWIM_SCL, 0, 2)>;
51+
low-power-enable;
52+
};
53+
};
54+
};
55+
56+
&uicr {
57+
nfct-pins-as-gpios;
58+
};
59+
60+
/* i2c20 inaccessible due to console on uart20 */
61+
62+
&i2c21 {
63+
compatible = "nordic,nrf-twim";
64+
status = "okay";
65+
pinctrl-0 = <&i2c21_default_test>;
66+
pinctrl-1 = <&i2c21_sleep_test>;
67+
pinctrl-names = "default", "sleep";
68+
};
69+
70+
&i2c22 {
71+
compatible = "nordic,nrf-twim";
72+
status = "okay";
73+
pinctrl-0 = <&i2c22_default_test>;
74+
pinctrl-1 = <&i2c22_sleep_test>;
75+
pinctrl-names = "default", "sleep";
76+
};
77+
78+
&i2c30 {
79+
compatible = "nordic,nrf-twim";
80+
status = "okay";
81+
pinctrl-0 = <&i2c30_default_test>;
82+
pinctrl-1 = <&i2c30_sleep_test>;
83+
pinctrl-names = "default", "sleep";
84+
};

0 commit comments

Comments
 (0)