boards: shields: Add nRF70 series EKs (Evaluation kits)

These shields in the Arduino form factor can be mounted on supported
boards and can provide Wi-Fi6 capability.

Base shield is nRF7002, with variants as nRF7001 (2.4GHz only) and
nRF7000 (dual band scan only).

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
This commit is contained in:
Chaitanya Tata 2024-06-13 01:06:44 +05:30 committed by Carles Cufí
commit 051c63f6a9
14 changed files with 291 additions and 0 deletions

View file

@ -0,0 +1,11 @@
# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
config SHIELD_NRF7002EK
def_bool $(shields_list_contains,nrf7002ek)
config SHIELD_NRF7002EK_NRF7001
def_bool $(shields_list_contains,nrf7002ek_nrf7001)
config SHIELD_NRF7002EK_NRF7000
def_bool $(shields_list_contains,nrf7002ek_nrf7000)

View file

@ -0,0 +1,15 @@
/* Copyright (c) 2024 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/
/* This node by default forwards the UART1 pins to CPUNET, but as UART1 uses
* same pins as bucken and iovdd-ctrl, we need these pins to be controlled by
* the CPUAPP. Since a child node of gpio_fwd cannot be disabled, hence
* the entire node is disabled. If the application needs to forward other pins
* to the CPUNET, it should create a separate instance of nrf-gpio-forwarder
* and use it instead.
*/
&gpio_fwd {
status = "disabled";
};

View file

@ -0,0 +1,6 @@
/* Copyright (c) 2024 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <nrf9151dk_leds_on_io_expander.dtsi>

View file

@ -0,0 +1,6 @@
/* Copyright (c) 2024 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <nrf9151dk_leds_on_io_expander.dtsi>

View file

@ -0,0 +1,40 @@
/*
* Copyright (c) 2024 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/
/* Disabled because of conflicts on P0.00 and P0.01 - Arduino pins D0 and D1
* (iovdd-ctrl-gpios and bucken-gpios in nrf7002ek, respectively).
*/
&uart1 {
status = "disabled";
};
/* Typically we use GPIO extender to resolve these conflicts but the
* GPIO pin used by extender itself conflicts with Wi-Fi (0.6), so,
* disable LEDs and Button0/1.
*/
&led0 {
status = "disabled";
};
&led1 {
status = "disabled";
};
&led2 {
status = "disabled";
};
&led3 {
status = "disabled";
};
&button0 {
status = "disabled";
};
&button1 {
status = "disabled";
};

View file

@ -0,0 +1,6 @@
/* Copyright (c) 2024 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <nrf9161dk_leds_on_io_expander.dtsi>

View file

@ -0,0 +1,6 @@
/* Copyright (c) 2024 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <nrf9161dk_leds_on_io_expander.dtsi>

View file

@ -0,0 +1,74 @@
.. _nrf7002ek:
nRF7002 EK
##########
Overview
********
The nRF7002 EK is a versatile evaluation kit in the form of an Arduino shield that can be used in
Nordic and non-Nordic host boards.
The nRF7002 EK unlocks low-power Wi-Fi 6 capabilities for your host device. It support dual-band Wi-Fi
2.4GHz and 5GHz, and is based on the nRF7002 SoC.
Seamlessly connect to Wi-Fi networks and leverage Wi-Fi-based locationing, enabling advanced
features such as SSID sniffing of local Wi-Fi hubs
.. figure:: nrf7002ek.png
:alt: nRF7002 EK
:align: center
nRF7002 EK
Requirements
************
The nRF7002 EK board is designed to fit straight into an Arduino connector and uses SPI as the
communication interface. Any host board that supports the Arduino connector can be used with
the nRF7002 EK.
Prerequisites
-------------
the nRF70 driver requires firmware binary blobs for Wi-Fi operation. Run the command
below to retrieve those files.
.. code-block:: console
west update
west blobs fetch hal_nordic
Usage
*****
The shield can be used in any application by setting ``--shield nrf7002ek`` when invoking ``west build``.
SR Co-existence
###############
The nRF7002 EK supports SR co-existence provided the host board supports it. The SR co-existence
pins are connected to the host board's GPIO pins.
Two Kconfig options are available to enable SR co-existence:
- :kconfig:option:`CONFIG_NRF70_SR_COEX`: Enables SR co-existence.
- :kconfig:option:`CONFIG_NRF70_SR_COEX_RF_SWITCH`: Control SR side RF switch.
Shield Variants
###############
The nRF7002 EK is available in three variants:
- ``nrf7002ek``: The default variant.
- ``nrf7002ek_nrf7001``: Variant for the nRF7001 SoC or nRF7002 SoC emulating nRF7001
that supports only 2.4GHz Wi-Fi.
- ``nrf7002ek_nrf7000``: Variant for the nRF7000 SoC or nRF7002 SoC emulating nRF7000
that supports only 2.4GHz Wi-Fi.
References
**********
- `nRF7002 EK product page <https://www.nordicsemi.com/Products/Development-hardware/nRF7002-EK>`_
- `nRF7002 product specification <https://infocenter.nordicsemi.com/index.jsp?topic=%2Fstruct_nrf70%2Fstruct%2Fnrf7002.html&cp=3_0>`_
- `nRF7002 EK Co-existence <https://infocenter.nordicsemi.com/index.jsp?topic=%2Fps_nrf7002%2Fchapters%2Ffunctional%2Fdoc%2Fcoexistence.html&cp=3_0_0_7>`_

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

View file

@ -0,0 +1,27 @@
/*
* Copyright (c) 2024 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <freq.h>
/ {
chosen {
zephyr,wifi = &wlan0;
};
};
&arduino_spi {
status = "okay";
nrf70: nrf7002-spi@0 {
compatible = "nordic,nrf7002-spi";
status = "okay";
reg = <0>;
spi-max-frequency = <DT_FREQ_M(8)>;
/* Include common nRF70 overlays */
#include "nrf7002ek_common.dtsi"
#include "nrf7002ek_common_5g.dtsi"
};
};

View file

@ -0,0 +1,35 @@
/*
* Copyright (c) 2024 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/
/* Common assignments for any nRF70 shield */
/* D0 */
iovdd-ctrl-gpios = <&arduino_header 6 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>;
/* D1 */
bucken-gpios = <&arduino_header 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>;
/* D7 */
host-irq-gpios = <&arduino_header 13 GPIO_ACTIVE_HIGH>;
/* Short-range (SR) co-existence */
/* D2 */
status0-gpios = <&arduino_header 8 GPIO_ACTIVE_HIGH>;
/* D3 */
req-gpios = <&arduino_header 9 GPIO_ACTIVE_HIGH>;
/* D4 */
grant-gpios = <&arduino_header 10 (GPIO_PULL_DOWN | GPIO_ACTIVE_LOW)>;
/* D6 */
swctrl1-gpios = <&arduino_header 12 GPIO_ACTIVE_HIGH>;
/* D8 */
srrf-switch-gpios = <&arduino_header 14 GPIO_ACTIVE_HIGH>;
/* Maximum TX power limits for 2.4 GHz */
wifi-max-tx-pwr-2g-dsss = <21>;
wifi-max-tx-pwr-2g-mcs0 = <16>;
wifi-max-tx-pwr-2g-mcs7 = <16>;
/* List of interfaces */
wlan0: wlan0 {
compatible = "nordic,wlan";
};

View file

@ -0,0 +1,12 @@
/*
* Copyright (c) 2024 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/
wifi-max-tx-pwr-5g-low-mcs0 = <13>;
wifi-max-tx-pwr-5g-low-mcs7 = <13>;
wifi-max-tx-pwr-5g-mid-mcs0 = <13>;
wifi-max-tx-pwr-5g-mid-mcs7 = <13>;
wifi-max-tx-pwr-5g-high-mcs0 = <12>;
wifi-max-tx-pwr-5g-high-mcs7 = <12>;

View file

@ -0,0 +1,27 @@
/*
* Copyright (c) 2024 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <freq.h>
/ {
chosen {
zephyr,wifi = &wlan0;
};
};
&arduino_spi {
status = "okay";
nrf70: nrf7002-spi@0 {
compatible = "nordic,nrf7000-spi";
status = "okay";
reg = <0>;
spi-max-frequency = <DT_FREQ_M(8)>;
/* Include common nRF70 overlays */
#include "nrf7002ek_common.dtsi"
#include "nrf7002ek_common_5g.dtsi"
};
};

View file

@ -0,0 +1,26 @@
/*
* Copyright (c) 2024 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <freq.h>
/ {
chosen {
zephyr,wifi = &wlan0;
};
};
&arduino_spi {
status = "okay";
nrf70: nrf7001-spi@0 {
compatible = "nordic,nrf7001-spi";
status = "okay";
reg = <0>;
spi-max-frequency = <DT_FREQ_M(8)>;
/* Include common nRF70 overlays */
#include "nrf7002ek_common.dtsi"
};
};