IPCT HAL

group nrf_ipct_hal

Hardware access layer for managing the Inter-Processor Communication Transceiver (IPCT) peripheral.

Defines

NRF_IPCT_HAS_ACK

Symbol indicating presence of ACK task and ACKED event.

NRF_IPCT_TASKS_SEND_COUNT

Number of send tasks.

Enums

enum nrf_ipct_task_t

IPCT tasks.

Values:

enumerator NRF_IPCT_TASK_SEND_0

Send [0] task.

enumerator NRF_IPCT_TASK_SEND_1

Send [1] task.

enumerator NRF_IPCT_TASK_SEND_2

Send [2] task.

enumerator NRF_IPCT_TASK_SEND_3

Send [3] task.

enumerator NRF_IPCT_TASK_SEND_4

Send [4] task.

enumerator NRF_IPCT_TASK_SEND_5

Send [5] task.

enumerator NRF_IPCT_TASK_SEND_6

Send [6] task.

enumerator NRF_IPCT_TASK_SEND_7

Send [7] task.

enumerator NRF_IPCT_TASK_SEND_8

Send [8] task.

enumerator NRF_IPCT_TASK_SEND_9

Send [9] task.

enumerator NRF_IPCT_TASK_SEND_10

Send [10] task.

enumerator NRF_IPCT_TASK_SEND_11

Send [11] task.

enumerator NRF_IPCT_TASK_SEND_12

Send [12] task.

enumerator NRF_IPCT_TASK_SEND_13

Send [13] task.

enumerator NRF_IPCT_TASK_SEND_14

Send [14] task.

enumerator NRF_IPCT_TASK_SEND_15

Send [15] task.

enumerator NRF_IPCT_TASK_ACK_0

Acknowledge the RECEIVE[0] task.

enumerator NRF_IPCT_TASK_ACK_1

Acknowledge the RECEIVE[1] task.

enumerator NRF_IPCT_TASK_ACK_2

Acknowledge the RECEIVE[2] task.

enumerator NRF_IPCT_TASK_ACK_3

Acknowledge the RECEIVE[3] task.

enumerator NRF_IPCT_TASK_ACK_4

Acknowledge the RECEIVE[4] task.

enumerator NRF_IPCT_TASK_ACK_5

Acknowledge the RECEIVE[5] task.

enumerator NRF_IPCT_TASK_ACK_6

Acknowledge the RECEIVE[6] task.

enumerator NRF_IPCT_TASK_ACK_7

Acknowledge the RECEIVE[7] task.

enumerator NRF_IPCT_TASK_ACK_8

Acknowledge the RECEIVE[8] task.

enumerator NRF_IPCT_TASK_ACK_9

Acknowledge the RECEIVE[9] task.

enumerator NRF_IPCT_TASK_ACK_10

Acknowledge the RECEIVE[10] task.

enumerator NRF_IPCT_TASK_ACK_11

Acknowledge the RECEIVE[11] task.

enumerator NRF_IPCT_TASK_ACK_12

Acknowledge the RECEIVE[12] task.

enumerator NRF_IPCT_TASK_ACK_13

Acknowledge the RECEIVE[13] task.

enumerator NRF_IPCT_TASK_ACK_14

Acknowledge the RECEIVE[14] task.

enumerator NRF_IPCT_TASK_ACK_15

Acknowledge the RECEIVE[15] task.

enum nrf_ipct_event_t

IPCT events.

Values:

enumerator NRF_IPCT_EVENT_RECEIVE_0

Receive [0] event.

enumerator NRF_IPCT_EVENT_RECEIVE_1

Receive [1] event.

enumerator NRF_IPCT_EVENT_RECEIVE_2

Receive [2] event.

enumerator NRF_IPCT_EVENT_RECEIVE_3

Receive [3] event.

enumerator NRF_IPCT_EVENT_RECEIVE_4

Receive [4] event.

enumerator NRF_IPCT_EVENT_RECEIVE_5

Receive [5] event.

enumerator NRF_IPCT_EVENT_RECEIVE_6

Receive [6] event.

enumerator NRF_IPCT_EVENT_RECEIVE_7

Receive [7] event.

enumerator NRF_IPCT_EVENT_RECEIVE_8

Receive [8] event.

enumerator NRF_IPCT_EVENT_RECEIVE_9

Receive [9] event.

enumerator NRF_IPCT_EVENT_RECEIVE_10

Receive [10] event.

enumerator NRF_IPCT_EVENT_RECEIVE_11

Receive [11] event.

enumerator NRF_IPCT_EVENT_RECEIVE_12

Receive [12] event.

enumerator NRF_IPCT_EVENT_RECEIVE_13

Receive [13] event.

enumerator NRF_IPCT_EVENT_RECEIVE_14

Receive [14] event.

enumerator NRF_IPCT_EVENT_RECEIVE_15

Receive [15] event.

enumerator NRF_IPCT_EVENT_ACKED_0

Acknowledged event for the SEND[0] task.

enumerator NRF_IPCT_EVENT_ACKED_1

Acknowledged event for the SEND[1] task.

enumerator NRF_IPCT_EVENT_ACKED_2

Acknowledged event for the SEND[2] task.

enumerator NRF_IPCT_EVENT_ACKED_3

Acknowledged event for the SEND[3] task.

enumerator NRF_IPCT_EVENT_ACKED_4

Acknowledged event for the SEND[4] task.

enumerator NRF_IPCT_EVENT_ACKED_5

Acknowledged event for the SEND[5] task.

enumerator NRF_IPCT_EVENT_ACKED_6

Acknowledged event for the SEND[6] task.

enumerator NRF_IPCT_EVENT_ACKED_7

Acknowledged event for the SEND[7] task.

enumerator NRF_IPCT_EVENT_ACKED_8

Acknowledged event for the SEND[8] task.

enumerator NRF_IPCT_EVENT_ACKED_9

Acknowledged event for the SEND[9] task.

enumerator NRF_IPCT_EVENT_ACKED_10

Acknowledged event for the SEND[10] task.

enumerator NRF_IPCT_EVENT_ACKED_11

Acknowledged event for the SEND[11] task.

enumerator NRF_IPCT_EVENT_ACKED_12

Acknowledged event for the SEND[12] task.

enumerator NRF_IPCT_EVENT_ACKED_13

Acknowledged event for the SEND[13] task.

enumerator NRF_IPCT_EVENT_ACKED_14

Acknowledged event for the SEND[14] task.

enumerator NRF_IPCT_EVENT_ACKED_15

Acknowledged event for the SEND[15] task.

enum nrf_ipct_short_mask_t

IPCT shortcuts.

Values:

enumerator NRF_IPCT_SHORT_RECEIVE0_ACK0_MASK

Shortcut between event RECEIVE[0] and task ACK[0].

enumerator NRF_IPCT_SHORT_RECEIVE1_ACK1_MASK

Shortcut between event RECEIVE[1] and task ACK[1].

enumerator NRF_IPCT_SHORT_RECEIVE2_ACK2_MASK

Shortcut between event RECEIVE[2] and task ACK[2].

enumerator NRF_IPCT_SHORT_RECEIVE3_ACK3_MASK

Shortcut between event RECEIVE[3] and task ACK[3].

enumerator NRF_IPCT_SHORT_RECEIVE4_ACK4_MASK

Shortcut between event RECEIVE[4] and task ACK[4].

enumerator NRF_IPCT_SHORT_RECEIVE5_ACK5_MASK

Shortcut between event RECEIVE[5] and task ACK[5].

enumerator NRF_IPCT_SHORT_RECEIVE6_ACK6_MASK

Shortcut between event RECEIVE[6] and task ACK[6].

enumerator NRF_IPCT_SHORT_RECEIVE7_ACK7_MASK

Shortcut between event RECEIVE[7] and task ACK[7].

enumerator NRF_IPCT_SHORT_RECEIVE8_ACK8_MASK

Shortcut between event RECEIVE[8] and task ACK[8].

enumerator NRF_IPCT_SHORT_RECEIVE9_ACK9_MASK

Shortcut between event RECEIVE[9] and task ACK[9].

enumerator NRF_IPCT_SHORT_RECEIVE10_ACK10_MASK

Shortcut between event RECEIVE[10] and task ACK[10].

enumerator NRF_IPCT_SHORT_RECEIVE11_ACK11_MASK

Shortcut between event RECEIVE[11] and task ACK[11].

enumerator NRF_IPCT_SHORT_RECEIVE12_ACK12_MASK

Shortcut between event RECEIVE[12] and task ACK[12].

enumerator NRF_IPCT_SHORT_RECEIVE13_ACK13_MASK

Shortcut between event RECEIVE[13] and task ACK[13].

enumerator NRF_IPCT_SHORT_RECEIVE14_ACK14_MASK

Shortcut between event RECEIVE[14] and task ACK[14].

enumerator NRF_IPCT_SHORT_RECEIVE15_ACK15_MASK

Shortcut between event RECEIVE[15] and task ACK[15].

enumerator NRF_IPCT_ALL_SHORTS_MASK

All IPCT shortcuts.

enum nrf_ipct_int_mask_t

IPCT interrupts.

Values:

enumerator NRF_IPCT_INT_RECEIVE_0

Interrupt for event RECEIVE[0].

enumerator NRF_IPCT_INT_RECEIVE_1

Interrupt for event RECEIVE[1].

enumerator NRF_IPCT_INT_RECEIVE_2

Interrupt for event RECEIVE[2].

enumerator NRF_IPCT_INT_RECEIVE_3

Interrupt for event RECEIVE[3].

enumerator NRF_IPCT_INT_RECEIVE_4

Interrupt for event RECEIVE[4].

enumerator NRF_IPCT_INT_RECEIVE_5

Interrupt for event RECEIVE[5].

enumerator NRF_IPCT_INT_RECEIVE_6

Interrupt for event RECEIVE[6].

enumerator NRF_IPCT_INT_RECEIVE_7

Interrupt for event RECEIVE[7].

enumerator NRF_IPCT_INT_RECEIVE_8

Interrupt for event RECEIVE[8].

enumerator NRF_IPCT_INT_RECEIVE_9

Interrupt for event RECEIVE[9].

enumerator NRF_IPCT_INT_RECEIVE_10

Interrupt for event RECEIVE[10].

enumerator NRF_IPCT_INT_RECEIVE_11

Interrupt for event RECEIVE[11].

enumerator NRF_IPCT_INT_RECEIVE_12

Interrupt for event RECEIVE[12].

enumerator NRF_IPCT_INT_RECEIVE_13

Interrupt for event RECEIVE[13].

enumerator NRF_IPCT_INT_RECEIVE_14

Interrupt for event RECEIVE[14].

enumerator NRF_IPCT_INT_RECEIVE_15

Interrupt for event RECEIVE[15].

enumerator NRF_IPCT_INT_ACKED_0

Interrupt for event ACKED[0].

enumerator NRF_IPCT_INT_ACKED_1

Interrupt for event ACKED[1].

enumerator NRF_IPCT_INT_ACKED_2

Interrupt for event ACKED[2].

enumerator NRF_IPCT_INT_ACKED_3

Interrupt for event ACKED[3].

enumerator NRF_IPCT_INT_ACKED_4

Interrupt for event ACKED[4].

enumerator NRF_IPCT_INT_ACKED_5

Interrupt for event ACKED[5].

enumerator NRF_IPCT_INT_ACKED_6

Interrupt for event ACKED[6].

enumerator NRF_IPCT_INT_ACKED_7

Interrupt for event ACKED[7].

enumerator NRF_IPCT_INT_ACKED_8

Interrupt for event ACKED[8].

enumerator NRF_IPCT_INT_ACKED_9

Interrupt for event ACKED[9].

enumerator NRF_IPCT_INT_ACKED_10

Interrupt for event ACKED[10].

enumerator NRF_IPCT_INT_ACKED_11

Interrupt for event ACKED[11].

enumerator NRF_IPCT_INT_ACKED_12

Interrupt for event ACKED[12].

enumerator NRF_IPCT_INT_ACKED_13

Interrupt for event ACKED[13].

enumerator NRF_IPCT_INT_ACKED_14

Interrupt for event ACKED[14].

enumerator NRF_IPCT_INT_ACKED_15

Interrupt for event ACKED[15].

Functions

NRF_STATIC_INLINE void nrf_ipct_task_trigger(NRF_IPCT_Type *p_reg, nrf_ipct_task_t task)

Function for triggering the specified IPCT task.

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

  • task[in] Task to be triggered.

NRF_STATIC_INLINE uint32_t nrf_ipct_task_address_get(NRF_IPCT_Type const *p_reg, nrf_ipct_task_t task)

Function for getting the address of the specified IPCT 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.

NRF_STATIC_INLINE void nrf_ipct_event_clear(NRF_IPCT_Type *p_reg, nrf_ipct_event_t event)

Function for clearing the specified IPCT event.

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

  • event[in] Event to clear.

NRF_STATIC_INLINE bool nrf_ipct_event_check(NRF_IPCT_Type const *p_reg, nrf_ipct_event_t event)

Function for retrieving the state of the IPCT 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.

NRF_STATIC_INLINE uint32_t nrf_ipct_event_address_get(NRF_IPCT_Type const *p_reg, nrf_ipct_event_t event)

Function for getting the address of the specified IPCT 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.

NRF_STATIC_INLINE void nrf_ipct_int_enable(NRF_IPCT_Type *p_reg, uint8_t group_idx, uint32_t mask)

Function for enabling specified interrupts.

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

  • group_idx[in] Index of interrupt group to be enabled.

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

NRF_STATIC_INLINE void nrf_ipct_int_disable(NRF_IPCT_Type *p_reg, uint8_t group_idx, uint32_t mask)

Function for disabling specified interrupts.

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

  • group_idx[in] Index of interrupt group to be disabled.

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

NRF_STATIC_INLINE uint32_t nrf_ipct_int_enable_check(NRF_IPCT_Type const *p_reg, uint8_t group_idx, uint32_t mask)

Function for checking if the specified interrupts are enabled.

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

  • group_idx[in] Index of interrupt group to be checked.

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

Returns:

Mask of enabled interrupts.

NRF_STATIC_INLINE uint32_t nrf_ipct_int_pending_get(NRF_IPCT_Type const *p_reg, uint8_t group_idx)

Function for retrieving the state of pending interrupts.

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.

  • group_idx[in] Index of interrupt group to be retrieved.

Returns:

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

NRF_STATIC_INLINE void nrf_ipct_subscribe_set(NRF_IPCT_Type *p_reg, nrf_ipct_task_t task, uint8_t channel)

Function for setting the DPPI subscribe configuration for a given IPCT 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] DPPI channel through which to subscribe events.

NRF_STATIC_INLINE void nrf_ipct_subscribe_clear(NRF_IPCT_Type *p_reg, nrf_ipct_task_t task)

Function for clearing the DPPI subscribe configuration for a given IPCT task.

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

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

NRF_STATIC_INLINE void nrf_ipct_publish_set(NRF_IPCT_Type *p_reg, nrf_ipct_event_t event, uint8_t channel)

Function for setting the DPPI publish configuration for a given IPCT 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] DPPI channel through which to publish the event.

NRF_STATIC_INLINE void nrf_ipct_publish_clear(NRF_IPCT_Type *p_reg, nrf_ipct_event_t event)

Function for clearing the DPPI publish configuration for a given IPCT event.

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

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

NRF_STATIC_INLINE bool nrf_ipct_overflow_send_get(NRF_IPCT_Type const *p_reg, uint8_t index)

Function for getting value of the task overflow status for SEND task.

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

  • index[in] SEND task index to be checked.

Return values:
  • true – Task overflow has happened.

  • false – Task overflow has not happened.

NRF_STATIC_INLINE nrf_ipct_task_t nrf_ipct_send_task_get(uint8_t index)

Function for getting SEND task by its index.

Parameters:
  • index[in] Index of the SEND task.

Returns:

SEND task.

NRF_STATIC_INLINE nrf_ipct_task_t nrf_ipct_ack_task_get(uint8_t index)

Function for getting ACK task by its index.

Parameters:
  • index[in] Index of the ACK task.

Returns:

ACK task.

NRF_STATIC_INLINE nrf_ipct_event_t nrf_ipct_receive_event_get(uint8_t index)

Function for getting RECEIVE event by its index.

Parameters:
  • index[in] Index of the RECEIVE event.

Returns:

RECEIVE event.

NRF_STATIC_INLINE nrf_ipct_event_t nrf_ipct_acked_event_get(uint8_t index)

Function for getting ACKED event by its index.

Parameters:
  • index[in] Index of the ACKED event.

Returns:

ACKED event.

NRF_STATIC_INLINE void nrf_ipct_shorts_enable(NRF_IPCT_Type *p_reg, uint32_t mask)

Function for enabling the specified shortcuts.

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

  • mask[in] Shortcuts to be enabled.

NRF_STATIC_INLINE void nrf_ipct_shorts_disable(NRF_IPCT_Type *p_reg, uint32_t mask)

Function for disabling the specified shortcuts.

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

  • mask[in] Shortcuts to be disabled.

NRF_STATIC_INLINE void nrf_ipct_shorts_set(NRF_IPCT_Type *p_reg, uint32_t mask)

Function for setting the configuration of IPCT shortcuts.

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

  • mask[in] Shortcuts to be set.