Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion boards/ezurio/bl654_dvk/bl654_dvk_nrf52840_pa.dts
Original file line number Diff line number Diff line change
Expand Up @@ -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>;
Expand Down
4 changes: 3 additions & 1 deletion boards/panasonic/pan1783/pan1783a_pa_evb_nrf5340_cpunet.dts
Original file line number Diff line number Diff line change
Expand Up @@ -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>;
};
};

Expand Down
2 changes: 1 addition & 1 deletion boards/u-blox/ubx_bmd345eval/ubx_bmd345eval_nrf52840.dts
Original file line number Diff line number Diff line change
Expand Up @@ -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>;
Expand Down
14 changes: 14 additions & 0 deletions doc/releases/migration-guide-4.4.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
*********

Expand Down
5 changes: 5 additions & 0 deletions doc/releases/release-notes-4.4.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
***********

Expand Down
43 changes: 1 addition & 42 deletions drivers/bluetooth/hci/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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"
Expand Down
61 changes: 57 additions & 4 deletions drivers/bluetooth/hci/Kconfig.silabs
Original file line number Diff line number Diff line change
@@ -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

Expand Down Expand Up @@ -60,11 +113,11 @@ config BT_SILABS_EFR32_MAX_QUEUED_ADV_REPORTS
Additional advertising reports are dropped.

config BT_SILABS_EFR32_HIGH_POWER
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why do you need this when you have it in dts, and it has it's own kconfig below?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is a declaration. DT just selects it if hw supports it.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there is a symbol in Kconfig which is auto generated, you don't need a duplicate symbol

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you are referring to the HAS_HW_EFR32_RADIO_TX_HIGH_POWER, I deliberately followed the Nordic's implementation pattern to simplify the possible future unification.

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"
Expand Down
2 changes: 1 addition & 1 deletion dts/arm/nordic/nrf52820.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand Down
2 changes: 1 addition & 1 deletion dts/arm/nordic/nrf52833.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand Down
2 changes: 1 addition & 1 deletion dts/arm/nordic/nrf52840.dtsi
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* SPDX-License-Identifier: Apache-2.0 */

Check warning on line 1 in dts/arm/nordic/nrf52840.dtsi

View workflow job for this annotation

GitHub Actions / Run compliance checks on patch series (PR)

Copyright missing

dts/arm/nordic/nrf52840.dtsi:1 File has no SPDX-FileCopyrightText header, consider adding one.

#include <arm/armv7-m.dtsi>
#include <nordic/nrf_common.dtsi>
Expand Down Expand Up @@ -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";
Expand Down
3 changes: 3 additions & 0 deletions dts/arm/silabs/xg21/efr32xg21.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand Down
5 changes: 5 additions & 0 deletions dts/arm/silabs/xg22/efr32xg22.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand Down
6 changes: 6 additions & 0 deletions dts/arm/silabs/xg24/efr32xg24.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand Down
4 changes: 4 additions & 0 deletions dts/arm/silabs/xg27/efr32xg27.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand Down
4 changes: 4 additions & 0 deletions dts/arm/silabs/xg29/efr32xg29.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand Down
42 changes: 42 additions & 0 deletions dts/bindings/bluetooth/ble-radio.yaml
Original file line number Diff line number Diff line change
@@ -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).
27 changes: 2 additions & 25 deletions dts/bindings/net/wireless/nordic,nrf-radio.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -108,7 +108,7 @@ description: |

compatible: "nordic,nrf-radio"

include: [base.yaml]
include: [base.yaml, ble-radio.yaml, radio.yaml]

properties:
reg:
Expand Down Expand Up @@ -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.
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
Loading
Loading