Bluetooth: controller: Use nRFx functions for PPI reg access
In the BLE controller, NRF radio HAL, for the PPI registers used for the SW TIFS. To allow easier testing, replace direct use of registers from Nordic's nrfx MDK with accesses via its HAL inlined functions Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
This commit is contained in:
parent
ccade20ccf
commit
877c4d0ca7
2 changed files with 23 additions and 31 deletions
|
@ -359,13 +359,12 @@ static void sw_switch(u8_t dir, u8_t phy_curr, u8_t flags_curr, u8_t phy_next,
|
||||||
u8_t cc = SW_SWITCH_TIMER_EVTS_COMP(sw_tifs_toggle);
|
u8_t cc = SW_SWITCH_TIMER_EVTS_COMP(sw_tifs_toggle);
|
||||||
u32_t delay;
|
u32_t delay;
|
||||||
|
|
||||||
HAL_SW_SWITCH_GROUP_TASK_ENABLE_PPI_REGISTER_EVT =
|
nrf_ppi_channel_endpoint_setup(HAL_SW_SWITCH_GROUP_TASK_ENABLE_PPI,
|
||||||
HAL_SW_SWITCH_GROUP_TASK_ENABLE_PPI_EVT;
|
HAL_SW_SWITCH_GROUP_TASK_ENABLE_PPI_EVT,
|
||||||
HAL_SW_SWITCH_GROUP_TASK_ENABLE_PPI_REGISTER_TASK =
|
HAL_SW_SWITCH_GROUP_TASK_ENABLE_PPI_TASK(sw_tifs_toggle));
|
||||||
HAL_SW_SWITCH_GROUP_TASK_ENABLE_PPI_TASK(sw_tifs_toggle);
|
|
||||||
|
|
||||||
HAL_SW_SWITCH_RADIO_ENABLE_PPI_REGISTER_EVT(ppi) =
|
nrf_ppi_event_endpoint_setup(ppi,
|
||||||
HAL_SW_SWITCH_RADIO_ENABLE_PPI_EVT(cc);
|
HAL_SW_SWITCH_RADIO_ENABLE_PPI_EVT(cc));
|
||||||
|
|
||||||
if (dir) {
|
if (dir) {
|
||||||
/* TX */
|
/* TX */
|
||||||
|
@ -703,30 +702,27 @@ u32_t radio_tmr_start(u8_t trx, u32_t ticks_start, u32_t remainder)
|
||||||
nrf_timer_task_trigger(SW_SWITCH_TIMER, NRF_TIMER_TASK_START);
|
nrf_timer_task_trigger(SW_SWITCH_TIMER, NRF_TIMER_TASK_START);
|
||||||
#endif /* !CONFIG_BT_CTLR_SW_SWITCH_SINGLE_TIMER */
|
#endif /* !CONFIG_BT_CTLR_SW_SWITCH_SINGLE_TIMER */
|
||||||
|
|
||||||
HAL_SW_SWITCH_TIMER_CLEAR_PPI_REGISTER_EVT =
|
nrf_ppi_channel_endpoint_setup(HAL_SW_SWITCH_TIMER_CLEAR_PPI,
|
||||||
HAL_SW_SWITCH_TIMER_CLEAR_PPI_EVT;
|
HAL_SW_SWITCH_TIMER_CLEAR_PPI_EVT,
|
||||||
HAL_SW_SWITCH_TIMER_CLEAR_PPI_REGISTER_TASK =
|
HAL_SW_SWITCH_TIMER_CLEAR_PPI_TASK);
|
||||||
HAL_SW_SWITCH_TIMER_CLEAR_PPI_TASK;
|
|
||||||
|
|
||||||
#if !defined(CONFIG_BT_CTLR_PHY_CODED) || !defined(CONFIG_SOC_NRF52840)
|
#if !defined(CONFIG_BT_CTLR_PHY_CODED) || !defined(CONFIG_SOC_NRF52840)
|
||||||
/* NOTE: PPI channel group disable is setup explicitly in sw_switch
|
/* NOTE: PPI channel group disable is setup explicitly in sw_switch
|
||||||
* function when Coded PHY on nRF52840 is supported.
|
* function when Coded PHY on nRF52840 is supported.
|
||||||
*/
|
*/
|
||||||
HAL_SW_SWITCH_GROUP_TASK_DISABLE_PPI_REGISTER_EVT(
|
|
||||||
HAL_SW_SWITCH_GROUP_TASK_DISABLE_PPI(0)) =
|
|
||||||
HAL_SW_SWITCH_GROUP_TASK_DISABLE_PPI_EVT(
|
|
||||||
SW_SWITCH_TIMER_EVTS_COMP(0));
|
|
||||||
HAL_SW_SWITCH_GROUP_TASK_DISABLE_PPI_REGISTER_TASK(
|
|
||||||
HAL_SW_SWITCH_GROUP_TASK_DISABLE_PPI(0)) =
|
|
||||||
HAL_SW_SWITCH_GROUP_TASK_DISABLE_PPI_TASK(0);
|
|
||||||
|
|
||||||
HAL_SW_SWITCH_GROUP_TASK_DISABLE_PPI_REGISTER_EVT(
|
nrf_ppi_channel_endpoint_setup(
|
||||||
HAL_SW_SWITCH_GROUP_TASK_DISABLE_PPI(1)) =
|
HAL_SW_SWITCH_GROUP_TASK_DISABLE_PPI(0),
|
||||||
HAL_SW_SWITCH_GROUP_TASK_DISABLE_PPI_EVT(
|
HAL_SW_SWITCH_GROUP_TASK_DISABLE_PPI_EVT(
|
||||||
SW_SWITCH_TIMER_EVTS_COMP(1));
|
SW_SWITCH_TIMER_EVTS_COMP(0)),
|
||||||
HAL_SW_SWITCH_GROUP_TASK_DISABLE_PPI_REGISTER_TASK(
|
HAL_SW_SWITCH_GROUP_TASK_DISABLE_PPI_TASK(0));
|
||||||
HAL_SW_SWITCH_GROUP_TASK_DISABLE_PPI(1)) =
|
|
||||||
HAL_SW_SWITCH_GROUP_TASK_DISABLE_PPI_TASK(1);
|
nrf_ppi_channel_endpoint_setup(
|
||||||
|
HAL_SW_SWITCH_GROUP_TASK_DISABLE_PPI(1),
|
||||||
|
HAL_SW_SWITCH_GROUP_TASK_DISABLE_PPI_EVT(
|
||||||
|
SW_SWITCH_TIMER_EVTS_COMP(1)),
|
||||||
|
HAL_SW_SWITCH_GROUP_TASK_DISABLE_PPI_TASK(1));
|
||||||
|
|
||||||
#endif /* !CONFIG_BT_CTLR_PHY_CODED || !CONFIG_SOC_NRF52840 */
|
#endif /* !CONFIG_BT_CTLR_PHY_CODED || !CONFIG_SOC_NRF52840 */
|
||||||
|
|
||||||
NRF_PPI->CHG[SW_SWITCH_TIMER_TASK_GROUP(0)] =
|
NRF_PPI->CHG[SW_SWITCH_TIMER_TASK_GROUP(0)] =
|
||||||
|
|
|
@ -269,12 +269,8 @@ static inline void hal_radio_enable_on_tick_ppi_config_and_enable(u8_t trx)
|
||||||
#define HAL_SW_SWITCH_GROUP_TASK_ENABLE_PPI_DISABLE \
|
#define HAL_SW_SWITCH_GROUP_TASK_ENABLE_PPI_DISABLE \
|
||||||
((PPI_CHENCLR_CH10_Clear << PPI_CHENCLR_CH10_Pos) \
|
((PPI_CHENCLR_CH10_Clear << PPI_CHENCLR_CH10_Pos) \
|
||||||
& PPI_CHENCLR_CH10_Msk)
|
& PPI_CHENCLR_CH10_Msk)
|
||||||
#define HAL_SW_SWITCH_GROUP_TASK_ENABLE_PPI_REGISTER_EVT \
|
|
||||||
NRF_PPI->CH[HAL_SW_SWITCH_GROUP_TASK_ENABLE_PPI].EEP
|
|
||||||
#define HAL_SW_SWITCH_GROUP_TASK_ENABLE_PPI_EVT \
|
#define HAL_SW_SWITCH_GROUP_TASK_ENABLE_PPI_EVT \
|
||||||
((u32_t)&(NRF_RADIO->EVENTS_END))
|
((u32_t)&(NRF_RADIO->EVENTS_END))
|
||||||
#define HAL_SW_SWITCH_GROUP_TASK_ENABLE_PPI_REGISTER_TASK \
|
|
||||||
NRF_PPI->CH[HAL_SW_SWITCH_GROUP_TASK_ENABLE_PPI].TEP
|
|
||||||
#define HAL_SW_SWITCH_GROUP_TASK_ENABLE_PPI_TASK(index) \
|
#define HAL_SW_SWITCH_GROUP_TASK_ENABLE_PPI_TASK(index) \
|
||||||
((u32_t)&(NRF_PPI->TASKS_CHG[SW_SWITCH_TIMER_TASK_GROUP(index)].EN))
|
((u32_t)&(NRF_PPI->TASKS_CHG[SW_SWITCH_TIMER_TASK_GROUP(index)].EN))
|
||||||
|
|
||||||
|
@ -309,14 +305,14 @@ static inline void hal_radio_enable_on_tick_ppi_config_and_enable(u8_t trx)
|
||||||
|
|
||||||
static inline void hal_radio_txen_on_sw_switch(u8_t ppi)
|
static inline void hal_radio_txen_on_sw_switch(u8_t ppi)
|
||||||
{
|
{
|
||||||
HAL_SW_SWITCH_RADIO_ENABLE_PPI_REGISTER_TASK(ppi) =
|
nrf_ppi_task_endpoint_setup(ppi,
|
||||||
HAL_SW_SWITCH_RADIO_ENABLE_PPI_TASK_TX;
|
HAL_SW_SWITCH_RADIO_ENABLE_PPI_TASK_TX);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void hal_radio_rxen_on_sw_switch(u8_t ppi)
|
static inline void hal_radio_rxen_on_sw_switch(u8_t ppi)
|
||||||
{
|
{
|
||||||
HAL_SW_SWITCH_RADIO_ENABLE_PPI_REGISTER_TASK(ppi) =
|
nrf_ppi_task_endpoint_setup(ppi,
|
||||||
HAL_SW_SWITCH_RADIO_ENABLE_PPI_TASK_RX;
|
HAL_SW_SWITCH_RADIO_ENABLE_PPI_TASK_RX);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(CONFIG_SOC_NRF52840)
|
#if defined(CONFIG_SOC_NRF52840)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue