Skip to content

Commit 21d83d8

Browse files
committed
[nrf fromlist] soc: nordic: nrf54l: Add initialization of GPPI resources
Add initialization of GPPI resources for nrf54l series. Upstream PR #: 98327 Signed-off-by: Krzysztof Chruściński <[email protected]>
1 parent 1092d84 commit 21d83d8

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

soc/nordic/nrf54l/soc.c

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,15 @@ LOG_MODULE_REGISTER(soc, CONFIG_SOC_LOG_LEVEL);
3030
#include <hal/nrf_oscillators.h>
3131
#include <hal/nrf_power.h>
3232
#include <hal/nrf_regulators.h>
33+
#include <helpers/nrfx_gppi.h>
34+
#include <helpers/nrfx_gppi_lumos.h>
3335
#include <zephyr/dt-bindings/regulator/nrf5x.h>
3436

3537
#define LFXO_NODE DT_NODELABEL(lfxo)
3638
#define HFXO_NODE DT_NODELABEL(hfxo)
3739

40+
static nrfx_gppi_t gppi_instance;
41+
3842
static inline void power_and_clock_configuration(void)
3943
{
4044
/* NRF_REGULATORS and NRF_OSCILLATORS are configured to be secure
@@ -147,6 +151,28 @@ static inline void power_and_clock_configuration(void)
147151
}
148152
#endif /* NRF_APPLICATION && !CONFIG_TRUSTED_EXECUTION_NONSECURE */
149153

154+
void gppi_init(void)
155+
{
156+
gppi_instance.routes = nrfx_gppi_routes_get();
157+
gppi_instance.route_map = nrfx_gppi_route_map_get();
158+
gppi_instance.nodes = nrfx_gppi_nodes_get();
159+
160+
nrfx_gppi_channel_init(NRFX_GPPI_NODE_DPPIC00, NRFX_BIT_MASK(DPPIC00_CH_NUM_SIZE));
161+
nrfx_gppi_channel_init(NRFX_GPPI_NODE_DPPIC10, NRFX_BIT_MASK(DPPIC10_CH_NUM_SIZE));
162+
nrfx_gppi_channel_init(NRFX_GPPI_NODE_DPPIC20, NRFX_BIT_MASK(DPPIC20_CH_NUM_SIZE));
163+
nrfx_gppi_channel_init(NRFX_GPPI_NODE_DPPIC30, NRFX_BIT_MASK(DPPIC30_CH_NUM_SIZE));
164+
nrfx_gppi_channel_init(NRFX_GPPI_NODE_PPIB00_10, NRFX_BIT_MASK(PPIB10_NTASKSEVENTS_SIZE));
165+
nrfx_gppi_channel_init(NRFX_GPPI_NODE_PPIB11_21, NRFX_BIT_MASK(PPIB11_NTASKSEVENTS_SIZE));
166+
nrfx_gppi_channel_init(NRFX_GPPI_NODE_PPIB01_20, NRFX_BIT_MASK(PPIB01_NTASKSEVENTS_SIZE));
167+
nrfx_gppi_channel_init(NRFX_GPPI_NODE_PPIB22_30, NRFX_BIT_MASK(PPIB22_NTASKSEVENTS_SIZE));
168+
169+
nrfx_gppi_groups_init(NRFX_GPPI_NODE_DPPIC00, NRFX_BIT_MASK(DPPIC00_GROUP_NUM_SIZE));
170+
nrfx_gppi_groups_init(NRFX_GPPI_NODE_DPPIC10, NRFX_BIT_MASK(DPPIC10_GROUP_NUM_SIZE));
171+
nrfx_gppi_groups_init(NRFX_GPPI_NODE_DPPIC20, NRFX_BIT_MASK(DPPIC20_GROUP_NUM_SIZE));
172+
nrfx_gppi_groups_init(NRFX_GPPI_NODE_DPPIC30, NRFX_BIT_MASK(DPPIC30_GROUP_NUM_SIZE));
173+
nrfx_gppi_init(&gppi_instance);
174+
}
175+
150176
int nordicsemi_nrf54l_init(void)
151177
{
152178
/* Update the SystemCoreClock global variable with current core clock
@@ -161,6 +187,10 @@ int nordicsemi_nrf54l_init(void)
161187
power_and_clock_configuration();
162188
#endif
163189

190+
if (IS_ENABLED(CONFIG_NRFX_GPPI) && !IS_ENABLED(CONFIG_NRFX_GPPI_V1)) {
191+
gppi_init();
192+
}
193+
164194
return 0;
165195
}
166196

0 commit comments

Comments
 (0)