From e51c47bf4338aebd0b3b76c653d8082739bb8a2b Mon Sep 17 00:00:00 2001 From: Mustafa Homsi Date: Sun, 7 Jan 2024 18:02:24 -0800 Subject: [PATCH] Bluetooth: Controller: Fix regression in BT_CTLR_USED_PPI_CHANNELS Fix regression in BT_CTLR_USED_PPI_CHANNELS introduced in commit e39d98302d9f ("Bluetooth: Controller: nRF53: Cleanup dppi and dppi resources file"). Signed-off-by: Mustafa Homsi Signed-off-by: Vinayak Kariappa Chettimada --- .../hal/nrf5/nrfx_glue/bt_ctlr_used_resources.h | 7 ++++++- .../ll_sw/nordic/hal/nrf5/radio/radio_nrf5_dppi.h | 2 ++ .../hal/nrf5/radio/radio_nrf5_dppi_resources.h | 13 ++++++++++++- .../ll_sw/nordic/hal/nrf5/radio/radio_nrf5_ppi.h | 4 ++-- .../hal/nrf5/radio/radio_nrf5_ppi_resources.h | 14 +++++++++++--- 5 files changed, 33 insertions(+), 7 deletions(-) diff --git a/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/nrfx_glue/bt_ctlr_used_resources.h b/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/nrfx_glue/bt_ctlr_used_resources.h index a84e14cb9fb..b19abb3dfbb 100644 --- a/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/nrfx_glue/bt_ctlr_used_resources.h +++ b/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/nrfx_glue/bt_ctlr_used_resources.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 Nordic Semiconductor ASA + * Copyright (c) 2021-2024 Nordic Semiconductor ASA * * SPDX-License-Identifier: Apache-2.0 */ @@ -7,6 +7,11 @@ #include "../radio/radio_nrf5_resources.h" #include "../radio/radio_nrf5_fem.h" +/* NOTE: BT_CTLR_USED_PPI_CHANNELS is defined based on PPI defines being + * defined in the below PPI/DPPI resources header file. Take care to + * conditionally compile them based on feature Kconfig defines in those + * resources header file. + */ #ifdef DPPI_PRESENT #include "../radio/radio_nrf5_dppi_resources.h" #else 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 1fdf7d90d30..5783589592a 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 @@ -171,6 +171,7 @@ static inline void hal_trigger_aar_ppi_config(void) nrf_aar_subscribe_set(NRF_AAR, NRF_AAR_TASK_START, HAL_TRIGGER_AAR_PPI); } +#if defined(CONFIG_BT_CTLR_PHY_CODED) && defined(CONFIG_HAS_HW_NRF_RADIO_BLE_CODED) /******************************************************************************* * Trigger Radio Rate override upon Rateboost event. */ @@ -179,6 +180,7 @@ static inline void hal_trigger_rateoverride_ppi_config(void) nrf_radio_publish_set(NRF_RADIO, NRF_RADIO_EVENT_RATEBOOST, HAL_TRIGGER_RATEOVERRIDE_PPI); nrf_ccm_subscribe_set(NRF_CCM, NRF_CCM_TASK_RATEOVERRIDE, HAL_TRIGGER_RATEOVERRIDE_PPI); } +#endif /* CONFIG_BT_CTLR_PHY_CODED && CONFIG_HAS_HW_NRF_RADIO_BLE_CODED */ /******************************************************************************/ #if defined(HAL_RADIO_GPIO_HAVE_PA_PIN) || defined(HAL_RADIO_GPIO_HAVE_LNA_PIN) diff --git a/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_nrf5_dppi_resources.h b/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_nrf5_dppi_resources.h index a8bbe8e63b4..8a6ba36a235 100644 --- a/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_nrf5_dppi_resources.h +++ b/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_nrf5_dppi_resources.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 Nordic Semiconductor ASA + * Copyright (c) 2021-2024 Nordic Semiconductor ASA * * SPDX-License-Identifier: Apache-2.0 */ @@ -61,11 +61,15 @@ */ #define HAL_TRIGGER_AAR_PPI 12 +#if defined(CONFIG_BT_CTLR_PHY_CODED) && \ + defined(CONFIG_HAS_HW_NRF_RADIO_BLE_CODED) /******************************************************************************* * Trigger Radio Rate override upon Rateboost event. */ #define HAL_TRIGGER_RATEOVERRIDE_PPI 13 +#endif /* CONFIG_BT_CTLR_PHY_CODED && CONFIG_HAS_HW_NRF_RADIO_BLE_CODED */ +#if defined(HAL_RADIO_GPIO_HAVE_PA_PIN) || defined(HAL_RADIO_GPIO_HAVE_LNA_PIN) /******************************************************************************/ #define HAL_ENABLE_PALNA_PPI 5 @@ -78,6 +82,8 @@ #define HAL_ENABLE_FEM_PPI 3 #define HAL_DISABLE_FEM_PPI HAL_DISABLE_PALNA_PPI +#endif /* HAL_RADIO_GPIO_HAVE_PA_PIN || HAL_RADIO_GPIO_HAVE_LNA_PIN */ + /******************************************************************************/ #if !defined(CONFIG_BT_CTLR_TIFS_HW) /* DPPI setup used for SW-based auto-switching during TIFS. */ @@ -123,6 +129,9 @@ */ #define HAL_SW_SWITCH_RADIO_ENABLE_PPI_BASE 14 +#if defined(CONFIG_BT_CTLR_PHY_CODED) && \ + defined(CONFIG_HAS_HW_NRF_RADIO_BLE_CODED) + #define HAL_SW_SWITCH_RADIO_ENABLE_S2_PPI_BASE \ HAL_SW_SWITCH_RADIO_ENABLE_PPI_BASE @@ -133,6 +142,8 @@ */ #define HAL_SW_SWITCH_TIMER_S8_DISABLE_PPI HAL_TRIGGER_RATEOVERRIDE_PPI +#endif /* CONFIG_BT_CTLR_PHY_CODED && CONFIG_HAS_HW_NRF_RADIO_BLE_CODED */ + #if defined(CONFIG_BT_CTLR_DF_PHYEND_OFFSET_COMPENSATION_ENABLE) /* Cancel the SW switch timer running considering PHYEND delay compensation timing: * wire the RADIO EVENTS_CTEPRESENT event to SW_SWITCH_TIMER TASKS_CAPTURE task. 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 44cec4621a3..60fd8944ac4 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 @@ -257,7 +257,7 @@ static inline void hal_trigger_aar_ppi_config(void) /******************************************************************************* * Trigger Radio Rate override upon Rateboost event. */ -#if defined(CONFIG_HAS_HW_NRF_RADIO_BLE_CODED) +#if defined(CONFIG_BT_CTLR_PHY_CODED) && defined(CONFIG_HAS_HW_NRF_RADIO_BLE_CODED) static inline void hal_trigger_rateoverride_ppi_config(void) { nrf_ppi_channel_endpoint_setup( @@ -266,7 +266,7 @@ static inline void hal_trigger_rateoverride_ppi_config(void) (uint32_t)&(NRF_RADIO->EVENTS_RATEBOOST), (uint32_t)&(NRF_CCM->TASKS_RATEOVERRIDE)); } -#endif /* CONFIG_HAS_HW_NRF_RADIO_BLE_CODED */ +#endif /* CONFIG_BT_CTLR_PHY_CODED && CONFIG_HAS_HW_NRF_RADIO_BLE_CODED */ /******************************************************************************/ #if defined(HAL_RADIO_GPIO_HAVE_PA_PIN) || defined(HAL_RADIO_GPIO_HAVE_LNA_PIN) diff --git a/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_nrf5_ppi_resources.h b/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_nrf5_ppi_resources.h index ab196e17d58..58c2c57d974 100644 --- a/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_nrf5_ppi_resources.h +++ b/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_nrf5_ppi_resources.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 Nordic Semiconductor ASA + * Copyright (c) 2021-2024 Nordic Semiconductor ASA * * SPDX-License-Identifier: Apache-2.0 */ @@ -74,12 +74,15 @@ #define HAL_TRIGGER_AAR_PPI 23 /* Trigger Radio Rate override upon Rateboost event. */ -#if defined(CONFIG_HAS_HW_NRF_RADIO_BLE_CODED) +#if defined(CONFIG_BT_CTLR_PHY_CODED) && \ + defined(CONFIG_HAS_HW_NRF_RADIO_BLE_CODED) #define HAL_TRIGGER_RATEOVERRIDE_PPI 14 -#endif /* CONFIG_HAS_HW_NRF_RADIO_BLE_CODED */ +#endif /* CONFIG_BT_CTLR_PHY_CODED && CONFIG_HAS_HW_NRF_RADIO_BLE_CODED */ +#if defined(HAL_RADIO_GPIO_HAVE_PA_PIN) || defined(HAL_RADIO_GPIO_HAVE_LNA_PIN) #define HAL_ENABLE_PALNA_PPI 15 #define HAL_DISABLE_PALNA_PPI 16 +#endif /* HAL_RADIO_GPIO_HAVE_PA_PIN || HAL_RADIO_GPIO_HAVE_LNA_PIN */ #if defined(HAL_RADIO_FEM_IS_NRF21540) #define HAL_ENABLE_FEM_PPI 4 @@ -143,6 +146,9 @@ #define HAL_SW_SWITCH_RADIO_ENABLE_PPI_BASE 12 #endif +#if defined(CONFIG_BT_CTLR_PHY_CODED) && \ + defined(CONFIG_HAS_HW_NRF_RADIO_BLE_CODED) + /* Wire the SW SWITCH TIMER EVENTS_COMPARE[] event * to RADIO TASKS_TXEN/RXEN task. */ @@ -153,6 +159,8 @@ */ #define HAL_SW_SWITCH_TIMER_S8_DISABLE_PPI 19 +#endif /* CONFIG_BT_CTLR_PHY_CODED && CONFIG_HAS_HW_NRF_RADIO_BLE_CODED */ + #if defined(CONFIG_BT_CTLR_DF_PHYEND_OFFSET_COMPENSATION_ENABLE) /* Wire the SW SWITCH PHYEND delay compensation TIMER EVENTS_COMPARE[] event to software * switch TIMER0->CLEAR taks task.