diff --git a/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_sim_nrf54l.h b/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_sim_nrf54l.h index 047e3ea2487..324f2c8edb3 100644 --- a/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_sim_nrf54l.h +++ b/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_sim_nrf54l.h @@ -30,20 +30,21 @@ /* NRF Radio HW timing constants * - provided in US and NS (for higher granularity) - * - based on empirical measurements and sniffer logs + * - based on the timings configured in the HW models, which are based + * on the old 52832 product specification */ /* TXEN->TXIDLE + TXIDLE->TX (with fast Radio ramp-up mode) * in microseconds for LE 1M PHY. */ -#define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_1M_FAST_NS 40900 /*40.1 + 0.8*/ +#define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_1M_FAST_NS 41000 #define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_1M_FAST_US \ HAL_RADIO_NS2US_ROUND(HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_1M_FAST_NS) /* TXEN->TXIDLE + TXIDLE->TX (with default Radio ramp-up mode) * in microseconds for LE 1M PHY. */ -#define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_1M_DEFAULT_NS 140900 /*140.1 + 0.8*/ +#define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_1M_DEFAULT_NS 141000 #define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_1M_DEFAULT_US \ HAL_RADIO_NS2US_ROUND(HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_1M_DEFAULT_NS) @@ -51,7 +52,7 @@ * and no HW TIFS auto-switch) in microseconds for LE 1M PHY. */ /* 129.5 + 0.8 */ -#define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_1M_DEFAULT_NO_HW_TIFS_NS 130300 +#define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_1M_DEFAULT_NO_HW_TIFS_NS 130000 #define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_1M_DEFAULT_NO_HW_TIFS_US \ HAL_RADIO_NS2US_ROUND( \ HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_1M_DEFAULT_NO_HW_TIFS_NS) @@ -59,14 +60,14 @@ /* TXEN->TXIDLE + TXIDLE->TX (with fast Radio ramp-up mode) * in microseconds for LE 2M PHY. */ -#define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_2M_FAST_NS 40000 /* 40.1 - 0.1 */ +#define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_2M_FAST_NS 40000 #define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_2M_FAST_US \ HAL_RADIO_NS2US_ROUND(HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_2M_FAST_NS) /* TXEN->TXIDLE + TXIDLE->TX (with default Radio ramp-up mode) * in microseconds for LE 2M PHY. */ -#define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_2M_DEFAULT_NS 144900 /* 145 - 0.1 */ +#define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_2M_DEFAULT_NS 140000 #define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_2M_DEFAULT_US \ HAL_RADIO_NS2US_ROUND(HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_2M_DEFAULT_NS) @@ -74,7 +75,7 @@ * no HW TIFS auto-switch) in microseconds for LE 2M PHY. */ /* 129.5 - 0.1 */ -#define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_2M_DEFAULT_NO_HW_TIFS_NS 129400 +#define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_2M_DEFAULT_NO_HW_TIFS_NS 129000 #define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_2M_DEFAULT_NO_HW_TIFS_US \ HAL_RADIO_NS2US_ROUND( \ HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_2M_DEFAULT_NO_HW_TIFS_NS) @@ -82,14 +83,14 @@ /* TXEN->TXIDLE + TXIDLE->TX (with fast Radio ramp-up mode) * in microseconds for LE CODED PHY [S2]. */ -#define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_S2_FAST_NS 42300 /* 40.1 + 2.2 */ +#define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_S2_FAST_NS 42000 #define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_S2_FAST_US \ HAL_RADIO_NS2US_ROUND(HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_S2_FAST_NS) /* TXEN->TXIDLE + TXIDLE->TX (with default Radio ramp-up mode) * in microseconds for LE 2M PHY [S2]. */ -#define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_S2_DEFAULT_NS 132200 /* 130 + 2.2 */ +#define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_S2_DEFAULT_NS 132000 #define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_S2_DEFAULT_US \ HAL_RADIO_NS2US_ROUND(HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_S2_DEFAULT_NS) @@ -97,7 +98,7 @@ * no HW TIFS auto-switch) in microseconds for LE 2M PHY [S2]. */ /* 129.5 + 2.2 */ -#define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_S2_DEFAULT_NO_HW_TIFS_NS 131700 +#define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_S2_DEFAULT_NO_HW_TIFS_NS 132000 #define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_S2_DEFAULT_NO_HW_TIFS_US \ HAL_RADIO_NS2US_ROUND( \ HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_S2_DEFAULT_NO_HW_TIFS_NS) @@ -105,13 +106,13 @@ /* TXEN->TXIDLE + TXIDLE->TX (with fast Radio ramp-up mode) * in microseconds for LE CODED PHY [S8]. */ -#define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_S8_FAST_NS 42300 /* 40.1 + 2.2 */ +#define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_S8_FAST_NS 42000 #define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_S8_FAST_US \ HAL_RADIO_NS2US_ROUND(HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_S8_FAST_NS) /* TXEN->TXIDLE + TXIDLE->TX (with default Radio ramp-up mode) * in microseconds for LE 2M PHY [S8]. */ -#define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_S8_DEFAULT_NS 121800 /*119.6 + 2.2*/ +#define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_S8_DEFAULT_NS 122000 #define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_S8_DEFAULT_US \ HAL_RADIO_NS2US_ROUND(HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_S8_DEFAULT_NS) @@ -119,7 +120,7 @@ * no HW TIFS auto-switch) in microseconds for LE 2M PHY [S8]. */ /* 129.5 + 2.2 */ -#define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_S8_DEFAULT_NO_HW_TIFS_NS 131700 +#define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_S8_DEFAULT_NO_HW_TIFS_NS 132000 #define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_S8_DEFAULT_NO_HW_TIFS_US \ HAL_RADIO_NS2US_ROUND( \ HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_S8_DEFAULT_NO_HW_TIFS_NS) @@ -127,14 +128,14 @@ /* RXEN->RXIDLE + RXIDLE->RX (with fast Radio ramp-up mode) * in microseconds for LE 1M PHY. */ -#define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_1M_FAST_NS 40300 /* 40.1 + 0.2 */ +#define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_1M_FAST_NS 40000 #define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_1M_FAST_US \ HAL_RADIO_NS2US_CEIL(HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_1M_FAST_NS) /* RXEN->RXIDLE + RXIDLE->RX (with default Radio ramp-up mode) * in microseconds for LE 1M PHY. */ -#define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_1M_DEFAULT_NS 140300 /*140.1 + 0.2*/ +#define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_1M_DEFAULT_NS 140000 #define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_1M_DEFAULT_US \ HAL_RADIO_NS2US_CEIL(HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_1M_DEFAULT_NS) @@ -142,7 +143,7 @@ * no HW TIFS auto-switch) in microseconds for LE 1M PHY. */ /* 129.5 + 0.2 */ -#define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_1M_DEFAULT_NO_HW_TIFS_NS 129700 +#define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_1M_DEFAULT_NO_HW_TIFS_NS 129000 #define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_1M_DEFAULT_NO_HW_TIFS_US \ HAL_RADIO_NS2US_CEIL( \ HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_1M_DEFAULT_NO_HW_TIFS_NS) @@ -150,22 +151,21 @@ /* RXEN->RXIDLE + RXIDLE->RX (with fast Radio ramp-up mode) * in microseconds for LE 2M PHY. */ -#define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_2M_FAST_NS 40300 /* 40.1 + 0.2 */ +#define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_2M_FAST_NS 40000 #define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_2M_FAST_US \ HAL_RADIO_NS2US_CEIL(HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_2M_FAST_NS) /* RXEN->RXIDLE + RXIDLE->RX (with default Radio ramp-up mode) * in microseconds for LE 2M PHY. */ -#define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_2M_DEFAULT_NS 144800 /*144.6 + 0.2*/ +#define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_2M_DEFAULT_NS 140000 #define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_2M_DEFAULT_US \ HAL_RADIO_NS2US_CEIL(HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_2M_DEFAULT_NS) /* RXEN->RXIDLE + RXIDLE->RX (with default Radio ramp-up mode and * no HW TIFS auto-switch) in microseconds for LE 2M PHY. */ -/* 129.5 + 0.2 */ -#define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_2M_DEFAULT_NO_HW_TIFS_NS 129700 +#define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_2M_DEFAULT_NO_HW_TIFS_NS 129000 #define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_2M_DEFAULT_NO_HW_TIFS_US \ HAL_RADIO_NS2US_CEIL( \ HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_2M_DEFAULT_NO_HW_TIFS_NS) @@ -173,14 +173,14 @@ /* RXEN->RXIDLE + RXIDLE->RX (with fast Radio ramp-up mode) * in microseconds for LE Coded PHY [S2]. */ -#define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_S2_FAST_NS 40300 /* 40.1 + 0.2 */ +#define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_S2_FAST_NS 40000 #define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_S2_FAST_US \ HAL_RADIO_NS2US_CEIL(HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_S2_FAST_NS) /* RXEN->RXIDLE + RXIDLE->RX (with default Radio ramp-up mode) * in microseconds for LE Coded PHY [S2]. */ -#define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_S2_DEFAULT_NS 130200 /* 130 + 0.2 */ +#define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_S2_DEFAULT_NS 120000 #define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_S2_DEFAULT_US \ HAL_RADIO_NS2US_CEIL(HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_S2_DEFAULT_NS) @@ -188,7 +188,7 @@ * and no HW TIFS auto-switch) in microseconds for LE Coded PHY [S2]. */ /* 129.5 + 0.2 */ -#define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_S2_DEFAULT_NO_HW_TIFS_NS 129700 +#define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_S2_DEFAULT_NO_HW_TIFS_NS 130000 #define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_S2_DEFAULT_NO_HW_TIFS_US \ HAL_RADIO_NS2US_CEIL( \ HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_S2_DEFAULT_NO_HW_TIFS_NS) @@ -196,14 +196,14 @@ /* RXEN->RXIDLE + RXIDLE->RX (with fast Radio ramp-up mode) * in microseconds for LE Coded PHY [S8]. */ -#define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_S8_FAST_NS 40300 /* 40.1 + 0.2 */ +#define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_S8_FAST_NS 40000 #define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_S8_FAST_US \ HAL_RADIO_NS2US_CEIL(HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_S8_FAST_NS) /* RXEN->RXIDLE + RXIDLE->RX (with default Radio ramp-up mode) * in microseconds for LE Coded PHY [S8]. */ -#define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_S8_DEFAULT_NS 120200 /* 120.0 + 0.2 */ +#define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_S8_DEFAULT_NS 120000 #define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_S8_DEFAULT_US \ HAL_RADIO_NS2US_CEIL(HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_S8_DEFAULT_NS) @@ -211,28 +211,22 @@ * no HW TIFS auto-switch) in microseconds for LE Coded PHY [S8]. */ /* 129.5 + 0.2 */ -#define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_S8_DEFAULT_NO_HW_TIFS_NS 129700 +#define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_S8_DEFAULT_NO_HW_TIFS_NS 130000 #define HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_S8_DEFAULT_NO_HW_TIFS_US \ HAL_RADIO_NS2US_CEIL( \ HAL_RADIO_NRF54LX_RXEN_RXIDLE_RX_S8_DEFAULT_NO_HW_TIFS_NS) -#define HAL_RADIO_NRF54LX_TX_CHAIN_DELAY_1M_US 1 /* ceil(0.6) */ -#define HAL_RADIO_NRF54LX_TX_CHAIN_DELAY_1M_NS 600 /* 0.6 */ -#define HAL_RADIO_NRF54LX_TX_CHAIN_DELAY_2M_US 1 /* ceil(0.6) */ -#define HAL_RADIO_NRF54LX_TX_CHAIN_DELAY_2M_NS 600 /* 0.6 */ -#define HAL_RADIO_NRF54LX_TX_CHAIN_DELAY_S2_US 1 /* ceil(0.6) */ -#define HAL_RADIO_NRF54LX_TX_CHAIN_DELAY_S2_NS 600 /* 0.6 */ -#define HAL_RADIO_NRF54LX_TX_CHAIN_DELAY_S8_US 1 /* ceil(0.6) */ -#define HAL_RADIO_NRF54LX_TX_CHAIN_DELAY_S8_NS 600 /* 0.6 */ +#define HAL_RADIO_NRF54LX_TX_CHAIN_DELAY_US 1 +#define HAL_RADIO_NRF54LX_TX_CHAIN_DELAY_NS 1000 -#define HAL_RADIO_NRF54LX_RX_CHAIN_DELAY_1M_US 10 /* ceil(9.4) */ -#define HAL_RADIO_NRF54LX_RX_CHAIN_DELAY_1M_NS 9400 /* 9.4 */ -#define HAL_RADIO_NRF54LX_RX_CHAIN_DELAY_2M_US 5 /* ceil(5.0) */ -#define HAL_RADIO_NRF54LX_RX_CHAIN_DELAY_2M_NS 5000 /* 5.0 */ -#define HAL_RADIO_NRF54LX_RX_CHAIN_DELAY_S2_US 25 /* ceil(19.6) */ -#define HAL_RADIO_NRF54LX_RX_CHAIN_DELAY_S2_NS 24600 /* 19.6 */ -#define HAL_RADIO_NRF54LX_RX_CHAIN_DELAY_S8_US 30 /* ceil(29.6) */ -#define HAL_RADIO_NRF54LX_RX_CHAIN_DELAY_S8_NS 29600 /* 29.6 */ +#define HAL_RADIO_NRF54LX_RX_CHAIN_DELAY_1M_US 9 +#define HAL_RADIO_NRF54LX_RX_CHAIN_DELAY_1M_NS 9000 +#define HAL_RADIO_NRF54LX_RX_CHAIN_DELAY_2M_US 5 +#define HAL_RADIO_NRF54LX_RX_CHAIN_DELAY_2M_NS 5000 +#define HAL_RADIO_NRF54LX_RX_CHAIN_DELAY_S2_US 30 +#define HAL_RADIO_NRF54LX_RX_CHAIN_DELAY_S2_NS 30000 +#define HAL_RADIO_NRF54LX_RX_CHAIN_DELAY_S8_US 30 +#define HAL_RADIO_NRF54LX_RX_CHAIN_DELAY_S8_NS 30000 #if defined(CONFIG_BT_CTLR_RADIO_ENABLE_FAST) #define HAL_RADIO_NRF54LX_TXEN_TXIDLE_TX_1M_US \ @@ -713,22 +707,9 @@ static inline uint32_t hal_radio_rx_ready_delay_us_get(uint8_t phy, uint8_t flag static inline uint32_t hal_radio_tx_chain_delay_us_get(uint8_t phy, uint8_t flags) { - switch (phy) { - default: - case BIT(0): - return HAL_RADIO_NRF54LX_TX_CHAIN_DELAY_1M_US; - case BIT(1): - return HAL_RADIO_NRF54LX_TX_CHAIN_DELAY_2M_US; - -#if defined(CONFIG_BT_CTLR_PHY_CODED) - case BIT(2): - if (flags & 0x01) { - return HAL_RADIO_NRF54LX_TX_CHAIN_DELAY_S8_US; - } else { - return HAL_RADIO_NRF54LX_TX_CHAIN_DELAY_S2_US; - } -#endif /* CONFIG_BT_CTLR_PHY_CODED */ - } + ARG_UNUSED(phy); + ARG_UNUSED(flags); + return HAL_RADIO_NRF54LX_TX_CHAIN_DELAY_US; } static inline uint32_t hal_radio_rx_chain_delay_us_get(uint8_t phy, uint8_t flags) @@ -793,22 +774,9 @@ static inline uint32_t hal_radio_rx_ready_delay_ns_get(uint8_t phy, uint8_t flag static inline uint32_t hal_radio_tx_chain_delay_ns_get(uint8_t phy, uint8_t flags) { - switch (phy) { - default: - case BIT(0): - return HAL_RADIO_NRF54LX_TX_CHAIN_DELAY_1M_NS; - case BIT(1): - return HAL_RADIO_NRF54LX_TX_CHAIN_DELAY_2M_NS; - -#if defined(CONFIG_BT_CTLR_PHY_CODED) - case BIT(2): - if (flags & 0x01) { - return HAL_RADIO_NRF54LX_TX_CHAIN_DELAY_S8_NS; - } else { - return HAL_RADIO_NRF54LX_TX_CHAIN_DELAY_S2_NS; - } -#endif /* CONFIG_BT_CTLR_PHY_CODED */ - } + ARG_UNUSED(phy); + ARG_UNUSED(flags); + return HAL_RADIO_NRF54LX_TX_CHAIN_DELAY_NS; } static inline uint32_t hal_radio_rx_chain_delay_ns_get(uint8_t phy, uint8_t flags)