Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
216da9c
[nrf fromlist] soc: nordic: nrf54h: increase default log stack size i…
bjarki-andreasen Sep 29, 2025
5b5188f
[nrf fromlist] drivers: adc: nrfx_saadc: implement PM device runtime
bjarki-andreasen Sep 29, 2025
c27b9ec
[nrf fromlist] dts: vendor: nordic: nrf54h: move adc and comp to gdpw…
bjarki-andreasen Sep 29, 2025
f0f0385
[nrf fromtree] pm: device: runtime: add PM_DEVICE_RUNTIME_DEFAULT_ENABLE
bjarki-andreasen Jul 25, 2025
e8cd430
[nrf fromtree] soc: nordic: enable CONFIG_PM_DEVICE_RUNTIME_DEFAULT_E…
bjarki-andreasen Jul 25, 2025
80b7158
[nrf fromlist] dts: vendor: nordic: nrf54h: remove power-domains from…
bjarki-andreasen Oct 13, 2025
8b38e3a
Revert "[nrf noup] dts: Select SoftDevice Controller on nRF54L09"
bjarki-andreasen Oct 13, 2025
e73d366
Revert "[nrf noup] dts: Select SoftDevice Controller DTS binding as d…
bjarki-andreasen Oct 13, 2025
af930a4
Revert "[nrf noup] dts: Add Bluetooth Controller to nRF54H20"
bjarki-andreasen Oct 13, 2025
861bfdf
[nrf fromtree] devicetree: format files in dts/arm/nordic
kylebonnici Sep 7, 2025
2522625
[nrf fromtree] drivers: power_domain: siwx91x: Add power domain drive…
smalae Aug 22, 2025
cb48d53
[nrf fromtree] drivers: power_domain: introduce nrfs_swext device driver
bjarki-andreasen Jul 30, 2025
2fa805d
[nrf fromtree] drivers: power_domain: nrf_gpio_pad_group: Fix DT macro
nordic-krch Sep 29, 2025
26b7fd1
[nrf fromlist] dts: vendor: nordic: nrf54h: remove gpio-pad-groups
bjarki-andreasen Oct 13, 2025
9eda891
[nrf fromlist] drivers: pinctrl: nrf: simplify pin retention
bjarki-andreasen Oct 13, 2025
7310478
[nrf fromlist] drivers: gpio: remove pad group integration
bjarki-andreasen Oct 13, 2025
c22e264
[nrf fromtree] drivers comparator: nordic: Align drivers to changed a…
jaz1-nordic Aug 28, 2025
adea8cc
[nrf fromlist] drivers: nordic: support pin retention for AIN
bjarki-andreasen Oct 14, 2025
d4f3eb4
dts: drivers: nordic: Don't manage hsfll120 from drivers
bjarki-andreasen Oct 14, 2025
c4c335a
[nrf noup] dts: Add Bluetooth Controller to nRF54H20
rugeGerritsen Jul 16, 2024
c72f8c7
[nrf noup] dts: Select SoftDevice Controller DTS binding as default
rugeGerritsen Sep 5, 2024
f30885d
[nrf noup] dts: Select SoftDevice Controller on nRF54L09
e-rk Feb 19, 2025
5cd9d4e
[nrf fromtree] tests: drivers: comparator: Enable nxp cmp test
ZhaoxiangJin Sep 8, 2025
3f5c611
[nrf fromtree] tests: comparator: nordic: Align boards overlays for c…
jaz1-nordic Aug 28, 2025
13bf4eb
[nrf fromtree] dts: bindings: comparator: nordic: Change inputs type …
jaz1-nordic Aug 28, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
131 changes: 131 additions & 0 deletions boards/nordic/nrf54l20pdk/nrf54l20_cpuapp_common.dtsi
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
/*
* Copyright (c) 2024 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/

/* This file is common to the secure and non-secure domain */

#include <nordic/nrf54l20_enga_cpuapp.dtsi>
#include "nrf54l20pdk_nrf54l20-common.dtsi"

/ {
chosen {
zephyr,console = &uart20;
zephyr,shell-uart = &uart20;
zephyr,uart-mcumgr = &uart20;
zephyr,bt-mon-uart = &uart20;
zephyr,bt-c2h-uart = &uart20;
zephyr,flash-controller = &rram_controller;
zephyr,flash = &cpuapp_rram;
zephyr,bt-hci = &bt_hci_sdc;
zephyr,ieee802154 = &ieee802154;
};
};

&cpuapp_sram {
status = "okay";
};

&lfxo {
load-capacitors = "internal";
load-capacitance-femtofarad = <15500>;
};

&hfxo {
load-capacitors = "internal";
load-capacitance-femtofarad = <15000>;
};

&grtc {
owned-channels = <0 1 2 3 4 5 6 7 8 9 10 11>;
/* Channels 7-11 reserved for Zero Latency IRQs, 3-4 for FLPR */
child-owned-channels = <3 4 7 8 9 10 11>;
status = "okay";
};

&cpuapp_rram {
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;

boot_partition: partition@0 {
label = "mcuboot";
reg = <0x0 DT_SIZE_K(64)>;
};

slot0_partition: partition@10000 {
label = "image-0";
reg = <0x10000 DT_SIZE_K(449)>;
};

slot0_ns_partition: partition@80400 {
label = "image-0-nonsecure";
reg = <0x80400 DT_SIZE_K(449)>;
};

slot1_partition: partition@f0800 {
label = "image-1";
reg = <0xf0800 DT_SIZE_K(449)>;
};

slot1_ns_partition: partition@160c00 {
label = "image-1-nonsecure";
reg = <0x160c00 DT_SIZE_K(449)>;
};

storage_partition: partition@1d1000 {
label = "storage";
reg = <0x1d1000 DT_SIZE_K(36)>;
};
};
};

&uart20 {
status = "okay";
};

&nfct {
status = "okay";
};

&gpio0 {
status = "okay";
};

&gpio1 {
status = "okay";
};

&gpio2 {
status = "okay";
};

&gpiote20 {
status = "okay";
};

&gpiote30 {
status = "okay";
};

&radio {
status = "okay";
};

&temp {
status = "okay";
};

&clock {
status = "okay";
};

&bt_hci_sdc {
status = "okay";
};

&ieee802154 {
status = "okay";
};
36 changes: 33 additions & 3 deletions drivers/adc/adc_nrfx_saadc.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,11 @@
#include <zephyr/linker/devicetree_regions.h>
#include <zephyr/logging/log.h>
#include <zephyr/irq.h>
#include <zephyr/pm/device.h>
#include <zephyr/pm/device_runtime.h>
#include <dmm.h>
#include <soc.h>
#include <hal/nrf_gpio.h>

LOG_MODULE_REGISTER(adc_nrfx_saadc, CONFIG_ADC_LOG_LEVEL);

Expand Down Expand Up @@ -198,6 +201,10 @@

*pin_p = saadc_psels[channel_cfg->input_positive];

#if NRF_GPIO_HAS_RETENTION_SETCLEAR
nrf_gpio_pin_retain_disable(saadc_psels[channel_cfg->input_positive]);
#endif

if (channel_cfg->differential) {
if (channel_cfg->input_negative > ARRAY_SIZE(saadc_psels) ||
(IS_ENABLED(CONFIG_NRF_PLATFORM_HALTIUM) &&
Expand All @@ -210,6 +217,11 @@
*pin_n = channel_cfg->input_negative == NRF_SAADC_GND ?
NRF_SAADC_INPUT_DISABLED :
saadc_psels[channel_cfg->input_negative];

#if NRF_GPIO_HAS_RETENTION_SETCLEAR
nrf_gpio_pin_retain_disable(saadc_psels[channel_cfg->input_negative]);
#endif

} else {
*pin_n = NRF_SAADC_INPUT_DISABLED;
}
Expand Down Expand Up @@ -725,10 +737,19 @@
{
int error;

error = pm_device_runtime_get(dev);
if (error) {
return error;
}

adc_context_lock(&m_data.ctx, false, NULL);
error = start_read(dev, sequence);
adc_context_release(&m_data.ctx, error);

if (pm_device_runtime_put(dev)) {
LOG_ERR("PM put failed");
}

return error;
}

Expand Down Expand Up @@ -778,6 +799,13 @@
}
}

static int saadc_pm_handler(const struct device *dev, enum pm_device_action action)
{
ARG_UNUSED(dev);
ARG_UNUSED(action);
return 0;
}

static int init_saadc(const struct device *dev)
{
nrfx_err_t err;
Expand All @@ -795,7 +823,7 @@

adc_context_unlock_unconditionally(&m_data.ctx);

return 0;
return pm_device_driver_init(dev, saadc_pm_handler);
}

static DEVICE_API(adc, adc_nrfx_driver_api) = {
Expand Down Expand Up @@ -838,5 +866,7 @@

NRF_DT_CHECK_NODE_HAS_REQUIRED_MEMORY_REGIONS(DT_DRV_INST(0));

DEVICE_DT_INST_DEFINE(0, init_saadc, NULL, NULL, NULL, POST_KERNEL,
CONFIG_ADC_INIT_PRIORITY, &adc_nrfx_driver_api);
PM_DEVICE_DT_INST_DEFINE(0, saadc_pm_handler);
DEVICE_DT_INST_DEFINE(0, init_saadc, PM_DEVICE_DT_INST_GET(0), NULL,
NULL, POST_KERNEL, CONFIG_ADC_INIT_PRIORITY,
&adc_nrfx_driver_api);
9 changes: 7 additions & 2 deletions drivers/can/can_nrf.c
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,11 @@ static int configure_hsfll(const struct device *dev, bool on)
const struct can_nrf_config *config = mcan_config->custom;
struct nrf_clock_spec spec = { 0 };

if (config->hsfll == NULL) {
/* Frequency fixed at max */
return 0;
}

/* If CAN is on, HSFLL frequency >= AUXPLL frequency */
if (on) {
int ret;
Expand All @@ -158,7 +163,7 @@ static int can_nrf_init(const struct device *dev)
const struct can_nrf_config *config = mcan_config->custom;
int ret;

if (!device_is_ready(config->auxpll) || !device_is_ready(config->hsfll)) {
if (!device_is_ready(config->auxpll)) {
return -ENODEV;
}

Expand Down Expand Up @@ -215,7 +220,7 @@ static int can_nrf_init(const struct device *dev)
.mram = CAN_MCAN_DT_INST_MRAM_ADDR(n), \
.auxpll = DEVICE_DT_GET(DT_INST_CLOCKS_CTLR_BY_NAME(n, auxpll)), \
.pcfg = PINCTRL_DT_INST_DEV_CONFIG_GET(n), \
.hsfll = DEVICE_DT_GET(DT_INST_CLOCKS_CTLR_BY_NAME(n, hsfll)), \
.hsfll = DEVICE_DT_GET_OR_NULL(DT_INST_CLOCKS_CTLR_BY_NAME(n, hsfll)), \
.irq = DT_INST_IRQN(n), \
.irq_configure = can_nrf_irq_configure##n, \
}; \
Expand Down
Loading
Loading