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>
Some driver may need this information to implement a proper early
initialization procedure.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
In some cases, it may be desirable to not have thread-safe reference
counting. For example, when CONFIG_MULTITHREADING=n.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Remove includes of adc dt-bindings header since these are
now already included in the root .dtsi file that adds an
adc node.
Signed-off-by: Benjamin Björnsson <benjamin.bjornsson@gmail.com>
Update the RT685 sample overlay for the reagulator/voltage
test to work with the recent LPADC driver rewrite, by adding
the properties for the configurable inputs to the channel specs.
Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
Unify set of the pins on `nrf9160dk_nrf9160`, which is used by
`gpio_loopback` fixture.
Signed-off-by: Katarzyna Giądła <katarzyna.giadla@nordicsemi.no>
Add min-microvolt/max-microvolt to set the range for voltages for testing.
It filter out ranges that cannot test correctly in the configuration.
Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@fujitsu.com>
Add support for testing the onboard PCA9420 regulator on the RT685 EVK
to the regulator voltage test. Since the ADC can only record voltages up
to 1.8V, and some regulators cannot have all voltage ranges tested
without crashing the system, only LDO1 and LDO2 are tested in this
testsuite
Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
Skip unsupported voltages in regulator voltage test. This is useful for
test platforms where not all voltages can be measured or set on the
onboard regulator.
Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
The same board can be used to test multiple regulators, so let's
explicitely set overlays and fixture name.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
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>
Add a new API to query the configured regulator mode. Updated fake
driver and API tests.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Apply initial mode (regulator-initial-mode) as part of the
regulator_common_init_enable call. Update tests to cover this change.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Check conditions that happened during device init at setup stage, so
that we can reset fakes and make tests stateless.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Refactor the test following latest changes on the regulator API. The
test has now a single case that tests all the features of the driver at
once.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
There's now the generic voltage test, which can be used to verify any
regulator. This test was out of date and broken.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Add a new test that checks if the configured regulator voltage matches
the _real_ voltage obtained using an ADC. The test is generic so that
future regulators can be tested easily by just adding a new board
overlay file and a new test case entry.
Tested on nPM6001 using:
./scripts/twister \
--device-testing \
--device-serial /dev/ttyACM0 \
-p nrf52840dk_nrf52840 \
-X regulator_output_to_adc \
-T tests/drivers/regulator/voltage
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Add a new test that checks if the API works as expected provided we have
a well-behaved implementation. FFF-based fake is used to mock the
implementation behavior.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
The test was broken by changes made in
9d175ca5f1 (device ready check was
commented before). Also removed redundant preconditions check, since it
is already done in the test.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Drop the async enable function. This feature is rarely/never used,
complicates driver design, and doesn't really follow the sync/async API
design/naming used in other areas. In the future we can introduce
regulator_enable_async if needed, with support from the driver class (no
onoff). Note that drivers like PCA9420 did not implement any
asynchronous behavior. regulator-fixed implemented in the past
asynchronous behavior using work queues, an overkill for most GPIO
driven regulators. Let's keep things simple for now and extend the API
when needed, based on specific usecases.
In the current implementation, reference counting is managed by the
driver class. \isr-ok attribute is dropped, since calls are potentially
blocking. Note that drivers like PCA9420 already violated such rule.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Remove regulator-fixed-sync specialization, create a single driver that
is always synchronous. The asynchronous part is rarely/never used, so
let's keep things simple for now.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
The "pmic" driver was in reality a driver for NXP PCA9420 PMIC. There's
no "universal PMIC". While the driver may work for other NXP PMICs, it
is clearly not generic for other vendors PMIC.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
In Zephyr all regulator APIs are consumer APIs. There's no point in
adding a separate header file. Our current implementation is also
inconsistent with Linux, where enable/disable are also part of the
consumer.h API.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
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>
It is frequent to find variable definitions like this:
```c
static const struct device *dev = DEVICE_DT_GET(...)
```
That is, module level variables that are statically initialized with a
device reference. Such value is, in most cases, never changed meaning
the variable can also be declared as const (immutable). This patch
constifies all such cases.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
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>
Move to using a devicetree nodelabel (test_regulator) to reference
the regulator device to test. This lets us remove use of Kconfig
as well as device_get_binding().
Signed-off-by: Kumar Gala <galak@kernel.org>
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>
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>
In order to bring consistency in-tree, migrate all tests to the new
prefix <zephyr/...>. Note that the conversion has been scripted, refer
to #45388 for more details.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Test verifies that i2c pmic regulator can be disabled or enabled using
the regulator API. Verifies PMIC output voltage using ADC.
Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
Move to CMake 3.20.0.
At the Toolchain WG it was decided to move to CMake 3.20.0.
The main reason for increasing CMake version is better toolchain
support.
Better toolchain support is added in the following CMake versions:
- armclang, CMake 3.15
- Intel oneAPI, CMake 3.20
- IAR, CMake 3.15 and 3.20
Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
This is now failing an edtlib check for unknown vendor prefixes.
I can't find a reason to use a vendor prefix in application-local
bindings like this, so just remove it wherever it appears by
normalizing to test-foo-compat instead of test,foo_compat or
test,foo-compat.
Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
Add nrf52840dk_nrf52840 as integration platform since
there is already devicetree overlay for that.
Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
Do not explicitly enable fixed regulator driver for boards and tests
because it is automatically selected when corresponding node
is defined.
Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>