zephyr/tests/bluetooth/init/pa_lna.overlay

14 lines
229 B
Plaintext
Raw Normal View History

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-09 02:17:27 +08:00
/ {
nrf_radio_fem: fem {
compatible = "generic-fem-two-ctrl-pins";
ctx-gpios = <&gpio0 26 0>;
ctx-settle-time-us = <5>;
crx-gpios = <&gpio0 27 0>;
crx-settle-time-us = <5>;
};
};
&radio {
fem = <&nrf_radio_fem>;
};