diff --git a/subsys/bluetooth/controller/Kconfig.ll_sw_split b/subsys/bluetooth/controller/Kconfig.ll_sw_split index 0bf92079d09..d86c4655d93 100644 --- a/subsys/bluetooth/controller/Kconfig.ll_sw_split +++ b/subsys/bluetooth/controller/Kconfig.ll_sw_split @@ -791,33 +791,6 @@ config BT_CTLR_GPIO_PDN_CSN_OFFSET endif # BT_CTLR_FEM_NRF21540 -config BT_CTLR_PA_LNA_GPIOTE_CHAN - # Hidden "nRF5 GPIO PA/LNA GPIOTE Channel" - int - depends on SOC_FAMILY_NRF && (BT_CTLR_GPIO_PA || BT_CTLR_GPIO_LNA) - default 3 if PWM_NRF5_SW - default 0 - help - Select the nRF5 GPIOTE channel to use for PA/LNA GPIO feature. - -config BT_CTLR_PDN_GPIOTE_CHAN - # Hidden "nRF5 GPIO FEM PDN GPIOTE Channel" - int - depends on SOC_FAMILY_NRF && BT_CTLR_FEM_NRF21540 - default 4 if PWM_NRF5_SW - default 1 - help - Select the nRF5 GPIOTE channel to use for FEM PDN GPIO pin toggle. - -config BT_CTLR_CSN_GPIOTE_CHAN - # Hidden "nRF5 GPIO FEM CSN GPIOTE Channel" - int - depends on SOC_FAMILY_NRF && BT_CTLR_FEM_NRF21540 - default 5 if PWM_NRF5_SW - default 2 - help - Select the nRF5 GPIOTE channel to use for FEM CSN GPIO pin toggle. - comment "BLE Controller debug configuration" config BT_CTLR_PROFILE_ISR 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 f03cb53a5ca..65da44b4964 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 @@ -1129,7 +1129,7 @@ void radio_gpio_pa_setup(void) * CONFIG_BT_CTLR_GPIO_PA_PIN by GPIOTE_CONFIG_PSEL_Pos will * set the NRF_GPIOTE->CONFIG[n].PORT to 1 (P1 port). */ - NRF_GPIOTE->CONFIG[CONFIG_BT_CTLR_PA_LNA_GPIOTE_CHAN] = + NRF_GPIOTE->CONFIG[HAL_PALNA_GPIOTE_CHAN] = (GPIOTE_CONFIG_MODE_Task << GPIOTE_CONFIG_MODE_Pos) | (CONFIG_BT_CTLR_GPIO_PA_PIN << @@ -1159,7 +1159,7 @@ void radio_gpio_lna_setup(void) * CONFIG_BT_CTLR_GPIO_LNA_PIN by GPIOTE_CONFIG_PSEL_Pos will * set the NRF_GPIOTE->CONFIG[n].PORT to 1 (P1 port). */ - NRF_GPIOTE->CONFIG[CONFIG_BT_CTLR_PA_LNA_GPIOTE_CHAN] = + NRF_GPIOTE->CONFIG[HAL_PALNA_GPIOTE_CHAN] = (GPIOTE_CONFIG_MODE_Task << GPIOTE_CONFIG_MODE_Pos) | (CONFIG_BT_CTLR_GPIO_LNA_PIN << @@ -1188,7 +1188,7 @@ void radio_gpio_pdn_setup(void) * CONFIG_BT_CTLR_GPIO_PA_PIN by GPIOTE_CONFIG_PSEL_Pos will * set the NRF_GPIOTE->CONFIG[n].PORT to 1 (P1 port). */ - NRF_GPIOTE->CONFIG[CONFIG_BT_CTLR_PDN_GPIOTE_CHAN] = + NRF_GPIOTE->CONFIG[HAL_PDN_GPIOTE_CHAN] = (GPIOTE_CONFIG_MODE_Task << GPIOTE_CONFIG_MODE_Pos) | (CONFIG_BT_CTLR_GPIO_PDN_PIN << @@ -1212,7 +1212,7 @@ void radio_gpio_csn_setup(void) * CONFIG_BT_CTLR_GPIO_PA_PIN by GPIOTE_CONFIG_PSEL_Pos will * set the NRF_GPIOTE->CONFIG[n].PORT to 1 (P1 port). */ - NRF_GPIOTE->CONFIG[CONFIG_BT_CTLR_CSN_GPIOTE_CHAN] = + NRF_GPIOTE->CONFIG[HAL_CSN_GPIOTE_CHAN] = (GPIOTE_CONFIG_MODE_Task << GPIOTE_CONFIG_MODE_Pos) | (CONFIG_BT_CTLR_GPIO_CSN_PIN << @@ -1271,13 +1271,13 @@ void radio_gpio_pa_lna_disable(void) BIT(HAL_DISABLE_PALNA_PPI) | BIT(HAL_ENABLE_FEM_PPI) | BIT(HAL_DISABLE_FEM_PPI)); - NRF_GPIOTE->CONFIG[CONFIG_BT_CTLR_PA_LNA_GPIOTE_CHAN] = 0; - NRF_GPIOTE->CONFIG[CONFIG_BT_CTLR_PDN_GPIOTE_CHAN] = 0; - NRF_GPIOTE->CONFIG[CONFIG_BT_CTLR_CSN_GPIOTE_CHAN] = 0; + NRF_GPIOTE->CONFIG[HAL_PALNA_GPIOTE_CHAN] = 0; + NRF_GPIOTE->CONFIG[HAL_PDN_GPIOTE_CHAN] = 0; + NRF_GPIOTE->CONFIG[HAL_CSN_GPIOTE_CHAN] = 0; #else hal_radio_nrf_ppi_channels_disable(BIT(HAL_ENABLE_PALNA_PPI) | BIT(HAL_DISABLE_PALNA_PPI)); - NRF_GPIOTE->CONFIG[CONFIG_BT_CTLR_PA_LNA_GPIOTE_CHAN] = 0; + NRF_GPIOTE->CONFIG[HAL_PALNA_GPIOTE_CHAN] = 0; #endif } #endif /* CONFIG_BT_CTLR_GPIO_PA_PIN || CONFIG_BT_CTLR_GPIO_LNA_PIN */ diff --git a/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_nrf5.h b/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_nrf5.h index 0a56a0f91d2..37b8b3ffeb1 100644 --- a/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_nrf5.h +++ b/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_nrf5.h @@ -50,6 +50,16 @@ #include +#if defined(CONFIG_PWM_NRF5_SW) +#define HAL_PALNA_GPIOTE_CHAN 3 +#define HAL_PDN_GPIOTE_CHAN 4 +#define HAL_CSN_GPIOTE_CHAN 5 +#else +#define HAL_PALNA_GPIOTE_CHAN 0 +#define HAL_PDN_GPIOTE_CHAN 1 +#define HAL_CSN_GPIOTE_CHAN 2 +#endif + #if defined(PPI_PRESENT) #include "radio_nrf5_ppi.h" #elif defined(DPPI_PRESENT) diff --git a/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_nrf5_dppi.h b/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_nrf5_dppi.h index 40a8fade282..bf7115b8084 100644 --- a/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_nrf5_dppi.h +++ b/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_nrf5_dppi.h @@ -169,8 +169,6 @@ static inline void hal_trigger_rateoverride_ppi_config(void) } /******************************************************************************/ -#if defined(CONFIG_BT_CTLR_GPIO_PA_PIN) || defined(CONFIG_BT_CTLR_GPIO_LNA_PIN) - #define HAL_ENABLE_PALNA_PPI 5 #if defined(CONFIG_BT_CTLR_FEM_NRF21540) @@ -189,13 +187,11 @@ static inline void hal_palna_ppi_setup(void) #if !defined(CONFIG_BT_CTLR_FEM_NRF21540) nrf_gpiote_task_t task; - task = nrf_gpiote_out_task_get(CONFIG_BT_CTLR_PA_LNA_GPIOTE_CHAN); + task = nrf_gpiote_out_task_get(HAL_PALNA_GPIOTE_CHAN); nrf_gpiote_subscribe_set(NRF_GPIOTE, task, HAL_DISABLE_PALNA_PPI); #endif } -#endif /* CONFIG_BT_CTLR_GPIO_PA_PIN || CONFIG_BT_CTLR_GPIO_LNA_PIN */ - /******************************************************************************/ #if defined(CONFIG_BT_CTLR_FEM_NRF21540) @@ -204,14 +200,14 @@ static inline void hal_pa_ppi_setup(void) nrf_gpiote_task_t task; #if defined(CONFIG_BT_CTLR_GPIO_PA_POL_INV) - task = nrf_gpiote_clr_task_get(CONFIG_BT_CTLR_PA_LNA_GPIOTE_CHAN); + task = nrf_gpiote_clr_task_get(HAL_PALNA_GPIOTE_CHAN); nrf_gpiote_subscribe_set(NRF_GPIOTE, task, HAL_ENABLE_PALNA_PPI); - task = nrf_gpiote_set_task_get(CONFIG_BT_CTLR_PA_LNA_GPIOTE_CHAN); + task = nrf_gpiote_set_task_get(HAL_PALNA_GPIOTE_CHAN); nrf_gpiote_subscribe_set(NRF_GPIOTE, task, HAL_DISABLE_PALNA_PPI); #else /* !CONFIG_BT_CTLR_GPIO_PA_POL_INV */ - task = nrf_gpiote_set_task_get(CONFIG_BT_CTLR_PA_LNA_GPIOTE_CHAN); + task = nrf_gpiote_set_task_get(HAL_PALNA_GPIOTE_CHAN); nrf_gpiote_subscribe_set(NRF_GPIOTE, task, HAL_ENABLE_PALNA_PPI); - task = nrf_gpiote_clr_task_get(CONFIG_BT_CTLR_PA_LNA_GPIOTE_CHAN); + task = nrf_gpiote_clr_task_get(HAL_PALNA_GPIOTE_CHAN); nrf_gpiote_subscribe_set(NRF_GPIOTE, task, HAL_DISABLE_PALNA_PPI); #endif /* !CONFIG_BT_CTLR_GPIO_PA_POL_INV */ } @@ -221,14 +217,14 @@ static inline void hal_lna_ppi_setup(void) nrf_gpiote_task_t task; #if defined(CONFIG_BT_CTLR_GPIO_LNA_POL_INV) - task = nrf_gpiote_clr_task_get(CONFIG_BT_CTLR_PA_LNA_GPIOTE_CHAN); + task = nrf_gpiote_clr_task_get(HAL_PALNA_GPIOTE_CHAN); nrf_gpiote_subscribe_set(NRF_GPIOTE, task, HAL_ENABLE_PALNA_PPI); - task = nrf_gpiote_set_task_get(CONFIG_BT_CTLR_PA_LNA_GPIOTE_CHAN); + task = nrf_gpiote_set_task_get(HAL_PALNA_GPIOTE_CHAN); nrf_gpiote_subscribe_set(NRF_GPIOTE, task, HAL_DISABLE_PALNA_PPI); #else /* !CONFIG_BT_CTLR_GPIO_LNA_POL_INV */ - task = nrf_gpiote_set_task_get(CONFIG_BT_CTLR_PA_LNA_GPIOTE_CHAN); + task = nrf_gpiote_set_task_get(HAL_PALNA_GPIOTE_CHAN); nrf_gpiote_subscribe_set(NRF_GPIOTE, task, HAL_ENABLE_PALNA_PPI); - task = nrf_gpiote_clr_task_get(CONFIG_BT_CTLR_PA_LNA_GPIOTE_CHAN); + task = nrf_gpiote_clr_task_get(HAL_PALNA_GPIOTE_CHAN); nrf_gpiote_subscribe_set(NRF_GPIOTE, task, HAL_DISABLE_PALNA_PPI); #endif /* !CONFIG_BT_CTLR_GPIO_LNA_POL_INV */ } @@ -246,26 +242,26 @@ static inline void hal_fem_ppi_setup(void) HAL_DISABLE_FEM_PPI); #if defined(CONFIG_BT_CTLR_GPIO_PDN_POL_INV) - task = nrf_gpiote_clr_task_get(CONFIG_BT_CTLR_PDN_GPIOTE_CHAN); + task = nrf_gpiote_clr_task_get(HAL_PDN_GPIOTE_CHAN); nrf_gpiote_subscribe_set(NRF_GPIOTE, task, HAL_ENABLE_FEM_PPI); - task = nrf_gpiote_set_task_get(CONFIG_BT_CTLR_PDN_GPIOTE_CHAN); + task = nrf_gpiote_set_task_get(HAL_PDN_GPIOTE_CHAN); nrf_gpiote_subscribe_set(NRF_GPIOTE, task, HAL_DISABLE_FEM_PPI); #else /* !CONFIG_BT_CTLR_GPIO_PDN_POL_INV */ - task = nrf_gpiote_set_task_get(CONFIG_BT_CTLR_PDN_GPIOTE_CHAN); + task = nrf_gpiote_set_task_get(HAL_PDN_GPIOTE_CHAN); nrf_gpiote_subscribe_set(NRF_GPIOTE, task, HAL_ENABLE_FEM_PPI); - task = nrf_gpiote_clr_task_get(CONFIG_BT_CTLR_PDN_GPIOTE_CHAN); + task = nrf_gpiote_clr_task_get(HAL_PDN_GPIOTE_CHAN); nrf_gpiote_subscribe_set(NRF_GPIOTE, task, HAL_DISABLE_FEM_PPI); #endif /* !CONFIG_BT_CTLR_GPIO_PDN_POL_INV */ #if defined(CONFIG_BT_CTLR_GPIO_CSN_POL_INV) - task = nrf_gpiote_clr_task_get(CONFIG_BT_CTLR_CSN_GPIOTE_CHAN); + task = nrf_gpiote_clr_task_get(HAL_CSN_GPIOTE_CHAN); nrf_gpiote_subscribe_set(NRF_GPIOTE, task, HAL_ENABLE_FEM_PPI); - task = nrf_gpiote_set_task_get(CONFIG_BT_CTLR_CSN_GPIOTE_CHAN); + task = nrf_gpiote_set_task_get(HAL_CSN_GPIOTE_CHAN); nrf_gpiote_subscribe_set(NRF_GPIOTE, task, HAL_DISABLE_FEM_PPI); #else /* !CONFIG_BT_CTLR_GPIO_CSN_POL_INV */ - task = nrf_gpiote_set_task_get(CONFIG_BT_CTLR_CSN_GPIOTE_CHAN); + task = nrf_gpiote_set_task_get(HAL_CSN_GPIOTE_CHAN); nrf_gpiote_subscribe_set(NRF_GPIOTE, task, HAL_ENABLE_FEM_PPI); - task = nrf_gpiote_clr_task_get(CONFIG_BT_CTLR_CSN_GPIOTE_CHAN); + task = nrf_gpiote_clr_task_get(HAL_CSN_GPIOTE_CHAN); nrf_gpiote_subscribe_set(NRF_GPIOTE, task, HAL_DISABLE_FEM_PPI); #endif /* !CONFIG_BT_CTLR_GPIO_CSN_POL_INV */ } 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 53376e63b78..411044f01cf 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 @@ -262,8 +262,6 @@ static inline void hal_trigger_rateoverride_ppi_config(void) #endif /* CONFIG_HAS_HW_NRF_RADIO_BLE_CODED */ /******************************************************************************/ -#if defined(CONFIG_BT_CTLR_GPIO_PA_PIN) || defined(CONFIG_BT_CTLR_GPIO_LNA_PIN) - #define HAL_ENABLE_PALNA_PPI 15 #define HAL_DISABLE_PALNA_PPI 16 @@ -273,18 +271,14 @@ static inline void hal_palna_ppi_setup(void) NRF_PPI, HAL_ENABLE_PALNA_PPI, (uint32_t)&(EVENT_TIMER->EVENTS_COMPARE[2]), - (uint32_t)&(NRF_GPIOTE->TASKS_OUT[ - CONFIG_BT_CTLR_PA_LNA_GPIOTE_CHAN])); + (uint32_t)&(NRF_GPIOTE->TASKS_OUT[HAL_PALNA_GPIOTE_CHAN])); nrf_ppi_channel_endpoint_setup( NRF_PPI, HAL_DISABLE_PALNA_PPI, (uint32_t)&(NRF_RADIO->EVENTS_DISABLED), - (uint32_t)&(NRF_GPIOTE->TASKS_OUT[ - CONFIG_BT_CTLR_PA_LNA_GPIOTE_CHAN])); + (uint32_t)&(NRF_GPIOTE->TASKS_OUT[HAL_PALNA_GPIOTE_CHAN])); } -#endif /* CONFIG_BT_CTLR_GPIO_PA_PIN || CONFIG_BT_CTLR_GPIO_LNA_PIN */ - /******************************************************************************/ #if defined(CONFIG_BT_CTLR_FEM_NRF21540) static inline void hal_pa_ppi_setup(void) @@ -306,18 +300,14 @@ static inline void hal_fem_ppi_setup(void) NRF_PPI, HAL_ENABLE_FEM_PPI, (uint32_t)&(EVENT_TIMER->EVENTS_COMPARE[3]), - (uint32_t)&(NRF_GPIOTE->TASKS_OUT[ - CONFIG_BT_CTLR_PDN_GPIOTE_CHAN]), - (uint32_t)&(NRF_GPIOTE->TASKS_OUT[ - CONFIG_BT_CTLR_CSN_GPIOTE_CHAN])); + (uint32_t)&(NRF_GPIOTE->TASKS_OUT[HAL_PDN_GPIOTE_CHAN]), + (uint32_t)&(NRF_GPIOTE->TASKS_OUT[HAL_CSN_GPIOTE_CHAN])); nrf_ppi_channel_and_fork_endpoint_setup( NRF_PPI, HAL_DISABLE_FEM_PPI, (uint32_t)&(NRF_RADIO->EVENTS_DISABLED), - (uint32_t)&(NRF_GPIOTE->TASKS_OUT[ - CONFIG_BT_CTLR_PDN_GPIOTE_CHAN]), - (uint32_t)&(NRF_GPIOTE->TASKS_OUT[ - CONFIG_BT_CTLR_CSN_GPIOTE_CHAN])); + (uint32_t)&(NRF_GPIOTE->TASKS_OUT[HAL_PDN_GPIOTE_CHAN]), + (uint32_t)&(NRF_GPIOTE->TASKS_OUT[HAL_CSN_GPIOTE_CHAN])); } #endif /* CONFIG_BT_CTLR_FEM_NRF21540 */