Skip to content

Commit d707d70

Browse files
committed
[nrf fromlist] modules: hal_nordic: add NRFX_GPPI config
The nrfx_gppi module is an abstraction over nrfx_ppi and nrfx_dppi drivers. It now has a Kconfig option that is separate from nrfx_dppi and by default it enables all PPI/DPPI instances, if available. Upstream PR: zephyrproject-rtos/zephyr#79857 Signed-off-by: Rafał Kuźnia <[email protected]>
1 parent 4c63e2e commit d707d70

File tree

8 files changed

+37
-16
lines changed

8 files changed

+37
-16
lines changed

drivers/pwm/Kconfig.nrf_sw

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ config PWM_NRF_SW
88
default y if !PWM_NRFX
99
depends on DT_HAS_NORDIC_NRF_SW_PWM_ENABLED
1010
select NRFX_GPIOTE
11-
select NRFX_PPI if HAS_HW_NRF_PPI
12-
select NRFX_DPPI if HAS_HW_NRF_DPPIC
11+
select NRFX_GPPI
1312
help
1413
Enable driver to utilize PWM on the Nordic Semiconductor nRF SoCs.
1514

drivers/serial/Kconfig.nrfx_uart_instance

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@ config UART_$(nrfx_uart_num)_ENHANCED_POLL_OUT
2424
default y
2525
depends on HAS_HW_NRF_UARTE$(nrfx_uart_num)
2626
depends on HAS_HW_NRF_PPI || HAS_HW_NRF_DPPIC
27-
select NRFX_PPI if HAS_HW_NRF_PPI
28-
select NRFX_DPPI if HAS_HW_NRF_DPPIC
27+
select NRFX_GPPI
2928
help
3029
When enabled, polling out does not trigger interrupt which stops TX.
3130
Feature uses a PPI channel.
@@ -55,8 +54,7 @@ config UART_$(nrfx_uart_num)_NRF_HW_ASYNC
5554
depends on UART_ASYNC_API
5655
depends on UART_NRFX_UARTE_LEGACY_SHIM
5756
depends on HAS_HW_NRF_PPI || HAS_HW_NRF_DPPIC
58-
select NRFX_PPI if HAS_HW_NRF_PPI
59-
select NRFX_DPPI if HAS_HW_NRF_DPPIC
57+
select NRFX_GPPI
6058
help
6159
If default driver uses interrupts to count incoming bytes, it is possible
6260
that with higher speeds and/or high cpu load some data can be lost.

modules/hal_nordic/nrfx/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ zephyr_library_sources_ifdef(CONFIG_SOC_SERIES_NRF92X ${MDK_DIR}/system_nrf92.c
112112
zephyr_library_sources(nrfx_glue.c)
113113
zephyr_library_sources(${HELPERS_DIR}/nrfx_flag32_allocator.c)
114114
zephyr_library_sources_ifdef(CONFIG_RETAINED_MEM_NRF_RAM_CTRL ${HELPERS_DIR}/nrfx_ram_ctrl.c)
115-
zephyr_library_sources_ifdef(CONFIG_NRFX_DPPI ${HELPERS_DIR}/nrfx_gppi_dppi.c)
115+
zephyr_library_sources_ifdef(CONFIG_NRFX_GPPI ${HELPERS_DIR}/nrfx_gppi_dppi.c)
116116
zephyr_library_sources_ifdef(CONFIG_NRFX_PPI ${HELPERS_DIR}/nrfx_gppi_ppi.c)
117117

118118
zephyr_library_sources_ifdef(CONFIG_NRFX_PRS ${SRC_DIR}/prs/nrfx_prs.c)
@@ -196,7 +196,7 @@ if(CONFIG_SOC_NRF54L20_ENGA_CPUAPP)
196196
zephyr_compile_definitions(NRF_SKIP_TAMPC_SETUP)
197197
endif()
198198

199-
if(CONFIG_SOC_SERIES_NRF54LX AND CONFIG_NRFX_DPPI)
199+
if(CONFIG_SOC_SERIES_NRF54LX AND CONFIG_NRFX_GPPI)
200200
zephyr_library_sources(${HELPERS_DIR}/nrfx_gppi_dppi_ppib_lumos.c)
201201
zephyr_library_sources(${NRFX_DIR}/soc/interconnect/dppic_ppib/nrfx_interconnect_dppic_ppib.c)
202202
endif()

modules/hal_nordic/nrfx/Kconfig

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,71 +34,85 @@ config NRFX_DPPI
3434

3535
config NRFX_DPPI0
3636
bool "DPPI0 driver instance"
37+
default y if NRFX_GPPI
3738
depends on $(dt_nodelabel_has_compat,dppic,$(DT_COMPAT_NORDIC_NRF_DPPIC))
3839
select NRFX_DPPI
3940

4041
config NRFX_DPPI00
4142
bool "DPPI00 driver instance"
43+
default y if NRFX_GPPI
4244
depends on $(dt_nodelabel_has_compat,dppic00,$(DT_COMPAT_NORDIC_NRF_DPPIC))
4345
select NRFX_DPPI
4446

4547
config NRFX_DPPI10
4648
bool "DPPI10 driver instance"
49+
default y if NRFX_GPPI
4750
depends on $(dt_nodelabel_has_compat,dppic10,$(DT_COMPAT_NORDIC_NRF_DPPIC))
4851
select NRFX_DPPI
4952

5053
config NRFX_DPPI20
5154
bool "DPPI20 driver instance"
55+
default y if NRFX_GPPI
5256
depends on $(dt_nodelabel_has_compat,dppic20,$(DT_COMPAT_NORDIC_NRF_DPPIC))
5357
select NRFX_DPPI
5458

5559
config NRFX_DPPI30
5660
bool "DPPI30 driver instance"
61+
default y if NRFX_GPPI
5762
depends on $(dt_nodelabel_has_compat,dppic30,$(DT_COMPAT_NORDIC_NRF_DPPIC))
5863
select NRFX_DPPI
5964

6065
config NRFX_DPPI020
6166
bool "DPPI020 driver instance"
67+
default y if NRFX_GPPI
6268
depends on $(dt_nodelabel_has_compat,dppic020,$(DT_COMPAT_NORDIC_NRF_DPPIC))
6369
select NRFX_DPPI
6470

6571
config NRFX_DPPI120
6672
bool "DPPI120 driver instance"
73+
default y if NRFX_GPPI
6774
depends on $(dt_nodelabel_has_compat,dppic120,$(DT_COMPAT_NORDIC_NRF_DPPIC))
6875
select NRFX_DPPI
6976

7077
config NRFX_DPPI130
7178
bool "DPPI130 driver instance"
79+
default y if NRFX_GPPI
7280
depends on $(dt_nodelabel_has_compat,dppic130,$(DT_COMPAT_NORDIC_NRF_DPPIC))
7381
select NRFX_DPPI
7482

7583
config NRFX_DPPI131
7684
bool "DPPI131 driver instance"
85+
default y if NRFX_GPPI
7786
depends on $(dt_nodelabel_has_compat,dppic131,$(DT_COMPAT_NORDIC_NRF_DPPIC))
7887
select NRFX_DPPI
7988

8089
config NRFX_DPPI132
8190
bool "DPPI132 driver instance"
91+
default y if NRFX_GPPI
8292
depends on $(dt_nodelabel_has_compat,dppic132,$(DT_COMPAT_NORDIC_NRF_DPPIC))
8393
select NRFX_DPPI
8494

8595
config NRFX_DPPI133
8696
bool "DPPI133 driver instance"
97+
default y if NRFX_GPPI
8798
depends on $(dt_nodelabel_has_compat,dppic133,$(DT_COMPAT_NORDIC_NRF_DPPIC))
8899
select NRFX_DPPI
89100

90101
config NRFX_DPPI134
91102
bool "DPPI134 driver instance"
103+
default y if NRFX_GPPI
92104
depends on $(dt_nodelabel_has_compat,dppic134,$(DT_COMPAT_NORDIC_NRF_DPPIC))
93105
select NRFX_DPPI
94106

95107
config NRFX_DPPI135
96108
bool "DPPI135 driver instance"
109+
default y if NRFX_GPPI
97110
depends on $(dt_nodelabel_has_compat,dppic135,$(DT_COMPAT_NORDIC_NRF_DPPIC))
98111
select NRFX_DPPI
99112

100113
config NRFX_DPPI136
101114
bool "DPPI136 driver instance"
115+
default y if NRFX_GPPI
102116
depends on $(dt_nodelabel_has_compat,dppic136,$(DT_COMPAT_NORDIC_NRF_DPPIC))
103117
select NRFX_DPPI
104118

@@ -196,6 +210,12 @@ config NRFX_GPIOTE_NUM_OF_EVT_HANDLERS
196210
Specifies number of handlers that can be registered to nrfx_gpiote driver
197211
by the user.
198212

213+
config NRFX_GPPI
214+
bool "Enable Generic PPI layer"
215+
help
216+
Enable the nrfx_gppi utilities providing unified API for creating PPI
217+
connections across SoC families.
218+
199219
config NRFX_GRTC
200220
bool "GRTC driver"
201221
depends on $(dt_has_compat,$(DT_COMPAT_NORDIC_NRF_GRTC))
@@ -261,48 +281,57 @@ config NRFX_POWER
261281

262282
config NRFX_PPI
263283
bool "PPI allocator"
284+
default y if NRFX_GPPI
264285
depends on $(dt_has_compat,$(DT_COMPAT_NORDIC_NRF_PPI))
265286

266287
config NRFX_PPIB
267288
bool
268289

269290
config NRFX_PPIB00
270291
bool "PPIB00 driver instance"
292+
default y if NRFX_GPPI
271293
depends on $(dt_nodelabel_has_compat,ppib00,$(DT_COMPAT_NORDIC_NRF_PPIB))
272294
select NRFX_PPIB
273295

274296
config NRFX_PPIB01
275297
bool "PPIB01 driver instance"
298+
default y if NRFX_GPPI
276299
depends on $(dt_nodelabel_has_compat,ppib01,$(DT_COMPAT_NORDIC_NRF_PPIB))
277300
select NRFX_PPIB
278301

279302
config NRFX_PPIB10
280303
bool "PPIB10 driver instance"
304+
default y if NRFX_GPPI
281305
depends on $(dt_nodelabel_has_compat,ppib10,$(DT_COMPAT_NORDIC_NRF_PPIB))
282306
select NRFX_PPIB
283307

284308
config NRFX_PPIB11
285309
bool "PPIB11 driver instance"
310+
default y if NRFX_GPPI
286311
depends on $(dt_nodelabel_has_compat,ppib11,$(DT_COMPAT_NORDIC_NRF_PPIB))
287312
select NRFX_PPIB
288313

289314
config NRFX_PPIB20
290315
bool "PPIB20 driver instance"
316+
default y if NRFX_GPPI
291317
depends on $(dt_nodelabel_has_compat,ppib20,$(DT_COMPAT_NORDIC_NRF_PPIB))
292318
select NRFX_PPIB
293319

294320
config NRFX_PPIB21
295321
bool "PPIB21 driver instance"
322+
default y if NRFX_GPPI
296323
depends on $(dt_nodelabel_has_compat,ppib21,$(DT_COMPAT_NORDIC_NRF_PPIB))
297324
select NRFX_PPIB
298325

299326
config NRFX_PPIB22
300327
bool "PPIB22 driver instance"
328+
default y if NRFX_GPPI
301329
depends on $(dt_nodelabel_has_compat,ppib22,$(DT_COMPAT_NORDIC_NRF_PPIB))
302330
select NRFX_PPIB
303331

304332
config NRFX_PPIB30
305333
bool "PPIB30 driver instance"
334+
default y if NRFX_GPPI
306335
depends on $(dt_nodelabel_has_compat,ppib30,$(DT_COMPAT_NORDIC_NRF_PPIB))
307336
select NRFX_PPIB
308337

samples/boards/nordic/nrfx/Kconfig

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,6 @@
33

44
source "Kconfig.zephyr"
55

6-
config NRFX_DPPI
7-
default $(dt_has_compat,$(DT_COMPAT_NORDIC_NRF_DPPIC))
8-
9-
config NRFX_PPI
10-
default $(dt_has_compat,$(DT_COMPAT_NORDIC_NRF_PPI))
11-
126
config NRFX_GPIOTE0
137
default y if SOC_SERIES_NRF51X || \
148
SOC_SERIES_NRF52X || \
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
CONFIG_GPIO=n
22
CONFIG_LOG=y
33
CONFIG_LOG_PROCESS_THREAD_SLEEP_MS=100
4+
CONFIG_NRFX_GPPI=y

soc/nordic/nrf53/Kconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ config SOC_NRF53_ANOMALY_168_WORKAROUND_FOR_EXECUTION_FROM_RAM
8282
config SOC_NRF53_RTC_PRETICK
8383
bool "Pre-tick workaround for nRF5340 anomaly 165"
8484
depends on (SYS_CLOCK_EXISTS && SOC_NRF5340_CPUNET) || SOC_NRF5340_CPUAPP
85-
select NRFX_DPPI
85+
select NRFX_GPPI
8686
select ARM_ON_ENTER_CPU_IDLE_HOOK if SOC_NRF5340_CPUNET
8787
select ARM_ON_ENTER_CPU_IDLE_PREPARE_HOOK if SOC_NRF5340_CPUNET
8888
help

soc/nordic/nrf53/Kconfig.sync_rtc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ config NRF53_SYNC_RTC
55
bool "RTC clock synchronization"
66
default y if LOG && !LOG_MODE_MINIMAL
77
depends on NRF_RTC_TIMER
8-
select NRFX_DPPI
8+
select NRFX_GPPI
99
select MBOX if !IPM
1010

1111
if NRF53_SYNC_RTC

0 commit comments

Comments
 (0)