7#ifndef NRF_DRIVERS_PPI_SEQ_PPI_SEQ_H
8#define NRF_DRIVERS_PPI_SEQ_PPI_SEQ_H
19#include <nrfx_timer.h>
21#include <helpers/nrfx_gppi.h>
22#include <zephyr/kernel.h>
28#ifndef CONFIG_PPI_SEQ_MAX_PPI_HANDLES
29#define CONFIG_PPI_SEQ_MAX_PPI_HANDLES 8
136 NRF_RTC_Type *rtc_reg;
void ppi_seq_uninit(struct ppi_seq *seq)
Uninitialize the sequencer.
#define CONFIG_PPI_SEQ_MAX_PPI_HANDLES
Definition ppi_seq.h:29
void(* ppi_seq_cb_t)(struct ppi_seq *ppi_seq, bool last)
Callback called after completion of each cycle.
Definition ppi_seq.h:64
int ppi_seq_init(struct ppi_seq *seq, const struct ppi_seq_config *config)
Initialize the sequencer.
void ppi_seq_rtc_irq_handler(struct ppi_seq *seq)
RTC interrupt handler.
int ppi_seq_stop(struct ppi_seq *seq, bool immediate)
Stop the sequencer.
int ppi_seq_start(struct ppi_seq *seq, size_t period, size_t batch_cnt, int repeat)
Start the sequencer.
ppi_seq_notifier_type
Type of notifier used for the requested number of sequences completion.
Definition ppi_seq.h:67
@ PPI_SEQ_NOTIFIER_SYS_TIMER
Definition ppi_seq.h:69
@ PPI_SEQ_NOTIFIER_NRFX_TIMER
Definition ppi_seq.h:72
uint32_t task
Definition ppi_seq.h:143
ppi_seq_cb_t callback
Definition ppi_seq.h:140
const struct ppi_seq_extra_op * extra_ops
Definition ppi_seq.h:150
NRF_TIMER_Type * timer_reg
Definition ppi_seq.h:132
struct ppi_seq_notifier * notifier
Definition ppi_seq.h:129
size_t extra_ops_count
Definition ppi_seq.h:153
bool skip_gppi
Definition ppi_seq.h:155
Sequencer configuration structure.
Definition ppi_seq.h:127
nrfx_timer_t timer
Definition ppi_seq.h:93
uint16_t extra_main_ops
Definition ppi_seq.h:101
uint32_t end_seq_event
Definition ppi_seq.h:96
nrfx_timer notifier structure. Useful for short periods.
Definition ppi_seq.h:91
uint32_t period
Definition ppi_seq.h:87
struct k_timer timer
Definition ppi_seq.h:78
uint16_t offset
Definition ppi_seq.h:81
uint64_t timestamp
Definition ppi_seq.h:84
System timer notifier structure. Low power and less resources.
Definition ppi_seq.h:76
struct ppi_seq_notifier_sys_timer sys_timer
Definition ppi_seq.h:110
struct ppi_seq_notifier_nrfx_timer nrfx_timer
Definition ppi_seq.h:113
enum ppi_seq_notifier_type type
Definition ppi_seq.h:107
Notifier structure.
Definition ppi_seq.h:105
uint8_t ppi_cnt
Definition ppi_seq.h:56
atomic_t repeat
Definition ppi_seq.h:47
const struct ppi_seq_config * config
Definition ppi_seq.h:38
uint16_t batch_cnt
Definition ppi_seq.h:50
nrfx_gppi_handle_t ppi_pool[8]
Definition ppi_seq.h:44
nrfx_timer_t timer
Definition ppi_seq.h:41
uint8_t grtc_chan
Definition ppi_seq.h:53
PPI sequencer structure.
Definition ppi_seq.h:36