-
We designed a nRF54L15 custom board with a nRF21540 FEM and nRF7001 Module which are on the same SPI with separate CS pins our device tree is configured for this as follows:
wifi_coex: nrf7001_coex {compatible = "nordic,nrf7001-coex";status = "okay";req-gpios = <&gpio2 0 GPIO_ACTIVE_HIGH>;status0-gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>;grant-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;swctrl1-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;};
nrf_radio_fem: nrf21540_fem {compatible = "nordic,nrf21540-fem";status = "okay";tx-en-gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;rx-en-gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;pdn-gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;mode-gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;spi-if = <&nrf21540_spi>;supply-voltage-mv = <3300>;};&spi21 {status = "okay";cs-gpios = <&gpio1 13 GPIO_ACTIVE_LOW>,<&gpio2 10 GPIO_ACTIVE_LOW>;pinctrl-0 = <&spi21_default>;pinctrl-1 = <&spi21_sleep>;pinctrl-names = "default", "sleep";
nrf21540_spi: nrf21540-spi@0 {compatible = "nordic,nrf21540-fem-spi";status = "okay";reg = <0>;spi-max-frequency = <8000000>;};
nrf70: wifi@1 {status = "okay";compatible = "nordic,nrf7001-spi";reg = <1>;spi-max-frequency = <8000000>;iovdd-ctrl-gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;bucken-gpios = <&gpio0 0 GPIO_ACTIVE_HIGH>;host-irq-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;iovdd-power-up-delay-ms = <1>;
/** TODO: replace with your certified/custom-board TX power ceilings.* These are placeholder values commonly used in public nRF70 examples.*/wifi-max-tx-pwr-2g-dsss = <21>;wifi-max-tx-pwr-2g-mcs0 = <16>;wifi-max-tx-pwr-2g-mcs7 = <16>;
nrf70_wlan: nrf70_wlan {compatible = "nordic,wlan";status = "okay";};};This configuration compiles however when I switched the SPI reg and CS pins as shown below I got GPIOTE error also show below.
Do both the CS pins also need to be on GPIO port 1 with RADIO DFE functionality?
Or is there a reason that the nRF21540 has to be the first SPI Index or not on a shared SPI?
Why does swapping the index on the SPI bus affect this?
NOT working configuration (Other Configurations unchanged):
&spi21 {status = "okay";cs-gpios = <&gpio2 10 GPIO_ACTIVE_LOW>,<&gpio1 13 GPIO_ACTIVE_LOW>;pinctrl-0 = <&spi21_default>;pinctrl-1 = <&spi21_sleep>;pinctrl-names = "default", "sleep";
nrf70: wifi@1 {status = "okay";compatible = "nordic,nrf7001-spi";reg = <0>;spi-max-frequency = <8000000>;iovdd-ctrl-gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;bucken-gpios = <&gpio0 0 GPIO_ACTIVE_HIGH>;host-irq-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;iovdd-power-up-delay-ms = <1>;
/** TODO: replace with your certified/custom-board TX power ceilings.* These are placeholder values commonly used in public nRF70 examples.*/wifi-max-tx-pwr-2g-dsss = <21>;wifi-max-tx-pwr-2g-mcs0 = <16>;wifi-max-tx-pwr-2g-mcs7 = <16>;
nrf70_wlan: nrf70_wlan {compatible = "nordic,wlan";status = "okay";};};
nrf21540_spi: nrf21540-spi@0 {compatible = "nordic,nrf21540-fem-spi";status = "okay";reg = <1>;spi-max-frequency = <8000000>;};
};Error resulting from this configuration:C:/ncs/v3.2.4/nrf/subsys/mpsl/fem/nrf21540_gpio_spi/mpsl_fem_nrf21540_gpio_spi.c: In function 'fem_nrf21540_spi_configure':
c:\ncs\v3.2.4\zephyr\soc\nordic\common\gpiote_nrfx.h:11:45: error: 'g_nrfx_gpioteDT_N_S_soc_S_peripheral_50000000_S_gpio_50400_P_gpiote_instance_IDX_0_PH_REG_IDX_0_VAL_ADDRESSU' undeclared (first use in this function)
11 | #define GPIOTE_NRFX_INST_BY_REG_CONCAT(reg) g_nrfx_gpiote##regNote:
We are using SDK and toolchain 3.2.4
-