Skip to content

drivers: wifi: enable compressed TX power table for IW416 and IW612 - #808

Merged
zejiang0jason merged 3 commits into
zephyrproject-rtos:masterfrom
nxp-upstream:gaofeng_master_dynamic_txpwr
Sep 18, 2026
Merged

zejiang0jason merged 3 commits into
zephyrproject-rtos:masterfrom
nxp-upstream:gaofeng_master_dynamic_txpwr

Conversation

@GaofengZhangNXP

Copy link
Copy Markdown
Contributor

NXP_WIFI_COMPRESS_TX_PWTBL was not selectable for IW416, so IW416 kept using the legacy per-channel TRPC tx power tables. Add NXP_IW416 to the if block and to its depends on, and give NXP_WIFI_CLOCKSYNC an explicit depends on so it stays disabled for IW416.

Also drop the NXP_IW416_REGION and NXP_IW61X_REGION choices. The driver now selects the region table at runtime from the country code, and one WW header already carries the WW, JP, US, EU and CA tables, so the per-region headers are redundant. The header is selected per chip in the wifi_nxp CMakeLists instead, as RW610 already does.

Comment thread mcux/middleware/wifi_nxp/CMakeLists.txt Outdated

zephyr_compile_definitions_ifdef(CONFIG_NXP_IW61X
SD9177
WIFI_BT_TX_PWR_LIMITS="wlan_txpwrlimit_cfg_murata_2EL_WW.h"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add logic such that it first checks the board typrthan based on it select the respective tx pwr file. As for IW61X we have SoCs from Murata, u-blox, QUECTEL etc. Same for IW416.

@MaochenWang1

Copy link
Copy Markdown
Collaborator

Hi @mmahadevan108 @zejiang0jason please review and merge

NXP_WIFI_COMPRESS_TX_PWTBL was not selectable for IW416, so IW416 kept
using the legacy per-channel TRPC tx power tables. Add NXP_IW416 to the
if block and to its depends on, and give NXP_WIFI_CLOCKSYNC an explicit
depends on so it stays disabled for IW416.

Also drop the NXP_IW416_REGION and NXP_IW61X_REGION choices. The driver
now selects the region table at runtime from the country code, and one
WW header already carries the WW, JP, US, EU and CA tables, so the
per-region headers are redundant. The header is selected per chip in the
wifi_nxp CMakeLists instead, as RW610 already does.

Signed-off-by: Gaofeng Zhang <gaofeng.zhang@nxp.com>
@GaofengZhangNXP
GaofengZhangNXP force-pushed the gaofeng_master_dynamic_txpwr branch from f8ee5c1 to 4c18720 Compare September 17, 2026 06:28
Several IW416 and IW61X modules did not define WIFI_BT_TX_PWR_LIMITS, so
wlan_txpwrlimit_cfg.c fell through to its "Region tx power config not
defined" error unless the application supplied an override. The u-blox
and Quectel tables were also unreachable because only the AzureWave and
Murata tx_pwr_limits directories were on the include path.

Add the per module table for the AzureWave AM457/AM510 modules, which
share the common WW table, and for Murata 1XK uSD, 2EL uSD and 2DL. The
2DL modules reuse the 2EL table as there is no 2DL specific table, and
both follow wifi_bt_module_config.h.

Add the u-blox MAYA-W1, MAYA-W276 and JODY-W5 modules and the Quectel
FGS060N module, with their interface, ED offset and board macros taken
from the matching wifi_bt_module_config.h entries, and put the u-blox and
Quectel tx_pwr_limits directories on the include path so their headers
resolve.

Signed-off-by: Sanjay Yadav <sanjay.yadav@nxp.com>
update rb3+ compress tx power limit table for AzureWave

The JODY-W5 table also named its world wide RU power table
rutxpowerlimit_cfg_set, while ru_power_cfg_info in wlan_txpwrlimit_cfg.c
and every other IW61X table use the _WW suffix, so the compressed RU
path did not build for that module. Rename it to
rutxpowerlimit_cfg_set_WW.

Signed-off-by: Sanjay Yadav <sanjay.yadav@nxp.com>
@zejiang0jason
zejiang0jason merged commit d72451b into zephyrproject-rtos:master Sep 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants