| # Copyright (c) 2020, 2021 Nordic Semiconductor ASA |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| |
| description: | |
| This is a representation of the nRF21540 Radio Front-End module. |
| |
| See the "nordic,nrf21540-fem-spi" binding to configure the SPI |
| interface. The SPI interface should be configured as a child node |
| of the SPI bus you have connected to the FEM. Then you "connect" |
| the FEM and SPI configurations using the spi-if property. |
| |
| Here is an example nRF21540 configuration with a SPI interface |
| selected, using the SPIM0 peripheral found on several nRF5 SoCs: |
| |
| &spi0 { |
| compatible = "nordic,nrf-spim"; |
| status = "okay"; |
| cs-gpios = <&gpio1 3 GPIO_ACTIVE_LOW>; |
| /* ... MISO/MOSI/SCK pin configuration goes here ... */ |
| |
| my_spi_if: nrf21540-spi@0 { |
| compatible = "nordic,nrf21540-fem-spi"; |
| reg = <0>; |
| spi-max-frequency = <8000000>; |
| }; |
| }; |
| |
| nrf_radio_fem: nrf21540 { |
| compatible = "nordic,nrf21540-fem"; |
| tx-en-gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>; |
| rx-en-gpios = <&gpio0 5 GPIO_ACTIVE_HIGH>; |
| spi-if = <&my_spi_if>; |
| pdn-gpios = <...>; |
| ant-sel-gpios = <...>; |
| mode-gpios = <...>; |
| /* ... other nRF21540 properties go here ... */ |
| }; |
| |
| &radio { |
| fem = <&nrf_radio_fem>; |
| }; |
| |
| In the above example, the nRF21540 is configured for use with: |
| |
| - TX_EN on P0.2 (from 'tx-en-gpios') |
| - RX_EN on P0.5 (from 'rx-en-gpios') |
| - SPI communication via SPIM0 (the bus, or parent node, of |
| the 'my_spi_if' node |
| - CSN on P1.3 (from index 0 in the bus node's 'cs-gpios' property) |
| |
| You must perform any additional required SPI pin configuration |
| (nRF21540 MISO, MOSI, and SCK pins) within the SPI bus node |
| ('spi0' in the above example). See your SPI node's binding for |
| details on these pin mux properties. You can use any SPI node |
| available in your SoC's devicetree. |
| |
| Configure any other nRF21540 pins as needed using 'pdn-gpios', |
| 'ant-sel-gpios', and 'mode-gpios' properties. If unsure about the |
| format, use 'tx-en-gpios' as an example. |
| |
| Finally, the nRF5 SoC's radio peripheral is set up for use with |
| the nRF21540 via the 'fem' property in the 'radio' node. |
| |
| compatible: "nordic,nrf21540-fem" |
| |
| include: base.yaml |
| |
| properties: |
| tx-en-gpios: |
| type: phandle-array |
| description: | |
| GPIO of the SOC controlling TX_EN pin of the nRF21540 |
| rx-en-gpios: |
| type: phandle-array |
| description: | |
| GPIO of the SOC controlling RX_EN pin of the nRF21540 |
| pdn-gpios: |
| type: phandle-array |
| description: | |
| GPIO of the SOC controlling PDN pin of the nRF21540 |
| ant-sel-gpios: |
| type: phandle-array |
| description: | |
| GPIO of the SOC controlling ANT-SEL pin of the nRF21540 |
| mode-gpios: |
| type: phandle-array |
| description: | |
| GPIO of the SOC controlling MODE pin of the nRF21540 |
| spi-if: |
| type: phandle |
| description: | |
| Reference to the nordic,nrf21540-fem-spi SPI bus interface. |
| |
| This must be present to support SPI control of the FEM. |
| tx-en-settle-time-us: |
| type: int |
| default: 11 |
| description: | |
| Settling time in microseconds from state PG to TX. |
| |
| Default value is based on Table 6 of the nRF21540 Product |
| Specification (v1.0), and can be overridden for tuned |
| configurations. |
| rx-en-settle-time-us: |
| type: int |
| default: 11 |
| description: | |
| Settling time in microseconds from state PG to RX. |
| |
| Default value is based on Table 6 of the nRF21540 Product |
| Specification (v1.0), and can be overridden for tuned |
| configurations. |
| pdn-settle-time-us: |
| type: int |
| default: 18 |
| description: | |
| Settling time in microseconds from state PD to PG. |
| |
| Default value is based on Table 6 of the nRF21540 Product |
| Specification (v1.0), and can be overridden for tuned |
| configurations. |
| trx-hold-time-us: |
| type: int |
| default: 3 |
| description: | |
| Power-off time in microseconds when changing from RX or TX to PG. |
| |
| Default value is based on Table 6 of the nRF21540 Product |
| Specification (v1.0), and can be overridden for tuned |
| configurations. |
| supply-voltage-mv: |
| type: int |
| description: | |
| nRF21540 supply voltage in mV. |
| |
| This is used if compensation for nRF21540 supply voltage is supported |
| by software. |