Skip to content

Commit 1b6806a

Browse files
committed
[nrf fromlist] boards: shields: Add nRF7002 EB-II shield
This is primarily intended for providing Wi-Fi capabilities for the nRF54L Series hosts using SPI. Upstream PR #: 100121 Signed-off-by: Chaitanya Tata <[email protected]>
1 parent 71ebd2b commit 1b6806a

12 files changed

+387
-0
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Copyright (c) 2025 Nordic Semiconductor ASA
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
config SHIELD_NRF7002EB2
5+
def_bool $(shields_list_contains,nrf7002eb2)
6+
7+
config SHIELD_NRF7002EB2_NRF7001
8+
def_bool $(shields_list_contains,nrf7002eb2_nrf7001)
9+
10+
config SHIELD_NRF7002EB2_NRF7000
11+
def_bool $(shields_list_contains,nrf7002eb2_nrf7000)
12+
13+
config SHIELD_NRF7002EB2_COEX
14+
def_bool $(shields_list_contains,nrf7002eb2_coex)
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
/*
2+
* Copyright (c) 2025 Nordic Semiconductor
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
#include "../nrf7002eb2_gpio_pins_1.dtsi"
8+
9+
/ {
10+
chosen {
11+
zephyr,wifi = &wlan0;
12+
zephyr,console = &uart30;
13+
zephyr,shell-uart = &uart30;
14+
zephyr,uart-mcumgr = &uart30;
15+
zephyr,bt-mon-uart = &uart30;
16+
zephyr,bt-c2h-uart = &uart30;
17+
};
18+
};
19+
20+
&pinctrl {
21+
spi22_default: spi22_default {
22+
group1 {
23+
psels = <NRF_PSEL(SPIM_SCK, 1, 11)>,
24+
<NRF_PSEL(SPIM_MISO, 1, 7)>,
25+
<NRF_PSEL(SPIM_MOSI, 1, 6)>;
26+
bias-pull-down;
27+
};
28+
};
29+
30+
spi22_sleep: spi22_sleep {
31+
group1 {
32+
psels = <NRF_PSEL(SPIM_SCK, 1, 11)>,
33+
<NRF_PSEL(SPIM_MISO, 1, 7)>,
34+
<NRF_PSEL(SPIM_MOSI, 1, 6)>;
35+
bias-pull-down;
36+
low-power-enable;
37+
};
38+
};
39+
};
40+
41+
&spi22 {
42+
cs-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
43+
pinctrl-0 = <&spi22_default>;
44+
pinctrl-1 = <&spi22_sleep>;
45+
pinctrl-names = "default", "sleep";
46+
};
47+
48+
&uart20 {
49+
status = "disabled";
50+
};
51+
52+
&uart30 {
53+
status = "okay";
54+
};
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
/*
2+
* Copyright (c) 2025 Nordic Semiconductor
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
#include "../nrf7002eb2_gpio_pins_2.dtsi"
8+
9+
/ {
10+
chosen {
11+
zephyr,wifi = &wlan0;
12+
zephyr,console = &uart30;
13+
zephyr,shell-uart = &uart30;
14+
zephyr,uart-mcumgr = &uart30;
15+
zephyr,bt-mon-uart = &uart30;
16+
zephyr,bt-c2h-uart = &uart30;
17+
};
18+
19+
buttons {
20+
/delete-node/ button_3;
21+
};
22+
23+
aliases {
24+
/delete-property/ sw3;
25+
};
26+
};
27+
28+
&gpio3 {
29+
status = "okay";
30+
};
31+
32+
&pinctrl {
33+
spi22_default: spi22_default {
34+
group1 {
35+
psels = <NRF_PSEL(SPIM_SCK, 3, 3)>,
36+
<NRF_PSEL(SPIM_MISO, 3, 1)>,
37+
<NRF_PSEL(SPIM_MOSI, 3, 0)>;
38+
bias-pull-down;
39+
};
40+
};
41+
42+
spi22_sleep: spi22_sleep {
43+
group1 {
44+
psels = <NRF_PSEL(SPIM_SCK, 3, 3)>,
45+
<NRF_PSEL(SPIM_MISO, 3, 1)>,
46+
<NRF_PSEL(SPIM_MOSI, 3, 0)>;
47+
bias-pull-down;
48+
low-power-enable;
49+
};
50+
};
51+
52+
uart30_default: uart30_default {
53+
group1 {
54+
psels = <NRF_PSEL(UART_TX, 0, 6)>;
55+
};
56+
57+
group2 {
58+
psels = <NRF_PSEL(UART_RX, 0, 7)>;
59+
bias-pull-up;
60+
};
61+
};
62+
63+
uart30_sleep: uart30_sleep {
64+
group1 {
65+
psels = <NRF_PSEL(UART_TX, 0, 6)>,
66+
<NRF_PSEL(UART_RX, 0, 7)>;
67+
low-power-enable;
68+
};
69+
};
70+
};
71+
72+
&spi22 {
73+
status = "okay";
74+
cs-gpios = <&gpio3 2 GPIO_ACTIVE_LOW>;
75+
pinctrl-0 = <&spi22_default>;
76+
pinctrl-1 = <&spi22_sleep>;
77+
pinctrl-names = "default", "sleep";
78+
};
79+
80+
/* uart20 has pin conflicts with EB-II shield hence disabling that
81+
* and enabling uart30 as console port.
82+
*/
83+
&uart20 {
84+
status = "disabled";
85+
};
86+
87+
&uart30 {
88+
status = "okay";
89+
};
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
.. _nrf7002eb2:
2+
3+
nRF7002 EB II
4+
#############
5+
6+
Overview
7+
********
8+
9+
The nRF7002 EB II is a versatile evaluation kit in the form of a thumbstick shield which connects to
10+
compatible Nordic host boards using the Nordic edge-connector.
11+
12+
The nRF7002 EB II unlocks low-power Wi-Fi 6 capabilities for your host device. It supports dual-band Wi-Fi
13+
2.4GHz and 5GHz, and is based on the nRF7002 SoC. The shield also supports nRF7001 and nRF7000 SoCs
14+
through variant overlays.
15+
Seamlessly connect to Wi-Fi networks and leverage Wi-Fi-based locationing, enabling advanced
16+
features such as SSID sniffing of local Wi-Fi hubs.
17+
18+
.. figure:: nrf7002eb2.jpg
19+
:alt: nRF7002 EB II
20+
:align: center
21+
22+
nRF7002 EB II
23+
24+
Requirements
25+
************
26+
27+
The nRF7002 EB II board is designed to fit straight into a Nordic edge-connector and uses SPI as the
28+
communication interface. Any host board that supports the Nordic edge-connector can be used with
29+
the nRF7002 EB II.
30+
31+
Prerequisites
32+
-------------
33+
34+
The nRF70 driver requires firmware binary blobs for Wi-Fi operation. Run the command
35+
below to retrieve those files.
36+
37+
.. code-block:: console
38+
39+
west update
40+
west blobs fetch nrf_wifi
41+
42+
Usage
43+
*****
44+
45+
The shield can be used in any application by setting ``--shield nrf7002eb2`` when invoking ``west build``.
46+
47+
Shield Variants
48+
***************
49+
50+
The nRF7002 EB II has several variants to support different nRF70 SoCs and features:
51+
52+
- ``nrf7002eb2``: The default variant using the nRF7002 SoC.
53+
- ``nrf7002eb2_nrf7001``: Variant using the nRF7001 SoC.
54+
- ``nrf7002eb2_nrf7000``: Variant using the nRF7000 SoC.
55+
- ``nrf7002eb2_coex``: Variant which includes the COEX pins. These pins are not routed to the
56+
edge-connector on some boards, like earlier revisions of the Thingy53 than v1.0.0.
57+
58+
SR Co-existence
59+
***************
60+
61+
The nRF7002 EB II supports SR co-existence provided the host board supports it. The SR co-existence
62+
pins are connected to the host board's GPIO pins.
63+
64+
Two Kconfig options are available to enable SR co-existence:
65+
66+
- :kconfig:option:`CONFIG_NRF70_SR_COEX`: Enables SR co-existence.
67+
- :kconfig:option:`CONFIG_NRF70_SR_COEX_RF_SWITCH`: Control SR side RF switch.
68+
69+
References
70+
**********
71+
72+
- `Developing with nRF7002 EB II <https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/app_dev/device_guides/nrf70/nrf7002eb2_dev_guide.html>`_
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
/*
2+
* Copyright (c) 2025 Nordic Semiconductor
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
/ {
8+
chosen {
9+
zephyr,wifi = &wlan0;
10+
};
11+
};
12+
13+
&wifi_spi {
14+
status = "okay";
15+
16+
nrf70: nrf7002-spi@0 {
17+
compatible = "nordic,nrf7002-spi";
18+
status = "okay";
19+
20+
/* Include common nRF70 overlays */
21+
#include "nrf7002eb2_common.dtsi"
22+
#include "nrf7002eb2_common_5g.dtsi"
23+
};
24+
};
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
/*
2+
* Copyright (c) 2025 Nordic Semiconductor
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
/ {
8+
nrf_radio_coex: coex {
9+
compatible = "nordic,nrf7002-coex";
10+
status = "okay";
11+
status0-gpios = <&gpio0 3 GPIO_ACTIVE_HIGH>;
12+
req-gpios = <&gpio0 4 GPIO_ACTIVE_HIGH>;
13+
grant-gpios = <&gpio1 7 (GPIO_PULL_DOWN | GPIO_ACTIVE_LOW)>;
14+
};
15+
};
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/*
2+
* Copyright (c) 2025 Nordic Semiconductor
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
#include <freq.h>
7+
8+
/* Common assignments for nRF70 EB-II shield */
9+
reg = <0>;
10+
spi-max-frequency = <DT_FREQ_M(8)>;
11+
12+
/* Maximum TX power limits for 2.4 GHz */
13+
wifi-max-tx-pwr-2g-dsss = <21>;
14+
wifi-max-tx-pwr-2g-mcs0 = <16>;
15+
wifi-max-tx-pwr-2g-mcs7 = <16>;
16+
17+
/* List of interfaces */
18+
wlan0: wlan0 {
19+
compatible = "nordic,wlan";
20+
};
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/*
2+
* Copyright (c) 2025 Nordic Semiconductor
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
wifi-max-tx-pwr-5g-low-mcs0 = <13>;
8+
wifi-max-tx-pwr-5g-low-mcs7 = <13>;
9+
wifi-max-tx-pwr-5g-mid-mcs0 = <13>;
10+
wifi-max-tx-pwr-5g-mid-mcs7 = <13>;
11+
wifi-max-tx-pwr-5g-high-mcs0 = <12>;
12+
wifi-max-tx-pwr-5g-high-mcs7 = <12>;
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/*
2+
* Copyright (c) 2025 Nordic Semiconductor
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
/ {
8+
nrf_radio_coex: coex {
9+
compatible = "nordic,nrf7002-coex";
10+
status = "disabled";
11+
status0-gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
12+
req-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
13+
grant-gpios = <&gpio1 12 (GPIO_PULL_DOWN | GPIO_ACTIVE_LOW)>;
14+
};
15+
};
16+
17+
&nrf70 {
18+
iovdd-ctrl-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
19+
bucken-gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
20+
host-irq-gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
21+
};
22+
23+
&gpio1 {
24+
status = "okay";
25+
};
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
/*
2+
* Copyright (c) 2025 Nordic Semiconductor
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
&nrf70 {
8+
iovdd-ctrl-gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
9+
bucken-gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
10+
host-irq-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
11+
};
12+
13+
&gpio1 {
14+
status = "okay";
15+
};

0 commit comments

Comments
 (0)