Skip to content

Conversation

bjarki-andreasen
Copy link
Contributor

@bjarki-andreasen bjarki-andreasen commented Sep 26, 2025

Cherry pick fixes and updates to PM

bjarki-andreasen and others added 18 commits October 15, 2025 16:08
…f CONFIG_PM=y

The default log process thread stack size needs to be increased to
account for the recursion into resuming power domains, which
may happen within char_out for some backends like uart.

Upstream PR #: 96695

Signed-off-by: Bjarki Arge Andreasen <[email protected]>
The NRFX SAADC device driver needs to implement PM DEVICE for it
to work with power domains, which is required for some SoCs. Inline
PM device runtime "self get/put" pm has been implemented for the
normal sync read API.

Upstream PR #: 96711

Signed-off-by: Bjarki Arge Andreasen <[email protected]>
…r_slow_main

The ADC and COMP on the nrf54h20 both have all of their analog
inputs routed to pads in different power domains than themselves,
this means the device drivers for both of them need to request the
pads to be resumed when active to allow any reading of the pads.

To keep the drivers simple, we can rely on HW to keep the power
domain the COMP and ADC are in powered, which happens automatically
when the ADC or COMP is ENABLED. We can then place them on the
power domain of their pads in the devicetree. This ensures the pads
are powered and not retained while the devices are RESUMED.

Upstream PR #: 96711

Signed-off-by: Bjarki Arge Andreasen <[email protected]>
Many SoCs which use PM_DEVICE_RUNTIME need every device in the system
to have PM_DEVICE_RUNTIME enabled to function. Currently, this is only
possible by adding zephyr,pm-device-runtime-auto; to every node in
every devicetree which could potentially implement device power
management. This is very error prone since its easy to miss a node,
especially if users apply overlays, where users need to know and
remember to apply or reapply this property.

This commit adds a Kconfig, disabled by default, which automatically
treats every device as if it had the zephyr,pm-device-runtime-auto
property added to every node.

Signed-off-by: Bjarki Arge Andreasen <[email protected]>
(cherry picked from commit 34c51c5)
…NABLE for all

Enable CONFIG_PM_DEVICE_RUNTIME_DEFAULT_ENABLE by default for all
nordic SoCs if CONFIG_PM_DEVICE_RUNTIME is used. This will ensure
consistent behavior across all nordic SoCs and remove the need
for pasting the devicetree propert zephyr,pm-device-runtime-auto
everywhere.

Signed-off-by: Bjarki Arge Andreasen <[email protected]>
(cherry picked from commit 61a9d6a)
… devices

All devices used in their "normal"/intended configuration do not
require management of the power domains, as the hardware itself will
request them automatically. Thus by default, don't specify the
power domains to avoid redundant resume/suspend cycles, which are
slow and require threading (IPC) making devices not isr ok.

Upstream PR #: 97452

Signed-off-by: Bjarki Arge Andreasen <[email protected]>
This reverts commit 6c0719c.

Signed-off-by: Bjarki Arge Andreasen <[email protected]>
…efault"

This reverts commit e9c0ac1.

Signed-off-by: Bjarki Arge Andreasen <[email protected]>
This reverts commit 275f20e.

Signed-off-by: Bjarki Arge Andreasen <[email protected]>
Applying dts-linter results for files in

dts/arm/nordic

Signed-off-by: Kyle Micallef Bonnici <[email protected]>
(cherry picked from commit 51d5135)
…r for siwx91x SoC

1. Added siwx91x power domain node in siwg917.dtsi
2. Updated UART device nodes to reference the newly added power domain.
3. Implemented power domain driver to manage power domain transitions
   for the SoC.

Signed-off-by: Sai Santhosh Malae <[email protected]>
(cherry picked from commit 295431d)
Introduce nrfx_swext device driver for NRFS SWEXT power domain
device.

Signed-off-by: Bjarki Arge Andreasen <[email protected]>
(cherry picked from commit 5db84c7)
DT_PROP_OR instead of DT_INST_PROP_OR was used and property from
device tree was never used.

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit 767c21a)
The gpio pad groups are redundant if pin retention is handled per
pin, and the quirky cross domain feature is managed by the
application. Remove it entirely.

Upstream PR #: 97452

Signed-off-by: Bjarki Arge Andreasen <[email protected]>
GPIO pad power domain management is not neccesary if the quirky
cross domain feature is handled at the application level. Replace it
with directly setting/clearing pin retention, as hardware will force
power domains on automatically.

Upstream PR #: 97452

Signed-off-by: Bjarki Arge Andreasen <[email protected]>
Replace the pad group integration with directly setting/clearing
pin retention for output pins if required, since the pad group
integration is redundant if the quirky cross domain feature is
managed by the application.

Upstream PR #: 97452

Signed-off-by: Bjarki Arge Andreasen <[email protected]>
…nalog input types

External analog input types changed from `string` to `int`.

Signed-off-by: Jakub Zymelka <[email protected]>
(cherry picked from commit e5ecbd2)
Devices which use AIN (COMP, LPCOMP, SAADC) don't use pinctrl to
configure their pins, thus pinctrl can't manage pin retention like
is done for other devices. Thus for now, add manually disabling
pin retention to the drivers.

In the future, we should probably use pinctrl for these inputs
as well, at which point this commit can be reverted.

Upstream PR #: 97452

Signed-off-by: Bjarki Arge Andreasen <[email protected]>
@bjarki-andreasen bjarki-andreasen force-pushed the idle-sample-fixes-nrf54h branch from 83cd357 to bdda47d Compare October 15, 2025 14:11
bjarki-andreasen and others added 7 commits October 15, 2025 18:57
The hsfll120 is requested automatically by hardware which needs it,
CLOCK_CONTROL can be used to set to lower the frequency it runs at,
but this is a quirk which may be handled by the application if
desired. Disable the global clocks and remove references to the
hsfll120 from devices in the devicetree, and update samples which
specifically test the control of the clocks using CLOCK_CONTROL
to enable them.

Signed-off-by: Bjarki Arge Andreasen <[email protected]>
The nRF54H20 supports a Bluetooth controller.
The HCI driver interface has changed upstream in
zephyrproject-rtos/zephyr#72323
so now we need to add it to device tree.

Signed-off-by: Rubin Gerritsen <[email protected]>
(cherry picked from commit e9a13c3)
(cherry picked from commit 6f17dc3)
The SoftDevice Controller is a different controller than
the open source link layer with a different set of quirks.
It should therefore have its own device tree binding.

This commit converts the SoftDevice Controller driver
to use this new DTS binding instead of reusing the existing one.

This commit updates or adds additional overlays for
existing samples, applications and tests that were using the
open source link layer.

Signed-off-by: Rubin Gerritsen <[email protected]>
Signed-off-by: Kristoffer Rist Skøien <[email protected]>
Signed-off-by: Rafał Kuźnia <[email protected]>
(cherry picked from commit 946fcec)
(cherry picked from commit 6d216e1)
The SDC HCI controller is defined as a device tree node.
A node representing the SDC controller is added and selected as the
default over the open source link layer. This is consistent with other
SoCs.

Signed-off-by: Rafał Kuźnia <[email protected]>
(cherry picked from commit da86248)
(cherry picked from commit e40f531)
Enable nxp cmp test.

Signed-off-by: Zhaoxiang Jin <[email protected]>
(cherry picked from commit 78b4fed)
…hanged input types

Align samples and tests boards overlays
for changed comparator input types.

Signed-off-by: Jakub Zymelka <[email protected]>
(cherry picked from commit 6d7f429)
…to int

Unify external analog inputs type to be consistent
in COMP, LPCOMP and SAADC nordic drivers.

Signed-off-by: Jakub Zymelka <[email protected]>
(cherry picked from commit d85bdb7)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants