zephyr/tests/bluetooth/init
Martí Bolívar 7ff74e0ab9 Bluetooth: controller: support FEMs via devicetree
A FEM in this case is an external Front-End Module. This is basically
a range booster with some extra amplification in the TX and RX paths.

This feature is supported for the Nordic open source controller. See
the changes to the ubx_bmd345eval_nrf52840 board for a quick summary
of what you have to do to take advantage of this.

(This patch doesn't actually remove the feature in the openisa HAL,
though, because that never implemented the required GPIO handling
routines.)

We are using the 'fem' property previously added to the
nordic,nrf-radio's devicetree binding, which points to the FEM that is
in use. If you have this property and the node it points to is
enabled, the controller subsystem respects it. Otherwise, FEM support
is disabled.

This obsoletes the following Kconfig options, which are now unused:

- CONFIG_BT_CTLR_GPIO_PA
- CONFIG_BT_CTLR_GPIO_PA_PIN
- CONFIG_BT_CTLR_GPIO_PA_POL_INV
- CONFIG_BT_CTLR_GPIO_PA_OFFSET

- CONFIG_BT_CTLR_GPIO_LNA
- CONFIG_BT_CTLR_GPIO_LNA_PIN
- CONFIG_BT_CTLR_GPIO_LNA_POL_INV
- CONFIG_BT_CTLR_GPIO_LNA_OFFSET

- CONFIG_BT_CTLR_FEM_NRF21540
- CONFIG_BT_CTLR_GPIO_PDN_PIN
- CONFIG_BT_CTLR_GPIO_PDN_POL_INV
- CONFIG_BT_CTLR_GPIO_CSN_PIN
- CONFIG_BT_CTLR_GPIO_CSN_POL_INV
- CONFIG_BT_CTLR_GPIO_PDN_CSN_OFFSET

The PA and LNA pins are now specified via fem-specific devicetree
properties in the FEM node:

- The "generic" PA/LNA case is handled with the ctx-gpios and
  crx-gpios properties of the generic-fem-two-ctrl-pins compatible,
  respectively.

- If the fem is an nRF21540, use the tx-en-gpios and rx-en-gpios
  properties instead (and also respectively). This allows us to specify
  FEM properties in a way that makes sense for the hardware datasheet,
  while still handling them in a uniform way within the controller.

We support this in the nRF5 HAL with a new radio_nrf5_fem.h
sub-header, which pulls in radio_nrf5_fem_generic.h or
radio_nrf5_fem_nrf21540.h depending on the fem node's compatible, if
one is defined. These in turn let us replace the implementation
routines in radio.c with DT equivalents.

Keep in-tree users and devicetree binding documentation up to date.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2021-11-11 21:52:24 +01:00
..
src
CMakeLists.txt cmake: increase minimal required version to 3.20.0 2021-08-20 09:47:34 +02:00
pa_lna.overlay Bluetooth: controller: support FEMs via devicetree 2021-11-11 21:52:24 +01:00
prj_0.conf
prj_1.conf
prj_2.conf
prj_3.conf
prj_4.conf
prj_5.conf
prj_6.conf
prj_7.conf
prj_8.conf
prj_9.conf
prj_10.conf
prj_11.conf
prj_12.conf
prj_13.conf
prj_14.conf
prj_15.conf
prj_16.conf
prj_17.conf
prj_18.conf
prj_19.conf
prj_20.conf Bluetooth: Add option to log btsnoops over RTT 2021-05-05 16:03:38 +02:00
prj_21.conf Bluetooth: Add option to log btsnoops over RTT 2021-05-05 16:03:38 +02:00
prj_22.conf
prj_ctlr_4_0_dbg.conf Bluetooth: controller: support FEMs via devicetree 2021-11-11 21:52:24 +01:00
prj_ctlr_4_0.conf Bluetooth: controller: support FEMs via devicetree 2021-11-11 21:52:24 +01:00
prj_ctlr_broadcaster_ext.conf tests: Bluetooth: init: test state/role combinations 2020-10-06 13:47:18 +02:00
prj_ctlr_broadcaster_iso.conf Bluetooth: controller: Implements ULL handling for BIG create command 2020-12-04 17:09:33 +01:00
prj_ctlr_broadcaster.conf tests: Bluetooth: init: test state/role combinations 2020-10-06 13:47:18 +02:00
prj_ctlr_central_ext_priv.conf Bluetooth: tests: Add privacy configuration to init test 2021-03-17 18:58:49 +02:00
prj_ctlr_central_ext.conf tests: Bluetooth: init: test state/role combinations 2020-10-06 13:47:18 +02:00
prj_ctlr_central_iso.conf Bluetooth: tests: Add missing dependency for CONFIG_BT_AUDIO_UNICAST 2021-02-06 16:20:34 -05:00
prj_ctlr_central_priv.conf Bluetooth: tests: Add privacy configuration to init test 2021-03-17 18:58:49 +02:00
prj_ctlr_central.conf tests: Bluetooth: init: test state/role combinations 2020-10-06 13:47:18 +02:00
prj_ctlr_dbg.conf Bluetooth: controller: support FEMs via devicetree 2021-11-11 21:52:24 +01:00
prj_ctlr_observer_ext.conf tests: Bluetooth: init: test state/role combinations 2020-10-06 13:47:18 +02:00
prj_ctlr_observer.conf tests: Bluetooth: init: test state/role combinations 2020-10-06 13:47:18 +02:00
prj_ctlr_per_adv.conf tests: Bluetooth: init: Periodic Advertising build combinations 2020-10-09 11:41:34 +02:00
prj_ctlr_per_sync.conf tests: Bluetooth: init: Periodic Advertising build combinations 2020-10-09 11:41:34 +02:00
prj_ctlr_peripheral_ext_priv.conf Bluetooth: tests: Add privacy configuration to init test 2021-03-17 18:58:49 +02:00
prj_ctlr_peripheral_ext.conf tests: Bluetooth: init: test state/role combinations 2020-10-06 13:47:18 +02:00
prj_ctlr_peripheral_iso.conf Bluetooth: tests: Add missing dependency for CONFIG_BT_AUDIO_UNICAST 2021-02-06 16:20:34 -05:00
prj_ctlr_peripheral_priv.conf Bluetooth: tests: Add privacy configuration to init test 2021-03-17 18:58:49 +02:00
prj_ctlr_peripheral.conf tests: Bluetooth: init: test state/role combinations 2020-10-06 13:47:18 +02:00
prj_ctlr_sync_iso.conf Bluetooth: controller: Implements BIG sync commands in the ULL 2020-12-20 13:36:50 +01:00
prj_ctlr_tiny.conf Bluetooth: controller: support FEMs via devicetree 2021-11-11 21:52:24 +01:00
prj_ctlr.conf tests: Bluetooth: init: Remove ll_sw_split filename postfix 2020-10-06 13:47:18 +02:00
prj_h5_dbg.conf
prj_h5.conf
prj.conf
testcase.yaml Bluetooth: controller: support FEMs via devicetree 2021-11-11 21:52:24 +01:00