diff --git a/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_sim_nrf52.h b/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_sim_nrf52.h index 1b8c1583547..9f78ae78b27 100644 --- a/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_sim_nrf52.h +++ b/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_sim_nrf52.h @@ -64,6 +64,51 @@ HAL_RADIO_NS2US_ROUND( \ HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_2M_DEFAULT_NO_HW_TIFS_NS) +/* TXEN->TXIDLE + TXIDLE->TX (with fast Radio ramp-up mode) + * in microseconds for LE CODED PHY [S2]. + */ +#define HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S2_FAST_NS 42000 +#define HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S2_FAST_US \ + HAL_RADIO_NS2US_ROUND(HAL_RADIO_NRF52833_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_NRF52833_TXEN_TXIDLE_TX_S2_DEFAULT_NS 132000 +#define HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S2_DEFAULT_US \ + HAL_RADIO_NS2US_ROUND(HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S2_DEFAULT_NS) + +/* TXEN->TXIDLE + TXIDLE->TX (with default Radio ramp-up mode and + * no HW TIFS auto-switch) in microseconds for LE 2M PHY [S2]. + */ +/* 129.5 + 2.2 */ +#define HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S2_DEFAULT_NO_HW_TIFS_NS 132000 +#define HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S2_DEFAULT_NO_HW_TIFS_US \ + HAL_RADIO_NS2US_ROUND( \ + HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S2_DEFAULT_NO_HW_TIFS_NS) + +/* TXEN->TXIDLE + TXIDLE->TX (with fast Radio ramp-up mode) + * in microseconds for LE CODED PHY [S8]. + */ +#define HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S8_FAST_NS 42000 +#define HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S8_FAST_US \ + HAL_RADIO_NS2US_ROUND(HAL_RADIO_NRF52833_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_NRF52833_TXEN_TXIDLE_TX_S8_DEFAULT_NS 122000 +#define HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S8_DEFAULT_US \ + HAL_RADIO_NS2US_ROUND(HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S8_DEFAULT_NS) + +/* TXEN->TXIDLE + TXIDLE->TX (with default Radio ramp-up mode and + * no HW TIFS auto-switch) in microseconds for LE 2M PHY [S8]. + */ + /* 129.5 + 2.2 */ +#define HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S8_DEFAULT_NO_HW_TIFS_NS 132000 +#define HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S8_DEFAULT_NO_HW_TIFS_US \ + HAL_RADIO_NS2US_ROUND( \ + HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S8_DEFAULT_NO_HW_TIFS_NS) + /* RXEN->RXIDLE + RXIDLE->RX (with fast Radio ramp-up mode) * in microseconds for LE 1M PHY. */ @@ -108,6 +153,54 @@ HAL_RADIO_NS2US_CEIL(\ HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_2M_DEFAULT_NO_HW_TIFS_NS) + +/* RXEN->RXIDLE + RXIDLE->RX (with fast Radio ramp-up mode) + * in microseconds for LE Coded PHY [S2]. + */ +#define HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S2_FAST_NS 40000 +#define HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S2_FAST_US \ + HAL_RADIO_NS2US_CEIL(HAL_RADIO_NRF52833_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_NRF52833_RXEN_RXIDLE_RX_S2_DEFAULT_NS 120000 +#define HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S2_DEFAULT_US \ + HAL_RADIO_NS2US_CEIL(HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S2_DEFAULT_NS) + +/* RXEN->RXIDLE + RXIDLE->RX (with default Radio ramp-up mode + * and no HW TIFS auto-switch) in microseconds for LE Coded PHY [S2]. + */ +/* 129.5 + 0.2 */ +#define HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S2_DEFAULT_NO_HW_TIFS_NS 130000 +#define HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S2_DEFAULT_NO_HW_TIFS_US \ + HAL_RADIO_NS2US_CEIL( \ + HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S2_DEFAULT_NO_HW_TIFS_NS) + +/* RXEN->RXIDLE + RXIDLE->RX (with fast Radio ramp-up mode) + * in microseconds for LE Coded PHY [S8]. + */ +#define HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S8_FAST_NS 40000 +#define HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S8_FAST_US \ + HAL_RADIO_NS2US_CEIL(HAL_RADIO_NRF52833_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_NRF52833_RXEN_RXIDLE_RX_S8_DEFAULT_NS 120000 +#define HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S8_DEFAULT_US \ + HAL_RADIO_NS2US_CEIL(HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S8_DEFAULT_NS) + +/* RXEN->RXIDLE + RXIDLE->RX (with default Radio ramp-up mode and + * no HW TIFS auto-switch) in microseconds for LE Coded PHY [S8]. + */ +/* 129.5 + 0.2 */ +#define HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S8_DEFAULT_NO_HW_TIFS_NS 130000 +#define HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S8_DEFAULT_NO_HW_TIFS_US \ + HAL_RADIO_NS2US_CEIL( \ + HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S8_DEFAULT_NO_HW_TIFS_NS) + + #define HAL_RADIO_NRF52833_TX_CHAIN_DELAY_NS 1000 #define HAL_RADIO_NRF52833_TX_CHAIN_DELAY_US \ HAL_RADIO_NS2US_CEIL(HAL_RADIO_NRF52833_TX_CHAIN_DELAY_NS) @@ -120,6 +213,12 @@ #define HAL_RADIO_NRF52833_RX_CHAIN_DELAY_2M_US \ HAL_RADIO_NS2US_CEIL(HAL_RADIO_NRF52833_RX_CHAIN_DELAY_2M_NS) +#define HAL_RADIO_NRF52833_RX_CHAIN_DELAY_S2_US 30 +#define HAL_RADIO_NRF52833_RX_CHAIN_DELAY_S2_NS 30000 +#define HAL_RADIO_NRF52833_RX_CHAIN_DELAY_S8_US 30 +#define HAL_RADIO_NRF52833_RX_CHAIN_DELAY_S8_NS 30000 + + #if defined(CONFIG_BT_CTLR_RADIO_ENABLE_FAST) #define HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_1M_US \ HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_1M_FAST_US @@ -131,6 +230,16 @@ #define HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_2M_NS \ HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_2M_FAST_NS +#define HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S2_US \ + HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S2_FAST_US +#define HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S2_NS \ + HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S2_FAST_NS + +#define HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S8_US \ + HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S8_FAST_US +#define HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S8_NS \ + HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S8_FAST_NS + #define HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_1M_US \ HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_1M_FAST_US #define HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_1M_NS \ @@ -141,6 +250,16 @@ #define HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_2M_NS \ HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_2M_FAST_NS +#define HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S2_US \ + HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S2_FAST_US +#define HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S2_NS \ + HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S2_FAST_NS + +#define HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S8_US \ + HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S8_FAST_US +#define HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S8_NS \ + HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S8_FAST_NS + #else /* !CONFIG_BT_CTLR_RADIO_ENABLE_FAST */ #if defined(CONFIG_BT_CTLR_TIFS_HW) #define HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_1M_US \ @@ -153,6 +272,16 @@ #define HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_2M_NS \ HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_2M_DEFAULT_NS +#define HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S2_US \ + HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S2_DEFAULT_US +#define HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S2_NS \ + HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S2_DEFAULT_NS + +#define HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S8_US \ + HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S8_DEFAULT_US +#define HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S8_NS \ + HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S8_DEFAULT_NS + #define HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_1M_US \ HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_1M_DEFAULT_US #define HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_1M_NS \ @@ -163,6 +292,16 @@ #define HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_2M_NS \ HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_2M_DEFAULT_NS +#define HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S2_US \ + HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S2_DEFAULT_US +#define HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S2_NS \ + HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S2_DEFAULT_NS + +#define HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S8_US \ + HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S8_DEFAULT_US +#define HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S8_NS \ + HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S8_DEFAULT_NS + #else /* !CONFIG_BT_CTLR_TIFS_HW */ #define HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_1M_US \ HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_1M_DEFAULT_NO_HW_TIFS_US @@ -174,6 +313,16 @@ #define HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_2M_NS \ HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_2M_DEFAULT_NO_HW_TIFS_NS +#define HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S2_US \ + HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S2_DEFAULT_NO_HW_TIFS_US +#define HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S2_NS \ + HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S2_DEFAULT_NO_HW_TIFS_NS + +#define HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S8_US \ + HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S8_DEFAULT_NO_HW_TIFS_US +#define HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S8_NS \ + HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S8_DEFAULT_NO_HW_TIFS_NS + #define HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_1M_US \ HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_1M_DEFAULT_NO_HW_TIFS_US #define HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_1M_NS \ @@ -183,6 +332,16 @@ HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_2M_DEFAULT_NO_HW_TIFS_US #define HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_2M_NS \ HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_2M_DEFAULT_NO_HW_TIFS_NS + +#define HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S2_US \ + HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S2_DEFAULT_NO_HW_TIFS_US +#define HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S2_NS \ + HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S2_DEFAULT_NO_HW_TIFS_NS + +#define HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S8_US \ + HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S8_DEFAULT_NO_HW_TIFS_US +#define HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S8_NS \ + HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S8_DEFAULT_NO_HW_TIFS_NS #endif /* !CONFIG_BT_CTLR_TIFS_HW */ #endif /* !CONFIG_BT_CTLR_RADIO_ENABLE_FAST */ @@ -213,6 +372,16 @@ static inline uint32_t hal_radio_phy_mode_get(uint8_t phy, uint8_t flags) case BIT(1): mode = RADIO_MODE_MODE_Ble_2Mbit; break; + +#if defined(CONFIG_BT_CTLR_PHY_CODED) + case BIT(2): + if (flags & 0x01) { + mode = RADIO_MODE_MODE_Ble_LR125Kbit; + } else { + mode = RADIO_MODE_MODE_Ble_LR500Kbit; + } + break; +#endif /* CONFIG_BT_CTLR_PHY_CODED */ } return mode; @@ -296,6 +465,15 @@ static inline uint32_t hal_radio_tx_ready_delay_us_get(uint8_t phy, uint8_t flag return HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_1M_US; case BIT(1): return HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_2M_US; + +#if defined(CONFIG_BT_CTLR_PHY_CODED) + case BIT(2): + if (flags & 0x01) { + return HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S8_US; + } else { + return HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S2_US; + } +#endif /* CONFIG_BT_CTLR_PHY_CODED */ } } @@ -309,6 +487,16 @@ static inline uint32_t hal_radio_rx_ready_delay_us_get(uint8_t phy, uint8_t flag return HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_1M_US; case BIT(1): return HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_2M_US; + +#if defined(CONFIG_BT_CTLR_PHY_CODED) + case BIT(2): + if (flags & 0x01) { + return HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S8_US; + } else { + return HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S2_US; + } +#endif /* CONFIG_BT_CTLR_PHY_CODED */ + } } @@ -330,6 +518,15 @@ static inline uint32_t hal_radio_rx_chain_delay_us_get(uint8_t phy, uint8_t flag return HAL_RADIO_NRF52833_RX_CHAIN_DELAY_1M_US; case BIT(1): return HAL_RADIO_NRF52833_RX_CHAIN_DELAY_2M_US; + +#if defined(CONFIG_BT_CTLR_PHY_CODED) + case BIT(2): + if (flags & 0x01) { + return HAL_RADIO_NRF52833_RX_CHAIN_DELAY_S8_US; + } else { + return HAL_RADIO_NRF52833_RX_CHAIN_DELAY_S2_US; + } +#endif /* CONFIG_BT_CTLR_PHY_CODED */ } } @@ -343,6 +540,15 @@ static inline uint32_t hal_radio_tx_ready_delay_ns_get(uint8_t phy, uint8_t flag return HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_1M_NS; case BIT(1): return HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_2M_NS; + +#if defined(CONFIG_BT_CTLR_PHY_CODED) + case BIT(2): + if (flags & 0x01) { + return HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S8_NS; + } else { + return HAL_RADIO_NRF52833_TXEN_TXIDLE_TX_S2_NS; + } +#endif /* CONFIG_BT_CTLR_PHY_CODED */ } } @@ -356,6 +562,14 @@ static inline uint32_t hal_radio_rx_ready_delay_ns_get(uint8_t phy, uint8_t flag return HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_1M_NS; case BIT(1): return HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_2M_NS; +#if defined(CONFIG_BT_CTLR_PHY_CODED) + case BIT(2): + if (flags & 0x01) { + return HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S8_NS; + } else { + return HAL_RADIO_NRF52833_RXEN_RXIDLE_RX_S2_NS; + } +#endif /* CONFIG_BT_CTLR_PHY_CODED */ } } @@ -377,5 +591,14 @@ static inline uint32_t hal_radio_rx_chain_delay_ns_get(uint8_t phy, uint8_t flag return HAL_RADIO_NRF52833_RX_CHAIN_DELAY_1M_NS; case BIT(1): return HAL_RADIO_NRF52833_RX_CHAIN_DELAY_2M_NS; + +#if defined(CONFIG_BT_CTLR_PHY_CODED) + case BIT(2): + if (flags & 0x01) { + return HAL_RADIO_NRF52833_RX_CHAIN_DELAY_S8_NS; + } else { + return HAL_RADIO_NRF52833_RX_CHAIN_DELAY_S2_NS; + } +#endif /* CONFIG_BT_CTLR_PHY_CODED */ } } diff --git a/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_sim_nrf5340.h b/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_sim_nrf5340.h index c0cd88b30b0..101ace5d9e1 100644 --- a/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_sim_nrf5340.h +++ b/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_sim_nrf5340.h @@ -75,6 +75,51 @@ HAL_RADIO_NS2US_ROUND( \ HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_2M_DEFAULT_NO_HW_TIFS_NS) +/* TXEN->TXIDLE + TXIDLE->TX (with fast Radio ramp-up mode) + * in microseconds for LE CODED PHY [S2]. + */ +#define HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S2_FAST_NS 42000 +#define HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S2_FAST_US \ + HAL_RADIO_NS2US_ROUND(HAL_RADIO_NRF5340_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_NRF5340_TXEN_TXIDLE_TX_S2_DEFAULT_NS 132000 +#define HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S2_DEFAULT_US \ + HAL_RADIO_NS2US_ROUND(HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S2_DEFAULT_NS) + +/* TXEN->TXIDLE + TXIDLE->TX (with default Radio ramp-up mode and + * no HW TIFS auto-switch) in microseconds for LE 2M PHY [S2]. + */ +/* 129.5 + 2.2 */ +#define HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S2_DEFAULT_NO_HW_TIFS_NS 132000 +#define HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S2_DEFAULT_NO_HW_TIFS_US \ + HAL_RADIO_NS2US_ROUND( \ + HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S2_DEFAULT_NO_HW_TIFS_NS) + +/* TXEN->TXIDLE + TXIDLE->TX (with fast Radio ramp-up mode) + * in microseconds for LE CODED PHY [S8]. + */ +#define HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S8_FAST_NS 42000 +#define HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S8_FAST_US \ + HAL_RADIO_NS2US_ROUND(HAL_RADIO_NRF5340_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_NRF5340_TXEN_TXIDLE_TX_S8_DEFAULT_NS 122000 +#define HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S8_DEFAULT_US \ + HAL_RADIO_NS2US_ROUND(HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S8_DEFAULT_NS) + +/* TXEN->TXIDLE + TXIDLE->TX (with default Radio ramp-up mode and + * no HW TIFS auto-switch) in microseconds for LE 2M PHY [S8]. + */ + /* 129.5 + 2.2 */ +#define HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S8_DEFAULT_NO_HW_TIFS_NS 132000 +#define HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S8_DEFAULT_NO_HW_TIFS_US \ + HAL_RADIO_NS2US_ROUND( \ + HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S8_DEFAULT_NO_HW_TIFS_NS) + /* RXEN->RXIDLE + RXIDLE->RX (with fast Radio ramp-up mode) * in microseconds for LE 1M PHY. */ @@ -121,6 +166,52 @@ HAL_RADIO_NS2US_CEIL( \ HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_2M_DEFAULT_NO_HW_TIFS_NS) +/* RXEN->RXIDLE + RXIDLE->RX (with fast Radio ramp-up mode) + * in microseconds for LE Coded PHY [S2]. + */ +#define HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S2_FAST_NS 40000 +#define HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S2_FAST_US \ + HAL_RADIO_NS2US_CEIL(HAL_RADIO_NRF5340_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_NRF5340_RXEN_RXIDLE_RX_S2_DEFAULT_NS 120000 +#define HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S2_DEFAULT_US \ + HAL_RADIO_NS2US_CEIL(HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S2_DEFAULT_NS) + +/* RXEN->RXIDLE + RXIDLE->RX (with default Radio ramp-up mode + * and no HW TIFS auto-switch) in microseconds for LE Coded PHY [S2]. + */ +/* 129.5 + 0.2 */ +#define HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S2_DEFAULT_NO_HW_TIFS_NS 130000 +#define HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S2_DEFAULT_NO_HW_TIFS_US \ + HAL_RADIO_NS2US_CEIL( \ + HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S2_DEFAULT_NO_HW_TIFS_NS) + +/* RXEN->RXIDLE + RXIDLE->RX (with fast Radio ramp-up mode) + * in microseconds for LE Coded PHY [S8]. + */ +#define HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S8_FAST_NS 40000 +#define HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S8_FAST_US \ + HAL_RADIO_NS2US_CEIL(HAL_RADIO_NRF5340_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_NRF5340_RXEN_RXIDLE_RX_S8_DEFAULT_NS 120000 +#define HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S8_DEFAULT_US \ + HAL_RADIO_NS2US_CEIL(HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S8_DEFAULT_NS) + +/* RXEN->RXIDLE + RXIDLE->RX (with default Radio ramp-up mode and + * no HW TIFS auto-switch) in microseconds for LE Coded PHY [S8]. + */ +/* 129.5 + 0.2 */ +#define HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S8_DEFAULT_NO_HW_TIFS_NS 130000 +#define HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S8_DEFAULT_NO_HW_TIFS_US \ + HAL_RADIO_NS2US_CEIL( \ + HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S8_DEFAULT_NO_HW_TIFS_NS) + #define HAL_RADIO_NRF5340_TX_CHAIN_DELAY_NS 1000 #define HAL_RADIO_NRF5340_TX_CHAIN_DELAY_US \ HAL_RADIO_NS2US_CEIL(HAL_RADIO_NRF5340_TX_CHAIN_DELAY_NS) @@ -129,6 +220,10 @@ #define HAL_RADIO_NRF5340_RX_CHAIN_DELAY_1M_NS 9000 #define HAL_RADIO_NRF5340_RX_CHAIN_DELAY_2M_US 5 #define HAL_RADIO_NRF5340_RX_CHAIN_DELAY_2M_NS 5000 +#define HAL_RADIO_NRF5340_RX_CHAIN_DELAY_S2_US 30 +#define HAL_RADIO_NRF5340_RX_CHAIN_DELAY_S2_NS 30000 +#define HAL_RADIO_NRF5340_RX_CHAIN_DELAY_S8_US 30 +#define HAL_RADIO_NRF5340_RX_CHAIN_DELAY_S8_NS 30000 #if defined(CONFIG_BT_CTLR_RADIO_ENABLE_FAST) #define HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_1M_US \ @@ -141,6 +236,16 @@ #define HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_2M_NS \ HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_2M_FAST_NS +#define HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S2_US \ + HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S2_FAST_US +#define HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S2_NS \ + HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S2_FAST_NS + +#define HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S8_US \ + HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S8_FAST_US +#define HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S8_NS \ + HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S8_FAST_NS + #define HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_1M_US \ HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_1M_FAST_US #define HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_1M_NS \ @@ -151,6 +256,16 @@ #define HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_2M_NS \ HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_2M_FAST_NS +#define HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S2_US \ + HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S2_FAST_US +#define HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S2_NS \ + HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S2_FAST_NS + +#define HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S8_US \ + HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S8_FAST_US +#define HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S8_NS \ + HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S8_FAST_NS + #else /* !CONFIG_BT_CTLR_RADIO_ENABLE_FAST */ #if defined(CONFIG_BT_CTLR_TIFS_HW) #define HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_1M_US \ @@ -163,6 +278,16 @@ #define HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_2M_NS \ HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_2M_DEFAULT_NS +#define HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S2_US \ + HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S2_DEFAULT_US +#define HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S2_NS \ + HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S2_DEFAULT_NS + +#define HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S8_US \ + HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S8_DEFAULT_US +#define HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S8_NS \ + HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S8_DEFAULT_NS + #define HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_1M_US \ HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_1M_DEFAULT_US #define HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_1M_NS \ @@ -173,6 +298,16 @@ #define HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_2M_NS \ HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_2M_DEFAULT_NS +#define HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S2_US \ + HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S2_DEFAULT_US +#define HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S2_NS \ + HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S2_DEFAULT_NS + +#define HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S8_US \ + HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S8_DEFAULT_US +#define HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S8_NS \ + HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S8_DEFAULT_NS + #else /* !CONFIG_BT_CTLR_TIFS_HW */ #define HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_1M_US \ HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_1M_DEFAULT_NO_HW_TIFS_US @@ -184,6 +319,16 @@ #define HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_2M_NS \ HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_2M_DEFAULT_NO_HW_TIFS_NS +#define HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S2_US \ + HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S2_DEFAULT_NO_HW_TIFS_US +#define HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S2_NS \ + HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S2_DEFAULT_NO_HW_TIFS_NS + +#define HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S8_US \ + HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S8_DEFAULT_NO_HW_TIFS_US +#define HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S8_NS \ + HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S8_DEFAULT_NO_HW_TIFS_NS + #define HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_1M_US \ HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_1M_DEFAULT_NO_HW_TIFS_US #define HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_1M_NS \ @@ -194,6 +339,16 @@ #define HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_2M_NS \ HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_2M_DEFAULT_NO_HW_TIFS_NS +#define HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S2_US \ + HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S2_DEFAULT_NO_HW_TIFS_US +#define HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S2_NS \ + HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S2_DEFAULT_NO_HW_TIFS_NS + +#define HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S8_US \ + HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S8_DEFAULT_NO_HW_TIFS_US +#define HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S8_NS \ + HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S8_DEFAULT_NO_HW_TIFS_NS + #endif /* !CONFIG_BT_CTLR_TIFS_HW */ #endif /* !CONFIG_BT_CTLR_RADIO_ENABLE_FAST */ @@ -345,6 +500,15 @@ static inline uint32_t hal_radio_tx_ready_delay_us_get(uint8_t phy, uint8_t flag return HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_1M_US; case BIT(1): return HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_2M_US; + +#if defined(CONFIG_BT_CTLR_PHY_CODED) + case BIT(2): + if (flags & 0x01) { + return HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S8_US; + } else { + return HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S2_US; + } +#endif /* CONFIG_BT_CTLR_PHY_CODED */ } } @@ -358,6 +522,15 @@ static inline uint32_t hal_radio_rx_ready_delay_us_get(uint8_t phy, uint8_t flag return HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_1M_US; case BIT(1): return HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_2M_US; + +#if defined(CONFIG_BT_CTLR_PHY_CODED) + case BIT(2): + if (flags & 0x01) { + return HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S8_US; + } else { + return HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S2_US; + } +#endif /* CONFIG_BT_CTLR_PHY_CODED */ } } @@ -379,6 +552,15 @@ static inline uint32_t hal_radio_rx_chain_delay_us_get(uint8_t phy, uint8_t flag return HAL_RADIO_NRF5340_RX_CHAIN_DELAY_1M_US; case BIT(1): return HAL_RADIO_NRF5340_RX_CHAIN_DELAY_2M_US; + +#if defined(CONFIG_BT_CTLR_PHY_CODED) + case BIT(2): + if (flags & 0x01) { + return HAL_RADIO_NRF5340_RX_CHAIN_DELAY_S8_US; + } else { + return HAL_RADIO_NRF5340_RX_CHAIN_DELAY_S2_US; + } +#endif /* CONFIG_BT_CTLR_PHY_CODED */ } } @@ -392,6 +574,15 @@ static inline uint32_t hal_radio_tx_ready_delay_ns_get(uint8_t phy, uint8_t flag return HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_1M_NS; case BIT(1): return HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_2M_NS; + +#if defined(CONFIG_BT_CTLR_PHY_CODED) + case BIT(2): + if (flags & 0x01) { + return HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S8_NS; + } else { + return HAL_RADIO_NRF5340_TXEN_TXIDLE_TX_S2_NS; + } +#endif /* CONFIG_BT_CTLR_PHY_CODED */ } } @@ -405,6 +596,15 @@ static inline uint32_t hal_radio_rx_ready_delay_ns_get(uint8_t phy, uint8_t flag return HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_1M_NS; case BIT(1): return HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_2M_NS; + +#if defined(CONFIG_BT_CTLR_PHY_CODED) + case BIT(2): + if (flags & 0x01) { + return HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S8_NS; + } else { + return HAL_RADIO_NRF5340_RXEN_RXIDLE_RX_S2_NS; + } +#endif /* CONFIG_BT_CTLR_PHY_CODED */ } } @@ -427,5 +627,13 @@ static inline uint32_t hal_radio_rx_chain_delay_ns_get(uint8_t phy, uint8_t flag case BIT(1): return HAL_RADIO_NRF5340_RX_CHAIN_DELAY_2M_NS; +#if defined(CONFIG_BT_CTLR_PHY_CODED) + case BIT(2): + if (flags & 0x01) { + return HAL_RADIO_NRF5340_RX_CHAIN_DELAY_S8_NS; + } else { + return HAL_RADIO_NRF5340_RX_CHAIN_DELAY_S2_NS; + } +#endif /* CONFIG_BT_CTLR_PHY_CODED */ } }