/******************************************************************************
 *
 * Copyright(c) 2019 Realtek Corporation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of version 2 of the GNU General Public License as
 * published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
 * more details.
 *
 ******************************************************************************/
#include "../gpio_cmd.h"
#include "../gpio.h"
#include "../../mac_reg.h"
#include "gpio_8852b.h"

/* GPIO0 definition */
#define GPIO0_BT_GPIO0_8852B	\
	{MAC_AX_SWGPIO, MAC_AX_GPIO0, MAC_AX_GPIO_IN_OUT, \
	 0x66, BIT(2) | BIT(1) | BIT(0), BIT(2)}
#define GPIO0_BT_SDIO_INT_8852B	\
	{MAC_AX_BT_SDIO_INT, MAC_AX_GPIO0, MAC_AX_GPIO_OUT, \
	 0x4F, BIT(5), BIT(5)}
#define GPIO0_USIN_8852B	\
	{MAC_AX_SWGPIO, MAC_AX_GPIO0, MAC_AX_GPIO_IN, \
	 0x66, BIT(6), BIT(6)}
#define GPIO0_BT_ANT_SW0_8852B	\
	{MAC_AX_BT_RF, MAC_AX_GPIO0, MAC_AX_GPIO_OUT, \
	 0x4F, BIT(6), BIT(6)}
#define GPIO0_BT_ACT_8852B	\
	{MAC_AX_BT_PTA, MAC_AX_GPIO0, MAC_AX_GPIO_IN_OUT, \
	 0x41, BIT(1), BIT(1)}
#define GPIO0_WL_ACT_8852B	\
	{MAC_AX_WL_PTA, MAC_AX_GPIO0, MAC_AX_GPIO_IN_OUT, \
	 0x41, BIT(2), BIT(2)}
#define GPIO0_WLMAC_DBG_GPIO0_8852B	\
	{MAC_AX_WLMAC_DBG, MAC_AX_GPIO0, MAC_AX_GPIO_OUT, \
	 0x40, BIT(1) | BIT(0), BIT(0)}
#define GPIO0_WLPHY_DBG_GPIO0_8852B	\
	{MAC_AX_WLPHY_DBG, MAC_AX_GPIO0, MAC_AX_GPIO_IN_OUT, \
	 0x40, BIT(1) | BIT(0), BIT(1)}
#define GPIO0_BT_DBG_GPIO0_8852B	\
	{MAC_AX_BT_DBG, MAC_AX_GPIO0, MAC_AX_GPIO_OUT, \
	 0x40, BIT(1) | BIT(0), BIT(1) | BIT(0)}
#define GPIO0_PAON_2G_S0_8852B	\
	{MAC_AX_PAON_LNAON_2G_S0, MAC_AX_GPIO0, MAC_AX_GPIO_IN, \
	 0x142, BIT(0), BIT(0)}
#define GPIO0_WL_RFE_CTRL0_0_8852B	\
	{MAC_AX_RFE_WLBT_FUNC_0, MAC_AX_GPIO0, MAC_AX_GPIO_IN, \
	 0x142, BIT(1), BIT(1)}
#define GPIO0_PAON_5G_S0_8852B	\
	{MAC_AX_PAON_LNAON_5G_S0, MAC_AX_GPIO0, MAC_AX_GPIO_IN, \
	 0x142, BIT(4), BIT(4)}
#define GPIO0_WL_RFE_CTRL0_1_8852B	\
	{MAC_AX_RFE_WLBT_FUNC_2, MAC_AX_GPIO0, MAC_AX_GPIO_IN, \
	 0x142, BIT(5), BIT(5)}
#define GPIO0_SW_IO_8852B	\
	{MAC_AX_SW_IO, MAC_AX_GPIO0, MAC_AX_GPIO_IN_OUT, \
	 0x40, BIT(1) | BIT(0), 0}

/* GPIO1 definition */
#define GPIO1_BT_GPIO1_8852B	\
	{MAC_AX_SWGPIO, MAC_AX_GPIO1, MAC_AX_GPIO_IN_OUT, \
	 0x66, BIT(2) | BIT(1) | BIT(0), BIT(2)}
#define GPIO1_USOUT_8852B	\
	{MAC_AX_UART, MAC_AX_GPIO1, MAC_AX_GPIO_OUT, \
	 0x66, BIT(6), BIT(6)}
#define GPIO1_BT_ANT_SW1_8852B	\
	{MAC_AX_BT_RF, MAC_AX_GPIO1, MAC_AX_GPIO_OUT, \
	 0x4F, BIT(6), BIT(6)}
#define GPIO1_BT_3DD_SYNC_8852B	\
	{MAC_AX_BT_3DDLS_A, MAC_AX_GPIO1, MAC_AX_GPIO_IN, \
	 0x22, BIT(2), BIT(2)}
#define GPIO1_WL_CK_8852B	\
	{MAC_AX_BT_PTA, MAC_AX_GPIO1, MAC_AX_GPIO_OUT, \
	 0x41, BIT(1), BIT(1)}
#define GPIO1_BT_CK_8852B	\
	{MAC_AX_WL_PTA, MAC_AX_GPIO1, MAC_AX_GPIO_OUT, \
	 0x41, BIT(2), BIT(2)}
#define GPIO1_WLMAC_DBG_GPIO1_8852B	\
	{MAC_AX_WLMAC_DBG, MAC_AX_GPIO1, MAC_AX_GPIO_OUT, \
	 0x40, BIT(1) | BIT(0), BIT(0)}
#define GPIO1_WLPHY_DBG_GPIO1_8852B	\
	{MAC_AX_WLPHY_DBG, MAC_AX_GPIO1, MAC_AX_GPIO_IN_OUT, \
	 0x40, BIT(1) | BIT(0), BIT(1)}
#define GPIO1_BT_DBG_GPIO1_8852B	\
	{MAC_AX_BT_DBG, MAC_AX_GPIO1, MAC_AX_GPIO_OUT, \
	 0x40, BIT(1) | BIT(0), BIT(1) | BIT(0)}
#define GPIO1_LNAON_2G_S0_8852B	\
	{MAC_AX_PAON_LNAON_2G_S0, MAC_AX_GPIO1, MAC_AX_GPIO_IN, \
	 0x142, BIT(0), BIT(0)}
#define GPIO1_WL_RFE_CTRL1_0_8852B	\
	{MAC_AX_RFE_WLBT_FUNC_0, MAC_AX_GPIO1, MAC_AX_GPIO_IN, \
	 0x142, BIT(1), BIT(1)}
#define GPIO1_LNAON_5G_S0_8852B	\
	{MAC_AX_PAON_LNAON_5G_S0, MAC_AX_GPIO1, MAC_AX_GPIO_IN, \
	 0x142, BIT(4), BIT(4)}
#define GPIO1_WL_RFE_CTRL1_1_8852B	\
	{MAC_AX_RFE_WLBT_FUNC_2, MAC_AX_GPIO1, MAC_AX_GPIO_IN, \
	 0x142, BIT(5), BIT(5)}
#define GPIO1_SW_IO_8852B	\
	{MAC_AX_SW_IO, MAC_AX_GPIO1, MAC_AX_GPIO_IN_OUT, \
	 0x40, BIT(1) | BIT(0), 0}

/* GPIO2 definition */
#define GPIO2_BT_GPIO2_8852B	\
	{MAC_AX_SWGPIO, MAC_AX_GPIO2, MAC_AX_GPIO_IN_OUT, \
	 0x66, BIT(2) | BIT(1) | BIT(0), BIT(2)}
#define GPIO2_BT_WAKE_8852B	\
	{MAC_AX_GPIO13_14_WL_CTRL_EN, MAC_AX_GPIO2, MAC_AX_GPIO_IN, \
	 0x4E, BIT(6), BIT(6)}
#define GPIO2_BT_ANT_SW2_8852B	\
	{MAC_AX_BT_RF, MAC_AX_GPIO2, MAC_AX_GPIO_OUT, \
	 0x4F, BIT(6), BIT(6)}
#define GPIO2_WL_STATE_8852B	\
	{MAC_AX_BT_PTA, MAC_AX_GPIO2, MAC_AX_GPIO_OUT, \
	 0x41, BIT(1), BIT(1)}
#define GPIO2_BT_STATE_8852B	\
	{MAC_AX_WL_PTA, MAC_AX_GPIO2, MAC_AX_GPIO_OUT, \
	 0x41, BIT(2), BIT(2)}
#define GPIO2_WLMAC_DBG_GPIO2_8852B	\
	{MAC_AX_WLMAC_DBG, MAC_AX_GPIO2, MAC_AX_GPIO_OUT, \
	 0x40, BIT(1) | BIT(0), BIT(0)}
#define GPIO2_WLPHY_DBG_GPIO2_8852B	\
	{MAC_AX_WLPHY_DBG, MAC_AX_GPIO2, MAC_AX_GPIO_IN_OUT, \
	 0x40, BIT(1) | BIT(0), BIT(1)}
#define GPIO2_BT_DBG_GPIO2_8852B	\
	{MAC_AX_BT_DBG, MAC_AX_GPIO2, MAC_AX_GPIO_OUT, \
	 0x40, BIT(1) | BIT(0), BIT(1) | BIT(0)}
#define GPIO2_PAON_2G_S1_8852B	\
	{MAC_AX_PAON_LNAON_2G_S1, MAC_AX_GPIO2, MAC_AX_GPIO_IN, \
	 0x142, BIT(2), BIT(2)}
#define GPIO2_WL_RFE_CTRL2_0_8852B	\
	{MAC_AX_RFE_WLBT_FUNC_1, MAC_AX_GPIO2, MAC_AX_GPIO_IN, \
	 0x142, BIT(3), BIT(3)}
#define GPIO2_PAON_5G_S1_8852B	\
	{MAC_AX_PAON_LNAON_5G_S1, MAC_AX_GPIO2, MAC_AX_GPIO_IN, \
	 0x142, BIT(6), BIT(6)}
#define GPIO2_WL_RFE_CTRL2_1_8852B	\
	{MAC_AX_RFE_WLBT_FUNC_3, MAC_AX_GPIO2, MAC_AX_GPIO_IN, \
	 0x142, BIT(7), BIT(7)}
#define GPIO2_SW_IO_8852B	\
	{MAC_AX_SW_IO, MAC_AX_GPIO2, MAC_AX_GPIO_IN_OUT, \
	 0x40, BIT(1) | BIT(0), 0}

/* GPIO3 definition */
#define GPIO3_BT_GPIO3_8852B	\
	{MAC_AX_SWGPIO, MAC_AX_GPIO3, MAC_AX_GPIO_IN_OUT, \
	 0x66, BIT(2) | BIT(1) | BIT(0), BIT(2)}
#define GPIO3_UART_WAKE_8852B	\
	{MAC_AX_GPIO13_14_WL_CTRL_EN, MAC_AX_GPIO3, MAC_AX_GPIO_OUT, \
	 0x4E, BIT(6), BIT(6)}
#define GPIO3_BT_ANT_SW3_8852B	\
	{MAC_AX_BT_RF, MAC_AX_GPIO3, MAC_AX_GPIO_OUT, \
	 0x4F, BIT(6), BIT(6)}
#define GPIO3_WL_PRI_8852B	\
	{MAC_AX_BT_PTA, MAC_AX_GPIO3, MAC_AX_GPIO_OUT, \
	 0x41, BIT(1), BIT(1)}
#define GPIO3_BT_PRI_8852B	\
	{MAC_AX_WL_PTA, MAC_AX_GPIO3, MAC_AX_GPIO_OUT, \
	 0x41, BIT(2), BIT(2)}
#define GPIO3_WLMAC_DBG_GPIO3_8852B	\
	{MAC_AX_WLMAC_DBG, MAC_AX_GPIO3, MAC_AX_GPIO_OUT, \
	 0x40, BIT(1) | BIT(0), BIT(0)}
#define GPIO3_WLPHY_DBG_GPIO3_8852B	\
	{MAC_AX_WLPHY_DBG, MAC_AX_GPIO3, MAC_AX_GPIO_IN_OUT, \
	 0x40, BIT(1) | BIT(0), BIT(1)}
#define GPIO3_BT_DBG_GPIO3_8852B	\
	{MAC_AX_BT_DBG, MAC_AX_GPIO3, MAC_AX_GPIO_OUT, \
	 0x40, BIT(1) | BIT(0), BIT(1) | BIT(0)}
#define GPIO3_LNAON_2G_S1_8852B	\
	{MAC_AX_PAON_LNAON_2G_S1, MAC_AX_GPIO3, MAC_AX_GPIO_IN, \
	 0x142, BIT(2), BIT(2)}
#define GPIO3_WL_RFE_CTRL3_0_8852B	\
	{MAC_AX_RFE_WLBT_FUNC_1, MAC_AX_GPIO3, MAC_AX_GPIO_IN, \
	 0x142, BIT(3), BIT(3)}
#define GPIO3_LNAON_5G_S1_8852B	\
	{MAC_AX_PAON_LNAON_5G_S1, MAC_AX_GPIO3, MAC_AX_GPIO_IN, \
	 0x142, BIT(6), BIT(6)}
#define GPIO3_WL_RFE_CTRL3_1_8852B	\
	{MAC_AX_RFE_WLBT_FUNC_3, MAC_AX_GPIO3, MAC_AX_GPIO_IN, \
	 0x142, BIT(7), BIT(7)}
#define GPIO3_SW_IO_8852B	\
	{MAC_AX_SW_IO, MAC_AX_GPIO3, MAC_AX_GPIO_IN_OUT, \
	 0x40, BIT(1) | BIT(0), 0}

/* GPIO4 definition */
#define GPIO4_BT_SPI0_8852B	\
	{MAC_AX_BT_SFALSH, MAC_AX_GPIO4, MAC_AX_GPIO_IN_OUT, \
	 0x66, BIT(4), BIT(4)}
#define GPIO4_WL_SPI0_8852B	\
	{MAC_AX_WL_SFALSH, MAC_AX_GPIO4, MAC_AX_GPIO_IN_OUT, \
	 0x42, BIT(3), BIT(3)}
#define GPIO4_BT_JTAG_TRST_8852B	\
	{MAC_AX_BT_JTAG, MAC_AX_GPIO4, MAC_AX_GPIO_OUT, \
	 0x67, BIT(0), BIT(0)}
#define GPIO4_WL_JTAG_TRST_8852B	\
	{MAC_AX_BT_JTAG, MAC_AX_GPIO4, MAC_AX_GPIO_OUT, \
	 0x65, BIT(7), BIT(7)}
#define GPIO4_DBG_GNT_WL_8852B	\
	{MAC_AX_DBG_GNT, MAC_AX_GPIO4, MAC_AX_GPIO_OUT, \
	 0x73, BIT(3), BIT(3)}
#define GPIO4_WLMAC_DBG_GPIO4_8852B	\
	{MAC_AX_WLMAC_DBG, MAC_AX_GPIO4, MAC_AX_GPIO_OUT, \
	 0x40, BIT(1) | BIT(0), BIT(0)}
#define GPIO4_WLPHY_DBG_GPIO4_8852B	\
	{MAC_AX_WLPHY_DBG, MAC_AX_GPIO4, MAC_AX_GPIO_IN_OUT, \
	 0x40, BIT(1) | BIT(0), BIT(1)}
#define GPIO4_BT_DBG_GPIO4_8852B	\
	{MAC_AX_BT_DBG, MAC_AX_GPIO4, MAC_AX_GPIO_OUT, \
	 0x40, BIT(1) | BIT(0), BIT(1) | BIT(0)}
#define GPIO4_BANDSEL_5_6G_8852B	\
	{MAC_AX_BANDSEL_5_6G, MAC_AX_GPIO4, MAC_AX_GPIO_IN, \
	 0x143, BIT(4), BIT(4)}
#define GPIO4_WL_RFE_CTRL4_0_8852B	\
	{MAC_AX_RFE_WLBT_FUNC_4, MAC_AX_GPIO4, MAC_AX_GPIO_IN, \
	 0x144, BIT(4), BIT(4)}
#define GPIO4_SW_IO_8852B	\
	{MAC_AX_SW_IO, MAC_AX_GPIO4, MAC_AX_GPIO_IN_OUT, \
	 0x40, BIT(1) | BIT(0), 0}

/* GPIO5 definition */
#define GPIO5_BT_SPI1_8852B	\
	{MAC_AX_BT_SFALSH, MAC_AX_GPIO5, MAC_AX_GPIO_OUT, \
	 0x66, BIT(4), BIT(4)}
#define GPIO5_WL_SPI1_8852B	\
	{MAC_AX_WL_SFALSH, MAC_AX_GPIO5, MAC_AX_GPIO_OUT, \
	 0x42, BIT(3), BIT(3)}
#define GPIO5_BT_JTAG_TDI_8852B	\
	{MAC_AX_BT_JTAG, MAC_AX_GPIO5, MAC_AX_GPIO_IN, \
	 0x67, BIT(0), BIT(0)}
#define GPIO5_WL_JTAG_TDI_8852B	\
	{MAC_AX_BT_JTAG, MAC_AX_GPIO5, MAC_AX_GPIO_IN, \
	 0x65, BIT(7), BIT(7)}
#define GPIO5_DBG_GNT_BT_8852B	\
	{MAC_AX_DBG_GNT, MAC_AX_GPIO5, MAC_AX_GPIO_OUT, \
	 0x73, BIT(3), BIT(3)}
#define GPIO5_BT_GPIO18_8852B	\
	{MAC_AX_BT_GPIO18, MAC_AX_GPIO5, MAC_AX_GPIO_IN_OUT, \
	 0x67, BIT(1), BIT(1)}
#define GPIO5_SOUT_8852B	\
	{MAC_AX_WL_UART_TX, MAC_AX_GPIO5, MAC_AX_GPIO_OUT, \
	 0x41, BIT(0), BIT(0)}
#define GPIO5_WLMAC_DBG_GPIO5_8852B	\
	{MAC_AX_WLMAC_DBG, MAC_AX_GPIO5, MAC_AX_GPIO_OUT, \
	 0x40, BIT(1) | BIT(0), BIT(0)}
#define GPIO5_WLPHY_DBG_GPIO5_8852B	\
	{MAC_AX_WLPHY_DBG, MAC_AX_GPIO5, MAC_AX_GPIO_IN_OUT, \
	 0x40, BIT(1) | BIT(0), BIT(1)}
#define GPIO5_BT_DBG_GPIO5_8852B	\
	{MAC_AX_BT_DBG, MAC_AX_GPIO5, MAC_AX_GPIO_OUT, \
	 0x40, BIT(1) | BIT(0), BIT(1) | BIT(0)}
#define GPIO5_I2C_INT_3W_8852B	\
	{MAC_AX_MAILBOX_3W, MAC_AX_GPIO5, MAC_AX_GPIO_IN, \
	 0x4F, BIT(4), BIT(4)}
#define GPIO5_I2C_INT_1W_8852B	\
	{MAC_AX_MAILBOX_1W, MAC_AX_GPIO5, MAC_AX_GPIO_IN, \
	 0x4F, BIT(7), BIT(7)}
#define GPIO5_BANDSEL_5_6G_8852B	\
	{MAC_AX_BANDSEL_5_6G, MAC_AX_GPIO5, MAC_AX_GPIO_IN, \
	 0x143, BIT(4), BIT(4)}
#define GPIO5_WL_RFE_CTRL5_0_8852B	\
	{MAC_AX_RFE_WLBT_FUNC_4, MAC_AX_GPIO5, MAC_AX_GPIO_IN, \
	 0x144, BIT(4), BIT(4)}
#define GPIO5_SW_IO_8852B	\
	{MAC_AX_SW_IO, MAC_AX_GPIO5, MAC_AX_GPIO_IN_OUT, \
	 0x40, BIT(1) | BIT(0), 0}

/* GPIO6 definition */
#define GPIO6_BT_SPI2_8852B	\
	{MAC_AX_BT_SFALSH, MAC_AX_GPIO6, MAC_AX_GPIO_OUT, \
	 0x66, BIT(4), BIT(4)}
#define GPIO6_WL_SPI2_8852B	\
	{MAC_AX_WL_SFALSH, MAC_AX_GPIO6, MAC_AX_GPIO_OUT, \
	 0x42, BIT(3), BIT(3)}
#define GPIO6_BT_JTAG_TDO_8852B	\
	{MAC_AX_BT_JTAG, MAC_AX_GPIO6, MAC_AX_GPIO_OUT, \
	 0x67, BIT(0), BIT(0)}
#define GPIO6_WL_JTAG_TDO_8852B	\
	{MAC_AX_BT_JTAG, MAC_AX_GPIO6, MAC_AX_GPIO_OUT, \
	 0x65, BIT(7), BIT(7)}
#define GPIO6_LTE_UART_IN_8852B	\
	{MAC_AX_LTE_UART, MAC_AX_GPIO6, MAC_AX_GPIO_IN, \
	 0x73, BIT(2), BIT(2)}
#define GPIO6_LTE_3W_RX_IN_8852B	\
	{MAC_AX_LTE_3W, MAC_AX_GPIO6, MAC_AX_GPIO_IN, \
	 0x73, BIT(2), BIT(2)}
#define GPIO6_BT_3DD_SYNC_8852B	\
	{MAC_AX_BT_3DDLS_B, MAC_AX_GPIO6, MAC_AX_GPIO_IN, \
	 0x67, BIT(1), BIT(1)}
#define GPIO6_SIN_8852B	\
	{MAC_AX_WL_UART_RX, MAC_AX_GPIO6, MAC_AX_GPIO_IN, \
	 0x40, BIT(2), BIT(2)}
#define GPIO6_WLMAC_DBG_GPIO6_8852B	\
	{MAC_AX_WLMAC_DBG, MAC_AX_GPIO6, MAC_AX_GPIO_OUT, \
	 0x40, BIT(1) | BIT(0), BIT(0)}
#define GPIO6_WLPHY_DBG_GPIO6_8852B	\
	{MAC_AX_WLPHY_DBG, MAC_AX_GPIO6, MAC_AX_GPIO_IN_OUT, \
	 0x40, BIT(1) | BIT(0), BIT(1)}
#define GPIO6_BT_DBG_GPIO6_8852B	\
	{MAC_AX_BT_DBG, MAC_AX_GPIO6, MAC_AX_GPIO_OUT, \
	 0x40, BIT(1) | BIT(0), BIT(1) | BIT(0)}
#define GPIO6_PAON_6G_S1_8852B	\
	{MAC_AX_PAON_LNAON_6G_S1, MAC_AX_GPIO6, MAC_AX_GPIO_IN, \
	 0x143, BIT(2), BIT(2)}
#define GPIO6_WL_RFE_CTRL6_0_8852B	\
	{MAC_AX_RFE_WLBT_FUNC_7, MAC_AX_GPIO6, MAC_AX_GPIO_IN, \
	 0x144, BIT(4), BIT(4)}
#define GPIO6_BANDSEL_5G_8852B	\
	{MAC_AX_BANDSEL_5G, MAC_AX_GPIO6, MAC_AX_GPIO_IN, \
	 0x143, BIT(2), BIT(2)}
#define GPIO6_WL_RFE_CTRL6_1_8852B	\
	{MAC_AX_RFE_WLBT_FUNC_8, MAC_AX_GPIO6, MAC_AX_GPIO_IN, \
	 0x145, BIT(0), BIT(0)}
#define GPIO6_SW_IO_8852B	\
	{MAC_AX_SW_IO, MAC_AX_GPIO6, MAC_AX_GPIO_IN_OUT, \
	 0x40, BIT(1) | BIT(0), 0}

/* GPIO7 definition */
#define GPIO7_BT_SPI3_8852B	\
	{MAC_AX_BT_SFALSH, MAC_AX_GPIO7, MAC_AX_GPIO_OUT, \
	 0x66, BIT(4), BIT(4)}
#define GPIO7_WL_SPI3_8852B	\
	{MAC_AX_WL_SFALSH, MAC_AX_GPIO7, MAC_AX_GPIO_OUT, \
	 0x42, BIT(3), BIT(3)}
#define GPIO7_BT_JTAG_TMS_8852B	\
	{MAC_AX_BT_JTAG, MAC_AX_GPIO7, MAC_AX_GPIO_IN, \
	 0x67, BIT(0), BIT(0)}
#define GPIO7_WL_JTAG_TMS_8852B	\
	{MAC_AX_BT_JTAG, MAC_AX_GPIO7, MAC_AX_GPIO_IN, \
	 0x65, BIT(7), BIT(7)}
#define GPIO7_LTE_UART_OUT_8852B	\
	{MAC_AX_LTE_UART, MAC_AX_GPIO7, MAC_AX_GPIO_IN, \
	 0x73, BIT(2), BIT(2)}
#define GPIO7_LTE_3W_TX_IN_8852B	\
	{MAC_AX_LTE_3W, MAC_AX_GPIO7, MAC_AX_GPIO_IN, \
	 0x73, BIT(2), BIT(2)}
#define GPIO7_BT_GPIO16_8852B	\
	{MAC_AX_BT_GPIO16, MAC_AX_GPIO7, MAC_AX_GPIO_IN_OUT, \
	 0x67, BIT(2), BIT(2)}
#define GPIO7_SOUT_8852B	\
	{MAC_AX_WL_UART_TX, MAC_AX_GPIO7, MAC_AX_GPIO_OUT, \
	 0x41, BIT(0), BIT(0)}
#define GPIO7_WLMAC_DBG_GPIO7_8852B	\
	{MAC_AX_WLMAC_DBG, MAC_AX_GPIO7, MAC_AX_GPIO_OUT, \
	 0x40, BIT(1) | BIT(0), BIT(0)}
#define GPIO7_WLPHY_DBG_GPIO7_8852B	\
	{MAC_AX_WLPHY_DBG, MAC_AX_GPIO7, MAC_AX_GPIO_IN_OUT, \
	 0x40, BIT(1) | BIT(0), BIT(1)}
#define GPIO7_BT_DBG_GPIO7_8852B	\
	{MAC_AX_BT_DBG, MAC_AX_GPIO7, MAC_AX_GPIO_OUT, \
	 0x40, BIT(1) | BIT(0), BIT(1) | BIT(0)}
#define GPIO7_LNAON_6G_S1_8852B	\
	{MAC_AX_PAON_LNAON_6G_S1, MAC_AX_GPIO7, MAC_AX_GPIO_IN, \
	 0x143, BIT(2), BIT(2)}
#define GPIO7_WL_RFE_CTRL7_0_8852B	\
	{MAC_AX_RFE_WLBT_FUNC_7, MAC_AX_GPIO7, MAC_AX_GPIO_IN, \
	 0x144, BIT(4), BIT(4)}
#define GPIO7_BANDSEL_5G_8852B	\
	{MAC_AX_BANDSEL_5G, MAC_AX_GPIO7, MAC_AX_GPIO_IN, \
	 0x143, BIT(2), BIT(2)}
#define GPIO7_WL_RFE_CTRL7_1_8852B	\
	{MAC_AX_RFE_WLBT_FUNC_8, MAC_AX_GPIO7, MAC_AX_GPIO_IN, \
	 0x145, BIT(0), BIT(0)}
#define GPIO7_SW_IO_8852B	\
	{MAC_AX_SW_IO, MAC_AX_GPIO7, MAC_AX_GPIO_IN_OUT, \
	 0x40, BIT(1) | BIT(0), 0}

/* GPIO8 definition */
#define GPIO8_EXT_WOL_8852B	\
	{MAC_AX_WL_HW_EXTWOL, MAC_AX_GPIO8, MAC_AX_GPIO_IN, \
	 0x4A, BIT(0), BIT(0)}
#define GPIO8_SICK_8852B	\
	{MAC_AX_SIC, MAC_AX_GPIO8, MAC_AX_GPIO_IN, \
	 0x41, BIT(4), BIT(4)}
#define GPIO8_WL_LED_8852B	\
	{MAC_AX_WL_LED, MAC_AX_GPIO8, MAC_AX_GPIO_IN, \
	 0x4E, BIT(5), BIT(5)}
#define GPIO8_SOUT_8852B	\
	{MAC_AX_WL_UART_TX, MAC_AX_GPIO8, MAC_AX_GPIO_OUT, \
	 0x41, BIT(0), BIT(0)}
#define GPIO8_SW_IO_8852B	\
	{MAC_AX_SW_IO, MAC_AX_GPIO8, MAC_AX_GPIO_IN_OUT, \
	 0x40, BIT(1) | BIT(0), 0}

/* GPIO9 definition */
#define GPIO9_DIS_WL_N_8852B	\
	{MAC_AX_WL_HWPDN, MAC_AX_GPIO9, MAC_AX_GPIO_IN, \
	 0x68, BIT(3), BIT(3)}
#define GPIO9_EXT_WOL_8852B	\
	{MAC_AX_WL_HW_EXTWOL, MAC_AX_GPIO9, MAC_AX_GPIO_IN, \
	 0x4A, BIT(0), BIT(0)}
#define GPIO9_USIN_8852B	\
	{MAC_AX_UART, MAC_AX_GPIO9, MAC_AX_GPIO_IN, \
	 0x66, BIT(6), BIT(6)}
#define GPIO9_I2C_SD_8852B	\
	{MAC_AX_MAILBOX_3W, MAC_AX_GPIO9, MAC_AX_GPIO_IN, \
	 0x4F, BIT(4), BIT(4)}
#define GPIO9_SW_IO_8852B	\
	{MAC_AX_SW_IO, MAC_AX_GPIO9, MAC_AX_GPIO_IN_OUT, \
	 0x40, BIT(1) | BIT(0), 0}

/* GPIO10 definition */
#define GPIO10_WL_SDIO_INT_8852B	\
	{MAC_AX_WL_SDIO_INT, MAC_AX_GPIO10, MAC_AX_GPIO_OUT, \
	 0x72, BIT(2), BIT(2)}
#define GPIO10_SW_IO_8852B	\
	{MAC_AX_SW_IO, MAC_AX_GPIO10, MAC_AX_GPIO_IN_OUT, \
	 0x40, BIT(1) | BIT(0), 0}

/* GPIO11 definition */
#define GPIO11_DIS_BT_N_8852B	\
	{MAC_AX_BT_HWPDN, MAC_AX_GPIO11, MAC_AX_GPIO_IN, \
	 0x6A, BIT(3), BIT(3)}
#define GPIO11_USOUT_8852B	\
	{MAC_AX_UART, MAC_AX_GPIO11, MAC_AX_GPIO_OUT, \
	 0x66, BIT(6), BIT(6)}
#define GPIO11_BANDSEL_5G_G7G6_8852B	\
	{MAC_AX_BANDSEL_5G_G7G6, MAC_AX_GPIO11, MAC_AX_GPIO_IN, \
	 0x143, BIT(6), BIT(6)}
#define GPIO11_WL_RFE_CTRL11_8852B	\
	{MAC_AX_RFE_WLBT_FUNC_5, MAC_AX_GPIO11, MAC_AX_GPIO_IN, \
	 0x144, BIT(5), BIT(5)}
#define GPIO11_SW_IO_8852B	\
	{MAC_AX_SW_IO, MAC_AX_GPIO11, MAC_AX_GPIO_IN_OUT, \
	 0x40, BIT(1) | BIT(0), 0}

/* GPIO12 definition */
#define GPIO12_USCTS_8852B	\
	{MAC_AX_UART, MAC_AX_GPIO12, MAC_AX_GPIO_IN, \
	 0x66, BIT(6), BIT(6)}
#define GPIO12_LTE_PRI_OUT_8852B	\
	{MAC_AX_LTE_3W, MAC_AX_GPIO12, MAC_AX_GPIO_OUT, \
	 0x73, BIT(2), BIT(2)}
#define GPIO12_I2C_CLK_8852B	\
	{MAC_AX_MAILBOX_3W, MAC_AX_GPIO12, MAC_AX_GPIO_IN, \
	 0x4F, BIT(4), BIT(4)}
#define GPIO12_SW_IO_8852B	\
	{MAC_AX_SW_IO, MAC_AX_GPIO12, MAC_AX_GPIO_IN_OUT, \
	 0x40, BIT(1) | BIT(0), 0}

/* GPIO13 definition */
#define GPIO13_BT_WAKE_8852B	\
	{MAC_AX_GPIO13_14_WL_CTRL_EN, MAC_AX_GPIO13, MAC_AX_GPIO_IN, \
	 0x4E, BIT(6), BIT(6)}
#define GPIO13_BT_ANT_SW0_8852B	\
	{MAC_AX_BT_RF, MAC_AX_GPIO13, MAC_AX_GPIO_OUT, \
	 0x4F, BIT(6), BIT(6)}
#define GPIO13_SW_IO_8852B	\
	{MAC_AX_SW_IO, MAC_AX_GPIO13, MAC_AX_GPIO_IN_OUT, \
	 0x40, BIT(1) | BIT(0), 0}

/* GPIO14 definition */
#define GPIO14_UART_WAKE_8852B	\
	{MAC_AX_GPIO13_14_WL_CTRL_EN, MAC_AX_GPIO14, MAC_AX_GPIO_IN, \
	 0x4E, BIT(6), BIT(6)}
#define GPIO14_BT_ANT_SW1_8852B	\
	{MAC_AX_BT_RF, MAC_AX_GPIO14, MAC_AX_GPIO_OUT, \
	 0x4F, BIT(6), BIT(6)}
#define GPIO14_SIN_8852B	\
	{MAC_AX_WL_UART_RX, MAC_AX_GPIO14, MAC_AX_GPIO_IN, \
	 0x40, BIT(2), BIT(2)}
#define GPIO14_BANDSEL_5G_G7G6_8852B	\
	{MAC_AX_BANDSEL_5G_G7G6, MAC_AX_GPIO14, MAC_AX_GPIO_IN, \
	 0x143, BIT(6), BIT(6)}
#define GPIO14_WL_RFE_CTRL11_8852B	\
	{MAC_AX_RFE_WLBT_FUNC_5, MAC_AX_GPIO14, MAC_AX_GPIO_IN, \
	 0x144, BIT(5), BIT(5)}
#define GPIO14_SW_IO_8852B	\
	{MAC_AX_SW_IO, MAC_AX_GPIO14, MAC_AX_GPIO_IN_OUT, \
	 0x40, BIT(1) | BIT(0), 0}

/* GPIO15 definition */
#define GPIO15_EXT_XTAL_EN_8852B	\
	{MAC_AX_EXT_XTAL_CLK, MAC_AX_GPIO15, MAC_AX_GPIO_IN, \
	 0x66, BIT(7), BIT(7)}
#define GPIO15_SW_IO_8852B	\
	{MAC_AX_SW_IO, MAC_AX_GPIO15, MAC_AX_GPIO_IN_OUT, \
	 0x40, BIT(1) | BIT(0), 0}

static const struct mac_ax_pinmux_list PINMUX_LIST_GPIO0_8852B[] = {
	GPIO0_BT_GPIO0_8852B,
	GPIO0_BT_SDIO_INT_8852B,
	GPIO0_USIN_8852B,
	GPIO0_BT_ANT_SW0_8852B,
	GPIO0_BT_ACT_8852B,
	GPIO0_WL_ACT_8852B,
	GPIO0_WLMAC_DBG_GPIO0_8852B,
	GPIO0_WLPHY_DBG_GPIO0_8852B,
	GPIO0_BT_DBG_GPIO0_8852B,
	GPIO0_PAON_2G_S0_8852B,
	GPIO0_WL_RFE_CTRL0_0_8852B,
	GPIO0_PAON_5G_S0_8852B,
	GPIO0_WL_RFE_CTRL0_1_8852B,
	GPIO0_SW_IO_8852B,
};

static const struct mac_ax_pinmux_list PINMUX_LIST_GPIO1_8852B[] = {
	GPIO1_BT_GPIO1_8852B,
	GPIO1_USOUT_8852B,
	GPIO1_BT_ANT_SW1_8852B,
	GPIO1_BT_3DD_SYNC_8852B,
	GPIO1_WL_CK_8852B,
	GPIO1_BT_CK_8852B,
	GPIO1_WLMAC_DBG_GPIO1_8852B,
	GPIO1_WLPHY_DBG_GPIO1_8852B,
	GPIO1_BT_DBG_GPIO1_8852B,
	GPIO1_LNAON_2G_S0_8852B,
	GPIO1_WL_RFE_CTRL1_0_8852B,
	GPIO1_LNAON_5G_S0_8852B,
	GPIO1_WL_RFE_CTRL1_1_8852B,
	GPIO1_SW_IO_8852B,
	GPIO1_BT_3DD_SYNC_8852B,
};

static const struct mac_ax_pinmux_list PINMUX_LIST_GPIO2_8852B[] = {
	GPIO2_BT_GPIO2_8852B,
	GPIO2_BT_WAKE_8852B,
	GPIO2_BT_ANT_SW2_8852B,
	GPIO2_WL_STATE_8852B,
	GPIO2_BT_STATE_8852B,
	GPIO2_WLMAC_DBG_GPIO2_8852B,
	GPIO2_WLPHY_DBG_GPIO2_8852B,
	GPIO2_BT_DBG_GPIO2_8852B,
	GPIO2_PAON_2G_S1_8852B,
	GPIO2_WL_RFE_CTRL2_0_8852B,
	GPIO2_PAON_5G_S1_8852B,
	GPIO2_WL_RFE_CTRL2_1_8852B,
	GPIO2_SW_IO_8852B,
};

static const struct mac_ax_pinmux_list PINMUX_LIST_GPIO3_8852B[] = {
	GPIO3_BT_GPIO3_8852B,
	GPIO3_UART_WAKE_8852B,
	GPIO3_BT_ANT_SW3_8852B,
	GPIO3_WL_PRI_8852B,
	GPIO3_BT_PRI_8852B,
	GPIO3_WLMAC_DBG_GPIO3_8852B,
	GPIO3_WLPHY_DBG_GPIO3_8852B,
	GPIO3_BT_DBG_GPIO3_8852B,
	GPIO3_LNAON_2G_S1_8852B,
	GPIO3_WL_RFE_CTRL3_0_8852B,
	GPIO3_LNAON_5G_S1_8852B,
	GPIO3_WL_RFE_CTRL3_1_8852B,
	GPIO3_SW_IO_8852B,
};

static const struct mac_ax_pinmux_list PINMUX_LIST_GPIO4_8852B[] = {
	GPIO4_BT_SPI0_8852B,
	GPIO4_WL_SPI0_8852B,
	GPIO4_BT_JTAG_TRST_8852B,
	GPIO4_WL_JTAG_TRST_8852B,
	GPIO4_DBG_GNT_WL_8852B,
	GPIO4_WLMAC_DBG_GPIO4_8852B,
	GPIO4_WLPHY_DBG_GPIO4_8852B,
	GPIO4_BT_DBG_GPIO4_8852B,
	GPIO4_BANDSEL_5_6G_8852B,
	GPIO4_WL_RFE_CTRL4_0_8852B,
	GPIO4_SW_IO_8852B,
};

static const struct mac_ax_pinmux_list PINMUX_LIST_GPIO5_8852B[] = {
	GPIO5_BT_SPI1_8852B,
	GPIO5_WL_SPI1_8852B,
	GPIO5_BT_JTAG_TDI_8852B,
	GPIO5_WL_JTAG_TDI_8852B,
	GPIO5_DBG_GNT_BT_8852B,
	GPIO5_BT_GPIO18_8852B,
	GPIO5_SOUT_8852B,
	GPIO5_WLMAC_DBG_GPIO5_8852B,
	GPIO5_WLPHY_DBG_GPIO5_8852B,
	GPIO5_BT_DBG_GPIO5_8852B,
	GPIO5_I2C_INT_3W_8852B,
	GPIO5_I2C_INT_1W_8852B,
	GPIO5_BANDSEL_5_6G_8852B,
	GPIO5_WL_RFE_CTRL5_0_8852B,
	GPIO5_SW_IO_8852B,
};

static const struct mac_ax_pinmux_list PINMUX_LIST_GPIO6_8852B[] = {
	GPIO6_BT_SPI2_8852B,
	GPIO6_WL_SPI2_8852B,
	GPIO6_BT_JTAG_TDO_8852B,
	GPIO6_WL_JTAG_TDO_8852B,
	GPIO6_LTE_UART_IN_8852B,
	GPIO6_LTE_3W_RX_IN_8852B,
	GPIO6_SIN_8852B,
	GPIO6_WLMAC_DBG_GPIO6_8852B,
	GPIO6_WLPHY_DBG_GPIO6_8852B,
	GPIO6_BT_DBG_GPIO6_8852B,
	GPIO6_PAON_6G_S1_8852B,
	GPIO6_WL_RFE_CTRL6_0_8852B,
	GPIO6_BANDSEL_5G_8852B,
	GPIO6_WL_RFE_CTRL6_1_8852B,
	GPIO6_SW_IO_8852B,
};

static const struct mac_ax_pinmux_list PINMUX_LIST_GPIO7_8852B[] = {
	GPIO7_BT_SPI3_8852B,
	GPIO7_WL_SPI3_8852B,
	GPIO7_BT_JTAG_TMS_8852B,
	GPIO7_WL_JTAG_TMS_8852B,
	GPIO7_LTE_UART_OUT_8852B,
	GPIO7_LTE_3W_TX_IN_8852B,
	GPIO7_BT_GPIO16_8852B,
	GPIO7_SOUT_8852B,
	GPIO7_WLMAC_DBG_GPIO7_8852B,
	GPIO7_WLPHY_DBG_GPIO7_8852B,
	GPIO7_BT_DBG_GPIO7_8852B,
	GPIO7_LNAON_6G_S1_8852B,
	GPIO7_WL_RFE_CTRL7_0_8852B,
	GPIO7_BANDSEL_5G_8852B,
	GPIO7_WL_RFE_CTRL7_1_8852B,
	GPIO7_SW_IO_8852B,
};

static const struct mac_ax_pinmux_list PINMUX_LIST_GPIO8_8852B[] = {
	GPIO8_EXT_WOL_8852B,
	GPIO8_SICK_8852B,
	GPIO8_WL_LED_8852B,
	GPIO8_SOUT_8852B,
	GPIO8_SW_IO_8852B,
};

static const struct mac_ax_pinmux_list PINMUX_LIST_GPIO9_8852B[] = {
	GPIO9_DIS_WL_N_8852B,
	GPIO9_EXT_WOL_8852B,
	GPIO9_USIN_8852B,
	GPIO9_I2C_SD_8852B,
	GPIO9_SW_IO_8852B,
};

static const struct mac_ax_pinmux_list PINMUX_LIST_GPIO10_8852B[] = {
	GPIO10_WL_SDIO_INT_8852B,
	GPIO10_SW_IO_8852B,
};

static const struct mac_ax_pinmux_list PINMUX_LIST_GPIO11_8852B[] = {
	GPIO11_DIS_BT_N_8852B,
	GPIO11_USOUT_8852B,
	GPIO11_BANDSEL_5G_G7G6_8852B,
	GPIO11_WL_RFE_CTRL11_8852B,
	GPIO11_SW_IO_8852B,
};

static const struct mac_ax_pinmux_list PINMUX_LIST_GPIO12_8852B[] = {
	GPIO12_USCTS_8852B,
	GPIO12_LTE_PRI_OUT_8852B,
	GPIO12_I2C_CLK_8852B,
	GPIO12_SW_IO_8852B,
};

static const struct mac_ax_pinmux_list PINMUX_LIST_GPIO13_8852B[] = {
	GPIO13_BT_WAKE_8852B,
	GPIO13_BT_ANT_SW0_8852B,
	GPIO13_SW_IO_8852B,
};

static const struct mac_ax_pinmux_list PINMUX_LIST_GPIO14_8852B[] = {
	GPIO14_UART_WAKE_8852B,
	GPIO14_BT_ANT_SW1_8852B,
	GPIO14_SIN_8852B,
	GPIO14_BANDSEL_5G_G7G6_8852B,
	GPIO14_WL_RFE_CTRL11_8852B,
	GPIO14_SW_IO_8852B,
};

static const struct mac_ax_pinmux_list PINMUX_LIST_GPIO15_8852B[] = {
	GPIO15_EXT_XTAL_EN_8852B,
	GPIO15_SW_IO_8852B,
};

#define PINMUX_GPIO0_BT_GPIO0_PINEN_8852B \
	{RTW_MAC_GPIO_BT_GPIO, 0x2D0, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(0)}
#define PINMUX_GPIO0_LTE_UART_IN_PINEN_8852B \
	{RTW_MAC_GPIO_LTE_UART, 0x2D0, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(1) | BIT(0)}
#define PINMUX_GPIO0_LTE_UART_IN_FUNCEN_8852B \
	{RTW_MAC_GPIO_LTE_UART, 0x73, \
	 BIT(2), BIT(2)}
#define PINMUX_GPIO0_LTE_UART_IN_DIS_8852B \
	{RTW_MAC_GPIO_LTE_UART, 0x2D3, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(3) | BIT(2) | BIT(1) | BIT(0)}
#define PINMUX_GPIO0_LTE_3W_RX_IN_PINEN_8852B \
	{RTW_MAC_GPIO_LTE_3W, 0x2D0, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(2)}
#define PINMUX_GPIO0_LTE_3W_RX_IN_FUNCEN_8852B \
	{RTW_MAC_GPIO_LTE_3W, 0x73, \
	 BIT(2), BIT(2)}
#define PINMUX_GPIO0_LTE_3W_RX_IN_DIS_8852B \
	{RTW_MAC_GPIO_LTE_3W, 0x2D3, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(3) | BIT(2) | BIT(1) | BIT(0)}
#define PINMUX_GPIO0_WL_ACT_PINEN_8852B \
	{RTW_MAC_GPIO_WL_PTA, 0x2D0, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(2) | BIT(0)}
#define PINMUX_GPIO0_WL_ACT_FUNCEN_8852B \
	{RTW_MAC_GPIO_WL_PTA, 0x41, \
	 BIT(2) | BIT(1), BIT(2)}
#define PINMUX_GPIO0_BT_ACT_PINEN_8852B \
	{RTW_MAC_GPIO_BT_PTA, 0x2D0, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(2) | BIT(0)}
#define PINMUX_GPIO0_BT_ACT_FUNCEN_8852B \
	{RTW_MAC_GPIO_BT_PTA, 0x41, \
	 BIT(2) | BIT(1), BIT(2) | BIT(1)}
#define PINMUX_GPIO0_DBG_GNT_WL_PINEN_8852B \
	{RTW_MAC_GPIO_DBG_GNT, 0x2D0, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(2) | BIT(1)}
#define PINMUX_GPIO0_WL_JTAG_TRST_PINEN_8852B \
	{RTW_MAC_GPIO_WL_JTAG, 0x2D0, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(2) | BIT(1) | BIT(0)}
#define PINMUX_GPIO0_WL_JTAG_TRST_FUNCEN_8852B \
	{RTW_MAC_GPIO_WL_JTAG, 0x65, \
	 BIT(7), BIT(7)}
#define PINMUX_GPIO0_WL_JTAG_TRST_SECEN_8852B \
	{RTW_MAC_GPIO_WL_JTAG, 0xC00, \
	 BIT(2), BIT(2)}
#define PINMUX_GPIO0_WL_JTAG_TRST_DIS_8852B \
	{RTW_MAC_GPIO_WL_JTAG, 0x2D2, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(3) | BIT(2) | BIT(1) | BIT(0)}
#define PINMUX_GPIO0_WL_RFE_CTRL0_PINEN_8852B \
	{RTW_MAC_GPIO_WL_RFE_CTRL, 0x2D0, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(3)}
#define PINMUX_GPIO0_DBG0_PINEN_8852B \
	{RTW_MAC_GPIO_DBG, 0x2D0, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(3) | BIT(2) | BIT(1)}
#define PINMUX_GPIO0_SW_IO0_PINEN_8852B \
	{RTW_MAC_GPIO_SW_IO, 0x2D0, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(3) | BIT(2) | BIT(1) | BIT(0)}

#define PINMUX_GPIO1_BT_GPIO1_PINEN_8852B \
	{RTW_MAC_GPIO_BT_GPIO, 0x2D0, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(4)}
#define PINMUX_GPIO1_LTE_UART_OUT_PINEN_8852B \
	{RTW_MAC_GPIO_LTE_UART, 0x2D0, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(5) | BIT(4)}
#define PINMUX_GPIO1_LTE_UART_OUT_FUNCEN_8852B \
	{RTW_MAC_GPIO_LTE_UART, 0x73, \
	 BIT(2), BIT(2)}
#define PINMUX_GPIO1_LTE_3W_TX_IN_PINEN_8852B \
	{RTW_MAC_GPIO_LTE_3W, 0x2D0, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(6)}
#define PINMUX_GPIO1_LTE_3W_TX_IN_FUNCEN_8852B \
	{RTW_MAC_GPIO_LTE_3W, 0x73, \
	 BIT(2), BIT(2)}
#define PINMUX_GPIO1_LTE_3W_TX_IN_DIS_8852B \
	{RTW_MAC_GPIO_LTE_3W, 0x2D3, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(7) | BIT(6) | BIT(5) | BIT(4)}
#define PINMUX_GPIO1_BT_CLK_PINEN_8852B \
	{RTW_MAC_GPIO_WL_PTA, 0x2D0, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(6) | BIT(4)}
#define PINMUX_GPIO1_BT_CLK_FUNCEN_8852B \
	{RTW_MAC_GPIO_WL_PTA, 0x41, \
	 BIT(2) | BIT(1), BIT(2)}
#define PINMUX_GPIO1_WL_CLK_PINEN_8852B \
	{RTW_MAC_GPIO_BT_PTA, 0x2D0, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(6) | BIT(4)}
#define PINMUX_GPIO1_WL_CLK_FUNCEN_8852B \
	{RTW_MAC_GPIO_BT_PTA, 0x41, \
	 BIT(2) | BIT(1), BIT(2) | BIT(1)}
#define PINMUX_GPIO1_DBG_GNT_BT_PINEN_8852B \
	{RTW_MAC_GPIO_DBG_GNT, 0x2D0, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(6) | BIT(5)}
#define PINMUX_GPIO1_WL_JTAG_TDI_PINEN_8852B \
	{RTW_MAC_GPIO_WL_JTAG, 0x2D0, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(6) | BIT(5) | BIT(4)}
#define PINMUX_GPIO1_WL_JTAG_TDI_FUNCEN_8852B \
	{RTW_MAC_GPIO_WL_JTAG, 0x65, \
	 BIT(7), BIT(7)}
#define PINMUX_GPIO1_WL_JTAG_TDI_SECEN_8852B \
	{RTW_MAC_GPIO_WL_JTAG, 0xC00, \
	 BIT(2), BIT(2)}
#define PINMUX_GPIO1_WL_JTAG_TDI_DIS_8852B \
	{RTW_MAC_GPIO_WL_JTAG, 0x2D2, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(7) | BIT(6) | BIT(5) | BIT(4)}
#define PINMUX_GPIO1_WL_RFE_CTRL1_PINEN_8852B \
	{RTW_MAC_GPIO_WL_RFE_CTRL, 0x2D0, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(7)}
#define PINMUX_GPIO1_DBG1_PINEN_8852B \
	{RTW_MAC_GPIO_DBG, 0x2D0, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(7) | BIT(6) | BIT(5)}
#define PINMUX_GPIO1_SW_IO1_PINEN_8852B \
	{RTW_MAC_GPIO_SW_IO, 0x2D0, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(7) | BIT(6) | BIT(5) | BIT(4)}

#define PINMUX_GPIO2_WL_PD_PINEN_8852B \
	{RTW_MAC_GPIO_WL_PD, 0x2D1, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), 0}
#define PINMUX_GPIO2_WL_PD_FUNCEN_8852B \
	{RTW_MAC_GPIO_WL_PD, 0x68, \
	 BIT(0), BIT(0)}
#define PINMUX_GPIO2_WL_PD_DIS_8852B \
	{RTW_MAC_GPIO_WL_PD, 0x2D7, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(7) | BIT(6) | BIT(5) | BIT(4)}
#define PINMUX_GPIO2_WL_PD_DIS_2_8852B \
	{RTW_MAC_GPIO_WL_PD, 0x2D4, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(7) | BIT(6) | BIT(5) | BIT(4)}
#define PINMUX_GPIO2_BT_GPIO2_PINEN_8852B \
	{RTW_MAC_GPIO_BT_GPIO, 0x2D1, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(0)}
#define PINMUX_GPIO2_LTE_3W_PRI_OUT_PINEN_8852B \
	{RTW_MAC_GPIO_LTE_3W, 0x2D1, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(2)}
#define PINMUX_GPIO2_LTE_3W_PRI_OUT_FUNCEN_8852B \
	{RTW_MAC_GPIO_LTE_3W, 0x73, \
	 BIT(2), BIT(2)}
#define PINMUX_GPIO2_BT_STA_PINEN_8852B \
	{RTW_MAC_GPIO_WL_PTA, 0x2D1, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(2) | BIT(0)}
#define PINMUX_GPIO2_BT_STA_FUNCEN_8852B \
	{RTW_MAC_GPIO_WL_PTA, 0x41, \
	 BIT(2) | BIT(1), BIT(2)}
#define PINMUX_GPIO2_WL_STA_PINEN_8852B \
	{RTW_MAC_GPIO_BT_PTA, 0x2D1, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(2) | BIT(0)}
#define PINMUX_GPIO2_WL_STA_FUNCEN_8852B \
	{RTW_MAC_GPIO_BT_PTA, 0x41, \
	 BIT(2) | BIT(1), BIT(2) | BIT(1)}
#define PINMUX_GPIO2_DBG_GNT_WL_PINEN_8852B \
	{RTW_MAC_GPIO_DBG_GNT, 0x2D1, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(2) | BIT(1)}
#define PINMUX_GPIO2_WL_JTAG_TDO_PINEN_8852B \
	{RTW_MAC_GPIO_WL_JTAG, 0x2D1, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(2) | BIT(1) | BIT(0)}
#define PINMUX_GPIO2_WL_JTAG_TDO_FUNCEN_8852B \
	{RTW_MAC_GPIO_WL_JTAG, 0x65, \
	 BIT(7), BIT(7)}
#define PINMUX_GPIO2_WL_JTAG_TDO_SECEN_8852B \
	{RTW_MAC_GPIO_WL_JTAG, 0xC00, \
	 BIT(2), BIT(2)}
#define PINMUX_GPIO2_WL_JTAG_TDO_DIS_8852B \
	{RTW_MAC_GPIO_WL_JTAG, 0x2D3, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(3) | BIT(2) | BIT(1) | BIT(0)}
#define PINMUX_GPIO2_WL_RFE_CTRL2_PINEN_8852B \
	{RTW_MAC_GPIO_WL_RFE_CTRL, 0x2D1, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(3)}
#define PINMUX_GPIO2_DBG2_PINEN_8852B \
	{RTW_MAC_GPIO_DBG, 0x2D1, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(3) | BIT(2) | BIT(1)}
#define PINMUX_GPIO2_SW_IO02_PINEN_8852B \
	{RTW_MAC_GPIO_SW_IO, 0x2D1, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(3) | BIT(2) | BIT(1) | BIT(0)}

#define PINMUX_GPIO3_BT_PD_PINEN_8852B \
	{RTW_MAC_GPIO_BT_PD, 0x2D1, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), 0}
#define PINMUX_GPIO3_BT_PD_FUNCEN_8852B \
	{RTW_MAC_GPIO_BT_PD, 0x6A, \
	 BIT(0), BIT(0)}
#define PINMUX_GPIO3_BT_GPIO3_PINEN_8852B \
	{RTW_MAC_GPIO_BT_GPIO, 0x2D1, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(4)}
#define PINMUX_GPIO3_BT_PRI_PINEN_8852B \
	{RTW_MAC_GPIO_WL_PTA, 0x2D1, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(6) | BIT(4)}
#define PINMUX_GPIO3_BT_PRI_FUNCEN_8852B \
	{RTW_MAC_GPIO_WL_PTA, 0x41, \
	 BIT(2) | BIT(1), BIT(2)}
#define PINMUX_GPIO3_WL_PRI_PINEN_8852B \
	{RTW_MAC_GPIO_BT_PTA, 0x2D1, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(6) | BIT(4)}
#define PINMUX_GPIO3_WL_PRI_FUNCEN_8852B \
	{RTW_MAC_GPIO_BT_PTA, 0x41, \
	 BIT(2) | BIT(1), BIT(2) | BIT(1)}
#define PINMUX_GPIO3_DBG_GNT_BT_PINEN_8852B \
	{RTW_MAC_GPIO_DBG_GNT, 0x2D1, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(6) | BIT(5)}
#define PINMUX_GPIO3_WL_JTAG_TMS_PINEN_8852B \
	{RTW_MAC_GPIO_WL_JTAG, 0x2D1, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(6) | BIT(5) | BIT(4)}
#define PINMUX_GPIO3_WL_JTAG_TMS_FUNCEN_8852B \
	{RTW_MAC_GPIO_WL_JTAG, 0x65, \
	 BIT(7), BIT(7)}
#define PINMUX_GPIO3_WL_JTAG_TMS_SECEN_8852B \
	{RTW_MAC_GPIO_WL_JTAG, 0xC00, \
	 BIT(2), BIT(2)}
#define PINMUX_GPIO3_WL_JTAG_TMS_DIS_8852B \
	{RTW_MAC_GPIO_WL_JTAG, 0x2D4, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(7) | BIT(6) | BIT(5) | BIT(4)}
#define PINMUX_GPIO3_WL_RFE_CTRL3_PINEN_8852B \
	{RTW_MAC_GPIO_WL_RFE_CTRL, 0x2D1, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(7)}
#define PINMUX_GPIO3_DBG3_PINEN_8852B \
	{RTW_MAC_GPIO_DBG, 0x2D1, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(7) | BIT(6) | BIT(5)}
#define PINMUX_GPIO3_SW_IO3_PINEN_8852B \
	{RTW_MAC_GPIO_SW_IO, 0x2D1, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(7) | BIT(6) | BIT(5) | BIT(4)}

#define PINMUX_GPIO4_BT_GPIO4_PINEN_8852B \
	{RTW_MAC_GPIO_BT_GPIO, 0x2D2, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(0)}
#define PINMUX_GPIO4_WL_FLASH0_PINEN_8852B \
	{RTW_MAC_GPIO_WL_FLASH, 0x2D2, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(1)}
#define PINMUX_GPIO4_WL_FLASH0_FUNCEN_8852B \
	{RTW_MAC_GPIO_WL_FLASH, 0x42, \
	 BIT(3), BIT(3)}
#define PINMUX_GPIO4_BT_FLASH0_PINEN_8852B \
	{RTW_MAC_GPIO_BT_FLASH, 0x2D2, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(1)}
#define PINMUX_GPIO4_BT_FLASH0_SECEN_8852B \
	{RTW_MAC_GPIO_BT_FLASH, 0xC00, \
	 BIT(2), BIT(2)}
#define PINMUX_GPIO4_BT_FLASH0_FUNCEN_8852B \
	{RTW_MAC_GPIO_BT_FLASH, 0x66, \
	 BIT(4), BIT(4)}
#define PINMUX_GPIO4_WL_JTAG_TRST_PINEN_8852B \
	{RTW_MAC_GPIO_WL_JTAG, 0x2D2, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(2) | BIT(1) | BIT(0)}
#define PINMUX_GPIO4_WL_JTAG_TRST_FUNCEN_8852B \
	{RTW_MAC_GPIO_WL_JTAG, 0x65, \
	 BIT(7), BIT(7)}
#define PINMUX_GPIO4_WL_JTAG_TRST_SECEN_8852B \
	{RTW_MAC_GPIO_WL_JTAG, 0xC00, \
	 BIT(2), BIT(2)}
#define PINMUX_GPIO4_WL_RFE_CTRL4_PINEN_8852B \
	{RTW_MAC_GPIO_WL_RFE_CTRL, 0x2D2, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(3)}
#define PINMUX_GPIO4_DBG4_PINEN_8852B \
	{RTW_MAC_GPIO_DBG, 0x2D2, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(3) | BIT(2) | BIT(1)}
#define PINMUX_GPIO4_SW_IO04_PINEN_8852B \
	{RTW_MAC_GPIO_SW_IO, 0x2D2, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(3) | BIT(2) | BIT(1) | BIT(0)}

#define PINMUX_GPIO5_BT_GPIO5_PINEN_8852B \
	{RTW_MAC_GPIO_BT_GPIO, 0x2D2, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(4)}
#define PINMUX_GPIO5_WL_FLASH1_PINEN_8852B \
	{RTW_MAC_GPIO_WL_FLASH, 0x2D2, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(5)}
#define PINMUX_GPIO5_WL_FLASH1_FUNCEN_8852B \
	{RTW_MAC_GPIO_WL_FLASH, 0x42, \
	 BIT(3), BIT(3)}
#define PINMUX_GPIO5_BT_FLASH1_PINEN_8852B \
	{RTW_MAC_GPIO_BT_FLASH, 0x2D2, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(5)}
#define PINMUX_GPIO5_BT_FLASH1_FUNCEN_8852B \
	{RTW_MAC_GPIO_BT_FLASH, 0x66, \
	 BIT(4), BIT(4)}
#define PINMUX_GPIO5_BT_FLASH1_SECEN_8852B \
	{RTW_MAC_GPIO_BT_FLASH, 0xC00, \
	 BIT(2), BIT(2)}
#define PINMUX_GPIO5_MAILBOX_I2C_INT_PINEN_8852B \
	{RTW_MAC_GPIO_MAILBOX, 0x2D2, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(6) | BIT(4)}
#define PINMUX_GPIO5_MAILBOX_I2C_INT_FUNCEN_8852B \
	{RTW_MAC_GPIO_MAILBOX, 0x4F, \
	 BIT(4), BIT(4)}
#define PINMUX_GPIO5_XTAL_CLK_PINEN_8852B \
	{RTW_MAC_GPIO_XTAL_CLK, 0x2D2, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(6) | BIT(5)}
#define PINMUX_GPIO5_XTAL_CLK_FUNCEN_8852B \
	{RTW_MAC_GPIO_XTAL_CLK, 0x4F, \
	 BIT(5), BIT(5)}
#define PINMUX_GPIO5_WL_JTAG_TDI_PINEN_8852B \
	{RTW_MAC_GPIO_WL_JTAG, 0x2D2, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(6) | BIT(5) | BIT(4)}
#define PINMUX_GPIO5_WL_JTAG_TDI_FUNCEN_8852B \
	{RTW_MAC_GPIO_WL_JTAG, 0x65, \
	 BIT(7), BIT(7)}
#define PINMUX_GPIO5_WL_JTAG_TDI_SECEN_8852B \
	{RTW_MAC_GPIO_WL_JTAG, 0xC00, \
	 BIT(2), BIT(2)}
#define PINMUX_GPIO5_WL_RFE_CTRL5_PINEN_8852B \
	{RTW_MAC_GPIO_WL_RFE_CTRL, 0x2D2, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(7)}
#define PINMUX_GPIO5_DBG5_PINEN_8852B \
	{RTW_MAC_GPIO_DBG, 0x2D2, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(7) | BIT(6) | BIT(5)}
#define PINMUX_GPIO5_SW_IO5_PINEN_8852B \
	{RTW_MAC_GPIO_SW_IO, 0x2D2, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(7) | BIT(6) | BIT(5) | BIT(4)}

#define PINMUX_GPIO6_BT_PD_PINEN_8852B \
	{RTW_MAC_GPIO_BT_PD, 0x2D3, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), 0}
#define PINMUX_GPIO6_BT_PD_FUNCEN_8852B \
	{RTW_MAC_GPIO_BT_PD, 0x6A, \
	 BIT(0), BIT(0)}
#define PINMUX_GPIO6_BT_GPIO6_8852B \
	{RTW_MAC_GPIO_BT_GPIO, 0x2D3, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(0)}
#define PINMUX_GPIO6_WL_FLASH2_PINEN_8852B	\
	{RTW_MAC_GPIO_WL_FLASH, 0x2D3, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(1)}
#define PINMUX_GPIO6_WL_FLASH2_FUNCEN_8852B \
	{RTW_MAC_GPIO_WL_FLASH, 0x42, \
	 BIT(3), BIT(3)}
#define PINMUX_GPIO6_BT_FLASH2_PINEN_8852B	\
	{RTW_MAC_GPIO_BT_FLASH, 0x2D3, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(1)}
#define PINMUX_GPIO6_BT_FLASH2_SECEN_8852B \
	{RTW_MAC_GPIO_BT_FLASH, 0xC00, \
	 BIT(2), BIT(2)}
#define PINMUX_GPIO6_BT_FLASH2_FUNCEN_8852B \
	{RTW_MAC_GPIO_BT_FLASH, 0x66, \
	 BIT(4), BIT(4)}
#define PINMUX_GPIO6_LTE_UART_IN_PINEN_8852B	\
	{RTW_MAC_GPIO_LTE_UART, 0x2D3, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(1) | BIT(0)}
#define PINMUX_GPIO6_LTE_UART_IN_FUNCEN_8852B \
	{RTW_MAC_GPIO_LTE_UART, 0x73, \
	 BIT(2), BIT(2)}
#define PINMUX_GPIO6_LTE_3W_RX_IN_PINEN_8852B	\
	{RTW_MAC_GPIO_LTE_3W, 0x2D3, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(2)}
#define PINMUX_GPIO6_LTE_3W_RX_IN_FUNCEN_8852B \
	{RTW_MAC_GPIO_LTE_3W, 0x73, \
	 BIT(2), BIT(2)}
#define PINMUX_GPIO6_MAILBOX_I2C_SD_PINEN_8852B \
	{RTW_MAC_GPIO_MAILBOX, 0x2D3, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(2) | BIT(0)}
#define PINMUX_GPIO6_MAILBOX_I2C_SD_FUNCEN_8852B \
	{RTW_MAC_GPIO_MAILBOX, 0x4F, \
	 BIT(4), BIT(4)}
#define PINMUX_GPIO6_DBG_GNT_WL_PINEN_8852B \
	{RTW_MAC_GPIO_DBG_GNT, 0x2D3, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(2) | BIT(1)}
#define PINMUX_GPIO6_WL_JTAG_TDO_PINEN_8852B \
	{RTW_MAC_GPIO_WL_JTAG, 0x2D3, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(2) | BIT(1) | BIT(0)}
#define PINMUX_GPIO6_WL_JTAG_TDO_FUNCEN_8852B \
	{RTW_MAC_GPIO_WL_JTAG, 0x65, \
	 BIT(7), BIT(7)}
#define PINMUX_GPIO6_WL_JTAG_TDO_SECEN_8852B \
	{RTW_MAC_GPIO_WL_JTAG, 0xC00, \
	 BIT(2), BIT(2)}
#define PINMUX_GPIO6_WL_RFE6_8852B \
	{RTW_MAC_GPIO_WL_RFE_CTRL, 0x2D3, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(3)}
#define PINMUX_GPIO6_DBG_GPIO6_8852B \
	{RTW_MAC_GPIO_DBG, 0x2D3, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(3) | BIT(2) | BIT(1)}
#define PINMUX_GPIO6_SW_IO6_PINEN_8852B \
	{RTW_MAC_GPIO_SW_IO, 0x2D3, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(3) | BIT(2) | BIT(1) | BIT(0)}

#define PINMUX_GPIO7_BT_PD_PINEN_8852B \
	{RTW_MAC_GPIO_BT_PD, 0x2D3, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), 0}
#define PINMUX_GPIO7_BT_PD_FUNCEN_8852B \
	{RTW_MAC_GPIO_BT_PD, 0x6A, \
	 BIT(0), BIT(0)}
#define PINMUX_GPIO7_BT_GPIO7_PINEN_8852B \
	{RTW_MAC_GPIO_BT_GPIO, 0x2D3, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(4)}
#define PINMUX_GPIO7_WL_FLASH3_PINEN_8852B \
	{RTW_MAC_GPIO_WL_FLASH, 0x2D3, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(5)}
#define PINMUX_GPIO7_WL_FLASH3_FUNCEN_8852B \
	{RTW_MAC_GPIO_WL_FLASH, 0x42, \
	 BIT(3), BIT(3)}
#define PINMUX_GPIO7_BT_FLASH3_PINEN_8852B \
	{RTW_MAC_GPIO_BT_FLASH, 0x2D3, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(5)}
#define PINMUX_GPIO7_BT_FLASH3_FUNCEN_8852B \
	{RTW_MAC_GPIO_BT_FLASH, 0x66, \
	 BIT(4), BIT(4)}
#define PINMUX_GPIO7_BT_FLASH3_SECEN_8852B \
	{RTW_MAC_GPIO_BT_FLASH, 0xC00, \
	 BIT(2), BIT(2)}
#define PINMUX_GPIO7_LTE_UART_OUT_PINEN_8852B	\
	{RTW_MAC_GPIO_LTE_UART, 0x2D3, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(5) | BIT(4)}
#define PINMUX_GPIO7_LTE_UART_OUT_FUNCEN_8852B \
	{RTW_MAC_GPIO_LTE_UART, 0x73, \
	 BIT(2), BIT(2)}
#define PINMUX_GPIO7_LTE_3W_TX_IN_PINEN_8852B	\
	{RTW_MAC_GPIO_LTE_3W, 0x2D3, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(6)}
#define PINMUX_GPIO7_LTE_3W_TX_IN_FUNCEN_8852B \
	{RTW_MAC_GPIO_LTE_3W, 0x73, \
	 BIT(2), BIT(2)}
#define PINMUX_GPIO7_MAILBOX_I2C_CLK_PINEN_8852B \
	{RTW_MAC_GPIO_MAILBOX, 0x2D3, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(6) | BIT(4)}
#define PINMUX_GPIO7_MAILBOX_I2C_CLK_FUNCEN_8852B \
	{RTW_MAC_GPIO_MAILBOX, 0x4F, \
	 BIT(4), BIT(4)}
#define PINMUX_GPIO7_DBG_GNT_BT_PINEN_8852B \
	{RTW_MAC_GPIO_DBG_GNT, 0x2D3, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(6) | BIT(5)}
#define PINMUX_GPIO7_WL_JTAG_TMS_PINEN_8852B \
	{RTW_MAC_GPIO_WL_JTAG, 0x2D3, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(6) | BIT(5) | BIT(4)}
#define PINMUX_GPIO7_WL_JTAG_TMS_FUNCEN_8852B \
	{RTW_MAC_GPIO_WL_JTAG, 0x65, \
	 BIT(7), BIT(7)}
#define PINMUX_GPIO7_WL_JTAG_TMS_SECEN_8852B \
	{RTW_MAC_GPIO_WL_JTAG, 0xC00, \
	 BIT(2), BIT(2)}
#define PINMUX_GPIO7_WL_RFE_CTRL7_PINEN_8852B \
	{RTW_MAC_GPIO_WL_RFE_CTRL, 0x2D3, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(7)}
#define PINMUX_GPIO7_DBG7_PINEN_8852B \
	{RTW_MAC_GPIO_DBG, 0x2D3, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(7) | BIT(6) | BIT(5)}
#define PINMUX_GPIO7_SW_IO7_PINEN_8852B \
	{RTW_MAC_GPIO_SW_IO, 0x2D3, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(7) | BIT(6) | BIT(5) | BIT(4)}

#define PINMUX_GPIO8_EXT_WOL_PINEN_8852B \
	{RTW_MAC_GPIO_WL_EXTWOL, 0x2D4, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), 0}
#define PINMUX_GPIO8_EXT_WOL_FUNCEN_8852B \
	{RTW_MAC_GPIO_WL_EXTWOL, 0x4A, \
	 BIT(0), BIT(0)}
#define PINMUX_GPIO8_BT_GPIO8_8852B \
	{RTW_MAC_GPIO_BT_GPIO, 0x2D4, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(0)}
#define PINMUX_GPIO8_SIC_CLK_PINEN_8852B	\
	{RTW_MAC_GPIO_SIC, 0x2D4, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(1)}
#define PINMUX_GPIO8_SIC_CLK_FUNCEN_8852B	\
	{RTW_MAC_GPIO_SIC, 0x41, \
	 BIT(4) | BIT(3), BIT(4) | BIT(3)}
#define PINMUX_GPIO8_SIC_CLK_SECEN_8852B	\
	{RTW_MAC_GPIO_SIC, 0xC00, \
	 BIT(1), BIT(1)}
#define PINMUX_GPIO8_MAILBOX_I2C_INT_PINEN_8852B \
	{RTW_MAC_GPIO_MAILBOX, 0x2D4, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(2) | BIT(0)}
#define PINMUX_GPIO8_MAILBOX_I2C_INT_FUNCEN_8852B \
	{RTW_MAC_GPIO_MAILBOX, 0x4F, \
	 BIT(4), BIT(4)}
#define PINMUX_GPIO8_WL_LED_PINEN_8852B \
	{RTW_MAC_GPIO_WL_LED, 0x2D4, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(2) | BIT(1)}
#define PINMUX_GPIO8_WL_LED_FUNCEN_8852B \
	{RTW_MAC_GPIO_WL_LED, 0x4E, \
	 BIT(5), BIT(5)}
#define PINMUX_GPIO8_WL_UART_TX_PINEN_8852B \
	{RTW_MAC_GPIO_WL_UART_TX, 0x2D4, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(2) | BIT(1) | BIT(0)}
#define PINMUX_GPIO8_WL_UART_TX_FUNCEN_8852B \
	{RTW_MAC_GPIO_WL_UART_TX, 0x41, \
	 BIT(0), BIT(0)}
#define PINMUX_GPIO8_WL_UART_TX_SECEN_8852B \
	{RTW_MAC_GPIO_WL_UART_TX, 0xC00, \
	 BIT(3), BIT(3)}
#define PINMUX_GPIO8_WL_RFE8_8852B \
	{RTW_MAC_GPIO_WL_RFE_CTRL, 0x2D4, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(3)}
#define PINMUX_GPIO8_DBG_GPIO8_8852B \
	{RTW_MAC_GPIO_DBG, 0x2D4, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(3) | BIT(2) | BIT(1)}
#define PINMUX_GPIO8_SW_IO8_PINEN_8852B \
	{RTW_MAC_GPIO_SW_IO, 0x2D4, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(3) | BIT(2) | BIT(1) | BIT(0)}

#define PINMUX_GPIO9_WL_PD_PINEN_8852B \
	{RTW_MAC_GPIO_WL_PD, 0x2D4, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), 0}
#define PINMUX_GPIO9_BT_GPIO9_PINEN_8852B \
	{RTW_MAC_GPIO_BT_GPIO, 0x2D4, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(4)}
#define PINMUX_GPIO9_MAILBOX_I2C_SD_PINEN_8852B \
	{RTW_MAC_GPIO_MAILBOX, 0x2D4, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(6) | BIT(4)}
#define PINMUX_GPIO9_MAILBOX_I2C_SD_FUNCEN_8852B \
	{RTW_MAC_GPIO_MAILBOX, 0x4F, \
	 BIT(4), BIT(4)}
#define PINMUX_GPIO9_DBG_GNT_WL_PINEN_8852B \
	{RTW_MAC_GPIO_DBG_GNT, 0x2D4, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(6) | BIT(5)}
#define PINMUX_GPIO9_WL_UART_TX_PINEN_8852B \
	{RTW_MAC_GPIO_WL_UART_TX, 0x2D4, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(6) | BIT(5) | BIT(4)}
#define PINMUX_GPIO9_WL_UART_TX_FUNCEN_8852B \
	{RTW_MAC_GPIO_WL_UART_TX, 0x41, \
	 BIT(0), BIT(0)}
#define PINMUX_GPIO9_WL_UART_TX_SECEN_8852B \
	{RTW_MAC_GPIO_WL_UART_TX, 0xC00, \
	 BIT(3), BIT(3)}
#define PINMUX_GPIO9_WL_RFE_CTRL9_PINEN_8852B \
	{RTW_MAC_GPIO_WL_RFE_CTRL, 0x2D4, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(7)}
#define PINMUX_GPIO9_DBG9_PINEN_8852B \
	{RTW_MAC_GPIO_DBG, 0x2D4, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(7) | BIT(6) | BIT(5)}
#define PINMUX_GPIO9_SW_IO9_PINEN_8852B \
	{RTW_MAC_GPIO_SW_IO, 0x2D4, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(7) | BIT(6) | BIT(5) | BIT(4)}

#define PINMUX_GPIO10_BT_GPIO10_8852B \
	{RTW_MAC_GPIO_BT_GPIO, 0x2D5, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(0)}
#define PINMUX_GPIO10_WL_SDIO_INT_PINEN_8852B	\
	{RTW_MAC_GPIO_WL_SDIO_INT, 0x2D5, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(1)}
#define PINMUX_GPIO10_WL_UART_RX_PINEN_8852B \
	{RTW_MAC_GPIO_WL_UART_RX, 0x2D5, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(2) | BIT(1) | BIT(0)}
#define PINMUX_GPIO10_WL_UART_RX_FUNCEN_8852B \
	{RTW_MAC_GPIO_WL_UART_RX, 0x40, \
	 BIT(2), BIT(2)}
#define PINMUX_GPIO10_WL_UART_RX_SECEN_8852B \
	{RTW_MAC_GPIO_WL_UART_RX, 0xC00, \
	 BIT(4), BIT(4)}
#define PINMUX_GPIO10_WL_UART_RX_DIS_8852B \
	{RTW_MAC_GPIO_WL_UART_RX, 0x2D5, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(7) | BIT(6) | BIT(5) | BIT(4)}
#define PINMUX_GPIO10_WL_UART_RX_DIS_2_8852B \
	{RTW_MAC_GPIO_WL_UART_RX, 0x2D7, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(7) | BIT(6) | BIT(5) | BIT(4)}
#define PINMUX_GPIO10_WL_RFE10_8852B \
	{RTW_MAC_GPIO_WL_RFE_CTRL, 0x2D5, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(3)}
#define PINMUX_GPIO10_DBG_GPIO10_8852B \
	{RTW_MAC_GPIO_DBG, 0x2D5, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(3) | BIT(2) | BIT(1)}
#define PINMUX_GPIO10_SW_IO10_PINEN_8852B \
	{RTW_MAC_GPIO_SW_IO, 0x2D5, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(3) | BIT(2) | BIT(1) | BIT(0)}

#define PINMUX_GPIO11_BT_PD_PINEN_8852B \
	{RTW_MAC_GPIO_BT_PD, 0x2D5, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), 0}
#define PINMUX_GPIO11_BT_GPIO11_PINEN_8852B \
	{RTW_MAC_GPIO_BT_GPIO, 0x2D5, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(4)}
#define PINMUX_GPIO11_MAILBOX_I2C_CLK_PINEN_8852B \
	{RTW_MAC_GPIO_MAILBOX, 0x2D5, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(6) | BIT(4)}
#define PINMUX_GPIO11_MAILBOX_I2C_CLK_FUNCEN_8852B \
	{RTW_MAC_GPIO_MAILBOX, 0x4F, \
	 BIT(4), BIT(4)}
#define PINMUX_GPIO11_DBG_GNT_BT_PINEN_8852B \
	{RTW_MAC_GPIO_DBG_GNT, 0x2D5, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(6) | BIT(5)}
#define PINMUX_GPIO11_WL_UART_RX_PINEN_8852B \
	{RTW_MAC_GPIO_WL_UART_RX, 0x2D5, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(6) | BIT(5) | BIT(4)}
#define PINMUX_GPIO11_WL_UART_RX_SECEN_8852B \
	{RTW_MAC_GPIO_WL_UART_RX, 0xC00, \
	 BIT(4), BIT(4)}
#define PINMUX_GPIO11_WL_UART_RX_FUNCEN_8852B \
	{RTW_MAC_GPIO_WL_UART_RX, 0x40, \
	 BIT(2), BIT(2)}
#define PINMUX_GPIO11_WL_UART_RX_DIS_8852B \
	{RTW_MAC_GPIO_WL_UART_RX, 0x2D5, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(3) | BIT(2) | BIT(1) | BIT(0)}
#define PINMUX_GPIO11_WL_UART_RX_DIS_2_8852B \
	{RTW_MAC_GPIO_WL_UART_RX, 0x2D7, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(7) | BIT(6) | BIT(5) | BIT(4)}
#define PINMUX_GPIO11_WL_RFE_CTRL11_PINEN_8852B \
	{RTW_MAC_GPIO_WL_RFE_CTRL, 0x2D5, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(7)}
#define PINMUX_GPIO11_DBG11_PINEN_8852B \
	{RTW_MAC_GPIO_DBG, 0x2D5, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(7) | BIT(6) | BIT(5)}
#define PINMUX_GPIO11_SW_IO11_PINEN_8852B \
	{RTW_MAC_GPIO_SW_IO, 0x2D5, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(7) | BIT(6) | BIT(5) | BIT(4)}

#define PINMUX_GPIO12_BT_GPIO12_8852B \
	{RTW_MAC_GPIO_BT_GPIO, 0x2D6, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(0)}
#define PINMUX_GPIO12_LTE_3W_PRI_OUT_PINEN_8852B	\
	{RTW_MAC_GPIO_LTE_3W, 0x2D6, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(1)}
#define PINMUX_GPIO12_LTE_3W_PRI_OUT_FUNCEN_8852B	\
	{RTW_MAC_GPIO_LTE_3W, 0x73, \
	 BIT(2), BIT(2)}
#define PINMUX_GPIO12_WL_ACT_PINEN_8852B \
	{RTW_MAC_GPIO_WL_PTA, 0x2D6, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(2) | BIT(0)}
#define PINMUX_GPIO12_WL_ACT_FUNCEN_8852B \
	{RTW_MAC_GPIO_WL_PTA, 0x41, \
	 BIT(2) | BIT(1), BIT(2)}
#define PINMUX_GPIO12_BT_ACT_PINEN_8852B \
	{RTW_MAC_GPIO_BT_PTA, 0x2D6, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(2) | BIT(0)}
#define PINMUX_GPIO12_BT_ACT_FUNCEN_8852B \
	{RTW_MAC_GPIO_BT_PTA, 0x41, \
	 BIT(2) | BIT(1), BIT(2) | BIT(1)}
#define PINMUX_GPIO12_BT_ACT_DIS_8852B \
	{RTW_MAC_GPIO_BT_PTA, 0x2D0, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(3) | BIT(2) | BIT(1) | BIT(0)}
#define PINMUX_GPIO12_DBG_GNT_WL_PINEN_8852B	\
	{RTW_MAC_GPIO_DBG_GNT, 0x2D6, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(2) | BIT(1)}
#define PINMUX_GPIO12_SOUT_PINEN_8852B \
	{RTW_MAC_GPIO_WL_UART_TX, 0x2D6, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(2) | BIT(1) | BIT(0)}
#define PINMUX_GPIO12_SOUT_SECEN_8852B \
	{RTW_MAC_GPIO_WL_UART_TX, 0xC00, \
	 BIT(3), BIT(3)}
#define PINMUX_GPIO12_SOUT_FUNCEN_8852B \
	{RTW_MAC_GPIO_WL_UART_TX, 0x41, \
	 BIT(0), BIT(0)}
#define PINMUX_GPIO12_WL_RFE12_8852B \
	{RTW_MAC_GPIO_WL_RFE_CTRL, 0x2D6, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(3)}
#define PINMUX_GPIO12_DBG_GPIO12_8852B \
	{RTW_MAC_GPIO_DBG, 0x2D6, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(3) | BIT(2) | BIT(1)}
#define PINMUX_GPIO12_SW_IO12_PINEN_8852B \
	{RTW_MAC_GPIO_SW_IO, 0x2D6, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(3) | BIT(2) | BIT(1) | BIT(0)}

#define PINMUX_GPIO13_BT_GPIO13_8852B \
	{RTW_MAC_GPIO_BT_GPIO, 0x2D6, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(4)}
#define PINMUX_GPIO13_WL_PTA_BT_CLK_PINEN_8852B \
	{RTW_MAC_GPIO_WL_PTA, 0x2D6, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(6) | BIT(4)}
#define PINMUX_GPIO13_WL_PTA_BT_CLK_FUNCEN_8852B \
	{RTW_MAC_GPIO_WL_PTA, 0x41, \
	 BIT(2) | BIT(1), BIT(2)}
#define PINMUX_GPIO13_BT_PTA_WL_CLK_PINEN_8852B \
	{RTW_MAC_GPIO_BT_PTA, 0x2D6, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(6) | BIT(4)}
#define PINMUX_GPIO13_BT_PTA_WL_CLK_FUNCEN_8852B \
	{RTW_MAC_GPIO_BT_PTA, 0x41, \
	 BIT(2) | BIT(1), BIT(2) | BIT(1)}
#define PINMUX_GPIO13_WL_UART_TX_PINEN_8852B \
	{RTW_MAC_GPIO_WL_UART_TX, 0x2D6, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(6) | BIT(5) | BIT(4)}
#define PINMUX_GPIO13_WL_UART_TX_SECEN_8852B \
	{RTW_MAC_GPIO_WL_UART_TX, 0xC00, \
	 BIT(3), BIT(3)}
#define PINMUX_GPIO13_WL_UART_TX_FUNCEN_8852B \
	{RTW_MAC_GPIO_WL_UART_TX, 0x41, \
	 BIT(0), BIT(0)}
#define PINMUX_GPIO13_WL_RFE_CTRL13_8852B \
	{RTW_MAC_GPIO_WL_RFE_CTRL, 0x2D6, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(7)}
#define PINMUX_GPIO13_DBG13_8852B \
	{RTW_MAC_GPIO_DBG, 0x2D6, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(7) | BIT(6) | BIT(5)}
#define PINMUX_GPIO13_SW_IO13_8852B \
	{RTW_MAC_GPIO_SW_IO, 0x2D6, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(7) | BIT(6) | BIT(5) | BIT(4)}

#define PINMUX_GPIO14_BT_GPIO14_8852B \
	{RTW_MAC_GPIO_BT_GPIO, 0x2D7, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(0)}
#define PINMUX_GPIO14_WL_PTA_BT_STA_PINEN_8852B \
	{RTW_MAC_GPIO_WL_PTA, 0x2D7, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(2) | BIT(0)}
#define PINMUX_GPIO14_WL_PTA_BT_STA_FUNCEN_8852B \
	{RTW_MAC_GPIO_WL_PTA, 0x41, \
	 BIT(2) | BIT(1), BIT(2)}
#define PINMUX_GPIO14_BT_PTA_WL_STA_PINEN_8852B \
	{RTW_MAC_GPIO_BT_PTA, 0x2D7, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(2) | BIT(0)}
#define PINMUX_GPIO14_BT_PTA_WL_STA_FUNCEN_8852B \
	{RTW_MAC_GPIO_BT_PTA, 0x41, \
	 BIT(2) | BIT(1), BIT(2) | BIT(1)}
#define PINMUX_GPIO14_WL_JTAG_CLK_PINEN_8852B \
	{RTW_MAC_GPIO_WL_JTAG, 0x2D7, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(2) | BIT(1) | BIT(0)}
#define PINMUX_GPIO14_WL_JTAG_CLK_FUNCEN_8852B \
	{RTW_MAC_GPIO_WL_JTAG, 0x65, \
	 BIT(7), BIT(7)}
#define PINMUX_GPIO14_WL_JTAG_CLK_SECEN_8852B \
	{RTW_MAC_GPIO_WL_JTAG, 0xC00, \
	 BIT(2), BIT(2)}
#define PINMUX_GPIO14_WL_RFE_CTRL13_8852B \
	{RTW_MAC_GPIO_WL_RFE_CTRL, 0x2D7, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(3)}
#define PINMUX_GPIO14_DBG14_8852B \
	{RTW_MAC_GPIO_DBG, 0x2D7, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(3) | BIT(2) | BIT(1)}
#define PINMUX_GPIO14_SW_IO14_8852B \
	{RTW_MAC_GPIO_SW_IO, 0x2D7, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(3) | BIT(2) | BIT(1) | BIT(0)}

#define PINMUX_GPIO15_WL_PD_PINEN_8852B \
	{RTW_MAC_GPIO_WL_PD, 0x2D7, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), 0}
#define PINMUX_GPIO15_BT_GPIO15_8852B \
	{RTW_MAC_GPIO_BT_GPIO, 0x2D7, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(4)}
#define PINMUX_GPIO15_WL_PTA_BT_CLK_PINEN_8852B \
	{RTW_MAC_GPIO_WL_PTA, 0x2D7, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(6) | BIT(4)}
#define PINMUX_GPIO15_WL_PTA_BT_CLK_FUNCEN_8852B \
	{RTW_MAC_GPIO_WL_PTA, 0x41, \
	 BIT(2) | BIT(1), BIT(2)}
#define PINMUX_GPIO15_BT_PTA_WL_CLK_PINEN_8852B \
	{RTW_MAC_GPIO_BT_PTA, 0x2D7, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(6) | BIT(4)}
#define PINMUX_GPIO15_BT_PTA_WL_CLK_FUNCEN_8852B \
	{RTW_MAC_GPIO_BT_PTA, 0x41, \
	 BIT(2) | BIT(1), BIT(2) | BIT(1)}
#define PINMUX_GPIO15_WL_UART_TX_PINEN_8852B \
	{RTW_MAC_GPIO_WL_UART_TX, 0x2D7, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(6) | BIT(5) | BIT(4)}
#define PINMUX_GPIO15_WL_UART_TX_SECEN_8852B \
	{RTW_MAC_GPIO_WL_UART_TX, 0xC00, \
	 BIT(3), BIT(3)}
#define PINMUX_GPIO15_WL_UART_TX_FUNCEN_8852B \
	{RTW_MAC_GPIO_WL_UART_TX, 0x41, \
	 BIT(0), BIT(0)}
#define PINMUX_GPIO15_WL_RFE_CTRL15_8852B \
	{RTW_MAC_GPIO_WL_RFE_CTRL, 0x2D7, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(7)}
#define PINMUX_GPIO15_DBG15_8852B \
	{RTW_MAC_GPIO_DBG, 0x2D7, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(7) | BIT(6) | BIT(5)}
#define PINMUX_GPIO15_SW_IO15_8852B \
	{RTW_MAC_GPIO_SW_IO, 0x2D7, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(7) | BIT(6) | BIT(5) | BIT(4)}

#define PINMUX_GPIO16_WL_RFE_CTRL16_8852B \
	{RTW_MAC_GPIO_WL_RFE_CTRL, 0x2D8, \
	 BIT(3) | BIT(2) | BIT(1) | BIT(0), BIT(3)}

#define PINMUX_GPIO17_WL_RFE_CTRL17_8852B \
	{RTW_MAC_GPIO_WL_RFE_CTRL, 0x2D8, \
	 BIT(7) | BIT(6) | BIT(5) | BIT(4), BIT(7)}

#define PINMUX_GPIO_END_8852B \
	{RTW_MAC_GPIO_INVALID, 0, 0, 0}

static const struct mac_ax_pin_list PIN_LIST_GPIO0_8852B[] = {
	PINMUX_GPIO0_BT_GPIO0_PINEN_8852B,
	PINMUX_GPIO0_LTE_UART_IN_PINEN_8852B,
	PINMUX_GPIO0_LTE_UART_IN_FUNCEN_8852B,
	PINMUX_GPIO0_LTE_UART_IN_DIS_8852B,
	PINMUX_GPIO0_LTE_3W_RX_IN_PINEN_8852B,
	PINMUX_GPIO0_LTE_3W_RX_IN_FUNCEN_8852B,
	PINMUX_GPIO0_LTE_3W_RX_IN_DIS_8852B,
	PINMUX_GPIO0_WL_ACT_PINEN_8852B,
	PINMUX_GPIO0_WL_ACT_FUNCEN_8852B,
	PINMUX_GPIO0_BT_ACT_PINEN_8852B,
	PINMUX_GPIO0_BT_ACT_FUNCEN_8852B,
	PINMUX_GPIO0_DBG_GNT_WL_PINEN_8852B,
	PINMUX_GPIO0_WL_JTAG_TRST_PINEN_8852B,
	PINMUX_GPIO0_WL_JTAG_TRST_FUNCEN_8852B,
	PINMUX_GPIO0_WL_JTAG_TRST_SECEN_8852B,
	PINMUX_GPIO0_WL_JTAG_TRST_DIS_8852B,
	PINMUX_GPIO0_WL_RFE_CTRL0_PINEN_8852B,
	PINMUX_GPIO0_DBG0_PINEN_8852B,
	PINMUX_GPIO0_SW_IO0_PINEN_8852B,
	PINMUX_GPIO_END_8852B,
};

static const struct mac_ax_pin_list PIN_LIST_GPIO1_8852B[] = {
	PINMUX_GPIO1_BT_GPIO1_PINEN_8852B,
	PINMUX_GPIO1_LTE_UART_OUT_PINEN_8852B,
	PINMUX_GPIO1_LTE_UART_OUT_FUNCEN_8852B,
	PINMUX_GPIO1_LTE_3W_TX_IN_PINEN_8852B,
	PINMUX_GPIO1_LTE_3W_TX_IN_FUNCEN_8852B,
	PINMUX_GPIO1_LTE_3W_TX_IN_DIS_8852B,
	PINMUX_GPIO1_BT_CLK_PINEN_8852B,
	PINMUX_GPIO1_BT_CLK_FUNCEN_8852B,
	PINMUX_GPIO1_WL_CLK_PINEN_8852B,
	PINMUX_GPIO1_WL_CLK_FUNCEN_8852B,
	PINMUX_GPIO1_DBG_GNT_BT_PINEN_8852B,
	PINMUX_GPIO1_WL_JTAG_TDI_PINEN_8852B,
	PINMUX_GPIO1_WL_JTAG_TDI_FUNCEN_8852B,
	PINMUX_GPIO1_WL_JTAG_TDI_SECEN_8852B,
	PINMUX_GPIO1_WL_JTAG_TDI_DIS_8852B,
	PINMUX_GPIO1_WL_RFE_CTRL1_PINEN_8852B,
	PINMUX_GPIO1_DBG1_PINEN_8852B,
	PINMUX_GPIO1_SW_IO1_PINEN_8852B,
	PINMUX_GPIO_END_8852B,
};

static const struct mac_ax_pin_list PIN_LIST_GPIO2_8852B[] = {
	PINMUX_GPIO2_WL_PD_PINEN_8852B,
	PINMUX_GPIO2_WL_PD_FUNCEN_8852B,
	PINMUX_GPIO2_WL_PD_DIS_8852B,
	PINMUX_GPIO2_WL_PD_DIS_2_8852B,
	PINMUX_GPIO2_BT_GPIO2_PINEN_8852B,
	PINMUX_GPIO2_LTE_3W_PRI_OUT_PINEN_8852B,
	PINMUX_GPIO2_LTE_3W_PRI_OUT_FUNCEN_8852B,
	PINMUX_GPIO2_BT_STA_PINEN_8852B,
	PINMUX_GPIO2_BT_STA_FUNCEN_8852B,
	PINMUX_GPIO2_WL_STA_PINEN_8852B,
	PINMUX_GPIO2_WL_STA_FUNCEN_8852B,
	PINMUX_GPIO2_DBG_GNT_WL_PINEN_8852B,
	PINMUX_GPIO2_WL_JTAG_TDO_PINEN_8852B,
	PINMUX_GPIO2_WL_JTAG_TDO_FUNCEN_8852B,
	PINMUX_GPIO2_WL_JTAG_TDO_SECEN_8852B,
	PINMUX_GPIO2_WL_JTAG_TDO_DIS_8852B,
	PINMUX_GPIO2_WL_RFE_CTRL2_PINEN_8852B,
	PINMUX_GPIO2_DBG2_PINEN_8852B,
	PINMUX_GPIO2_SW_IO02_PINEN_8852B,
	PINMUX_GPIO_END_8852B,
};

static const struct mac_ax_pin_list PIN_LIST_GPIO3_8852B[] = {
	PINMUX_GPIO3_BT_PD_PINEN_8852B,
	PINMUX_GPIO3_BT_PD_FUNCEN_8852B,
	PINMUX_GPIO3_BT_GPIO3_PINEN_8852B,
	PINMUX_GPIO3_BT_PRI_PINEN_8852B,
	PINMUX_GPIO3_BT_PRI_FUNCEN_8852B,
	PINMUX_GPIO3_WL_PRI_PINEN_8852B,
	PINMUX_GPIO3_WL_PRI_FUNCEN_8852B,
	PINMUX_GPIO3_DBG_GNT_BT_PINEN_8852B,
	PINMUX_GPIO3_WL_JTAG_TMS_PINEN_8852B,
	PINMUX_GPIO3_WL_JTAG_TMS_FUNCEN_8852B,
	PINMUX_GPIO3_WL_JTAG_TMS_SECEN_8852B,
	PINMUX_GPIO3_WL_JTAG_TMS_DIS_8852B,
	PINMUX_GPIO3_WL_RFE_CTRL3_PINEN_8852B,
	PINMUX_GPIO3_DBG3_PINEN_8852B,
	PINMUX_GPIO3_SW_IO3_PINEN_8852B,
	PINMUX_GPIO_END_8852B,
};

static const struct mac_ax_pin_list PIN_LIST_GPIO4_8852B[] = {
	PINMUX_GPIO4_BT_GPIO4_PINEN_8852B,
	PINMUX_GPIO4_WL_FLASH0_PINEN_8852B,
	PINMUX_GPIO4_WL_FLASH0_FUNCEN_8852B,
	PINMUX_GPIO4_BT_FLASH0_PINEN_8852B,
	PINMUX_GPIO4_BT_FLASH0_SECEN_8852B,
	PINMUX_GPIO4_BT_FLASH0_FUNCEN_8852B,
	PINMUX_GPIO4_WL_JTAG_TRST_PINEN_8852B,
	PINMUX_GPIO4_WL_JTAG_TRST_FUNCEN_8852B,
	PINMUX_GPIO4_WL_JTAG_TRST_SECEN_8852B,
	PINMUX_GPIO4_WL_RFE_CTRL4_PINEN_8852B,
	PINMUX_GPIO4_DBG4_PINEN_8852B,
	PINMUX_GPIO4_SW_IO04_PINEN_8852B,
	PINMUX_GPIO_END_8852B,
};

static const struct mac_ax_pin_list PIN_LIST_GPIO5_8852B[] = {
	PINMUX_GPIO5_BT_GPIO5_PINEN_8852B,
	PINMUX_GPIO5_WL_FLASH1_PINEN_8852B,
	PINMUX_GPIO5_WL_FLASH1_FUNCEN_8852B,
	PINMUX_GPIO5_BT_FLASH1_PINEN_8852B,
	PINMUX_GPIO5_BT_FLASH1_FUNCEN_8852B,
	PINMUX_GPIO5_BT_FLASH1_SECEN_8852B,
	PINMUX_GPIO5_MAILBOX_I2C_INT_PINEN_8852B,
	PINMUX_GPIO5_MAILBOX_I2C_INT_FUNCEN_8852B,
	PINMUX_GPIO5_XTAL_CLK_PINEN_8852B,
	PINMUX_GPIO5_XTAL_CLK_FUNCEN_8852B,
	PINMUX_GPIO5_WL_JTAG_TDI_PINEN_8852B,
	PINMUX_GPIO5_WL_JTAG_TDI_FUNCEN_8852B,
	PINMUX_GPIO5_WL_JTAG_TDI_SECEN_8852B,
	PINMUX_GPIO5_WL_RFE_CTRL5_PINEN_8852B,
	PINMUX_GPIO5_DBG5_PINEN_8852B,
	PINMUX_GPIO5_SW_IO5_PINEN_8852B,
	PINMUX_GPIO_END_8852B,
};

static const struct mac_ax_pin_list PIN_LIST_GPIO6_8852B[] = {
	PINMUX_GPIO6_BT_PD_PINEN_8852B,
	PINMUX_GPIO6_BT_PD_FUNCEN_8852B,
	PINMUX_GPIO6_BT_GPIO6_8852B,
	PINMUX_GPIO6_WL_FLASH2_PINEN_8852B,
	PINMUX_GPIO6_WL_FLASH2_FUNCEN_8852B,
	PINMUX_GPIO6_BT_FLASH2_PINEN_8852B,
	PINMUX_GPIO6_BT_FLASH2_SECEN_8852B,
	PINMUX_GPIO6_BT_FLASH2_FUNCEN_8852B,
	PINMUX_GPIO6_LTE_UART_IN_PINEN_8852B,
	PINMUX_GPIO6_LTE_UART_IN_FUNCEN_8852B,
	PINMUX_GPIO6_LTE_3W_RX_IN_PINEN_8852B,
	PINMUX_GPIO6_LTE_3W_RX_IN_FUNCEN_8852B,
	PINMUX_GPIO6_MAILBOX_I2C_SD_PINEN_8852B,
	PINMUX_GPIO6_MAILBOX_I2C_SD_FUNCEN_8852B,
	PINMUX_GPIO6_DBG_GNT_WL_PINEN_8852B,
	PINMUX_GPIO6_WL_JTAG_TDO_PINEN_8852B,
	PINMUX_GPIO6_WL_JTAG_TDO_FUNCEN_8852B,
	PINMUX_GPIO6_WL_JTAG_TDO_SECEN_8852B,
	PINMUX_GPIO6_WL_RFE6_8852B,
	PINMUX_GPIO6_DBG_GPIO6_8852B,
	PINMUX_GPIO6_SW_IO6_PINEN_8852B,
	PINMUX_GPIO_END_8852B,
};

static const struct mac_ax_pin_list PIN_LIST_GPIO7_8852B[] = {
	PINMUX_GPIO7_BT_PD_PINEN_8852B,
	PINMUX_GPIO7_BT_PD_FUNCEN_8852B,
	PINMUX_GPIO7_BT_GPIO7_PINEN_8852B,
	PINMUX_GPIO7_WL_FLASH3_PINEN_8852B,
	PINMUX_GPIO7_WL_FLASH3_FUNCEN_8852B,
	PINMUX_GPIO7_BT_FLASH3_PINEN_8852B,
	PINMUX_GPIO7_BT_FLASH3_FUNCEN_8852B,
	PINMUX_GPIO7_BT_FLASH3_SECEN_8852B,
	PINMUX_GPIO7_LTE_UART_OUT_PINEN_8852B,
	PINMUX_GPIO7_LTE_UART_OUT_FUNCEN_8852B,
	PINMUX_GPIO7_LTE_3W_TX_IN_PINEN_8852B,
	PINMUX_GPIO7_LTE_3W_TX_IN_FUNCEN_8852B,
	PINMUX_GPIO7_MAILBOX_I2C_CLK_PINEN_8852B,
	PINMUX_GPIO7_MAILBOX_I2C_CLK_FUNCEN_8852B,
	PINMUX_GPIO7_DBG_GNT_BT_PINEN_8852B,
	PINMUX_GPIO7_WL_JTAG_TMS_PINEN_8852B,
	PINMUX_GPIO7_WL_JTAG_TMS_FUNCEN_8852B,
	PINMUX_GPIO7_WL_JTAG_TMS_SECEN_8852B,
	PINMUX_GPIO7_WL_RFE_CTRL7_PINEN_8852B,
	PINMUX_GPIO7_DBG7_PINEN_8852B,
	PINMUX_GPIO7_SW_IO7_PINEN_8852B,
	PINMUX_GPIO_END_8852B,
};

static const struct mac_ax_pin_list PIN_LIST_GPIO8_8852B[] = {
	PINMUX_GPIO8_EXT_WOL_PINEN_8852B,
	PINMUX_GPIO8_EXT_WOL_FUNCEN_8852B,
	PINMUX_GPIO8_BT_GPIO8_8852B,
	PINMUX_GPIO8_SIC_CLK_PINEN_8852B,
	PINMUX_GPIO8_SIC_CLK_FUNCEN_8852B,
	PINMUX_GPIO8_SIC_CLK_SECEN_8852B,
	PINMUX_GPIO8_MAILBOX_I2C_INT_PINEN_8852B,
	PINMUX_GPIO8_MAILBOX_I2C_INT_FUNCEN_8852B,
	PINMUX_GPIO8_WL_LED_PINEN_8852B,
	PINMUX_GPIO8_WL_LED_FUNCEN_8852B,
	PINMUX_GPIO8_WL_UART_TX_PINEN_8852B,
	PINMUX_GPIO8_WL_UART_TX_FUNCEN_8852B,
	PINMUX_GPIO8_WL_UART_TX_SECEN_8852B,
	PINMUX_GPIO8_WL_RFE8_8852B,
	PINMUX_GPIO8_DBG_GPIO8_8852B,
	PINMUX_GPIO8_SW_IO8_PINEN_8852B,
	PINMUX_GPIO_END_8852B,
};

static const struct mac_ax_pin_list PIN_LIST_GPIO9_8852B[] = {
	PINMUX_GPIO9_WL_PD_PINEN_8852B,
	PINMUX_GPIO9_BT_GPIO9_PINEN_8852B,
	PINMUX_GPIO9_MAILBOX_I2C_SD_PINEN_8852B,
	PINMUX_GPIO9_MAILBOX_I2C_SD_FUNCEN_8852B,
	PINMUX_GPIO9_DBG_GNT_WL_PINEN_8852B,
	PINMUX_GPIO9_WL_UART_TX_PINEN_8852B,
	PINMUX_GPIO9_WL_UART_TX_FUNCEN_8852B,
	PINMUX_GPIO9_WL_UART_TX_SECEN_8852B,
	PINMUX_GPIO9_WL_RFE_CTRL9_PINEN_8852B,
	PINMUX_GPIO9_DBG9_PINEN_8852B,
	PINMUX_GPIO9_SW_IO9_PINEN_8852B,
	PINMUX_GPIO_END_8852B,
};

static const struct mac_ax_pin_list PIN_LIST_GPIO10_8852B[] = {
	PINMUX_GPIO10_BT_GPIO10_8852B,
	PINMUX_GPIO10_WL_SDIO_INT_PINEN_8852B,
	PINMUX_GPIO10_WL_UART_RX_PINEN_8852B,
	PINMUX_GPIO10_WL_UART_RX_FUNCEN_8852B,
	PINMUX_GPIO10_WL_UART_RX_SECEN_8852B,
	PINMUX_GPIO10_WL_UART_RX_DIS_8852B,
	PINMUX_GPIO10_WL_UART_RX_DIS_2_8852B,
	PINMUX_GPIO10_WL_RFE10_8852B,
	PINMUX_GPIO10_DBG_GPIO10_8852B,
	PINMUX_GPIO10_SW_IO10_PINEN_8852B,
	PINMUX_GPIO_END_8852B,
};

static const struct mac_ax_pin_list PIN_LIST_GPIO11_8852B[] = {
	PINMUX_GPIO11_BT_PD_PINEN_8852B,
	PINMUX_GPIO11_BT_GPIO11_PINEN_8852B,
	PINMUX_GPIO11_MAILBOX_I2C_CLK_PINEN_8852B,
	PINMUX_GPIO11_MAILBOX_I2C_CLK_FUNCEN_8852B,
	PINMUX_GPIO11_DBG_GNT_BT_PINEN_8852B,
	PINMUX_GPIO11_WL_UART_RX_PINEN_8852B,
	PINMUX_GPIO11_WL_UART_RX_SECEN_8852B,
	PINMUX_GPIO11_WL_UART_RX_FUNCEN_8852B,
	PINMUX_GPIO11_WL_UART_RX_DIS_8852B,
	PINMUX_GPIO11_WL_UART_RX_DIS_2_8852B,
	PINMUX_GPIO11_WL_RFE_CTRL11_PINEN_8852B,
	PINMUX_GPIO11_DBG11_PINEN_8852B,
	PINMUX_GPIO11_SW_IO11_PINEN_8852B,
	PINMUX_GPIO_END_8852B,
};

static const struct mac_ax_pin_list PIN_LIST_GPIO12_8852B[] = {
	PINMUX_GPIO12_BT_GPIO12_8852B,
	PINMUX_GPIO12_LTE_3W_PRI_OUT_PINEN_8852B,
	PINMUX_GPIO12_LTE_3W_PRI_OUT_FUNCEN_8852B,
	PINMUX_GPIO12_WL_ACT_PINEN_8852B,
	PINMUX_GPIO12_WL_ACT_FUNCEN_8852B,
	PINMUX_GPIO12_BT_ACT_PINEN_8852B,
	PINMUX_GPIO12_BT_ACT_FUNCEN_8852B,
	PINMUX_GPIO12_BT_ACT_DIS_8852B,
	PINMUX_GPIO12_DBG_GNT_WL_PINEN_8852B,
	PINMUX_GPIO12_SOUT_PINEN_8852B,
	PINMUX_GPIO12_SOUT_SECEN_8852B,
	PINMUX_GPIO12_SOUT_FUNCEN_8852B,
	PINMUX_GPIO12_WL_RFE12_8852B,
	PINMUX_GPIO12_DBG_GPIO12_8852B,
	PINMUX_GPIO12_SW_IO12_PINEN_8852B,
	PINMUX_GPIO_END_8852B,
};

static const struct mac_ax_pin_list PIN_LIST_GPIO13_8852B[] = {
	PINMUX_GPIO13_BT_GPIO13_8852B,
	PINMUX_GPIO13_WL_PTA_BT_CLK_PINEN_8852B,
	PINMUX_GPIO13_WL_PTA_BT_CLK_FUNCEN_8852B,
	PINMUX_GPIO13_BT_PTA_WL_CLK_PINEN_8852B,
	PINMUX_GPIO13_BT_PTA_WL_CLK_FUNCEN_8852B,
	PINMUX_GPIO13_WL_UART_TX_PINEN_8852B,
	PINMUX_GPIO13_WL_UART_TX_SECEN_8852B,
	PINMUX_GPIO13_WL_UART_TX_FUNCEN_8852B,
	PINMUX_GPIO13_WL_RFE_CTRL13_8852B,
	PINMUX_GPIO13_DBG13_8852B,
	PINMUX_GPIO13_SW_IO13_8852B,
	PINMUX_GPIO_END_8852B,
};

static const struct mac_ax_pin_list PIN_LIST_GPIO14_8852B[] = {
	PINMUX_GPIO14_BT_GPIO14_8852B,
	PINMUX_GPIO14_WL_PTA_BT_STA_PINEN_8852B,
	PINMUX_GPIO14_WL_PTA_BT_STA_FUNCEN_8852B,
	PINMUX_GPIO14_BT_PTA_WL_STA_PINEN_8852B,
	PINMUX_GPIO14_BT_PTA_WL_STA_FUNCEN_8852B,
	PINMUX_GPIO14_WL_JTAG_CLK_PINEN_8852B,
	PINMUX_GPIO14_WL_JTAG_CLK_FUNCEN_8852B,
	PINMUX_GPIO14_WL_JTAG_CLK_SECEN_8852B,
	PINMUX_GPIO14_WL_RFE_CTRL13_8852B,
	PINMUX_GPIO14_DBG14_8852B,
	PINMUX_GPIO14_SW_IO14_8852B,
	PINMUX_GPIO_END_8852B,
};

static const struct mac_ax_pin_list PIN_LIST_GPIO15_8852B[] = {
	PINMUX_GPIO15_WL_PD_PINEN_8852B,
	PINMUX_GPIO15_BT_GPIO15_8852B,
	PINMUX_GPIO15_WL_PTA_BT_CLK_PINEN_8852B,
	PINMUX_GPIO15_WL_PTA_BT_CLK_FUNCEN_8852B,
	PINMUX_GPIO15_BT_PTA_WL_CLK_PINEN_8852B,
	PINMUX_GPIO15_BT_PTA_WL_CLK_FUNCEN_8852B,
	PINMUX_GPIO15_WL_UART_TX_PINEN_8852B,
	PINMUX_GPIO15_WL_UART_TX_SECEN_8852B,
	PINMUX_GPIO15_WL_UART_TX_FUNCEN_8852B,
	PINMUX_GPIO15_WL_RFE_CTRL15_8852B,
	PINMUX_GPIO15_DBG15_8852B,
	PINMUX_GPIO15_SW_IO15_8852B,
	PINMUX_GPIO_END_8852B,
};

static const struct mac_ax_pin_list PIN_LIST_GPIO16_8852B[] = {
	PINMUX_GPIO16_WL_RFE_CTRL16_8852B,
	PINMUX_GPIO_END_8852B,
};

static const struct mac_ax_pin_list PIN_LIST_GPIO17_8852B[] = {
	PINMUX_GPIO17_WL_RFE_CTRL17_8852B,
	PINMUX_GPIO_END_8852B,
};

static const struct mac_ax_pin_list *PIN_LIST_8852B[] = {
	PIN_LIST_GPIO0_8852B, /* gpio0 */
	PIN_LIST_GPIO1_8852B, /* gpio1 */
	PIN_LIST_GPIO2_8852B, /* gpio2 */
	PIN_LIST_GPIO3_8852B, /* gpio3 */
	PIN_LIST_GPIO4_8852B, /* gpio4 */
	PIN_LIST_GPIO5_8852B, /* gpio5 */
	PIN_LIST_GPIO6_8852B, /* gpio6 */
	PIN_LIST_GPIO7_8852B, /* gpio7 */
	PIN_LIST_GPIO8_8852B, /* gpio8 */
	PIN_LIST_GPIO9_8852B, /* gpio9 */
	PIN_LIST_GPIO10_8852B, /* gpio10 */
	PIN_LIST_GPIO11_8852B, /* gpio11 */
	PIN_LIST_GPIO12_8852B, /* gpio12 */
	PIN_LIST_GPIO13_8852B, /* gpio13 */
	PIN_LIST_GPIO14_8852B, /* gpio14 */
	PIN_LIST_GPIO15_8852B, /* gpio15 */
	PIN_LIST_GPIO16_8852B, /* gpio16 */
	PIN_LIST_GPIO17_8852B, /* gpio17 */
};

static u32 mac_get_pinmux_list_8852b(struct mac_ax_adapter *adapter,
				     enum mac_ax_gpio_func func,
				     const struct mac_ax_pinmux_list **list,
				     u32 *list_size, u32 *gpio_id)
{
	switch (func) {
	case MAC_AX_GPIO_SW_IO_0:
		*list = PINMUX_LIST_GPIO0_8852B;
		*list_size = ARRAY_SIZE(PINMUX_LIST_GPIO0_8852B);
		*gpio_id = MAC_AX_GPIO0;
		break;
	case MAC_AX_GPIO_SW_IO_1:
		*list = PINMUX_LIST_GPIO1_8852B;
		*list_size = ARRAY_SIZE(PINMUX_LIST_GPIO1_8852B);
		*gpio_id = MAC_AX_GPIO1;
		break;
	case MAC_AX_GPIO_SW_IO_2:
		*list = PINMUX_LIST_GPIO2_8852B;
		*list_size = ARRAY_SIZE(PINMUX_LIST_GPIO2_8852B);
		*gpio_id = MAC_AX_GPIO2;
		break;
	case MAC_AX_GPIO_SW_IO_3:
		*list = PINMUX_LIST_GPIO3_8852B;
		*list_size = ARRAY_SIZE(PINMUX_LIST_GPIO3_8852B);
		*gpio_id = MAC_AX_GPIO3;
		break;
	case MAC_AX_GPIO_SW_IO_4:
		*list = PINMUX_LIST_GPIO4_8852B;
		*list_size = ARRAY_SIZE(PINMUX_LIST_GPIO4_8852B);
		*gpio_id = MAC_AX_GPIO4;
		break;
	case MAC_AX_GPIO_SW_IO_5:
	case MAC_AX_GPIO_UART_TX_GPIO5:
		*list = PINMUX_LIST_GPIO5_8852B;
		*list_size = ARRAY_SIZE(PINMUX_LIST_GPIO5_8852B);
		*gpio_id = MAC_AX_GPIO5;
		break;
	case MAC_AX_GPIO_SW_IO_6:
	case MAC_AX_GPIO_UART_RX_GPIO6:
		*list = PINMUX_LIST_GPIO6_8852B;
		*list_size = ARRAY_SIZE(PINMUX_LIST_GPIO6_8852B);
		*gpio_id = MAC_AX_GPIO6;
		break;
	case MAC_AX_GPIO_SW_IO_7:
	case MAC_AX_GPIO_UART_TX_GPIO7:
		*list = PINMUX_LIST_GPIO7_8852B;
		*list_size = ARRAY_SIZE(PINMUX_LIST_GPIO7_8852B);
		*gpio_id = MAC_AX_GPIO7;
		break;
	case MAC_AX_GPIO_SW_IO_8:
	case MAC_AX_GPIO_UART_TX_GPIO8:
		*list = PINMUX_LIST_GPIO8_8852B;
		*list_size = ARRAY_SIZE(PINMUX_LIST_GPIO8_8852B);
		*gpio_id = MAC_AX_GPIO8;
		break;
	case MAC_AX_GPIO_SW_IO_9:
		*list = PINMUX_LIST_GPIO9_8852B;
		*list_size = ARRAY_SIZE(PINMUX_LIST_GPIO9_8852B);
		*gpio_id = MAC_AX_GPIO9;
		break;
	case MAC_AX_GPIO_SW_IO_10:
		*list = PINMUX_LIST_GPIO10_8852B;
		*list_size = ARRAY_SIZE(PINMUX_LIST_GPIO10_8852B);
		*gpio_id = MAC_AX_GPIO10;
		break;
	case MAC_AX_GPIO_SW_IO_11:
		*list = PINMUX_LIST_GPIO11_8852B;
		*list_size = ARRAY_SIZE(PINMUX_LIST_GPIO11_8852B);
		*gpio_id = MAC_AX_GPIO11;
		break;
	case MAC_AX_GPIO_SW_IO_12:
		*list = PINMUX_LIST_GPIO12_8852B;
		*list_size = ARRAY_SIZE(PINMUX_LIST_GPIO12_8852B);
		*gpio_id = MAC_AX_GPIO12;
		break;
	case MAC_AX_GPIO_SW_IO_13:
		*list = PINMUX_LIST_GPIO13_8852B;
		*list_size = ARRAY_SIZE(PINMUX_LIST_GPIO13_8852B);
		*gpio_id = MAC_AX_GPIO13;
		break;
	case MAC_AX_GPIO_SW_IO_14:
	case MAC_AX_GPIO_UART_RX_GPIO14:
		*list = PINMUX_LIST_GPIO14_8852B;
		*list_size = ARRAY_SIZE(PINMUX_LIST_GPIO14_8852B);
		*gpio_id = MAC_AX_GPIO14;
		break;
	case MAC_AX_GPIO_SW_IO_15:
		*list = PINMUX_LIST_GPIO15_8852B;
		*list_size = ARRAY_SIZE(PINMUX_LIST_GPIO15_8852B);
		*gpio_id = MAC_AX_GPIO15;
		break;
	default:
		return MACNOITEM;
	}

	return MACSUCCESS;
}

u32 mac_pinmux_set_func_8852b(struct mac_ax_adapter *adapter,
			      enum mac_ax_gpio_func func)
{
	const struct mac_ax_pinmux_list *list = NULL;
	u32 ret;
	u32 gpio_id, list_size;

	ret = mac_pinmux_status(adapter, func);
	if (ret)
		goto END;

	ret = mac_get_pinmux_list_8852b(adapter, func, &list,
					&list_size, &gpio_id);
	if (ret)
		goto END;

	ret = mac_pinmux_switch(adapter, func, list, list_size, gpio_id);
	if (ret)
		goto END;

	ret = mac_pinmux_record(adapter, func, 1);

END:
	return ret;
}

u32 mac_set_gpio_func_8852b(struct mac_ax_adapter *adapter,
			    enum rtw_mac_gfunc func, s8 gpio_cfg)
{
	const struct mac_ax_pin_list *list;
	struct mac_ax_intf_ops *ops = adapter_to_intf_ops(adapter);
	u8 val, is_set = 0;
	u8 gpio;

	if (gpio_cfg < MAC_AX_GPIO_MIN || gpio_cfg > RTW_MAC_GPIO_MAX) {
		PLTFM_MSG_ERR("The GPIO number is wrong: %d", gpio_cfg);
		return MACGPIONUM;
	}

	gpio = gpio_cfg;
	list = PIN_LIST_8852B[gpio];
	while (list && list->func != RTW_MAC_GPIO_INVALID) {
		if (list->func == func) {
			val = MAC_REG_R8(list->offset);
			val = (val & ~(list->msk)) | list->value;
			MAC_REG_W8(list->offset, val);
			is_set++;
		}
		list++;
	}

	if (!is_set) {
		PLTFM_MSG_ERR("The GPIO function is NOT available in %d", gpio);
		return MACNOITEM;
	}

	return MACSUCCESS;
}
