MVDMA HALY

group nrfy_mvdma

Hardware access layer with cache and barrier support for managing the MVDMA peripheral.

Defines

NRFY_MVDMA_HAS_NEW_VER

See also

NRF_MVDMA_HAS_NEW_VER Symbol indicating whether MVDMA uses new or old version.

NRFY_MVDMA_HAS_AXIMODE

See also

NRF_MVDMA_HAS_AXIMODE Symbol indicating whether AXIMODE configuration is present.

Functions

NRFY_STATIC_INLINE void nrfy_mvdma_int_init(NRF_MVDMA_Type *p_reg, uint32_t mask, uint8_t irq_priority, bool enable)

Function for initializing the specified MVDMA interrupts.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • mask[in] Mask of interrupts to be initialized.

  • irq_priority[in] Interrupt priority.

  • enable[in] True if the interrupts are to be enabled, false otherwise.

NRFY_STATIC_INLINE void nrfy_mvdma_int_uninit(NRF_MVDMA_Type *p_reg)

Function for uninitializing the specified MVDMA interrupts.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

NRFY_STATIC_INLINE uint32_t nrfy_mvdma_events_process(NRF_MVDMA_Type *p_reg, uint32_t mask, nrfy_mvdma_list_request_t *p_list_request)

Function for processing the specified MVDMA events.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • mask[in] Mask of events to be processed, created by NRFY_EVENT_TO_INT_BITMASK().

  • p_list_request[in] Pointer to the structure of list execution request associated with the last operation. Can be NULL.

Returns:

Mask of events that were generated and processed. To be checked against the result of NRFY_EVENT_TO_INT_BITMASK().

NRFY_STATIC_INLINE void nrfy_mvdma_start(NRF_MVDMA_Type *p_reg, nrfy_mvdma_list_request_t const *p_list_request)

Function for starting the MVDMA jobs in single-mode.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • p_list_request[in] Pointer to the structure of list execution request if the transaction is to be blocking. NULL for non-blocking transactions.

NRFY_STATIC_INLINE void nrfy_mvdma_multi_start(NRF_MVDMA_Type *p_reg, uint8_t idx, nrfy_mvdma_multi_list_request_t const *p_list_request)

Function for starting the MVDMA jobs in multi-mode.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • idx[in] Index of the job list that will be executed.

  • p_list_request[in] Pointer to the structure of lists execution request if the transaction is to be blocking. NULL for non-blocking transactions.

NRFY_STATIC_INLINE void nrfy_mvdma_multi_job_list_set(NRF_MVDMA_Type *p_reg, nrfy_mvdma_multi_list_request_t const *p_list_request)

Function for setting the MVDMA job lists in multi-mode.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • p_list_request[in] Pointer to the structure of list execution request.

NRFY_STATIC_INLINE void nrfy_mvdma_multi_job_list_get(NRF_MVDMA_Type const *p_reg, nrfy_mvdma_multi_list_request_t *p_list_request)

Function for getting the MVDMA job lists in multi-mode.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • p_list_request[out] Pointer to the structure to be filled with list execution request.

NRFY_STATIC_INLINE void nrfy_mvdma_job_list_set(NRF_MVDMA_Type *p_reg, nrfy_mvdma_list_request_t const *p_list_request)

Function for setting the MVDMA jobs.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • p_list_request[in] Pointer to the structure of list execution request.

NRFY_STATIC_INLINE void nrfy_mvdma_reset(NRF_MVDMA_Type *p_reg, bool wait)

Function for resetting the MVDMA peripheral.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • wait[in] True if reset is to be done in blocking mode, false otherwise.

NRFY_STATIC_INLINE void nrfy_mvdma_abort(NRF_MVDMA_Type *p_reg, nrfy_mvdma_list_request_t const *p_list_request)

Function for aborting the MVDMA transaction.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • p_list_request[in] Pointer to the structure of list execution request.

NRFY_STATIC_INLINE void nrfy_mvdma_source_job_description_get(NRF_MVDMA_Type const *p_reg, nrfy_mvdma_list_desc_t *p_job_list_desc)

Function for getting the MVDMA source job details.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • p_job_list_desc[out] Pointer to the structure to be filled with job list description.

NRFY_STATIC_INLINE void nrfy_mvdma_sink_job_description_get(NRF_MVDMA_Type const *p_reg, nrfy_mvdma_list_desc_t *p_job_list_desc)

Function for getting the MVDMA sink job details.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • p_job_list_desc[out] Pointer to the structure to be filled with job list description.

NRFY_STATIC_INLINE void nrfy_mvdma_task_trigger(NRF_MVDMA_Type *p_reg, nrf_mvdma_task_t task)

See also

nrf_mvdma_task_trigger Function for activating the specified MVDMA task.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • task[in] Task to be activated.

NRFY_STATIC_INLINE uint32_t nrfy_mvdma_task_address_get(NRF_MVDMA_Type const *p_reg, nrf_mvdma_task_t task)

See also

nrf_mvdma_task_address_get Function for getting the address of the specified MVDMA task register.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • task[in] Specified task.

Returns:

Address of the specified task register.

NRFY_STATIC_INLINE nrf_mvdma_task_t nrfy_mvdma_start_task_get(NRF_MVDMA_Type const *p_reg, uint8_t index)

See also

nrf_mvdma_start_task_get Function for getting START task by its index.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • index[in] Index of the START task.

Returns:

START task.

NRFY_STATIC_INLINE void nrfy_mvdma_event_clear(NRF_MVDMA_Type *p_reg, nrf_mvdma_event_t event)

See also

nrf_mvdma_event_clear Function for clearing the specified MVDMA event.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • event[in] Event to clear.

NRFY_STATIC_INLINE bool nrfy_mvdma_event_check(NRF_MVDMA_Type const *p_reg, nrf_mvdma_event_t event)

See also

nrf_mvdma_event_check Function for retrieving the state of the MVDMA event.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • event[in] Event to be checked.

Return values:
  • true – The event has been generated.

  • false – The event has not been generated.

NRFY_STATIC_INLINE uint32_t nrfy_mvdma_event_address_get(NRF_MVDMA_Type const *p_reg, nrf_mvdma_event_t event)

See also

nrf_mvdma_event_address_get Function for getting the address of the specified MVDMA event register.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • event[in] Specified event.

Returns:

Address of the specified event register.

NRFY_STATIC_INLINE void nrfy_mvdma_int_enable(NRF_MVDMA_Type *p_reg, uint32_t mask)

See also

nrf_mvdma_int_enable Function for enabling specified interrupts.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • mask[in] Mask of interrupts to be enabled. Use nrf_mvdma_int_mask_t values for bit masking.

NRFY_STATIC_INLINE void nrfy_mvdma_int_disable(NRF_MVDMA_Type *p_reg, uint32_t mask)

See also

nrf_mvdma_int_disable Function for disabling specified interrupts.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • mask[in] Mask of interrupts to be disabled. Use nrf_mvdma_int_mask_t values for bit masking.

NRFY_STATIC_INLINE uint32_t nrfy_mvdma_int_enable_check(NRF_MVDMA_Type const *p_reg, uint32_t mask)

See also

nrf_mvdma_int_enable_check Function for checking if the specified interrupts are enabled.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • mask[in] Mask of interrupts to be checked. Use nrf_mvdma_int_mask_t values for bit masking.

Returns:

Mask of enabled interrupts.

NRFY_STATIC_INLINE uint32_t nrfy_mvdma_int_pending_get(NRF_MVDMA_Type const *p_reg)

See also

nrf_mvdma_int_pending_get Function for retrieving the state of pending interrupts.

Note

States of pending interrupt are saved as a bitmask. One set at particular position means that interrupt for event is pending.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

Bitmask with information about pending interrupts. Use nrf_mvdma_int_mask_t values for bit masking.

NRFY_STATIC_INLINE void nrfy_mvdma_subscribe_set(NRF_MVDMA_Type *p_reg, nrf_mvdma_task_t task, uint8_t channel)

See also

nrf_mvdma_subscribe_set Function for setting the subscribe configuration for a given MVDMA task.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • task[in] Task for which to set the configuration.

  • channel[in] Channel through which to subscribe events.

NRFY_STATIC_INLINE void nrfy_mvdma_subscribe_clear(NRF_MVDMA_Type *p_reg, nrf_mvdma_task_t task)

See also

nrf_mvdma_subscribe_clear Function for clearing the subscribe configuration for a given MVDMA task.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • task[in] Task for which to clear the configuration.

NRFY_STATIC_INLINE void nrfy_mvdma_publish_set(NRF_MVDMA_Type *p_reg, nrf_mvdma_event_t event, uint8_t channel)

See also

nrf_mvdma_publish_set Function for setting the publish configuration for a given MVDMA event.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • event[in] Event for which to set the configuration.

  • channel[in] Channel through which to publish the event.

NRFY_STATIC_INLINE void nrfy_mvdma_publish_clear(NRF_MVDMA_Type *p_reg, nrf_mvdma_event_t event)

See also

nrf_mvdma_publish_clear Function for clearing the publish configuration for a given MVDMA event.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • event[in] Event for which to clear the configuration.

NRFY_STATIC_INLINE void nrfy_mvdma_mode_set(NRF_MVDMA_Type *p_reg, nrf_mvdma_mode_t mode)

See also

nrf_mvdma_mode_set Function for setting the MVDMA mode.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • mode[in] Desired operating mode for MVDMA.

NRFY_STATIC_INLINE void nrfy_mvdma_aximode_set(NRF_MVDMA_Type *p_reg, nrf_mvdma_aximode_t aximode)

See also

nrf_mvdma_aximode_set Function for setting the AXI mode.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • aximode[in] Desired AXI mode for MVDMA.

NRFY_STATIC_INLINE void nrfy_mvdma_source_list_ptr_set(NRF_MVDMA_Type *p_reg, nrf_vdma_job_t const *p_job)

See also

nrf_mvdma_source_list_ptr_set Function for setting the pointer to the source descriptor list or pointer to the list of descriptor list pointers, depending on configured nrf_mvdma_mode_t mode.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • p_job[in] Pointer to a job list.

NRFY_STATIC_INLINE nrf_vdma_job_t *nrfy_mvdma_source_list_ptr_get(NRF_MVDMA_Type const *p_reg)

See also

nrf_mvdma_source_list_ptr_get Function for getting the pointer to the source descriptor list or pointer to the list of descriptor list pointers, depending on configured nrf_mvdma_mode_t mode.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

Pointer to a job list.

NRFY_STATIC_INLINE void nrfy_mvdma_sink_list_ptr_set(NRF_MVDMA_Type *p_reg, nrf_vdma_job_t const *p_job)

See also

nrf_mvdma_sink_list_ptr_set Function for getting the pointer to the sink descriptor list or pointer to the list of descriptor list pointers, depending on configured nrf_mvdma_mode_t mode.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • p_job[in] Pointer to a job list.

NRFY_STATIC_INLINE nrf_vdma_job_t *nrfy_mvdma_sink_list_ptr_get(NRF_MVDMA_Type const *p_reg)

See also

nrf_mvdma_sink_list_ptr_get Function for getting the pointer to the sink descriptor list or pointer to the list of descriptor list pointers, depending on configured nrf_mvdma_mode_t mode.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

Pointer to a job list.

NRFY_STATIC_INLINE uint32_t nrfy_mvdma_crc_result_get(NRF_MVDMA_Type const *p_reg)

See also

nrf_mvdma_crc_result_get Function for getting the result of CRC checksum calculation.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

Result of CRC checksum calculation.

NRFY_STATIC_INLINE nrf_mvdma_fifo_status_t nrfy_mvdma_fifo_status_get(NRF_MVDMA_Type const *p_reg)

See also

nrf_mvdma_fifo_status_get Function for getting the status of intermediate FIFO.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

Intermediate FIFO status.

NRFY_STATIC_INLINE bool nrfy_mvdma_activity_check(NRF_MVDMA_Type *p_reg)

See also

nrf_mvdma_activity_check Function for checking the MVDMA activity.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Return values:
  • true – MVDMA is processing data.

  • false – MVDMA is idle.

NRFY_STATIC_INLINE nrf_mvdma_source_error_t nrfy_mvdma_source_error_get(NRF_MVDMA_Type const *p_reg)

See also

nrf_mvdma_source_error_get Function for getting the bus error of MVDMA data source.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

Bus error of data source.

NRFY_STATIC_INLINE nrf_mvdma_sink_error_t nrfy_mvdma_sink_error_get(NRF_MVDMA_Type const *p_reg)

See also

nrf_mvdma_sink_error_get Function for getting the bus error of MVDMA data source.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

Bus error of data sink.

NRFY_STATIC_INLINE uint32_t nrfy_mvdma_last_source_address_get(NRF_MVDMA_Type const *p_reg)

See also

nrf_mvdma_last_source_address_get Function for getting the latest address being accessed on the source AXI channel.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

Latest address being accessed on the source AXI channel.

NRFY_STATIC_INLINE uint32_t nrfy_mvdma_last_sink_address_get(NRF_MVDMA_Type const *p_reg)

See also

nrf_mvdma_last_sink_address_get Function for getting the latest address being accessed on the sink AXI channel.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

Latest address being accessed on the sink AXI channel.

NRFY_STATIC_INLINE uint32_t nrfy_mvdma_source_job_count_get(NRF_MVDMA_Type const *p_reg)

See also

nrf_mvdma_source_job_count_get Function for getting the number of completed jobs in the current source descriptor list.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

Number of completed jobs in the current source descriptor list.

NRFY_STATIC_INLINE uint32_t nrfy_mvdma_sink_job_count_get(NRF_MVDMA_Type const *p_reg)

See also

nrf_mvdma_sink_job_count_get Function for getting the number of completed jobs in the current sink descriptor list.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

Number of completed jobs in the current sink descriptor list.

struct nrfy_mvdma_list_request_t
#include <nrfy_mvdma.h>

Structure describing list execution request for the MVDMA.

Public Members

nrf_vdma_job_t *p_source_job_list

Pointer to the source job list.

nrf_vdma_job_t *p_sink_job_list

Pointer to the sink job list.

struct nrfy_mvdma_list_desc_t
#include <nrfy_mvdma.h>

Auxiliary structure describing the MVDMA job list with unspecified direction.

Public Members

nrf_vdma_job_t *p_jobs

Pointer to the job list.

size_t job_count

Number of jobs executed, including terminating job.

uint32_t last_addr

Last sink or source address accessed by the peripheral when the list was processed.