Commit Graph

48 Commits

Author SHA1 Message Date
Nick Ward
ead0c4f865 drivers: adc: use adc_read_dt api
Where struct adc_dt_spec is in use use adc_read_dt().

Signed-off-by: Nick Ward <nix.ward@gmail.com>
2023-09-25 09:52:16 +02:00
Declan Snyder
a9750d4fea tests: regulator voltage: Support LPC55S36 board
Support lpcxpresso55s36 on regulator voltage test using VREF

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2023-09-21 09:26:57 +02:00
Andy Sinclair
f6aa1c4321 drivers: regulator: Added ship mode to API
Added ship mode entry function to common regulator driver

Signed-off-by: Andy Sinclair <andy.sinclair@nordicsemi.no>
2023-07-19 09:30:22 +00:00
Nick Ward
371f0f2503 drivers: adc: use adc_is_ready_dt helper function
Update  `struct adc_dt_spec` use with adc_is_ready_dt()

Signed-off-by: Nick Ward <nix.ward@gmail.com>
2023-07-17 10:16:22 +00: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
Gerard Marull-Paretas
054bb26cc5 drivers: regulator: add regulator_common_is_init_enabled
Some driver may need this information to implement a proper early
initialization procedure.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2023-04-28 20:38:17 +02:00
Gerard Marull-Paretas
9faa60aeda drivers: regulator: allow non-thread-safe reference counting
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>
2023-04-25 12:23:07 +02:00
Benjamin Björnsson
5fb5de7e43 tests: remove unnecessary includes of adc dt-bindings
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>
2023-04-20 10:48:33 +02:00
Declan Snyder
f48a1b4f37 tests: regulator: Update RT685 for LPADC rewrite
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>
2023-04-05 10:39:40 +00:00
Katarzyna Giądła
07cd477201 tests: drivers: regulator: fixed: Unify set of pins for nrf9160dk_nrf9160
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>
2023-03-13 14:03:44 +01:00
TOKITA Hiroshi
875b0c70b0 tests: drivers: regulator: voltage: add an overlay for rpi_pico
Add overlay for RaspberryPi Pico's core-supply regulator test.

Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@fujitsu.com>
2023-03-02 21:14:34 +01:00
TOKITA Hiroshi
8cafcbac61 tests: drivers: regulator: voltage: add min/max voltage config
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>
2023-03-02 21:14:34 +01:00
Daniel DeGrasse
a50791daf2 tests: drivers: regulator: add support for RT685 to voltage test
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>
2023-02-23 10:50:11 +01:00
Daniel DeGrasse
4b69fa2279 tests: drivers: regulator: skip unsupported voltages
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>
2023-02-23 10:50:11 +01:00
Gerard Marull-Paretas
77526a17c5 tests: drivers: regulator: voltage: use specific fixture/overlays
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>
2023-01-16 16:52:35 +01: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
Gerard Marull-Paretas
21dcdb2180 tests: drivers: regulator: fixed: add nrf5340dk/nrf9160dk overlays
Allow to run the test on nRF5340DK and nRF9160DK boards.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2023-01-03 11:03:59 +01:00
Katarzyna Giądła
dfed735ee2 tests: drivers: regulator: fixed: Standarize names of the fixture
Unify the name of the used fixture and add GPIO for
the boards requirements.

Signed-off-by: Katarzyna Giądła <katarzyna.giadla@nordicsemi.no>
2022-12-28 16:04:02 +01:00
Gerard Marull-Paretas
1ca1f25918 drivers: regulator: add get_mode API
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>
2022-12-27 13:12:55 +01:00
Gerard Marull-Paretas
fbba106a23 drivers: regulator: apply initial mode
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>
2022-12-27 13:12:55 +01:00
Gerard Marull-Paretas
88c082a46e tests: drivers: regulator: api: check init conditions during setup
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>
2022-12-27 13:12:55 +01:00
Gerard Marull-Paretas
b67c78bfbe tests: drivers: regulator: refactor fixed regulator test
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>
2022-12-21 10:09:55 +01:00
Gerard Marull-Paretas
6f3f71102b tests: regulator: pca9420: remove driver specific test
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>
2022-12-20 22:49:41 +01:00
Gerard Marull-Paretas
34fbf78968 tests: drivers: regulator: add voltage levels test
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>
2022-12-20 22:49:41 +01:00
Gerard Marull-Paretas
a7112c3137 tests: drivers: regulator: api: test API behavior
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>
2022-12-20 10:15:29 +00:00
Gerard Marull-Paretas
78a518a216 tests: drivers: regulator: fixed: fix broken test
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>
2022-11-30 15:49:30 +01:00
Gerard Marull-Paretas
a29bdc262c drivers: regulator: drop async enable
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>
2022-11-30 15:49:30 +01:00
Gerard Marull-Paretas
e0c8de1e39 drivers: regulator: fixed: simplify implementation
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>
2022-11-30 15:49:30 +01:00
Gerard Marull-Paretas
561eb2b5b5 drivers: regulator: s/pmic/pca9420
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>
2022-11-14 16:59:05 +01:00
Gerard Marull-Paretas
74e40f88ae drivers: regulator: move consumer.h to regulator.h
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>
2022-11-14 16:59:05 +01: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
Enjia Mai
32b2d70875 tests: drivers: move the regulator pmic test to new ztest API
Migrate the testsuite tests/drivers/regulator/pmic to the
new ztest API.

Signed-off-by: Enjia Mai <enjia.mai@intel.com>
2022-08-29 10:09:58 -04:00
Enjia Mai
69b740d61d tests: drivers: move the regulator test to new ztest API
Migrate the testsuite tests/drivers/regulator/fixed to the
new ztest API.

Signed-off-by: Enjia Mai <enjia.mai@intel.com>
2022-08-29 10:09:58 -04:00
Gerard Marull-Paretas
e0125d04af devices: constify statically initialized device pointers
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>
2022-08-19 11:51:26 +02:00
Kumar Gala
717be967ee tests: regulator: fixed: Remove devicetree label property
The label property isn't needed so remove it.

Signed-off-by: Kumar Gala <galak@kernel.org>
2022-08-10 14:37:38 -05: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
b50f071af6 tests: regulator_pmic: rework to use DEVICE_DT_GET
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>
2022-07-23 09:23:37 -05:00
Kumar Gala
9d175ca5f1 tests: regulator: fixed: 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 10:54:48 +02:00
Kumar Gala
c49e67cffd tests: regulator: fixed: Convert to use gpio_dt_spec
Move test to use gpio_dt_spec for GPIO access.

Signed-off-by: Kumar Gala <galak@kernel.org>
2022-07-08 10:54:48 +02:00
Kumar Gala
8739899a02 tests: regulator: pmic: Convert 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 10:51:16 +02:00
Gerard Marull-Paretas
ade7ccb918 tests: migrate includes to <zephyr/...>
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>
2022-05-06 20:02:14 +02:00
Daniel DeGrasse
81682a7c09 tests: regulator_pmic: Added PMIC regulator test
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>
2021-12-08 08:27:44 -05:00
Torsten Rasmussen
1cccc8a8fe cmake: increase minimal required version to 3.20.0
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>
2021-08-20 09:47:34 +02:00
Martí Bolívar
682aea8b3b dts: don't use 'test' vendor prefix
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>
2021-08-19 08:05:04 -05:00
Johann Fischer
d8bbd2ad5c tests: regulator: add integration platform
Add nrf52840dk_nrf52840 as integration platform since
there is already devicetree overlay for that.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2021-04-16 09:45:35 +02:00
Johann Fischer
44c3053c4b drivers: regulator: do not explicitly enable fixed regulator driver
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>
2021-04-16 09:45:35 +02:00
Peter A. Bigot
977ec16451 tests: drivers: regulator: add test for fixed regulator
Basic checks on core regulator functions.

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
2020-10-28 15:22:53 +01:00