Skip to content

Commit a0f9b68

Browse files
committed
[nrf fromlist] soc: nordic: pm support for nrf92 series
Add PM support for nrf92 series products Upstream PR #: 99961 Signed-off-by: Pasi Liimatainen <pasi.liimatainen@nordicsemi.no>
1 parent 716d6a7 commit a0f9b68

File tree

11 files changed

+777
-21
lines changed

11 files changed

+777
-21
lines changed

dts/vendor/nordic/nrf9280.dtsi

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,14 +83,26 @@
8383
clocks {
8484
hfxo: hfxo {
8585
compatible = "fixed-clock";
86+
status = "disabled";
87+
#clock-cells = <0>;
88+
clock-frequency = <DT_FREQ_M(64)>;
89+
};
90+
91+
lfxo: lfxo {
92+
compatible = "nordic,nrf54h-lfxo";
93+
status = "disabled";
8694
#clock-cells = <0>;
87-
clock-frequency = <DT_FREQ_M(32)>;
95+
clock-frequency = <32768>;
8896
};
8997

9098
fll16m: fll16m {
91-
compatible = "fixed-clock";
99+
compatible = "nordic,nrf-fll16m";
92100
#clock-cells = <0>;
93101
clock-frequency = <DT_FREQ_M(16)>;
102+
open-loop-accuracy-ppm = <20000>;
103+
open-loop-startup-time-us = <200>; /* To be measured */
104+
clocks = <&hfxo>, <&lfxo>;
105+
clock-names = "hfxo", "lfxo";
94106
};
95107

96108
hsfll120: hsfll120 {
@@ -103,6 +115,19 @@
103115
256000000
104116
320000000>;
105117
};
118+
119+
lfclk: lfclk {
120+
compatible = "nordic,nrf-lfclk";
121+
#clock-cells = <0>;
122+
clock-frequency = <32768>;
123+
status = "okay";
124+
lfrc-accuracy-ppm = <500>;
125+
lflprc-accuracy-ppm = <1000>;
126+
lfrc-startup-time-us = <200>; /* To be measured */
127+
lflprc-startup-time-us = <200>; /* To be measured */
128+
clocks = <&hfxo>, <&lfxo>;
129+
clock-names = "hfxo", "lfxo";
130+
};
106131
};
107132

108133
soc {
@@ -758,6 +783,8 @@
758783
reg = <0x99c000 0x1000>;
759784
status = "disabled";
760785
cc-num = <16>;
786+
clocks = <&lfclk>, <&fll16m>;
787+
clock-names = "lfclock", "hfclock";
761788
};
762789

763790
dppic133: dppic@9a1000 {

soc/nordic/common/poweroff.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
#if defined(CONFIG_SOC_SERIES_NRF51X) || defined(CONFIG_SOC_SERIES_NRF52X)
1111
#include <hal/nrf_power.h>
12-
#elif defined(CONFIG_SOC_SERIES_NRF54HX)
12+
#elif defined(CONFIG_SOC_SERIES_NRF54HX) || defined(CONFIG_SOC_SERIES_NRF92X)
1313
#include <power.h>
1414
#else
1515
#include <hal/nrf_regulators.h>
@@ -72,7 +72,7 @@ void z_sys_poweroff(void)
7272
#endif
7373
#if defined(CONFIG_SOC_SERIES_NRF51X) || defined(CONFIG_SOC_SERIES_NRF52X)
7474
nrf_power_system_off(NRF_POWER);
75-
#elif defined(CONFIG_SOC_SERIES_NRF54HX)
75+
#elif defined(CONFIG_SOC_SERIES_NRF54HX) || defined(CONFIG_SOC_SERIES_NRF92X)
7676
nrf_poweroff();
7777
#else
7878
nrf_regulators_system_off(NRF_REGULATORS);

soc/nordic/nrf92/CMakeLists.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,18 @@
33

44
if(CONFIG_ARM)
55
zephyr_library_sources(soc.c)
6+
if(CONFIG_PM OR CONFIG_POWEROFF)
7+
zephyr_library_sources(power.c)
8+
zephyr_code_relocate(
9+
FILES power.c
10+
FILTER ".*\\.cache_retain_and_sleep"
11+
LOCATION PMLocalRamfunc_TEXT
12+
)
13+
endif()
614
endif()
715

16+
zephyr_library_sources_ifdef(CONFIG_PM_S2RAM pm_s2ram.c)
17+
818
zephyr_include_directories(.)
919

1020
# Ensure that image size aligns with 16 bytes so that MRAMC finalizes all writes

soc/nordic/nrf92/Kconfig

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ config SOC_NRF9230_ENGB_CPUAPP
2929
select NRFS_HAS_TEMP_SERVICE
3030
select NRFS_HAS_VBUS_DETECTOR_SERVICE
3131
select NRFS_TEMP_SERVICE_HAS_SUBSCRIPTION_SERVICE
32+
select HAS_PM
33+
select HAS_PM_S2RAM_CUSTOM_MARKING
34+
select HAS_POWEROFF
3235

3336
config SOC_NRF9230_ENGB_CPURAD
3437
select ARM
@@ -48,6 +51,8 @@ config SOC_NRF9230_ENGB_CPURAD
4851
select NRFS_HAS_PMIC_SERVICE
4952
select NRFS_HAS_TEMP_SERVICE
5053
select NRFS_TEMP_SERVICE_HAS_SUBSCRIPTION_SERVICE
54+
select HAS_PM
55+
select HAS_POWEROFF
5156

5257
config SOC_NRF9230_ENGB_CPUPPR
5358
select RISCV_CORE_NORDIC_VPR

soc/nordic/nrf92/Kconfig.defconfig

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,33 @@ config SPI_DW_HSSI
3838
config SPI_DW_ACCESS_WORD_ONLY
3939
default y if SPI_DW
4040

41+
if PM
42+
43+
config PM_DEVICE
44+
default y
45+
46+
if LOG
47+
48+
config LOG_PROCESS_THREAD_STACK_SIZE
49+
default 1536
50+
51+
endif # LOG
52+
53+
endif # PM
54+
55+
if PM_DEVICE
56+
57+
config PM_DEVICE_RUNTIME
58+
default y
59+
60+
config DEVICE_DEPS
61+
default y
62+
63+
config PM_DEVICE_POWER_DOMAIN
64+
default y
65+
66+
endif # PM_DEVICE
67+
4168
config SYS_CLOCK_HW_CYCLES_PER_SEC
4269
default $(dt_nodelabel_int_prop,grtc,clock-frequency) if NRF_GRTC_TIMER
4370

0 commit comments

Comments
 (0)