diff --git a/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio.c b/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio.c index f7677eb39c0..d3c12b6106b 100644 --- a/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio.c +++ b/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio.c @@ -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(); diff --git a/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_nrf5_ppi.h b/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_nrf5_ppi.h index 98cb0ebc7a6..ebebc748dcf 100644 --- a/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_nrf5_ppi.h +++ b/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_nrf5_ppi.h @@ -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[] enable task, * over 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 [] DISABLE task, over PPI. */ 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[] Disable Task, over PPI. */ 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)),