Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

nRF7002-EB shield board support #78330

Merged
merged 2 commits into from
Sep 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions boards/shields/nrf7002eb/Kconfig.shield
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

config SHIELD_NRF7002EB
def_bool $(shields_list_contains,nrf7002eb)

config SHIELD_NRF7002EB_COEX
def_bool $(shields_list_contains,nrf7002eb_coex)
19 changes: 19 additions & 0 deletions boards/shields/nrf7002eb/boards/thingy53_nrf5340_cpuapp.overlay
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/*
* Copyright (c) 2024 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/

/*
* This uses gpio0 pin 8 which conflicts with STATUS pin of Wi-Fi SR coex
*/
&npm1100_force_pwm_mode {
status = "disabled";
};

/*
* Pins P0.9, P0.10, P0.11, P0.12 conflict with SPI4 and nrf7002 host irq
*/
&uart0 {
status = "disabled";
};
72 changes: 72 additions & 0 deletions boards/shields/nrf7002eb/doc/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
.. _nrf7002eb:

nRF7002 EB
##########

Overview
********

The nRF7002 EB is a versatile evaluation kit in the form of a thumbstick shield which connects to
compatible Nordic host boards, like the Thingy53, using the Nordic edge-connector.

The nRF7002 EB 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:: nrf7002eb.jpg
:alt: nRF7002 EB
:align: center

nRF7002 EB

Requirements
************

The nRF7002 EB board is designed to fit straight into a Nordic edge-connector and uses SPI as the
communication interface. Any host board that supports the Nordic edge-connector can be used with
the nRF7002 EB.

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 nrf7002eb`` when invoking ``west build``.

Shield Variants
###############

The nRF7002 EB has a variant which includes the COEX pins. These pins are not be routed to the
edge-connector on some boards, like earlier revisions of the Thingy53 than v1.0.0.

- ``nrf7002eb``: The default variant.
- ``nrf7002eb_coex``: Variant which includes the COEX pins.

SR Co-existence
###############

The nRF7002 EB 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.

References
**********

- `Developing with nRF7002 EB <https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/app_dev/device_guides/nrf70/nrf7002eb_dev_guide.html>`_
- `nRF7002 EB product specification <https://infocenter.nordicsemi.com/topic/ug_nrf7002_eb/UG/nrf7002_EB/intro.html>`_
- `nRF7002 product specification <https://infocenter.nordicsemi.com/index.jsp?topic=%2Fstruct_nrf70%2Fstruct%2Fnrf7002.html&cp=3_0>`_
- `nRF7002 Co-existence <https://infocenter.nordicsemi.com/index.jsp?topic=%2Fps_nrf7002%2Fchapters%2Ffunctional%2Fdoc%2Fcoexistence.html&cp=3_0_0_7>`_
Binary file added boards/shields/nrf7002eb/doc/nrf7002eb.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
42 changes: 42 additions & 0 deletions boards/shields/nrf7002eb/nrf7002eb.overlay
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
/*
* Copyright (c) 2024 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/

#include <freq.h>

/ {
chosen {
zephyr,wifi = &wlan0;
};
};

&edge_connector_spi {
status = "okay";

nrf70: nrf7002@0 {
compatible = "nordic,nrf7002-spi";
status = "okay";
reg = <0>;
spi-max-frequency = <DT_FREQ_M(8)>;

bucken-gpios = <&edge_connector 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>;
iovdd-ctrl-gpios = <&edge_connector 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>;
host-irq-gpios = <&edge_connector 19 GPIO_ACTIVE_HIGH>;

wlan0: wlan0 {
compatible = "nordic,wlan";
};

wifi-max-tx-pwr-2g-dsss = <21>;
wifi-max-tx-pwr-2g-mcs0 = <16>;
wifi-max-tx-pwr-2g-mcs7 = <16>;
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>;
};
};
13 changes: 13 additions & 0 deletions boards/shields/nrf7002eb/nrf7002eb_coex.overlay
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
/*
* Copyright (c) 2024 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/

#include "nrf7002eb.overlay"

&nrf70 {
status0-gpios = <&edge_connector 5 GPIO_ACTIVE_HIGH>;
req-gpios = <&edge_connector 6 GPIO_ACTIVE_HIGH>;
grant-gpios = <&edge_connector 15 (GPIO_PULL_DOWN | GPIO_ACTIVE_LOW)>;
};
8 changes: 8 additions & 0 deletions samples/net/wifi/sample.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -62,3 +62,11 @@ tests:
integration_platforms:
- nrf5340dk/nrf5340/cpuapp
- nucleo_h723zg
sample.net.wifi.nrf7002eb:
extra_args:
- CONFIG_NRF_WIFI_BUILD_ONLY_MODE=y
- SHIELD=nrf7002eb
platform_allow:
- thingy53/nrf5340/cpuapp
integration_platforms:
- thingy53/nrf5340/cpuapp
Loading