Commit Graph

199 Commits

Author SHA1 Message Date
YuLong Yao
6060082914 tests: drivers: gpio: add esp32s3_luatos_core
add overlay and conf for esp32s3_luatos_core board

Signed-off-by: YuLong Yao <feilongphone@gmail.com>
2023-09-22 15:58:11 +02:00
Pavlo Havrylyuk
166d89c69e tests: drivers: Added overlays to tests for 063_ble
Fixed pinout in adc overlays to align with board
Allowed adc driver sample
Added overlay for gpio_basic_api test support
Added overlay for i2c_api test support

Signed-off-by: Pavlo Havrylyuk <pavlo.havrylyuk@infineon.com>
2023-09-20 20:23:20 +01:00
YuLong Yao
0c867d310c tests: drivers: gpio: add esp32c3_luatos_core
add overlay for esp32c3_luatos_core board

Signed-off-by: YuLong Yao <feilongphone@gmail.com>
2023-09-15 14:17:50 +02:00
Anisetti Avinash Krishna
88f0613686 tests: drivers: gpio: gpio_basic_api: Added intel_adl_crb overlay
Added overlay to enable GPIO tests on intel_adl_crb board.

Signed-off-by: Anisetti Avinash Krishna <anisetti.avinash.krishna@intel.com>
2023-08-29 10:24:03 +02:00
Manuel Argüelles
f9fb4fe234 tests: gpio: nxp_s32: enable get config/direction tests
Enable tests using pin_get_config() and port_get_direction()
GPIO APIs for NXP S32 boards.

Signed-off-by: Manuel Argüelles <manuel.arguelles@nxp.com>
2023-08-24 17:21:18 +02:00
Johan Hedberg
03905f7e55 boards: x86: Add intel_ prefix to Elkhart Lake boards
This follows the same convention that has already been adopted by Intel
Alder Lake and Raptor Lake boards.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2023-08-15 11:24:35 +00:00
Julio Cesar
5e15e8cb48 boards: xtensa: Add support for YD-ESP32 board
Add `yd_esp32` board:

- Model name: YD-ESP32
- Manufacturer: VCC-GND® Studio
- Espressif module: ESP32-WROOM-32E

Signed-off-by: Julio Cesar <hi@jcsx.dev>
2023-08-15 11:15:39 +00:00
Marek Matej
3776402f40 boards: xtensa: esp32 board split
Remove virtual esp32 board and replace it with the
real word boards:

- esp32_devkitc_wroom
- esp32_devkitc_wrover (with PSRAM option)

Signed-off-by: Marek Matej <marek.matej@espressif.com>
2023-07-25 18:12:33 +02:00
Andrey VOLKOV
abfd234060 tests: gpio: add tests for GPIO_DT_RESERVED_RANGES_NGPIOS et al
Added basic test coverage for the:

   * GPIO_DT_RESERVED_RANGES_NGPIOS,
   * GPIO_DT_RESERVED_RANGES,
   * GPIO_DT_INST_RESERVED_RANGES_NGPIOS,
   * GPIO_DT_INST_RESERVED_RANGES,
   * GPIO_DT_PORT_PIN_MASK_NGPIOS_EXC,
   * GPIO_PORT_PIN_MASK_FROM_DT_NODE,
   * GPIO_DT_INST_PORT_PIN_MASK_NGPIOS_EXC and
   * GPIO_PORT_PIN_MASK_FROM_DT_INST macros.

Signed-off-by: Andrey VOLKOV <andrey.volkov@munic.io>
2023-07-13 12:16:44 +02:00
Alberto Escolar Piedras
488396b8af test gpio_get_direction: Enable for nrf52_bsim
Add needed overlay so the test case run.

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2023-07-07 09:21:06 +02:00
Alberto Escolar Piedras
081c4647cd test gpio_basic_api: Enable for nrf52_bsim
Add DT and kconfig overlays for the nrf52_bsim so this test can be run
in this board too.
This simulated board supports short-circuiting pins
either programmatically or thru configuration files,
but it does not support a pull in an input being able to drag
a non driven output, so we need to skip the pull test.

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2023-07-07 09:21:06 +02:00
Alberto Escolar Piedras
970ba8294a tests gpio_hogs: Enable for nrf52_bsim
Add an overlay for the nrf52_bsim so this test can be run
in this board.

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2023-07-07 09:21:06 +02:00
Alberto Escolar Piedras
b83941db90 test gpio_basic_api: Add option to skip pulls test
Some boards configuration may not support the pulls test
even if the underlaying SOC driver does support the feature.
Add the option to skip that test.

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2023-07-07 09:21:06 +02:00
Manuel Arguelles
7319ba11f7 boards: arm: mr_canhubk3: add support for GPIO
Add GPIO support for mr_canhubk3 board and enable GPIO tests.

Signed-off-by: Manuel Argüelles <manuel.arguelles@nxp.com>
2023-07-06 14:19:23 -05:00
cyliang tw
0fd564ef7f drivers: gpio: support for Nuvoton numaker series GPIO
Add Nuvoton numaker series GPIO support, including interrupt mode and
also integrate clock control.

Signed-off-by: cyliang tw <cyliang@nuvoton.com>
2023-06-21 09:26:00 +00:00
Manimaran A
79ee5a876f drivers: gpio: Microchip MEC172x GPIO driver glitch fix
A glitch was observed if a GPIO PIN was configured to a
non-default state by ROM and then Zephyr programs the pin
for the same configuration. Root cause is GPIO hardware
implementing two output bits for each pin. The alternate
output bit is in the pin control register and is r/w by
default. The other bit exists in the GPIO parallel ouput
register and is read-only by default. The hardware actually
reflects the pin's output value into both bits. The fix is
to configure the pin with alternate output bit read-write
and the last step is to disable alternate output which
enabled read-write of the parallel bit. GPIO API's can
then use the GPIO parallel out registers. Add logic to
return an error from the GPIO interrupt configure API if
a pin is not configured as an input. Hardware only performs
interrupt detection if the input pad is enabled.
Hardware supports a pin being configured for both input
and output. Applications should add the GPIO_INPUT flag
to all pin configuration requiring interrupt detection.
The interpretation of input and output flags for the
get configuration API appears to be only one of the
flags can be set. Please refer to the GPIO driver tests.
Updated GPIO interrupt configure to clear the input pad
disable bit due to interrupt detection HW is connected
only to input side of pin.

Signed-off-by: Manimaran A <manimaran.a@microchip.com>
2023-05-16 18:52:44 -04:00
Gerard Marull-Paretas
93b63df762 samples, tests: convert string-based twister lists to YAML lists
Twister now supports using YAML lists for all fields that were written
as space-separated lists. Used twister_to_list.py script. Some artifacts
on string length are due to how ruamel dumps content.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2023-05-10 09:52:37 +02:00
Anas Nashif
326eb860b8 tests: gpio: be consistent with id across all drivers
change id from peripheral.gpio to drivers.gpio.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2023-04-19 08:57:57 -04:00
Tim Lin
bcb173becd tests: drivers: Unit test for it82xx2_evb board
The below is the unit test result for the driver and kernel of
it82xx2_evb board.

GPIO/gpio_basic_api: PASS
I2C/i2c_api: PASS
Flash: PASS
UART/uart_basic_api: PASS
PWM/pwm_api: PASS
WDT/wdt_basic_api: PASS
KSCAN/kscan_api: PASS
kernel/sched/schedule_api: PASS
kernel/sched/preempt: PASS
kernel/timer/timer_api: PASS
kernel/sleep: PASS
ADC/adc_api: PASS.
ADC note: conversion time~=61.6us
          sample time delay~=60us
          wait voltage stable time~=202.8us
Set sampling time to 500us will pass for ADC test.

Signed-off-by: Tim Lin <tim2.lin@ite.corp-partner.google.com>
2023-04-19 03:48:38 -04:00
Sung-Chi Li
d455b6dee0 tests: drivers: gpio: Add test for GPIO_ENABLE_DISABLE_INTERRUPT
Add test for the experimental feature GPIO_ENABLE_DISABLE_INTERRUPT,
which covers APIs gpio_pin_interrupt_enable() and
gpio_pin_interrupt_disable().

Signed-off-by: Sung-Chi Li <lschyi@google.com>
2023-04-06 11:44:07 -04:00
Lucas Tamborrino
0727cacd88 tests: drivers: gpio_basic_api: add overlays for esp32s2/c3/s3
Add support for the following boards:
- esp32s2_saola
- esp32c3_devkitm
- esp32s3_devkitm

Signed-off-by: Lucas Tamborrino <lucas.tamborrino@espressif.com>
2023-03-23 17:32:54 -04:00
Fabio Baltieri
2815f96440 drivers: move gpio_keys from gpio to input
Port the gpio_keys_zephyr driver from the gpio subsystem with a
dedicated API to the input subsystem reporting input events.

Move the test as well, simplify the cases a bit since the API is simpler
now.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2023-03-14 17:15:09 -04:00
Jay Vasanth
e56721b8f0 dts: gpio: Add Microchip XEC GPIO macros for use in device tree
Microchip XEC devices specify GPIO pin using octal numbering and
organize pins in banks of 32. Chip documentation does not use
bank naming rather naming each pin by its octal number. This has
led to the developer having to calculate the bit position of a pin
in its 32-bit bank when a specifying the pin for GPIO usage. We
created a set of defines for all possible GPIO pins that specify
the DT GPIO bank name used in the chip level DTSI files and the
bit position in that bank.

Signed-off-by: Jay Vasanth <jay.vasanth@microchip.com>
2023-03-02 13:52:03 +01:00
Gerard Marull-Paretas
49123a97f0 tests: drivers: gpio: basic_api: remove unused pinmux.h include
The test was not using the pinmux.h API.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2023-02-23 16:56:04 -05:00
Keith Short
51bd9dad96 tests: gpio_hogs: Fix the output low test
The output low test was checking the wrong GPIO spec handle.

Signed-off-by: Keith Short <keithshort@google.com>
2023-02-08 11:08:00 +01:00
Henrik Brix Andersen
8d4c6b96c4 tests: drivers: gpio: add GPIO hogs test
Add test of the GPIO hog functionality using the optional GPIO APIs for
getting pin direction and configuration.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2023-01-27 14:38:52 -08:00
Andrzej Głąbek
b4fb5300da boards: nrf52840dk_nrf52840: Do not enable arduino_serial by default
This is a follow-up to commit 25d7a09aa5.

The arduino_serial/uart1 node should not be enabled by default because
even if an application does not use it, the default CONFIG_SERIAL=y
setting causes that it is anyway initialized, so the UARTE peripheral
acquires its assigned pins (and they cannot be used in other way) and
its enabled receiver causes increased current consumption (by ~500 uA)
when the CPU is sleeping. This affects e.g. the boards/nrf/system_off
sample.
Applications that actually need to use this UART or shields that use
the arduino_serial node should enable the node explicitly.

Keep this node disabled by default for the nrf52840dk_nrf52840 board
and also for boards whose definitions are mostly copies of the above:
nrf52833dk_nrf52833 and nrf21540dk_nrf52840.

Update also accordingly a few overlay files in tests/ that were
disabling this node because of the pins it undesirably acquired.

Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
2023-01-16 09:26:10 +01:00
Fabio Baltieri
f5b4acac57 yamllint: indentation: fix files in tests/
Fix the YAML files indentation for files in tests/.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2023-01-04 14:23:53 +01:00
Al Semjonovs
a072236583 gpio: Add tests for software based GPIO debounce driver
Add tests to validate software based GPIO debounce driver.

Signed-off-by: Al Semjonovs <asemjonovs@google.com>
2023-01-04 10:36:00 +01:00
Gerard Marull-Paretas
327f3ed25d tests: drivers: gpio: remove deprecated GPIO_VOLTAGE_MASK
The macro has been deprecated and about to be removed. Since there are
no in-tree usages, it is safe to ignore/remove it.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-11-11 11:00:26 +01:00
Dat Nguyen Duy
8db84cfa6a tests: drivers: gpio_api_1pin: support GPIO interrupt tests for NXP S32Z27
add support GPIO input interrupt tests for NXP S32Z27

Signed-off-by: Dat Nguyen Duy <dat.nguyenduy@nxp.com>
2022-11-04 17:44:08 -04:00
Dat Nguyen Duy
1db8419868 tests: drivers: gpio_basic_api: support to run the test on NXP S32Z27
Add support to run the test on NXP S32Z27, the wiring connection
is needed as describe in overlay file

Signed-off-by: Dat Nguyen Duy <dat.nguyenduy@nxp.com>
2022-11-04 17:44:08 -04:00
Manuel Arguelles
2c62966621 tests: gpio: add overlays for s32z270dc2_r52 boards
Enable testing of GPIO driver minimal API's on s32z270dc2_r52 boards.
These boards do not have built-in user LED, therefore a GPIO pin is used
instead.

Signed-off-by: Manuel Arguelles <manuel.arguelles@nxp.com>
2022-10-14 09:51:14 +02:00
Enjia Mai
4c9faf95ef tests: driver: gpio: fix the incorrect testsuite names
There are some erros in previous ztest API migration of
the gpio_basic_api tests. Fix the incorrect testsuite
name of the callback mgmt and vari tests.

Fixes: #49953

Signed-off-by: Enjia Mai <enjia.mai@intel.com>
2022-09-19 09:34:36 +00:00
Hu Zhenyu
99ab3fba54 tests: Change the result compare method in pin_get_config()
Fixes #47921
When setting a GPIO to certain value, and then get the GPIO value, on some
platforms, such as ITE, these two values may not be the same. For example
setting GPIO_OUTPUT | GPIO_OUTPUT_INT_HIGH, it will read back
GPIO_OUTPUT | GPIO_OUTPUT_INT_HIGH | GPIO_VOLTAGE_3P3. This is as expected,
as GPIO_VOLTAGE is a read only property. So when comparing the gpio set
and get values, it is necessary to filter the read only bits first and
then compare to the set value.

Signed-off-by: Hu Zhenyu <zhenyu.hu@intel.com>
2022-09-07 15:34:28 +02:00
Gerard Marull-Paretas
79e6b0e0f6 includes: prefer <zephyr/kernel.h> over <zephyr/zephyr.h>
As of today <zephyr/zephyr.h> is 100% equivalent to <zephyr/kernel.h>.
This patch proposes to then include <zephyr/kernel.h> instead of
<zephyr/zephyr.h> since it is more clear that you are including the
Kernel APIs and (probably) nothing else. <zephyr/zephyr.h> sounds like a
catch-all header that may be confusing. Most applications need to
include a bunch of other things to compile, e.g. driver headers or
subsystem headers like BT, logging, etc.

The idea of a catch-all header in Zephyr is probably not feasible
anyway. Reason is that Zephyr is not a library, like it could be for
example `libpython`. Zephyr provides many utilities nowadays: a kernel,
drivers, subsystems, etc and things will likely grow. A catch-all header
would be massive, difficult to keep up-to-date. It is also likely that
an application will only build a small subset. Note that subsystem-level
headers may use a catch-all approach to make things easier, though.

NOTE: This patch is **NOT** removing the header, just removing its usage
in-tree. I'd advocate for its deprecation (add a #warning on it), but I
understand many people will have concerns.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-09-05 16:31:47 +02:00
Hu Zhenyu
202b2ff91f tests: gpio: add initial state of GPIO set bits
When a GPIO is 1 and port_set_bits_raw_and_verify function does
not set that bit, it will still be 1. So calculate the expected
value only by the parameter of port_set_bits_raw_and_verify is
not enough. A proper way is to clear all the GPIO bit fist and
then do the test.
Fixes: #49714

Signed-off-by: Hu Zhenyu <zhenyu.hu@intel.com>
2022-08-31 18:49:07 -04:00
Enjia Mai
59884f3b88 tests: drivers: gpio: move the gpio 1pin test to new ztest API
Migrate the testsuite tests/drivers/gpio/gpio_api_1pin to the
new ztest API.

Signed-off-by: Enjia Mai <enjia.mai@intel.com>
2022-08-29 10:31:45 +02:00
Enjia Mai
59422fdff7 tests: drivers: gpio: move the gpio basic test to new ztest API
Migrate the testsuite tests/drivers/gpio/gpio_basic_api to the new
ztest API.

Signed-off-by: Enjia Mai <enjia.mai@intel.com>
2022-08-29 10:31:45 +02:00
Gerard Marull-Paretas
a202341958 devices: constify device pointers initialized at compile time
Many device pointers are initialized at compile and never changed. This
means that the device pointer can be constified (immutable).

Automated using:

```
perl -i -pe 's/const struct device \*(?!const)(.*)= DEVICE/const struct
device *const $1= DEVICE/g' **/*.c
```

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-08-22 17:08:26 +02:00
Gerard Marull-Paretas
664a8d3d24 tests: drivers: gpio: initialize device at compile time
Initialize device at compile time, allowing to constify device pointer.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-08-19 11:51:26 +02:00
Francois Ramu
dd8cb23213 tests: drivers: gpio basic pass testcase when test pin_get is not defined
When the CONFIG_GPIO_GET_CONFIG is set, even if the driver does not
provide the pin_get_config function, it is supposed to return -ENOSYS
error code (see zephyr/include/zephyr/drivers/gpio.h)
The testcase should accept this code and PASS.
(ENOTSUP is not the right value to check).

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2022-08-12 14:13:37 +01:00
Henrik Brix Andersen
b0c4b399f9 tests: drivers: gpio: gpio_basic_api: remove rv32m1 pinmux calls
Remove the calls to configure the pinmux for GPIO for the RV32M1. These are
no longer needed after 9ba953d13a.

Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
2022-08-11 18:39:17 -05:00
Andriy Gelman
9f77926b26 tests: gpio_api_1pin: Test interrupt re-entry if level unchanged
Currently the level triggered test disables the interrupt in
the first callback. This doesn't test interrupt re-entry if the
gpio level is unchanged.

This commit adds an option to disable the interrupt after
several calls and adds two tests with the extra condition.

Signed-off-by: Andriy Gelman <andriy.gelman@gmail.com>
2022-08-03 11:19:35 +02:00
Fabio Baltieri
def230187b test: fix more legacy #include paths
Add a bunch of missing "zephyr/" prefixes to #include statements in
various test and test framework files.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2022-08-02 16:41:41 +01:00
Kumar Gala
2c990384d6 tests: Remove label property from devicetree overlays
"label" properties are not required.  Remove them from tests.

Signed-off-by: Kumar Gala <galak@kernel.org>
2022-07-28 20:52:20 +02:00
Kumar Gala
1c1c57b31b gpio: remove defconfig/proj setting of GPIO drivers
Now that gpio drivers are enabled based on devicetree we can remove
any cases of them getting enabled by *defconfig and proj.conf files.

Signed-off-by: Kumar Gala <galak@kernel.org>
2022-07-26 08:49:38 +02:00
Alexandre Bourdiol
8bfc215bef tests: drivers: gpio: gpio_basic_api: use static dev declaration
"dev" is already defined as a static variable,
it should not be redefined locally
Fix regression introduced by commit
2a8e3fe82d

Signed-off-by: Alexandre Bourdiol <alexandre.bourdiol@st.com>
2022-07-13 10:14:53 +02:00
Michał Barnaś
ad73b1d876 gpio: add test for pin_get_config function
This commit adds test for pin_get_config function.

Signed-off-by: Michał Barnaś <mb@semihalf.com>
2022-07-12 19:19:09 +02:00
Kumar Gala
2a8e3fe82d tests: gpio_basic_api: Convert test to use DEVICE_DT_GET
Move to use DEVICE_DT_GET instead of device_get_binding as
we work on phasing out use of DTS 'label' property.

Signed-off-by: Kumar Gala <galak@kernel.org>
2022-07-08 09:26:30 -05:00