Convert driver to use DT_INST macros and remove related board per
instance Kconfig symbol usage.
Updated the openisa,rv32m1_vega-pinmux binding to require the label
property and updated the rv32m1.dtsi to add label properties for the
pinmux nodes.
Also update gpio_basic_api test to use DT_NODELABEL.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
The board name for the Thingy:52, so far known as nrf52_pca20020, is
renamed to thingy52_nrf52832. Its documentation and all references to
its name in the tree are updated accordingly. Overlay and configuration
files specific to this board are also renamed, to match the new board
name.
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
Convert driver to use DT_INST macros and remove related board per
instance Kconfig symbol usage.
Additionally remove udoo_neo_full_m4.conf from gpio_basic_api test since
the Kconfig symbols don't need to be set anymore.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
Using find_package to locate Zephyr.
Old behavior was to use $ENV{ZEPHYR_BASE} for inclusion of boiler plate
code.
Whenever an automatic run of CMake happend by the build system / IDE
then it was required that ZEPHYR_BASE was defined.
Using ZEPHYR_BASE only to locate the Zephyr package allows CMake to
cache the base variable and thus allowing subsequent invocation even
if ZEPHYR_BASE is not set in the environment.
It also removes the risk of strange build results if a user switchs
between different Zephyr based project folders and forgetting to reset
ZEPHYR_BASE before running ninja / make.
Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
The nRF52840 DK board target, so far known as nrf52840_pca10056,
is renamed to nrf52840dk_nrf52840.
Its documentation and all references to its name in the tree are
updated accordingly. Overlay and configuration files specific to
this board are also renamed, to match the new board name.
Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
In most cases gpio_pin_configure()'s return value is checked in this
application; Coverity noted a case where it is not checked. Add a
check to make it happy.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
The test case no longer permits inferring input and output pins based
only on the presence of GPIO aliases. Stop allowing presence of GPIO
aliases to enable the test.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
Successful execution of this test requires a board-specific overlay to
identify the test pins, and that the test pins be shorted together.
Document this requirement.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
Some boards don't support level interrupts; respect their rejection of
the configuration.
Also correct the code intended to disable the interrupt from within
the callback when level triggers are tested. Note that the legacy
call emulation does not work: it's necessary to add a flag that causes
the interrupt to be disabled.
Also improve a diagnostic and fix the exit path for a failure detected
before the callback was installed.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
Since the callback enable and disable functions are deprecated, but
cannot be re-implemented in terms of other API, add back an old-style
interrupt configuration test that uses the deprecated flags and
functions in the way existing code would do. The test module
internally disables the deprecation warnings.
Remove the test for the deprecated read/write functions, incorporating
a basic check into the module that tests deprecated callback functions.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
Previously the check would fail if a higher pin was present in the
callback set. Callbacks should only be told about pins that are
relevant to the callback, so reject unless exactly the expected pin
was provided.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
Exclude the mps2_an385/mps2_an521 as we try to run on qemu and that
doesnt support the GPIO/LED so the tests will fail. For now exclude
the platform completely until we can just do a sim run exclusion.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
- Updates gpio driver and device tree files to the new GPIO Config flags
- Implements the new port_* APIs
- Update I2C and PWM Drivers to use new GPIO config
- Add esp32.overlay to gpio_basic_api test
- refactor convert_int_type, regs struct
- remove config_polarity
- add kConfig notes
Tests:
- samples/basic/blinky
- samples/basic/button
- tests/drivers/gpio/gpio_basic_api
- tests/drivers/gpio/gpio_api_1pin
Board:
- esp32 DevKitC V4
Note about interrupts:
The ESP32 requires specifying a CPU interrupt to be used for GPIO
interrupt signals. CPU interrupts can be either level or edge (or
special) triggered, but not both.
Please check gpio/Kconfig.esp32 for more info.
Signed-off-by: Mohamed ElShahawi <ExtremeGTX@hotmail.com>
Enables the 2-pin gpio test on the rv32m1_vega_ri5cy board by adding a
dts overlay and configuring pinmuxes on the arduino header.
Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
When checking the behavior of pull configurations delay long enough
for the signal to stabilize. Checking without a sufficient delay may
indicate a false failure.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
The debounce flag is to be provided to the pin configuration, not the
pin interrupt configuration.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
LPC54114 to use D0 and D1 pinout.
LPC55S69 to use A0 and A1 pinout.
Pins enabled to be used as GPIO for 2 pin test gpio_basic_api.
Signed-off-by: Andrei Gansari <andrei.gansari@nxp.com>
LPC54114 to use D0 and D1 pinout.
LPC55S69 to use A0 and A1 pinout.
2 pin test gpio_basic_api uses pins set up in boars' pinmux.
Signed-off-by: Andrei Gansari <andrei.gansari@nxp.com>
Keep promise of testing 1 pin only, don't attempt to test other pins
when verifying gpio_port_* API functions. Use BIT macro to create a bit
mask.
Fixes: #19692
Signed-off-by: Piotr Mienkowski <piotr.mienkowski@gmail.com>
Added configuration for the udoo_neo_full_m4 board and
the initialization of its GPIO test pins via IOMUX controller.
Signed-off-by: Stanislav Poboril <stanislav.poboril@nxp.com>
The test verifies that the output pin appears to be shorted to the
input pin by confirming output low and high read low and high.
Failure should block progress through the test as subsequent tests
will not pass.
Replace the use of k_panic() to halt the test with an infinite loop
that doesn't splatter the console with stack traces and register
dumps.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
Enables the 2-pin gpio test on the mimxrt1050_evk board by adding a dts
overlay and configuring pinmuxes on the arduino header.
Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
Adding overlays so that users can run this test on the following
boards:
- cc3220sf_launchxl
- cc3235sf_launchxl
- cc1352r1_launchxl
Instructions on pins to connect are included in the overlay files.
Signed-off-by: Vincent Wan <vincent.wan@linaro.org>
Update driver code and board files to use new GPIO configuration flags
such as GPIO_ACTIVE_LOW. Also add implementation of new port_* driver
API.
Tested on external SX1509B breakout board and Thingy:52.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
A disconnected GPIO is one that is neither an input nor an output.
This is represented by a zero-valued all-default configuration. Call
this configuration GPIO_DISCONNECTED so the intent is clear.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
The pull test assumed it was possible to configure the GPIO to be
disconnected. Some peripherals don't support a disconnected GPIO pin,
so if disconnected is not supported emit a note and attempt to
configure the output pin as an input.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
Switch to gpio_pin_interrupt_configure() and the new interrupt flags.
Use logical level pin set operations. Test all standard interrupt
configurations including double edge.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
Switch to gpio_pin_interrupt_configure() and the new interrupt flags.
Use logical level pin set operations.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
Test that the new port API functions all behave as expected, including
physical vs logical level for input and output as well as masked and
set-based output operations. Also tests the new pin API functions.
For running on real hardware this test now uses a local test-specific
devicetree binding. For build-only tests any platform with a GPIO
alias should be tested.
The new code increases flash requirements so add a filter to exclude
platforms that won't link.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
gpio_api_1pin testcase verifies following new GPIO API functionality:
- pin active level flags
- input/output configuration flags
- pin drive flags
- gpio_port_*, gpio_pin_* functions
- pin interrupts
The test is using only 1 GPIO pin (defined in DTS as LED0) and relies on
the ability of the driver to configure pin simultanously as in/out.
Drivers that do not allow to configure pins in in/out mode should still
pass the test, however, most of the testcases will be skipped.
The test does not require any modifications to board hardware.
Signed-off-by: Piotr Mienkowski <piotr.mienkowski@gmail.com>
The seasonal overhaul of test identifiers aligning the terms being used
and creating a structure. This is hopefully the last time we do this,
plan is to document the identifiers and enforce syntax.
The end-goal is to be able to generate a testsuite description from the
existing tests and sync it frequently with the testsuite in Testrail.
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
convert sample and test yaml filters that utilize a DT_ define to
instead use a dt_ function. The intent is to remove the Kconfig
generated DT defines and just make directy queries into the device tree.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
Re-run with updated script to convert integer literal delay arguments to
k_sleep to use the standard timeout macros.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>