Skip to content

Commit 8ebc2f4

Browse files
FelixWang47831jhedberg
authored andcommitted
tests: drivers: pwm: pwm_loopback: test improvement.
Move TEST_PWM_PERIOD and TEST_PWM_PULSE to kconfig and update macro name with "CONFIG_" prefix. The default timing parameters may be too big for timer peripheral, because they have high frequence, can not generate such slow PWM wave. To keep compatibility, the default value in kconfig are consistent with the code. Signed-off-by: Felix Wang <[email protected]>
1 parent 190c6dd commit 8ebc2f4

File tree

2 files changed

+40
-20
lines changed

2 files changed

+40
-20
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Copyright 2025 NXP
2+
#
3+
# SPDX-License-Identifier: Apache-2.0
4+
5+
mainmenu "PWM loopback test"
6+
7+
config TEST_PWM_PERIOD_NSEC
8+
int "Test PWM period in nanoseconds"
9+
default 100000000
10+
11+
config TEST_PWM_PULSE_NSEC
12+
int "Test PWM pulse in nanoseconds"
13+
default 15000000
14+
15+
config TEST_PWM_PERIOD_USEC
16+
int "Test PWM period in microseconds"
17+
default 100000
18+
19+
config TEST_PWM_PULSE_USEC
20+
int "Test PWM pulse in microseconds"
21+
default 75000
22+
23+
source "Kconfig.zephyr"

tests/drivers/pwm/pwm_loopback/src/test_pwm_loopback.c

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,6 @@
1010

1111
#include "test_pwm_loopback.h"
1212

13-
#define TEST_PWM_PERIOD_NSEC 100000000
14-
#define TEST_PWM_PULSE_NSEC 15000000
15-
#define TEST_PWM_PERIOD_USEC 100000
16-
#define TEST_PWM_PULSE_USEC 75000
17-
1813
enum test_pwm_unit {
1914
TEST_PWM_UNIT_NSEC,
2015
TEST_PWM_UNIT_USEC,
@@ -107,50 +102,50 @@ static void test_capture(uint32_t period, uint32_t pulse, enum test_pwm_unit uni
107102

108103
ZTEST_USER(pwm_loopback, test_pulse_capture)
109104
{
110-
test_capture(TEST_PWM_PERIOD_NSEC, TEST_PWM_PULSE_NSEC,
105+
test_capture(CONFIG_TEST_PWM_PERIOD_NSEC, CONFIG_TEST_PWM_PULSE_NSEC,
111106
TEST_PWM_UNIT_NSEC,
112107
PWM_CAPTURE_TYPE_PULSE | PWM_POLARITY_NORMAL);
113-
test_capture(TEST_PWM_PERIOD_USEC, TEST_PWM_PULSE_USEC,
108+
test_capture(CONFIG_TEST_PWM_PERIOD_USEC, CONFIG_TEST_PWM_PULSE_USEC,
114109
TEST_PWM_UNIT_USEC,
115110
PWM_CAPTURE_TYPE_PULSE | PWM_POLARITY_NORMAL);
116111
}
117112

118113
ZTEST_USER(pwm_loopback, test_pulse_capture_inverted)
119114
{
120-
test_capture(TEST_PWM_PERIOD_NSEC, TEST_PWM_PULSE_NSEC,
115+
test_capture(CONFIG_TEST_PWM_PERIOD_NSEC, CONFIG_TEST_PWM_PULSE_NSEC,
121116
TEST_PWM_UNIT_NSEC,
122117
PWM_CAPTURE_TYPE_PULSE | PWM_POLARITY_INVERTED);
123-
test_capture(TEST_PWM_PERIOD_USEC, TEST_PWM_PULSE_USEC,
118+
test_capture(CONFIG_TEST_PWM_PERIOD_USEC, CONFIG_TEST_PWM_PULSE_USEC,
124119
TEST_PWM_UNIT_USEC,
125120
PWM_CAPTURE_TYPE_PULSE | PWM_POLARITY_INVERTED);
126121
}
127122

128123
ZTEST_USER(pwm_loopback, test_period_capture)
129124
{
130-
test_capture(TEST_PWM_PERIOD_NSEC, TEST_PWM_PULSE_NSEC,
125+
test_capture(CONFIG_TEST_PWM_PERIOD_NSEC, CONFIG_TEST_PWM_PULSE_NSEC,
131126
TEST_PWM_UNIT_NSEC,
132127
PWM_CAPTURE_TYPE_PERIOD | PWM_POLARITY_NORMAL);
133-
test_capture(TEST_PWM_PERIOD_USEC, TEST_PWM_PULSE_USEC,
128+
test_capture(CONFIG_TEST_PWM_PERIOD_USEC, CONFIG_TEST_PWM_PULSE_USEC,
134129
TEST_PWM_UNIT_USEC,
135130
PWM_CAPTURE_TYPE_PERIOD | PWM_POLARITY_NORMAL);
136131
}
137132

138133
ZTEST_USER(pwm_loopback, test_period_capture_inverted)
139134
{
140-
test_capture(TEST_PWM_PERIOD_NSEC, TEST_PWM_PULSE_NSEC,
135+
test_capture(CONFIG_TEST_PWM_PERIOD_NSEC, CONFIG_TEST_PWM_PULSE_NSEC,
141136
TEST_PWM_UNIT_NSEC,
142137
PWM_CAPTURE_TYPE_PERIOD | PWM_POLARITY_INVERTED);
143-
test_capture(TEST_PWM_PERIOD_USEC, TEST_PWM_PULSE_USEC,
138+
test_capture(CONFIG_TEST_PWM_PERIOD_USEC, CONFIG_TEST_PWM_PULSE_USEC,
144139
TEST_PWM_UNIT_USEC,
145140
PWM_CAPTURE_TYPE_PERIOD | PWM_POLARITY_INVERTED);
146141
}
147142

148143
ZTEST_USER(pwm_loopback, test_pulse_and_period_capture)
149144
{
150-
test_capture(TEST_PWM_PERIOD_NSEC, TEST_PWM_PULSE_NSEC,
145+
test_capture(CONFIG_TEST_PWM_PERIOD_NSEC, CONFIG_TEST_PWM_PULSE_NSEC,
151146
TEST_PWM_UNIT_NSEC,
152147
PWM_CAPTURE_TYPE_BOTH | PWM_POLARITY_NORMAL);
153-
test_capture(TEST_PWM_PERIOD_USEC, TEST_PWM_PULSE_USEC,
148+
test_capture(CONFIG_TEST_PWM_PERIOD_USEC, CONFIG_TEST_PWM_PULSE_USEC,
154149
TEST_PWM_UNIT_USEC,
155150
PWM_CAPTURE_TYPE_BOTH | PWM_POLARITY_NORMAL);
156151
}
@@ -234,8 +229,8 @@ ZTEST(pwm_loopback, test_continuous_capture)
234229
memset(buffer, 0, sizeof(buffer));
235230
k_sem_init(&data.sem, 0, 1);
236231

237-
err = pwm_set(out.dev, out.pwm, PWM_USEC(TEST_PWM_PERIOD_USEC),
238-
PWM_USEC(TEST_PWM_PULSE_USEC), out.flags);
232+
err = pwm_set(out.dev, out.pwm, PWM_USEC(CONFIG_TEST_PWM_PERIOD_USEC),
233+
PWM_USEC(CONFIG_TEST_PWM_PULSE_USEC), out.flags);
239234
zassert_equal(err, 0, "failed to set pwm output (err %d)", err);
240235

241236
err = pwm_configure_capture(in.dev, in.pwm,
@@ -259,7 +254,7 @@ ZTEST(pwm_loopback, test_continuous_capture)
259254
err = pwm_enable_capture(in.dev, in.pwm);
260255
zassert_equal(err, 0, "failed to enable pwm capture (err %d)", err);
261256

262-
err = k_sem_take(&data.sem, K_USEC(TEST_PWM_PERIOD_USEC * data.buffer_len * 10));
257+
err = k_sem_take(&data.sem, K_USEC(CONFIG_TEST_PWM_PERIOD_USEC * data.buffer_len * 10));
263258
zassert_equal(err, 0, "pwm capture timed out (err %d)", err);
264259
zassert_equal(data.status, 0, "pwm capture failed (err %d)", err);
265260

@@ -271,10 +266,12 @@ ZTEST(pwm_loopback, test_continuous_capture)
271266
zassert_equal(err, 0, "failed to calculate usec (err %d)", err);
272267

273268
if (data.pulse_capture) {
274-
zassert_within(usec, TEST_PWM_PULSE_USEC, TEST_PWM_PULSE_USEC / 100,
269+
zassert_within(usec, CONFIG_TEST_PWM_PULSE_USEC,
270+
CONFIG_TEST_PWM_PULSE_USEC / 100,
275271
"pulse capture off by more than 1%%");
276272
} else {
277-
zassert_within(usec, TEST_PWM_PERIOD_USEC, TEST_PWM_PERIOD_USEC / 100,
273+
zassert_within(usec, CONFIG_TEST_PWM_PERIOD_USEC,
274+
CONFIG_TEST_PWM_PERIOD_USEC / 100,
278275
"period capture off by more than 1%%");
279276
}
280277
}

0 commit comments

Comments
 (0)