diff --git a/boards/ezurio/bl654_dvk/bl654_dvk_nrf52840_pa.dts b/boards/ezurio/bl654_dvk/bl654_dvk_nrf52840_pa.dts index ee5d7260fa4e0..34f8e2d3edc01 100644 --- a/boards/ezurio/bl654_dvk/bl654_dvk_nrf52840_pa.dts +++ b/boards/ezurio/bl654_dvk/bl654_dvk_nrf52840_pa.dts @@ -11,7 +11,7 @@ /* Information from Nordic SDK-Based Application Development and SKY66112 datasheet */ nrf_radio_fem: fem { status = "okay"; - compatible = "generic-fem-two-ctrl-pins"; + compatible = "radio-fem-two-ctrl-pins"; ctx-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>; crx-gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>; ctx-settle-time-us = <23>; diff --git a/boards/panasonic/pan1783/pan1783a_pa_evb_nrf5340_cpunet.dts b/boards/panasonic/pan1783/pan1783a_pa_evb_nrf5340_cpunet.dts index 8e7d4c3bdd3bd..6975bdb6cc0b5 100644 --- a/boards/panasonic/pan1783/pan1783a_pa_evb_nrf5340_cpunet.dts +++ b/boards/panasonic/pan1783/pan1783a_pa_evb_nrf5340_cpunet.dts @@ -19,9 +19,11 @@ }; nrf_radio_fem: fem_node { - compatible = "skyworks,sky66407-11", "generic-fem-two-ctrl-pins"; + compatible = "skyworks,sky66407-11", "radio-fem-two-ctrl-pins"; ctx-gpios = <&gpio0 19 GPIO_ACTIVE_HIGH>; crx-gpios = <&gpio0 21 GPIO_ACTIVE_HIGH>; + ctx-settle-time-us = <5>; + crx-settle-time-us = <5>; }; }; diff --git a/boards/u-blox/ubx_bmd345eval/ubx_bmd345eval_nrf52840.dts b/boards/u-blox/ubx_bmd345eval/ubx_bmd345eval_nrf52840.dts index 13aa50c32a4b0..e96ff606d894b 100644 --- a/boards/u-blox/ubx_bmd345eval/ubx_bmd345eval_nrf52840.dts +++ b/boards/u-blox/ubx_bmd345eval/ubx_bmd345eval_nrf52840.dts @@ -127,7 +127,7 @@ }; nrf_radio_fem: fem { - compatible = "generic-fem-two-ctrl-pins"; + compatible = "radio-fem-two-ctrl-pins"; ctx-gpios = <&gpio1 5 0>; ctx-settle-time-us = <1>; crx-gpios = <&gpio1 6 0>; diff --git a/doc/releases/migration-guide-4.4.rst b/doc/releases/migration-guide-4.4.rst index b10c86e9f23bd..07268c360f759 100644 --- a/doc/releases/migration-guide-4.4.rst +++ b/doc/releases/migration-guide-4.4.rst @@ -32,6 +32,20 @@ Boards Device Drivers and Devicetree ***************************** +Radio +===== + +* The following devicetree bindings have been renamed for consistency with the ``radio-`` prefix: + + * :dtcompatible:`generic-fem-two-ctrl-pins` is now :dtcompatible:`radio-fem-two-ctrl-pins` + * :dtcompatible:`gpio-radio-coex` is now :dtcompatible:`radio-gpio-coex` + +* A new :dtcompatible:`radio.yaml` base binding has been introduced for generic radio hardware + capabilities. The ``tx-high-power-supported`` property has been renamed to + ``radio-tx-high-power-supported`` for consistency. + +* Device trees and overlays using the old compatible strings must be updated to use the new names. + Bluetooth ********* diff --git a/doc/releases/release-notes-4.4.rst b/doc/releases/release-notes-4.4.rst index 57f3147e570dd..e30bb3b6a4bcd 100644 --- a/doc/releases/release-notes-4.4.rst +++ b/doc/releases/release-notes-4.4.rst @@ -89,6 +89,11 @@ New Drivers Same as above, this will also be recomputed at the time of the release. Just link the driver, further details go in the binding description +* Radio + + * :dtcompatible:`radio-fem-two-ctrl-pins` (renamed from ``generic-fem-two-ctrl-pins``) + * :dtcompatible:`radio-gpio-coex` (renamed from ``gpio-radio-coex``) + New Samples *********** diff --git a/drivers/bluetooth/hci/Kconfig b/drivers/bluetooth/hci/Kconfig index ad9ae6b07c81b..9480bab7bd1e4 100644 --- a/drivers/bluetooth/hci/Kconfig +++ b/drivers/bluetooth/hci/Kconfig @@ -151,48 +151,6 @@ config BT_STM32WB0 help ST STM32WB0 HCI Bluetooth interface -config BT_SILABS_EFR32 - bool "Silabs EFR32 HCI driver" - default y - depends on DT_HAS_SILABS_BT_HCI_EFR32_ENABLED - depends on ZEPHYR_HAL_SILABS_MODULE_BLOBS || BUILD_ONLY_NO_BLOBS - depends on SOC_GECKO_HAS_RADIO - select SOC_GECKO_USE_RAIL - select PSA_CRYPTO - select SILABS_SISDK_PROTOCOL_CRYPTO - select HAS_BT_CTLR - select BT_CTLR_PHY_UPDATE_SUPPORT - select BT_CTLR_PER_INIT_FEAT_XCHG_SUPPORT - select BT_CTLR_DATA_LEN_UPDATE_SUPPORT - select BT_CTLR_EXT_REJ_IND_SUPPORT - select BT_CTLR_CHAN_SEL_2_SUPPORT - select BT_CTLR_CONN_RSSI_SUPPORT - select BT_CTLR_ADV_EXT_SUPPORT - select BT_CTLR_PRIVACY_SUPPORT - select BT_CTLR_PHY_2M_SUPPORT - select BT_CTLR_SYNC_PERIODIC_SUPPORT - select BT_CTLR_SYNC_TRANSFER_RECEIVER_SUPPORT - select BT_CTLR_SYNC_TRANSFER_SENDER_SUPPORT - help - Use Silicon Labs binary Bluetooth library to connect to the - controller. - -source "drivers/bluetooth/hci/Kconfig.silabs" - -config BT_SILABS_SIWX91X - bool "Silabs SiWx91x Bluetooth interface" - default y - depends on DT_HAS_SILABS_SIWX91X_BT_HCI_ENABLED - select SILABS_SIWX91X_NWP - select ENTROPY_GENERATOR - select BT_HCI_SETUP - help - Use Silicon Labs Wiseconnect 3.x Bluetooth library to connect to the controller. - - # SiWx917 BLE controller currently does not support HCI Command: Host Number of Completed Packets - configdefault BT_HCI_ACL_FLOW_CONTROL - default n if BT_SILABS_SIWX91X - config BT_USERCHAN bool depends on BOARD_NATIVE_SIM @@ -309,6 +267,7 @@ source "drivers/bluetooth/hci/Kconfig.esp32" source "drivers/bluetooth/hci/Kconfig.infineon" source "drivers/bluetooth/hci/Kconfig.nxp" source "drivers/bluetooth/hci/Kconfig.stm32" +source "drivers/bluetooth/hci/Kconfig.silabs" config BT_DRIVER_QUIRK_NO_AUTO_DLE bool "Host auto-initiated Data Length Update quirk" diff --git a/drivers/bluetooth/hci/Kconfig.silabs b/drivers/bluetooth/hci/Kconfig.silabs index 29946e56fba3c..539fdd28aec2a 100644 --- a/drivers/bluetooth/hci/Kconfig.silabs +++ b/drivers/bluetooth/hci/Kconfig.silabs @@ -1,6 +1,59 @@ # Copyright (c) 2025 Silicon Laboratories Inc. # # SPDX-License-Identifier: Apache-2.0 + +config BT_SILABS_SIWX91X + bool "Silabs SiWx91x Bluetooth interface" + default y + depends on DT_HAS_SILABS_SIWX91X_BT_HCI_ENABLED + select SILABS_SIWX91X_NWP + select ENTROPY_GENERATOR + select BT_HCI_SETUP + help + Use Silicon Labs Wiseconnect 3.x Bluetooth library to connect to the controller. + +# SiWx917 BLE controller currently does not support HCI Command: Host Number of Completed Packets +configdefault BT_HCI_ACL_FLOW_CONTROL + default n if BT_SILABS_SIWX91X + +config BT_SILABS_EFR32 + bool "Silabs EFR32 HCI driver" + default y + depends on DT_HAS_SILABS_BT_HCI_EFR32_ENABLED + depends on ZEPHYR_HAL_SILABS_MODULE_BLOBS || BUILD_ONLY_NO_BLOBS + depends on SOC_GECKO_HAS_RADIO + select SOC_GECKO_USE_RAIL + select PSA_CRYPTO + select SILABS_SISDK_PROTOCOL_CRYPTO + select HAS_BT_CTLR + # Features supported by all EFR32 devices + select BT_CTLR_PHY_UPDATE_SUPPORT + select BT_CTLR_PER_INIT_FEAT_XCHG_SUPPORT + select BT_CTLR_DATA_LEN_UPDATE_SUPPORT + select BT_CTLR_EXT_REJ_IND_SUPPORT + select BT_CTLR_CHAN_SEL_2_SUPPORT + select BT_CTLR_CONN_RSSI_SUPPORT + select BT_CTLR_ADV_EXT_SUPPORT + select BT_CTLR_PRIVACY_SUPPORT + select BT_CTLR_SYNC_PERIODIC_SUPPORT + select BT_CTLR_SYNC_TRANSFER_RECEIVER_SUPPORT + select BT_CTLR_SYNC_TRANSFER_SENDER_SUPPORT + # Features supported by some EFR32 devices + select BT_CTLR_PHY_2M_SUPPORT if HAS_HW_EFR32_RADIO_BLE_2M + select BT_CTLR_PHY_CODED_SUPPORT if HAS_HW_EFR32_RADIO_BLE_CODED + select BT_CTLR_CHANNEL_SOUNDING_SUPPORT if HAS_HW_EFR32_RADIO_CS + select BT_CTLR_DF_SUPPORT if HAS_HW_EFR32_RADIO_CTE_TX + select BT_CTLR_DF_CTE_TX_SUPPORT if HAS_HW_EFR32_RADIO_CTE_TX + select BT_CTLR_DF_CTE_RX_SUPPORT if HAS_HW_EFR32_RADIO_CTE_RX + select BT_CTLR_DF_CTE_RX_SAMPLE_1US_SUPPORT if HAS_HW_EFR32_RADIO_CTE_RX + select BT_CTLR_DF_ANT_SWITCH_1US_SUPPORT if HAS_HW_EFR32_RADIO_CTE_TX + select BT_CTLR_DF_ANT_SWITCH_2US_SUPPORT if HAS_HW_EFR32_RADIO_CTE_TX + select BT_SILABS_EFR32_HIGH_POWER if HAS_HW_EFR32_RADIO_TX_HIGH_POWER + + help + Use Silicon Labs binary Bluetooth library to connect to the + controller. + menu "EFR32 Bluetooth Controller Configuration" depends on BT_SILABS_EFR32 @@ -60,11 +113,11 @@ config BT_SILABS_EFR32_MAX_QUEUED_ADV_REPORTS Additional advertising reports are dropped. config BT_SILABS_EFR32_HIGH_POWER - bool "High power transmission" + bool help - Normally the transmit power is limited to 10 dBm. Enable this option - to allow the controller to transmit at higher power levels. Note that - this feature is not available on all devices. + Normally the transmit power is limited to 10 dBm. This option + is automatically enabled on devices with high power PA support + and allows the controller to transmit at higher power levels. config BT_SILABS_EFR32_HIGH_POWER_AFH bool "Adaptive frequency hopping for high power transmitters" diff --git a/dts/arm/nordic/nrf52820.dtsi b/dts/arm/nordic/nrf52820.dtsi index 88fc0c76dc5d6..d95a47943acbe 100644 --- a/dts/arm/nordic/nrf52820.dtsi +++ b/dts/arm/nordic/nrf52820.dtsi @@ -118,7 +118,7 @@ ieee802154-supported; ble-2mbps-supported; ble-coded-phy-supported; - tx-high-power-supported; + radio-tx-high-power-supported; ieee802154: ieee802154 { compatible = "nordic,nrf-ieee802154"; diff --git a/dts/arm/nordic/nrf52833.dtsi b/dts/arm/nordic/nrf52833.dtsi index 24addb6f3cf4e..a328193f1fe1d 100644 --- a/dts/arm/nordic/nrf52833.dtsi +++ b/dts/arm/nordic/nrf52833.dtsi @@ -119,7 +119,7 @@ ieee802154-supported; ble-2mbps-supported; ble-coded-phy-supported; - tx-high-power-supported; + radio-tx-high-power-supported; ieee802154: ieee802154 { compatible = "nordic,nrf-ieee802154"; diff --git a/dts/arm/nordic/nrf52840.dtsi b/dts/arm/nordic/nrf52840.dtsi index 77e70fa85f114..1ec04005a2f8d 100644 --- a/dts/arm/nordic/nrf52840.dtsi +++ b/dts/arm/nordic/nrf52840.dtsi @@ -107,7 +107,7 @@ ieee802154-supported; ble-2mbps-supported; ble-coded-phy-supported; - tx-high-power-supported; + radio-tx-high-power-supported; ieee802154: ieee802154 { compatible = "nordic,nrf-ieee802154"; diff --git a/dts/arm/silabs/xg21/efr32xg21.dtsi b/dts/arm/silabs/xg21/efr32xg21.dtsi index 7415fc008dd45..fc928cac9af31 100644 --- a/dts/arm/silabs/xg21/efr32xg21.dtsi +++ b/dts/arm/silabs/xg21/efr32xg21.dtsi @@ -19,6 +19,9 @@ pa-initial-power-dbm = <10>; pa-ramp-time-us = <10>; pa-voltage-mv = <3300>; + ble-2mbps-supported; + ble-coded-phy-supported; + radio-tx-high-power-supported; bt_hci_silabs: bt_hci_silabs { compatible = "silabs,bt-hci-efr32"; diff --git a/dts/arm/silabs/xg22/efr32xg22.dtsi b/dts/arm/silabs/xg22/efr32xg22.dtsi index 4babab9f08235..99417981627a1 100644 --- a/dts/arm/silabs/xg22/efr32xg22.dtsi +++ b/dts/arm/silabs/xg22/efr32xg22.dtsi @@ -20,6 +20,11 @@ pa-initial-power-dbm = <10>; pa-ramp-time-us = <2>; pa-voltage-mv = <3300>; + ble-2mbps-supported; + ble-coded-phy-supported; + ble-cte-tx-supported; + ble-cte-rx-supported; + radio-tx-high-power-supported; pti: pti { compatible = "silabs,pti"; diff --git a/dts/arm/silabs/xg24/efr32xg24.dtsi b/dts/arm/silabs/xg24/efr32xg24.dtsi index b1ddf2adbc33f..8c9a32edb39e1 100644 --- a/dts/arm/silabs/xg24/efr32xg24.dtsi +++ b/dts/arm/silabs/xg24/efr32xg24.dtsi @@ -20,6 +20,12 @@ pa-initial-power-dbm = <10>; pa-ramp-time-us = <10>; pa-voltage-mv = <3300>; + ble-2mbps-supported; + ble-coded-phy-supported; + ble-cte-tx-supported; + ble-cte-rx-supported; + ble-cs-supported; + radio-tx-high-power-supported; bt_hci_silabs: bt_hci_silabs { compatible = "silabs,bt-hci-efr32"; diff --git a/dts/arm/silabs/xg27/efr32xg27.dtsi b/dts/arm/silabs/xg27/efr32xg27.dtsi index 886d81322d20d..a06f5e1c4d0ca 100644 --- a/dts/arm/silabs/xg27/efr32xg27.dtsi +++ b/dts/arm/silabs/xg27/efr32xg27.dtsi @@ -20,6 +20,10 @@ pa-initial-power-dbm = <10>; pa-ramp-time-us = <2>; pa-voltage-mv = <3300>; + ble-2mbps-supported; + ble-coded-phy-supported; + ble-cte-tx-supported; + radio-tx-high-power-supported; bt_hci_silabs: bt_hci_silabs { compatible = "silabs,bt-hci-efr32"; diff --git a/dts/arm/silabs/xg29/efr32xg29.dtsi b/dts/arm/silabs/xg29/efr32xg29.dtsi index 016e5c5de0877..cec52dc2cf176 100644 --- a/dts/arm/silabs/xg29/efr32xg29.dtsi +++ b/dts/arm/silabs/xg29/efr32xg29.dtsi @@ -20,6 +20,10 @@ pa-initial-power-dbm = <10>; pa-ramp-time-us = <2>; pa-voltage-mv = <3300>; + ble-2mbps-supported; + ble-coded-phy-supported; + ble-cte-tx-supported; + radio-tx-high-power-supported; bt_hci_silabs: bt_hci_silabs { compatible = "silabs,bt-hci-efr32"; diff --git a/dts/bindings/bluetooth/ble-radio.yaml b/dts/bindings/bluetooth/ble-radio.yaml new file mode 100644 index 0000000000000..f2dcc0f63cbb6 --- /dev/null +++ b/dts/bindings/bluetooth/ble-radio.yaml @@ -0,0 +1,42 @@ +# Copyright (c) 2025 Nordic Semiconductor ASA +# Copyright (c) 2025 Silicon Laboratories Inc. +# SPDX-License-Identifier: Apache-2.0 + +description: | + Base binding for Bluetooth LE radio hardware capabilities. + + These properties describe hardware-supported Bluetooth features based on + the Bluetooth Core Specification. They are read-only and indicate what + the hardware is capable of, not what features are currently enabled. + +properties: + # Bluetooth 5.0 + ble-2mbps-supported: + type: boolean + description: | + 2 Mbps PHY support (Bluetooth 5.0 specification). + + ble-coded-phy-supported: + type: boolean + description: | + Coded PHY support for Long Range (Bluetooth 5.0 specification). + + # Bluetooth 5.1 + ble-cte-tx-supported: + type: boolean + description: | + Constant Tone Extension transmission for Direction Finding in Angle + of Departure mode (Bluetooth 5.1 specification). + + ble-cte-rx-supported: + type: boolean + description: | + Constant Tone Extension reception with IQ sampling for Direction Finding + in Angle of Arrival mode. Requires ble-cte-tx-supported capability + (Bluetooth 5.1 specification). + + # Bluetooth 6.0 + ble-cs-supported: + type: boolean + description: | + BLE Channel Sounding feature support (Bluetooth 6.0 specification). diff --git a/dts/bindings/net/wireless/nordic,nrf-radio.yaml b/dts/bindings/net/wireless/nordic,nrf-radio.yaml index 8c73d652662ec..6e643420ea740 100644 --- a/dts/bindings/net/wireless/nordic,nrf-radio.yaml +++ b/dts/bindings/net/wireless/nordic,nrf-radio.yaml @@ -31,7 +31,7 @@ description: | Currently supported "compatible" properties for the FEM node are: - - generic-fem-two-ctrl-pins + - radio-fem-two-ctrl-pins - nordic,nrf21540-fem Refer to the bindings for these compatibles for more information @@ -108,7 +108,7 @@ description: | compatible: "nordic,nrf-radio" -include: [base.yaml] +include: [base.yaml, ble-radio.yaml, radio.yaml] properties: reg: @@ -211,26 +211,3 @@ properties: description: | If set, indicates that the radio hardware supports the IEEE 802.15.4 mode. - - ble-2mbps-supported: - type: boolean - description: | - If set, indicates that the radio hardware supports the 2 Mbps BLE mode. - - ble-coded-phy-supported: - type: boolean - description: | - If set, indicates that the radio hardware supports coded BLE PHY. - - tx-high-power-supported: - type: boolean - description: | - If set, indicates that the radio hardware supports high TX power - settings. - - cs-supported: - type: boolean - description: | - If set, the radio hardware supports the BLE Channel Sounding feature. - This property should be treated as read-only and should not be overridden; - the correct value is provided for your target's SoC already. diff --git a/dts/bindings/net/wireless/generic-fem-two-ctrl-pins.yaml b/dts/bindings/net/wireless/radio-fem-two-ctrl-pins.yaml similarity index 97% rename from dts/bindings/net/wireless/generic-fem-two-ctrl-pins.yaml rename to dts/bindings/net/wireless/radio-fem-two-ctrl-pins.yaml index edf3a632caf13..d435040b48d05 100644 --- a/dts/bindings/net/wireless/generic-fem-two-ctrl-pins.yaml +++ b/dts/bindings/net/wireless/radio-fem-two-ctrl-pins.yaml @@ -17,7 +17,7 @@ description: | (Though if you do specify a pin, you must also specify its corresponding settle-time-us property.) -compatible: "generic-fem-two-ctrl-pins" +compatible: "radio-fem-two-ctrl-pins" include: base.yaml diff --git a/dts/bindings/net/wireless/gpio-radio-coex.yaml b/dts/bindings/net/wireless/radio-gpio-coex.yaml similarity index 97% rename from dts/bindings/net/wireless/gpio-radio-coex.yaml rename to dts/bindings/net/wireless/radio-gpio-coex.yaml index 1acb8e7f9a9f0..bf8553c26f069 100644 --- a/dts/bindings/net/wireless/gpio-radio-coex.yaml +++ b/dts/bindings/net/wireless/radio-gpio-coex.yaml @@ -13,7 +13,7 @@ description: | transceiver begins their transmission. This is specified by the grant-delay-us property. -compatible: "gpio-radio-coex" +compatible: "radio-gpio-coex" include: base.yaml diff --git a/dts/bindings/net/wireless/radio.yaml b/dts/bindings/net/wireless/radio.yaml new file mode 100644 index 0000000000000..99fa9d3c09971 --- /dev/null +++ b/dts/bindings/net/wireless/radio.yaml @@ -0,0 +1,23 @@ +# Copyright (c) 2025 Nordic Semiconductor ASA +# Copyright (c) 2025 Silicon Laboratories Inc. +# SPDX-License-Identifier: Apache-2.0 + +description: | + Base binding for generic radio hardware capabilities that are not specific + to any wireless protocol or vendor. + + These properties describe hardware-supported features that are common across + different vendors but are not part of any specific wireless protocol + specification. They are read-only and indicate what the hardware is capable + of, not what features are currently enabled. + +properties: + radio-tx-high-power-supported: + type: boolean + description: | + If set, indicates that the radio hardware supports high TX power settings. + This capability enables transmission beyond standard power levels + (typically >10 dBm). + + This property should be treated as read-only and should not be overridden; + the correct value is provided for your target's SoC already. diff --git a/dts/bindings/net/wireless/silabs,series2-radio.yaml b/dts/bindings/net/wireless/silabs,series2-radio.yaml index b44c911b15e67..85bb719a03e69 100644 --- a/dts/bindings/net/wireless/silabs,series2-radio.yaml +++ b/dts/bindings/net/wireless/silabs,series2-radio.yaml @@ -8,7 +8,7 @@ description: | compatible: "silabs,series2-radio" -include: [base.yaml] +include: [base.yaml, ble-radio.yaml, radio.yaml] properties: reg: diff --git a/dts/vendor/nordic/nrf54h20.dtsi b/dts/vendor/nordic/nrf54h20.dtsi index c4c3496545cb1..5f242fabcc4a5 100644 --- a/dts/vendor/nordic/nrf54h20.dtsi +++ b/dts/vendor/nordic/nrf54h20.dtsi @@ -136,6 +136,7 @@ min-residency-us = <700>; exit-latency-us = <5>; }; + idle_cache_disabled: idle_cache_disabled { compatible = "zephyr,power-state"; power-state-name = "suspend-to-idle"; @@ -487,7 +488,7 @@ status = "disabled"; ble-2mbps-supported; ble-coded-phy-supported; - cs-supported; + ble-cs-supported; dfe-supported; ieee802154-supported; interrupts = <44 NRF_DEFAULT_IRQ_PRIORITY>; diff --git a/dts/vendor/nordic/nrf54l_05_10_15.dtsi b/dts/vendor/nordic/nrf54l_05_10_15.dtsi index 1b488e433ed62..c66fae9bbc1cb 100644 --- a/dts/vendor/nordic/nrf54l_05_10_15.dtsi +++ b/dts/vendor/nordic/nrf54l_05_10_15.dtsi @@ -108,6 +108,7 @@ #size-cells = <1>; ranges = <0x0 0x40000000 0x10000000>; #else + global_peripherals: peripheral@50000000 { reg = <0x50000000 0x10000000>; #address-cells = <1>; @@ -247,7 +248,7 @@ ieee802154-supported; ble-2mbps-supported; ble-coded-phy-supported; - cs-supported; + ble-cs-supported; ieee802154: ieee802154 { compatible = "nordic,nrf-ieee802154"; diff --git a/dts/vendor/nordic/nrf54lm20a.dtsi b/dts/vendor/nordic/nrf54lm20a.dtsi index 7e511c8ff6c68..c2016daf12437 100644 --- a/dts/vendor/nordic/nrf54lm20a.dtsi +++ b/dts/vendor/nordic/nrf54lm20a.dtsi @@ -99,6 +99,7 @@ #ifdef USE_NON_SECURE_ADDRESS_MAP /* intentionally empty because UICR is hardware fixed to Secure */ #else + uicr: uicr@ffd000 { compatible = "nordic,nrf-uicr"; reg = <0xffd000 0x1000>; @@ -128,6 +129,7 @@ #size-cells = <1>; ranges = <0x0 0x40000000 0x10000000>; #else + global_peripherals: peripheral@50000000 { reg = <0x50000000 0x10000000>; ranges = <0x0 0x50000000 0x10000000>; @@ -280,7 +282,7 @@ ieee802154-supported; ble-2mbps-supported; ble-coded-phy-supported; - cs-supported; + ble-cs-supported; ieee802154: ieee802154 { compatible = "nordic,nrf-ieee802154"; @@ -763,6 +765,7 @@ #ifdef USE_NON_SECURE_ADDRESS_MAP /* intentionally empty because WDT30 is hardware fixed to Secure */ #else + wdt30: watchdog@108000 { compatible = "nordic,nrf-wdt"; reg = <0x108000 0x620>; diff --git a/samples/bluetooth/beacon/boards/nrf52840dk_nrf52840.overlay b/samples/bluetooth/beacon/boards/nrf52840dk_nrf52840.overlay index 3fdcfdb1228aa..5a3c06d2ebaf1 100644 --- a/samples/bluetooth/beacon/boards/nrf52840dk_nrf52840.overlay +++ b/samples/bluetooth/beacon/boards/nrf52840dk_nrf52840.overlay @@ -5,7 +5,7 @@ */ / { coex_gpio: coex { - compatible = "gpio-radio-coex"; + compatible = "radio-gpio-coex"; grant-gpios = <&gpio1 0 (GPIO_PULL_DOWN | GPIO_ACTIVE_LOW)>; grant-delay-us = <150>; }; diff --git a/soc/nordic/common/Kconfig.peripherals b/soc/nordic/common/Kconfig.peripherals index d7e489b446a5b..f2019ab91a0e5 100644 --- a/soc/nordic/common/Kconfig.peripherals +++ b/soc/nordic/common/Kconfig.peripherals @@ -206,7 +206,7 @@ config HAS_HW_NRF_RADIO_BLE_CODED def_bool $(dt_nodelabel_bool_prop,radio,ble-coded-phy-supported) config HAS_HW_NRF_RADIO_CS - def_bool $(dt_nodelabel_bool_prop,radio,cs-supported) + def_bool $(dt_nodelabel_bool_prop,radio,ble-cs-supported) config HAS_HW_NRF_RADIO_DFE def_bool $(dt_nodelabel_bool_prop,radio,dfe-supported) @@ -215,7 +215,7 @@ config HAS_HW_NRF_RADIO_IEEE802154 def_bool $(dt_nodelabel_bool_prop,radio,ieee802154-supported) config HAS_HW_NRF_RADIO_TX_PWR_HIGH - def_bool $(dt_nodelabel_bool_prop,radio,tx-high-power-supported) + def_bool $(dt_nodelabel_bool_prop,radio,radio-tx-high-power-supported) config HAS_HW_NRF_REGULATORS def_bool $(dt_compat_enabled,$(DT_COMPAT_NORDIC_NRF_REGULATORS)) diff --git a/soc/silabs/silabs_s2/Kconfig b/soc/silabs/silabs_s2/Kconfig index 4f03a01b339ae..bfd45e4210688 100644 --- a/soc/silabs/silabs_s2/Kconfig +++ b/soc/silabs/silabs_s2/Kconfig @@ -47,4 +47,27 @@ config SILABS_DEVICE_IS_MODULE bool default n +# Hardware capability flags (auto-detected from Device Tree) +# Bluetooth 5.0 +config HAS_HW_EFR32_RADIO_BLE_2M + def_bool $(dt_nodelabel_has_prop,radio,ble-2mbps-supported) + +config HAS_HW_EFR32_RADIO_BLE_CODED + def_bool $(dt_nodelabel_has_prop,radio,ble-coded-phy-supported) + +# Bluetooth 5.1 +config HAS_HW_EFR32_RADIO_CTE_TX + def_bool $(dt_nodelabel_has_prop,radio,ble-cte-tx-supported) + +config HAS_HW_EFR32_RADIO_CTE_RX + def_bool $(dt_nodelabel_has_prop,radio,ble-cte-rx-supported) && HAS_HW_EFR32_RADIO_CTE_TX + +# Bluetooth 6.0 +config HAS_HW_EFR32_RADIO_CS + def_bool $(dt_nodelabel_has_prop,radio,ble-cs-supported) + +# Vendor-specific +config HAS_HW_EFR32_RADIO_TX_HIGH_POWER + def_bool $(dt_nodelabel_has_prop,radio,radio-tx-high-power-supported) + endif diff --git a/subsys/bluetooth/controller/coex/Kconfig b/subsys/bluetooth/controller/coex/Kconfig index 456376164ad56..30f42918e4ebf 100644 --- a/subsys/bluetooth/controller/coex/Kconfig +++ b/subsys/bluetooth/controller/coex/Kconfig @@ -6,7 +6,7 @@ menuconfig BT_CTLR_COEX_DRIVERS bool "Bluetooth Co-existence Drivers" default y - depends on HAS_BT_CTLR && DT_HAS_GPIO_RADIO_COEX_ENABLED + depends on HAS_BT_CTLR && DT_HAS_RADIO_GPIO_COEX_ENABLED if BT_CTLR_COEX_DRIVERS diff --git a/subsys/bluetooth/controller/coex/coex_ticker.c b/subsys/bluetooth/controller/coex/coex_ticker.c index be349622ecd68..2d1bad935efa1 100644 --- a/subsys/bluetooth/controller/coex/coex_ticker.c +++ b/subsys/bluetooth/controller/coex/coex_ticker.c @@ -4,7 +4,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -#define DT_DRV_COMPAT gpio_radio_coex +#define DT_DRV_COMPAT radio_gpio_coex #include #include diff --git a/subsys/bluetooth/controller/coex/readme.rst b/subsys/bluetooth/controller/coex/readme.rst index 066b3e61af9f5..8bb53776011f2 100644 --- a/subsys/bluetooth/controller/coex/readme.rst +++ b/subsys/bluetooth/controller/coex/readme.rst @@ -14,7 +14,7 @@ Similarly, as in the nordic implementation of the 1-wire interface, the coexiste .. code-block:: DTS coex_gpio: coex { - compatible = "gpio-radio-coex"; + compatible = "radio-gpio-coex"; grant-gpios = <&gpio0 0 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>; grant-delay-us = <150>; }; diff --git a/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_nrf5_fem.h b/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_nrf5_fem.h index a80de9f85e548..3c03b891c3466 100644 --- a/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_nrf5_fem.h +++ b/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_nrf5_fem.h @@ -34,13 +34,13 @@ */ #ifdef HAL_RADIO_HAVE_FEM -#if FEM_HAS_COMPAT(generic_fem_two_ctrl_pins) +#if FEM_HAS_COMPAT(radio_fem_two_ctrl_pins) #include "radio_nrf5_fem_generic.h" #elif FEM_HAS_COMPAT(nordic_nrf21540_fem) #include "radio_nrf5_fem_nrf21540.h" #else #error "radio node fem property has an unsupported compatible" -#endif /* FEM_HAS_COMPAT(generic_fem_two_ctrl_pins) */ +#endif /* FEM_HAS_COMPAT(radio_fem_two_ctrl_pins) */ #endif /* HAL_RADIO_HAVE_FEM */ /* diff --git a/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_nrf5_fem_generic.h b/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_nrf5_fem_generic.h index f99a73991c99f..af5c9066e5c6d 100644 --- a/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_nrf5_fem_generic.h +++ b/subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio_nrf5_fem_generic.h @@ -7,7 +7,7 @@ /* * This file contains helper macros for dealing with the devicetree * radio node's fem property, in the case that it has compatible - * "generic-fem-two-ctrl-pins". + * "radio-fem-two-ctrl-pins". * * Do not include it directly. * diff --git a/tests/bluetooth/init/pa_lna.overlay b/tests/bluetooth/init/pa_lna.overlay index 5ff670b76e832..f0d087de407d5 100644 --- a/tests/bluetooth/init/pa_lna.overlay +++ b/tests/bluetooth/init/pa_lna.overlay @@ -1,6 +1,6 @@ / { nrf_radio_fem: fem { - compatible = "generic-fem-two-ctrl-pins"; + compatible = "radio-fem-two-ctrl-pins"; ctx-gpios = <&gpio0 26 0>; ctx-settle-time-us = <5>; crx-gpios = <&gpio0 27 0>;