bluetooth: nordic: Update nrfx HAL calls with pointers to HW instances

Update calls to nrfx HAL functions to reflect API changes introduced in
nrfx 2.0.0. All these functions are now called with the first parameter
pointing to the structure of registers of the relevant peripheral.

Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
This commit is contained in:
Andrzej Głąbek 2019-11-07 22:56:54 +01:00 committed by Carles Cufí
commit d84447e943
2 changed files with 63 additions and 31 deletions

View file

@ -69,7 +69,8 @@ void radio_isr_set(radio_isr_cb_t cb, void *param)
isr_cb_param = param;
isr_cb = cb;
nrf_radio_int_enable(0 |
nrf_radio_int_enable(NRF_RADIO,
0 |
/* RADIO_INTENSET_READY_Msk |
* RADIO_INTENSET_ADDRESS_Msk |
* RADIO_INTENSET_PAYLOAD_Msk |
@ -108,10 +109,14 @@ void radio_reset(void)
{
irq_disable(RADIO_IRQn);
nrf_radio_power_set((RADIO_POWER_POWER_Disabled
<< RADIO_POWER_POWER_Pos) & RADIO_POWER_POWER_Msk);
nrf_radio_power_set((RADIO_POWER_POWER_Enabled << RADIO_POWER_POWER_Pos)
& RADIO_POWER_POWER_Msk);
nrf_radio_power_set(
NRF_RADIO,
(RADIO_POWER_POWER_Disabled << RADIO_POWER_POWER_Pos) &
RADIO_POWER_POWER_Msk);
nrf_radio_power_set(
NRF_RADIO,
(RADIO_POWER_POWER_Enabled << RADIO_POWER_POWER_Pos) &
RADIO_POWER_POWER_Msk);
hal_radio_reset();
@ -277,12 +282,12 @@ u32_t radio_rx_chain_delay_get(u8_t phy, u8_t flags)
void radio_rx_enable(void)
{
nrf_radio_task_trigger(NRF_RADIO_TASK_RXEN);
nrf_radio_task_trigger(NRF_RADIO, NRF_RADIO_TASK_RXEN);
}
void radio_tx_enable(void)
{
nrf_radio_task_trigger(NRF_RADIO_TASK_TXEN);
nrf_radio_task_trigger(NRF_RADIO, NRF_RADIO_TASK_TXEN);
}
void radio_disable(void)
@ -295,7 +300,7 @@ void radio_disable(void)
#endif /* !CONFIG_BT_CTLR_TIFS_HW */
NRF_RADIO->SHORTS = 0;
nrf_radio_task_trigger(NRF_RADIO_TASK_DISABLE);
nrf_radio_task_trigger(NRF_RADIO, NRF_RADIO_TASK_DISABLE);
}
void radio_status_reset(void)
@ -473,10 +478,10 @@ static void sw_switch(u8_t dir, u8_t phy_curr, u8_t flags_curr, u8_t phy_next,
if (delay <
SW_SWITCH_TIMER->CC[cc]) {
nrf_timer_cc_write(SW_SWITCH_TIMER, cc,
SW_SWITCH_TIMER->CC[cc] - delay);
nrf_timer_cc_set(SW_SWITCH_TIMER, cc,
SW_SWITCH_TIMER->CC[cc] - delay);
} else {
nrf_timer_cc_write(SW_SWITCH_TIMER, cc, 1);
nrf_timer_cc_set(SW_SWITCH_TIMER, cc, 1);
}
hal_radio_nrf_ppi_channels_enable(BIT(HAL_SW_SWITCH_TIMER_CLEAR_PPI) |
@ -592,7 +597,7 @@ u32_t radio_filter_match_get(void)
void radio_bc_configure(u32_t n)
{
nrf_radio_bcc_set(n);
nrf_radio_bcc_set(NRF_RADIO, n);
NRF_RADIO->SHORTS |= RADIO_SHORTS_ADDRESS_BCSTART_Msk;
}
@ -634,8 +639,8 @@ void radio_tmr_tifs_set(u32_t tifs)
#if defined(CONFIG_BT_CTLR_TIFS_HW)
NRF_RADIO->TIFS = tifs;
#else /* !CONFIG_BT_CTLR_TIFS_HW */
nrf_timer_cc_write(SW_SWITCH_TIMER,
SW_SWITCH_TIMER_EVTS_COMP(sw_tifs_toggle), tifs);
nrf_timer_cc_set(SW_SWITCH_TIMER,
SW_SWITCH_TIMER_EVTS_COMP(sw_tifs_toggle), tifs);
#endif /* !CONFIG_BT_CTLR_TIFS_HW */
}
@ -652,7 +657,7 @@ u32_t radio_tmr_start(u8_t trx, u32_t ticks_start, u32_t remainder)
EVENT_TIMER->PRESCALER = 4;
EVENT_TIMER->BITMODE = 2; /* 24 - bit */
nrf_timer_cc_write(EVENT_TIMER, 0, remainder);
nrf_timer_cc_set(EVENT_TIMER, 0, remainder);
nrf_rtc_cc_set(NRF_RTC0, 2, ticks_start);
nrf_rtc_event_enable(NRF_RTC0, RTC_EVTENSET_COMPARE2_Msk);
@ -701,7 +706,7 @@ u32_t radio_tmr_start_tick(u8_t trx, u32_t tick)
/* Setup compare event with min. 1 us offset */
remainder_us = 1;
nrf_timer_cc_write(EVENT_TIMER, 0, remainder_us);
nrf_timer_cc_set(EVENT_TIMER, 0, remainder_us);
nrf_rtc_cc_set(NRF_RTC0, 2, tick);
nrf_rtc_event_enable(NRF_RTC0, RTC_EVTENSET_COMPARE2_Msk);
@ -722,7 +727,7 @@ u32_t radio_tmr_start_tick(u8_t trx, u32_t tick)
void radio_tmr_start_us(u8_t trx, u32_t us)
{
nrf_timer_cc_write(EVENT_TIMER, 0, us);
nrf_timer_cc_set(EVENT_TIMER, 0, us);
hal_radio_enable_on_tick_ppi_config_and_enable(trx);
}
@ -744,7 +749,7 @@ u32_t radio_tmr_start_now(u8_t trx)
start = (now << 1) - start;
/* Setup compare event with min. 1 us offset */
nrf_timer_cc_write(EVENT_TIMER, 0, start + 1);
nrf_timer_cc_set(EVENT_TIMER, 0, start + 1);
/* Capture the current time */
nrf_timer_task_trigger(EVENT_TIMER, NRF_TIMER_TASK_CAPTURE1);
@ -773,7 +778,7 @@ void radio_tmr_stop(void)
void radio_tmr_hcto_configure(u32_t hcto)
{
nrf_timer_cc_write(EVENT_TIMER, 1, hcto);
nrf_timer_cc_set(EVENT_TIMER, 1, hcto);
hal_radio_recv_timeout_cancel_ppi_config();
hal_radio_disable_on_hcto_ppi_config();
@ -933,7 +938,7 @@ void radio_gpio_lna_off(void)
void radio_gpio_pa_lna_enable(u32_t trx_us)
{
nrf_timer_cc_write(EVENT_TIMER, 2, trx_us);
nrf_timer_cc_set(EVENT_TIMER, 2, trx_us);
hal_enable_palna_ppi_config();
hal_disable_palna_ppi_config();

View file

@ -11,17 +11,17 @@
static inline void hal_radio_nrf_ppi_channels_enable(u32_t mask)
{
nrf_ppi_channels_enable(mask);
nrf_ppi_channels_enable(NRF_PPI, mask);
}
static inline void hal_radio_nrf_ppi_channels_disable(u32_t mask)
{
nrf_ppi_channels_disable(mask);
nrf_ppi_channels_disable(NRF_PPI, mask);
}
static inline void hal_radio_nrf_ppi_group_disable(u32_t group)
{
nrf_ppi_group_disable(group);
nrf_ppi_group_disable(NRF_PPI, group);
}
/*******************************************************************************
@ -50,9 +50,11 @@ static inline void hal_radio_enable_on_tick_ppi_config_and_enable(u8_t trx)
* Just enable and disable them accordingly.
*/
nrf_ppi_channels_disable(
NRF_PPI,
trx ? BIT(HAL_RADIO_ENABLE_RX_ON_TICK_PPI)
: BIT(HAL_RADIO_ENABLE_TX_ON_TICK_PPI));
nrf_ppi_channels_enable(
NRF_PPI,
trx ? BIT(HAL_RADIO_ENABLE_TX_ON_TICK_PPI)
: BIT(HAL_RADIO_ENABLE_RX_ON_TICK_PPI));
}
@ -68,10 +70,11 @@ static inline void hal_radio_enable_on_tick_ppi_config_and_enable(u8_t trx)
u32_t event_address = (trx ? (u32_t)&(NRF_RADIO->TASKS_TXEN)
: (u32_t)&(NRF_RADIO->TASKS_RXEN));
nrf_ppi_channel_endpoint_setup(
NRF_PPI,
HAL_RADIO_ENABLE_ON_TICK_PPI,
(u32_t)&(EVENT_TIMER->EVENTS_COMPARE[0]),
event_address);
nrf_ppi_channels_enable(BIT(HAL_RADIO_ENABLE_ON_TICK_PPI));
nrf_ppi_channels_enable(NRF_PPI, BIT(HAL_RADIO_ENABLE_ON_TICK_PPI));
}
#endif /* (EVENT_TIMER_ID == 0) */
@ -104,6 +107,7 @@ static inline void hal_radio_recv_timeout_cancel_ppi_config(void)
static inline void hal_radio_recv_timeout_cancel_ppi_config(void)
{
nrf_ppi_channel_endpoint_setup(
NRF_PPI,
HAL_RADIO_RECV_TIMEOUT_CANCEL_PPI,
(u32_t)&(NRF_RADIO->EVENTS_ADDRESS),
(u32_t)&(EVENT_TIMER->TASKS_CAPTURE[1]));
@ -139,6 +143,7 @@ static inline void hal_radio_disable_on_hcto_ppi_config(void)
static inline void hal_radio_disable_on_hcto_ppi_config(void)
{
nrf_ppi_channel_endpoint_setup(
NRF_PPI,
HAL_RADIO_DISABLE_ON_HCTO_PPI,
(u32_t)&(EVENT_TIMER->EVENTS_COMPARE[1]),
(u32_t)&(NRF_RADIO->TASKS_DISABLE));
@ -174,6 +179,7 @@ static inline void hal_radio_end_time_capture_ppi_config(void)
static inline void hal_radio_end_time_capture_ppi_config(void)
{
nrf_ppi_channel_endpoint_setup(
NRF_PPI,
HAL_RADIO_END_TIME_CAPTURE_PPI,
(u32_t)&(NRF_RADIO->EVENTS_END),
(u32_t)&(EVENT_TIMER->TASKS_CAPTURE[2]));
@ -190,6 +196,7 @@ static inline void hal_radio_end_time_capture_ppi_config(void)
static inline void hal_event_timer_start_ppi_config(void)
{
nrf_ppi_channel_endpoint_setup(
NRF_PPI,
HAL_EVENT_TIMER_START_PPI,
(u32_t)&(NRF_RTC0->EVENTS_COMPARE[2]),
(u32_t)&(EVENT_TIMER->TASKS_START));
@ -205,6 +212,7 @@ static inline void hal_event_timer_start_ppi_config(void)
static inline void hal_radio_ready_time_capture_ppi_config(void)
{
nrf_ppi_channel_endpoint_setup(
NRF_PPI,
HAL_RADIO_READY_TIME_CAPTURE_PPI,
(u32_t)&(NRF_RADIO->EVENTS_READY),
(u32_t)&(EVENT_TIMER->TASKS_CAPTURE[0]));
@ -250,6 +258,7 @@ static inline void hal_trigger_aar_ppi_config(void)
static inline void hal_trigger_rateoverride_ppi_config(void)
{
nrf_ppi_channel_endpoint_setup(
NRF_PPI,
HAL_TRIGGER_RATEOVERRIDE_PPI,
(u32_t)&(NRF_RADIO->EVENTS_RATEBOOST),
(u32_t)&(NRF_CCM->TASKS_RATEOVERRIDE));
@ -265,6 +274,7 @@ static inline void hal_trigger_rateoverride_ppi_config(void)
static inline void hal_enable_palna_ppi_config(void)
{
nrf_ppi_channel_endpoint_setup(
NRF_PPI,
HAL_ENABLE_PALNA_PPI,
(u32_t)&(EVENT_TIMER->EVENTS_COMPARE[2]),
(u32_t)&(NRF_GPIOTE->TASKS_OUT[
@ -275,7 +285,9 @@ static inline void hal_enable_palna_ppi_config(void)
static inline void hal_disable_palna_ppi_config(void)
{
nrf_ppi_channel_endpoint_setup(HAL_DISABLE_PALNA_PPI,
nrf_ppi_channel_endpoint_setup(
NRF_PPI,
HAL_DISABLE_PALNA_PPI,
(u32_t)&(NRF_RADIO->EVENTS_DISABLED),
(u32_t)&(NRF_GPIOTE->TASKS_OUT[
CONFIG_BT_CTLR_PA_LNA_GPIOTE_CHAN]));
@ -299,6 +311,7 @@ static inline void hal_disable_palna_ppi_config(void)
static inline void hal_sw_switch_timer_clear_ppi_config(void)
{
nrf_ppi_channel_endpoint_setup(
NRF_PPI,
HAL_SW_SWITCH_TIMER_CLEAR_PPI,
(u32_t)&(NRF_RADIO->EVENTS_END),
(u32_t)&(SW_SWITCH_TIMER->TASKS_CLEAR));
@ -318,6 +331,7 @@ static inline void hal_sw_switch_timer_clear_ppi_config(void)
static inline void hal_sw_switch_timer_clear_ppi_config(void)
{
nrf_ppi_fork_endpoint_setup(
NRF_PPI,
HAL_RADIO_END_TIME_CAPTURE_PPI,
(u32_t)&(SW_SWITCH_TIMER->TASKS_CLEAR));
}
@ -408,7 +422,9 @@ static inline void hal_radio_sw_switch_setup(
/* Wire RADIO END event to PPI Group[<index>] enable task,
* over PPI[<HAL_SW_SWITCH_GROUP_TASK_ENABLE_PPI>]
*/
nrf_ppi_channel_endpoint_setup(HAL_SW_SWITCH_GROUP_TASK_ENABLE_PPI,
nrf_ppi_channel_endpoint_setup(
NRF_PPI,
HAL_SW_SWITCH_GROUP_TASK_ENABLE_PPI,
HAL_SW_SWITCH_GROUP_TASK_ENABLE_PPI_EVT,
HAL_SW_SWITCH_GROUP_TASK_ENABLE_PPI_TASK(ppi_group_index));
@ -418,19 +434,25 @@ static inline void hal_radio_sw_switch_setup(
* the function depending on the desired direction
* (TX/RX).
*/
nrf_ppi_event_endpoint_setup(radio_enable_ppi,
nrf_ppi_event_endpoint_setup(
NRF_PPI,
radio_enable_ppi,
HAL_SW_SWITCH_RADIO_ENABLE_PPI_EVT(compare_reg));
}
static inline void hal_radio_txen_on_sw_switch(u8_t ppi)
{
nrf_ppi_task_endpoint_setup(ppi,
nrf_ppi_task_endpoint_setup(
NRF_PPI,
ppi,
HAL_SW_SWITCH_RADIO_ENABLE_PPI_TASK_TX);
}
static inline void hal_radio_rxen_on_sw_switch(u8_t ppi)
{
nrf_ppi_task_endpoint_setup(ppi,
nrf_ppi_task_endpoint_setup(
NRF_PPI,
ppi,
HAL_SW_SWITCH_RADIO_ENABLE_PPI_TASK_RX);
}
@ -440,8 +462,10 @@ static inline void hal_radio_sw_switch_disable(void)
* - Clearing SW SWITCH TIMER on RADIO END event
* - Enabling SW SWITCH PPI Group on RADIO END event
*/
nrf_ppi_channels_disable(BIT(HAL_SW_SWITCH_TIMER_CLEAR_PPI) |
BIT(HAL_SW_SWITCH_GROUP_TASK_ENABLE_PPI));
nrf_ppi_channels_disable(
NRF_PPI,
BIT(HAL_SW_SWITCH_TIMER_CLEAR_PPI) |
BIT(HAL_SW_SWITCH_GROUP_TASK_ENABLE_PPI));
}
#if defined(CONFIG_BT_CTLR_PHY_CODED) && \
@ -512,6 +536,7 @@ static inline void hal_radio_sw_switch_coded_tx_config_set(u8_t ppi_en,
group_index);
nrf_ppi_channels_enable(
NRF_PPI,
BIT(HAL_SW_SWITCH_TIMER_S8_DISABLE_PPI));
}
@ -542,6 +567,7 @@ static inline void hal_radio_group_task_disable_ppi_setup(void)
* PPI Group TASK [<index-0>] DISABLE task, over PPI<index-0>.
*/
nrf_ppi_channel_endpoint_setup(
NRF_PPI,
HAL_SW_SWITCH_GROUP_TASK_DISABLE_PPI(0),
HAL_SW_SWITCH_GROUP_TASK_DISABLE_PPI_EVT(
SW_SWITCH_TIMER_EVTS_COMP(0)),
@ -551,6 +577,7 @@ static inline void hal_radio_group_task_disable_ppi_setup(void)
* PPI Group[<index-1>] Disable Task, over PPI<index-1>.
*/
nrf_ppi_channel_endpoint_setup(
NRF_PPI,
HAL_SW_SWITCH_GROUP_TASK_DISABLE_PPI(1),
HAL_SW_SWITCH_GROUP_TASK_DISABLE_PPI_EVT(
SW_SWITCH_TIMER_EVTS_COMP(1)),