Skip to content

Commit fbd05a9

Browse files
[nrf fromlist] drivers: timer: nrf_grtc_timer: Add system_clock_disable implementation
Add implementation of `sys_clock_disable` function for GRTC timer. Upstream PR #: 99305 Signed-off-by: Adam Kondraciuk <adam.kondraciuk@nordicsemi.no>
1 parent 170d587 commit fbd05a9

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

drivers/timer/nrf_grtc_timer.c

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,10 @@ uint64_t z_nrf_grtc_timer_startup_value_get(void)
366366
#if defined(CONFIG_POWEROFF) && defined(CONFIG_NRF_GRTC_START_SYSCOUNTER)
367367
int z_nrf_grtc_wakeup_prepare(uint64_t wake_time_us)
368368
{
369+
if (!nrfx_grtc_init_check()) {
370+
return -ENOTSUP;
371+
}
372+
369373
nrfx_err_t err_code;
370374
static uint8_t systemoff_channel;
371375
uint64_t now = counter();
@@ -463,6 +467,21 @@ ISR_DIRECT_DECLARE(nrfx_grtc_direct_irq_handler)
463467
}
464468
#endif
465469

470+
void sys_clock_disable(void)
471+
{
472+
nrfx_grtc_uninit();
473+
#if defined(CONFIG_CLOCK_CONTROL_NRF)
474+
int err;
475+
struct onoff_manager *mgr =
476+
z_nrf_clock_control_get_onoff((clock_control_subsys_t)CLOCK_CONTROL_NRF_TYPE_LFCLK);
477+
478+
err = onoff_release(mgr);
479+
__ASSERT_NO_MSG(err >= 0);
480+
481+
nrfx_coredep_delay_us(1000);
482+
#endif
483+
}
484+
466485
static int sys_clock_driver_init(void)
467486
{
468487
nrfx_err_t err_code;

0 commit comments

Comments
 (0)