Skip to content

Commit d9f890b

Browse files
cvinayakfabiobaltieri
authored andcommitted
Bluetooth: Controller: Defines for radio timer capture/compare indices
Add defines for radio timer capture and compare indices used in the nRF Radio HAL implementation. Signed-off-by: Vinayak Kariappa Chettimada <[email protected]>
1 parent 7db7eda commit d9f890b

File tree

2 files changed

+71
-22
lines changed

2 files changed

+71
-22
lines changed

subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio.c

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -620,7 +620,7 @@ uint32_t radio_is_done(void)
620620
* Note: this depends on the function being called exactly once
621621
* in the ISR function.
622622
*/
623-
last_pdu_end_us += EVENT_TIMER->CC[2];
623+
last_pdu_end_us += EVENT_TIMER->CC[HAL_EVENT_TIMER_TRX_END_CC_OFFSET];
624624
return 1;
625625
} else {
626626
return 0;
@@ -1362,7 +1362,7 @@ uint32_t radio_tmr_start(uint8_t trx, uint32_t ticks_start, uint32_t remainder)
13621362
EVENT_TIMER->PRESCALER = HAL_EVENT_TIMER_PRESCALER_VALUE;
13631363
EVENT_TIMER->BITMODE = 2; /* 24 - bit */
13641364

1365-
nrf_timer_cc_set(EVENT_TIMER, 0, remainder);
1365+
nrf_timer_cc_set(EVENT_TIMER, HAL_EVENT_TIMER_TRX_CC_OFFSET, remainder);
13661366

13671367
#if defined(CONFIG_BT_CTLR_NRF_GRTC)
13681368
uint32_t cntr_l, cntr_h, cntr_h_overflow, stale;
@@ -1486,7 +1486,7 @@ uint32_t radio_tmr_start_tick(uint8_t trx, uint32_t ticks_start)
14861486
nrf_timer_task_trigger(EVENT_TIMER, NRF_TIMER_TASK_STOP);
14871487
nrf_timer_task_trigger(EVENT_TIMER, NRF_TIMER_TASK_CLEAR);
14881488

1489-
nrf_timer_cc_set(EVENT_TIMER, 0, remainder_us);
1489+
nrf_timer_cc_set(EVENT_TIMER, HAL_EVENT_TIMER_TRX_CC_OFFSET, remainder_us);
14901490

14911491
#if defined(CONFIG_BT_CTLR_NRF_GRTC)
14921492
uint32_t cntr_l, cntr_h, cntr_h_overflow, stale;
@@ -1624,15 +1624,15 @@ uint32_t radio_tmr_start_us(uint8_t trx, uint32_t start_us)
16241624
actual_us += latency_us;
16251625
#endif /* !CONFIG_BT_CTLR_SW_SWITCH_SINGLE_TIMER */
16261626

1627-
nrf_timer_event_clear(EVENT_TIMER, NRF_TIMER_EVENT_COMPARE0);
1628-
nrf_timer_cc_set(EVENT_TIMER, 0, actual_us);
1627+
nrf_timer_event_clear(EVENT_TIMER, HAL_EVENT_TIMER_TRX_EVENT);
1628+
nrf_timer_cc_set(EVENT_TIMER, HAL_EVENT_TIMER_TRX_CC_OFFSET, actual_us);
16291629

16301630
/* Capture the current time */
1631-
nrf_timer_task_trigger(EVENT_TIMER,
1632-
HAL_EVENT_TIMER_SAMPLE_TASK);
1631+
nrf_timer_task_trigger(EVENT_TIMER, HAL_EVENT_TIMER_SAMPLE_TASK);
16331632

16341633
now_us = EVENT_TIMER->CC[HAL_EVENT_TIMER_SAMPLE_CC_OFFSET];
1635-
} while ((now_us > start_us) && (EVENT_TIMER->EVENTS_COMPARE[0] == 0U));
1634+
} while ((now_us > start_us) &&
1635+
(EVENT_TIMER->EVENTS_COMPARE[HAL_EVENT_TIMER_TRX_CC_OFFSET] == 0U));
16361636

16371637
return actual_us;
16381638
}
@@ -1688,7 +1688,7 @@ void radio_tmr_stop(void)
16881688

16891689
void radio_tmr_hcto_configure(uint32_t hcto)
16901690
{
1691-
nrf_timer_cc_set(EVENT_TIMER, 1, hcto);
1691+
nrf_timer_cc_set(EVENT_TIMER, HAL_EVENT_TIMER_HCTO_CC_OFFSET, hcto);
16921692

16931693
hal_radio_recv_timeout_cancel_ppi_config();
16941694
hal_radio_disable_on_hcto_ppi_config();
@@ -1708,7 +1708,7 @@ void radio_tmr_aa_capture(void)
17081708

17091709
uint32_t radio_tmr_aa_get(void)
17101710
{
1711-
return EVENT_TIMER->CC[1];
1711+
return EVENT_TIMER->CC[HAL_EVENT_TIMER_HCTO_CC_OFFSET];
17121712
}
17131713

17141714
static uint32_t radio_tmr_aa;
@@ -1726,7 +1726,7 @@ uint32_t radio_tmr_aa_restore(void)
17261726

17271727
uint32_t radio_tmr_ready_get(void)
17281728
{
1729-
return EVENT_TIMER->CC[0];
1729+
return EVENT_TIMER->CC[HAL_EVENT_TIMER_TRX_CC_OFFSET];
17301730
}
17311731

17321732
static uint32_t radio_tmr_ready;
@@ -1765,7 +1765,7 @@ uint32_t radio_tmr_end_get(void)
17651765
#if defined(CONFIG_BT_CTLR_SW_SWITCH_SINGLE_TIMER)
17661766
return last_pdu_end_us;
17671767
#else /* !CONFIG_BT_CTLR_SW_SWITCH_SINGLE_TIMER */
1768-
return EVENT_TIMER->CC[2];
1768+
return EVENT_TIMER->CC[HAL_EVENT_TIMER_TRX_END_CC_OFFSET];
17691769
#endif /* !CONFIG_BT_CTLR_SW_SWITCH_SINGLE_TIMER */
17701770
}
17711771

@@ -1909,9 +1909,10 @@ void radio_gpio_lna_off(void)
19091909

19101910
void radio_gpio_pa_lna_enable(uint32_t trx_us)
19111911
{
1912-
nrf_timer_cc_set(EVENT_TIMER, 2, trx_us);
1912+
nrf_timer_cc_set(EVENT_TIMER, HAL_EVENT_TIMER_PA_LNA_CC_OFFSET, trx_us);
19131913
#if defined(HAL_RADIO_FEM_IS_NRF21540) && DT_NODE_HAS_PROP(FEM_NODE, pdn_gpios)
1914-
nrf_timer_cc_set(EVENT_TIMER, 3, (trx_us - NRF_GPIO_PDN_OFFSET));
1914+
nrf_timer_cc_set(EVENT_TIMER, HAL_EVENT_TIMER_PA_LNA_PDN_CC_OFFSET,
1915+
(trx_us - NRF_GPIO_PDN_OFFSET));
19151916
hal_radio_nrf_ppi_channels_enable(BIT(HAL_ENABLE_PALNA_PPI) |
19161917
BIT(HAL_DISABLE_PALNA_PPI) |
19171918
BIT(HAL_ENABLE_FEM_PPI) |

subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_nrf5_resources.h

Lines changed: 56 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,20 @@
2525
*/
2626
#define NRF_RADIO_SHORTS_TRX_END_DISABLE_Msk HAL_RADIO_SHORTS_TRX_END_DISABLE_Msk
2727

28-
#define HAL_EVENT_TIMER_SAMPLE_CC_OFFSET 3
29-
#define HAL_EVENT_TIMER_SAMPLE_TASK NRF_TIMER_TASK_CAPTURE3
28+
#define HAL_EVENT_TIMER_TRX_CC_OFFSET 0
29+
#define HAL_EVENT_TIMER_TRX_EVENT NRF_TIMER_EVENT_COMPARE0
30+
31+
#define HAL_EVENT_TIMER_HCTO_CC_OFFSET 1
32+
#define HAL_EVENT_TIMER_TRX_END_CC_OFFSET 2
33+
34+
#define HAL_EVENT_TIMER_DEFERRED_TRX_CC_OFFSET 2
35+
#define HAL_EVENT_TIMER_DEFERRED_TX_EVENT NRF_TIMER_EVENT_COMPARE2
36+
37+
#define HAL_EVENT_TIMER_SAMPLE_CC_OFFSET 3
38+
#define HAL_EVENT_TIMER_SAMPLE_TASK NRF_TIMER_TASK_CAPTURE3
39+
40+
#define HAL_EVENT_TIMER_PA_LNA_CC_OFFSET 2
41+
#define HAL_EVENT_TIMER_PA_LNA_PDN_CC_OFFSET 3
3042

3143
#else /* !CONFIG_BT_CTLR_TIFS_HW */
3244
#if defined(CONFIG_BT_CTLR_SW_SWITCH_SINGLE_TIMER)
@@ -56,8 +68,20 @@
5668
*/
5769
#define NRF_RADIO_SHORTS_TRX_END_DISABLE_Msk HAL_RADIO_SHORTS_TRX_END_DISABLE_Msk
5870

59-
#define HAL_EVENT_TIMER_SAMPLE_CC_OFFSET 2
60-
#define HAL_EVENT_TIMER_SAMPLE_TASK NRF_TIMER_TASK_CAPTURE2
71+
#define HAL_EVENT_TIMER_TRX_CC_OFFSET 0
72+
#define HAL_EVENT_TIMER_TRX_EVENT NRF_TIMER_EVENT_COMPARE0
73+
74+
#define HAL_EVENT_TIMER_HCTO_CC_OFFSET 1
75+
#define HAL_EVENT_TIMER_TRX_END_CC_OFFSET 2
76+
77+
#define HAL_EVENT_TIMER_DEFERRED_TRX_CC_OFFSET 2
78+
#define HAL_EVENT_TIMER_DEFERRED_TX_EVENT NRF_TIMER_EVENT_COMPARE2
79+
80+
#define HAL_EVENT_TIMER_SAMPLE_CC_OFFSET 2
81+
#define HAL_EVENT_TIMER_SAMPLE_TASK NRF_TIMER_TASK_CAPTURE2
82+
83+
#define HAL_EVENT_TIMER_PA_LNA_CC_OFFSET 2
84+
#define HAL_EVENT_TIMER_PA_LNA_PDN_CC_OFFSET 3
6185

6286
#else /* !CONFIG_BT_CTLR_PHY_CODED */
6387
#define SW_SWITCH_TIMER_EVTS_COMP_BASE 4
@@ -73,8 +97,20 @@
7397
*/
7498
#define NRF_RADIO_SHORTS_TRX_END_DISABLE_Msk HAL_RADIO_SHORTS_TRX_END_DISABLE_Msk
7599

76-
#define HAL_EVENT_TIMER_SAMPLE_CC_OFFSET 3
77-
#define HAL_EVENT_TIMER_SAMPLE_TASK NRF_TIMER_TASK_CAPTURE3
100+
#define HAL_EVENT_TIMER_TRX_CC_OFFSET 0
101+
#define HAL_EVENT_TIMER_TRX_EVENT NRF_TIMER_EVENT_COMPARE0
102+
103+
#define HAL_EVENT_TIMER_HCTO_CC_OFFSET 1
104+
#define HAL_EVENT_TIMER_TRX_END_CC_OFFSET 2
105+
106+
#define HAL_EVENT_TIMER_DEFERRED_TRX_CC_OFFSET 2
107+
#define HAL_EVENT_TIMER_DEFERRED_TX_EVENT NRF_TIMER_EVENT_COMPARE2
108+
109+
#define HAL_EVENT_TIMER_SAMPLE_CC_OFFSET 3
110+
#define HAL_EVENT_TIMER_SAMPLE_TASK NRF_TIMER_TASK_CAPTURE3
111+
112+
#define HAL_EVENT_TIMER_PA_LNA_CC_OFFSET 2
113+
#define HAL_EVENT_TIMER_PA_LNA_PDN_CC_OFFSET 3
78114
#endif /* !CONFIG_BT_CTLR_PHY_CODED */
79115

80116
#else /* !CONFIG_BT_CTLR_SW_SWITCH_SINGLE_TIMER */
@@ -142,7 +178,19 @@
142178
#define NRF_RADIO_SHORTS_TRX_END_DISABLE_Msk HAL_RADIO_SHORTS_TRX_END_DISABLE_Msk
143179
#endif /* !CONFIG_BT_CTLR_DF */
144180

145-
#define HAL_EVENT_TIMER_SAMPLE_CC_OFFSET 3
146-
#define HAL_EVENT_TIMER_SAMPLE_TASK NRF_TIMER_TASK_CAPTURE3
181+
#define HAL_EVENT_TIMER_TRX_CC_OFFSET 0
182+
#define HAL_EVENT_TIMER_TRX_EVENT NRF_TIMER_EVENT_COMPARE0
183+
184+
#define HAL_EVENT_TIMER_HCTO_CC_OFFSET 1
185+
#define HAL_EVENT_TIMER_TRX_END_CC_OFFSET 2
186+
187+
#define HAL_EVENT_TIMER_DEFERRED_TRX_CC_OFFSET 2
188+
#define HAL_EVENT_TIMER_DEFERRED_TX_EVENT NRF_TIMER_EVENT_COMPARE2
189+
190+
#define HAL_EVENT_TIMER_SAMPLE_CC_OFFSET 3
191+
#define HAL_EVENT_TIMER_SAMPLE_TASK NRF_TIMER_TASK_CAPTURE3
192+
193+
#define HAL_EVENT_TIMER_PA_LNA_CC_OFFSET 2
194+
#define HAL_EVENT_TIMER_PA_LNA_PDN_CC_OFFSET 3
147195
#endif /* !CONFIG_BT_CTLR_SW_SWITCH_SINGLE_TIMER */
148196
#endif /* !CONFIG_BT_CTLR_TIFS_HW */

0 commit comments

Comments
 (0)