| /****************************************************************************** |
| * |
| * Copyright(c) 2016 - 2017 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. |
| * |
| ******************************************************************************/ |
| |
| #ifndef _HALMAC_GPIO_8822B_H_ |
| #define _HALMAC_GPIO_8822B_H_ |
| |
| #include "../../halmac_api.h" |
| #include "../../halmac_gpio_cmd.h" |
| |
| #if HALMAC_8822B_SUPPORT |
| |
| /* P_LED0 definition */ |
| #define HALMAC_GPIO0_BT_GPIO0_8822B {HALMAC_BT_GPIO, HALMAC_GPIO0, HALMAC_GPIO_IN_OUT, 0x66, BIT(2), BIT(2)} |
| |
| /* GPIO0 definition */ |
| #define HALMAC_GPIO0_BT_GPIO0_8822B {HALMAC_BT_GPIO, HALMAC_GPIO0, HALMAC_GPIO_IN_OUT, 0x66, BIT(2), BIT(2)} |
| #define HALMAC_GPIO0_BT_ACT_8822B {HALMAC_BT_PTA, HALMAC_GPIO0, HALMAC_GPIO_IN_OUT, 0x41, BIT(1), 0} |
| #define HALMAC_GPIO0_WL_ACT_8822B {HALMAC_WL_PTA, HALMAC_GPIO0, HALMAC_GPIO_IN_OUT, 0x41, BIT(2), BIT(2)} |
| #define HALMAC_GPIO0_WLMAC_DBG_GPIO0_8822B {HALMAC_WLMAC_DBG, HALMAC_GPIO0, HALMAC_GPIO_OUT, 0x40, BIT(1) | BIT(0), BIT(0)} |
| #define HALMAC_GPIO0_WLPHY_DBG_GPIO0_8822B {HALMAC_WLPHY_DBG, HALMAC_GPIO0, HALMAC_GPIO_IN_OUT, 0x40, BIT(1) | BIT(0), BIT(1)} |
| #define HALMAC_GPIO0_BT_DBG_GPIO0_8822B {HALMAC_BT_DBG, HALMAC_GPIO0, HALMAC_GPIO_OUT, 0x40, BIT(1) | BIT(0), BIT(0) | BIT(1)} |
| #define HALMAC_GPIO0_SW_IO_8822B {HALMAC_SW_IO, HALMAC_GPIO0, HALMAC_GPIO_IN_OUT, 0x40, BIT(1) | BIT(0), 0} |
| |
| /* GPIO1 definition */ |
| #define HALMAC_GPIO1_BT_GPIO1_8822B {HALMAC_BT_GPIO, HALMAC_GPIO1, HALMAC_GPIO_IN_OUT, 0x66, BIT(2), BIT(2)} |
| #define HALMAC_GPIO1_BT_3DD_SYNC_A_8822B {HALMAC_BT_3DDLS_A, HALMAC_GPIO1, HALMAC_GPIO_IN, 0x66, BIT(2), BIT(2)} |
| #define HALMAC_GPIO1_WL_CK_8822B {HALMAC_BT_PTA, HALMAC_GPIO1, HALMAC_GPIO_OUT, 0x41, BIT(1), 0} |
| #define HALMAC_GPIO1_BT_CK_8822B {HALMAC_WL_PTA, HALMAC_GPIO1, HALMAC_GPIO_OUT, 0x41, BIT(2), BIT(2)} |
| #define HALMAC_GPIO1_WLMAC_DBG_GPIO1_8822B {HALMAC_WLMAC_DBG, HALMAC_GPIO1, HALMAC_GPIO_OUT, 0x40, BIT(1) | BIT(0), BIT(0)} |
| #define HALMAC_GPIO1_WLPHY_DBG_GPIO1_8822B {HALMAC_WLPHY_DBG, HALMAC_GPIO1, HALMAC_GPIO_IN_OUT, 0x40, BIT(1) | BIT(0), BIT(1)} |
| #define HALMAC_GPIO1_BT_DBG_GPIO1_8822B {HALMAC_BT_DBG, HALMAC_GPIO1, HALMAC_GPIO_OUT, 0x40, BIT(1) | BIT(0), BIT(0) | BIT(1)} |
| #define HALMAC_GPIO1_SW_IO_8822B {HALMAC_SW_IO, HALMAC_GPIO1, HALMAC_GPIO_IN_OUT, 0x40, BIT(1) | BIT(0), 0} |
| |
| /* GPIO2 definition */ |
| #define HALMAC_GPIO2_BT_GPIO2_8822B {HALMAC_BT_GPIO, HALMAC_GPIO2, HALMAC_GPIO_IN_OUT, 0x66, BIT(2), BIT(2)} |
| #define HALMAC_GPIO2_WL_STATE_8822B {HALMAC_BT_PTA, HALMAC_GPIO2, HALMAC_GPIO_OUT, 0x41, BIT(1), 0} |
| #define HALMAC_GPIO2_BT_STATE_8822B {HALMAC_WL_PTA, HALMAC_GPIO2, HALMAC_GPIO_OUT, 0x41, BIT(2), BIT(2)} |
| #define HALMAC_GPIO2_WLMAC_DBG_GPIO2_8822B {HALMAC_WLMAC_DBG, HALMAC_GPIO2, HALMAC_GPIO_OUT, 0x40, BIT(1) | BIT(0), BIT(0)} |
| #define HALMAC_GPIO2_WLPHY_DBG_GPIO2_8822B {HALMAC_WLPHY_DBG, HALMAC_GPIO2, HALMAC_GPIO_IN_OUT, 0x40, BIT(1) | BIT(0), BIT(1)} |
| #define HALMAC_GPIO2_BT_DBG_GPIO2_8822B {HALMAC_BT_DBG, HALMAC_GPIO2, HALMAC_GPIO_OUT, 0x40, BIT(1) | BIT(0), BIT(0) | BIT(1)} |
| #define HALMAC_GPIO2_RFE_CTRL_5_8822B {HALMAC_WLPHY_RFE_CTRL2GPIO, HALMAC_GPIO2, HALMAC_GPIO_IN_OUT, 0x40, BIT(2), BIT(2)} |
| #define HALMAC_GPIO2_SW_IO_8822B {HALMAC_SW_IO, HALMAC_GPIO2, HALMAC_GPIO_IN_OUT, 0x40, BIT(1) | BIT(0), 0} |
| |
| /* GPIO3 definition */ |
| #define HALMAC_GPIO3_BT_GPIO3_8822B {HALMAC_BT_GPIO, HALMAC_GPIO3, HALMAC_GPIO_IN_OUT, 0x66, BIT(2), BIT(2)} |
| #define HALMAC_GPIO3_WL_PRI_8822B {HALMAC_BT_PTA, HALMAC_GPIO3, HALMAC_GPIO_OUT, 0x41, BIT(1), 0} |
| #define HALMAC_GPIO3_BT_PRI_8822B {HALMAC_WL_PTA, HALMAC_GPIO3, HALMAC_GPIO_OUT, 0x41, BIT(2), BIT(2)} |
| #define HALMAC_GPIO3_WLMAC_DBG_GPIO3_8822B {HALMAC_WLMAC_DBG, HALMAC_GPIO3, HALMAC_GPIO_OUT, 0x40, BIT(1) | BIT(0), BIT(0)} |
| #define HALMAC_GPIO3_WLPHY_DBG_GPIO3_8822B {HALMAC_WLPHY_DBG, HALMAC_GPIO3, HALMAC_GPIO_IN_OUT, 0x40, BIT(1) | BIT(0), BIT(1)} |
| #define HALMAC_GPIO3_BT_DBG_GPIO3_8822B {HALMAC_BT_DBG, HALMAC_GPIO3, HALMAC_GPIO_OUT, 0x40, BIT(1) | BIT(0), BIT(0) | BIT(1)} |
| #define HALMAC_GPIO3_RFE_CTRL_4_8822B {HALMAC_WLPHY_RFE_CTRL2GPIO, HALMAC_GPIO3, HALMAC_GPIO_IN_OUT, 0x40, BIT(2), BIT(2)} |
| #define HALMAC_GPIO3_SW_IO_8822B {HALMAC_SW_IO, HALMAC_GPIO3, HALMAC_GPIO_IN_OUT, 0x40, BIT(1) | BIT(0), 0} |
| |
| /* GPIO4 definition */ |
| #define HALMAC_GPIO4_BT_SPI_D0_8822B {HALMAC_BT_SFLASH, HALMAC_GPIO4, HALMAC_GPIO_IN_OUT, 0x66, BIT(4), BIT(4)} |
| #define HALMAC_GPIO4_WL_SPI_D0_8822B {HALMAC_WL_SFLASH, HALMAC_GPIO4, HALMAC_GPIO_IN_OUT, 0x42, BIT(3), BIT(3)} |
| #define HALMAC_GPIO4_SDIO_INT_8822B {HALMAC_SDIO_INT, HALMAC_GPIO4, HALMAC_GPIO_OUT, 0x72, BIT(2), BIT(2)} |
| #define HALMAC_GPIO4_JTAG_TRST_8822B {HALMAC_JTAG, HALMAC_GPIO4, HALMAC_GPIO_IN, 0x67, BIT(0), BIT(0)} |
| #define HALMAC_GPIO4_DBG_GNT_WL_8822B {HALMAC_DBG_GNT_WL_BT, HALMAC_GPIO4, HALMAC_GPIO_OUT, 0x73, BIT(3), BIT(3)} |
| #define HALMAC_GPIO4_WLMAC_DBG_GPIO4_8822B {HALMAC_WLMAC_DBG, HALMAC_GPIO4, HALMAC_GPIO_OUT, 0x40, BIT(1) | BIT(0), BIT(0)} |
| #define HALMAC_GPIO4_WLPHY_DBG_GPIO4_8822B {HALMAC_WLPHY_DBG, HALMAC_GPIO4, HALMAC_GPIO_IN_OUT, 0x40, BIT(1) | BIT(0), BIT(1)} |
| #define HALMAC_GPIO4_BT_DBG_GPIO4_8822B {HALMAC_BT_DBG, HALMAC_GPIO4, HALMAC_GPIO_OUT, 0x40, BIT(1) | BIT(0), BIT(0) | BIT(1)} |
| #define HALMAC_GPIO4_SW_IO_8822B {HALMAC_SW_IO, HALMAC_GPIO4, HALMAC_GPIO_IN_OUT, 0x40, BIT(1) | BIT(0), 0} |
| |
| /* GPIO5 definition */ |
| #define HALMAC_GPIO5_BT_SPI_D1_8822B {HALMAC_BT_SFLASH, HALMAC_GPIO5, HALMAC_GPIO_IN_OUT, 0x66, BIT(4), BIT(4)} |
| #define HALMAC_GPIO5_WL_SPI_D1_8822B {HALMAC_WL_SFLASH, HALMAC_GPIO5, HALMAC_GPIO_IN_OUT, 0x42, BIT(3), BIT(3)} |
| #define HALMAC_GPIO5_JTAG_TDI_8822B {HALMAC_JTAG, HALMAC_GPIO5, HALMAC_GPIO_IN, 0x67, BIT(0), BIT(0)} |
| #define HALMAC_GPIO5_DBG_GNT_BT_8822B {HALMAC_DBG_GNT_WL_BT, HALMAC_GPIO5, HALMAC_GPIO_OUT, 0x73, BIT(3), BIT(3)} |
| #define HALMAC_GPIO5_WLMAC_DBG_GPIO5_8822B {HALMAC_WLMAC_DBG, HALMAC_GPIO5, HALMAC_GPIO_OUT, 0x40, BIT(1) | BIT(0), BIT(0)} |
| #define HALMAC_GPIO5_WLPHY_DBG_GPIO5_8822B {HALMAC_WLPHY_DBG, HALMAC_GPIO5, HALMAC_GPIO_IN_OUT, 0x40, BIT(1) | BIT(0), BIT(1)} |
| #define HALMAC_GPIO5_BT_DBG_GPIO5_8822B {HALMAC_BT_DBG, HALMAC_GPIO5, HALMAC_GPIO_OUT, 0x40, BIT(1) | BIT(0), BIT(0) | BIT(1)} |
| #define HALMAC_GPIO5_SW_IO_8822B {HALMAC_SW_IO, HALMAC_GPIO5, HALMAC_GPIO_IN_OUT, 0x40, BIT(1) | BIT(0), 0} |
| |
| /* GPIO6 definition */ |
| #define HALMAC_GPIO6_BT_SPI_D2_8822B {HALMAC_BT_SFLASH, HALMAC_GPIO6, HALMAC_GPIO_IN_OUT, 0x66, BIT(4), BIT(4)} |
| #define HALMAC_GPIO6_WL_SPI_D2_8822B {HALMAC_WL_SFLASH, HALMAC_GPIO6, HALMAC_GPIO_IN_OUT, 0x42, BIT(3), BIT(3)} |
| #define HALMAC_GPIO6_EEDO_8822B {HALMAC_EEPROM, HALMAC_GPIO6, HALMAC_GPIO_IN, 0x40, BIT(4), BIT(4)} |
| #define HALMAC_GPIO6_JTAG_TDO_8822B {HALMAC_JTAG, HALMAC_GPIO6, HALMAC_GPIO_OUT, 0x67, BIT(0), BIT(0)} |
| #define HALMAC_GPIO6_BT_3DD_SYNC_B_8822B {HALMAC_BT_3DDLS_B, HALMAC_GPIO6, HALMAC_GPIO_IN, 0x67, BIT(1), BIT(1)} |
| #define HALMAC_GPIO6_BT_GPIO18_8822B {HALMAC_BT_GPIO, HALMAC_GPIO6, HALMAC_GPIO_IN_OUT, 0x67, BIT(1), BIT(1)} |
| #define HALMAC_GPIO6_SIN_8822B {HALMAC_WL_UART, HALMAC_GPIO6, HALMAC_GPIO_IN, 0x41, BIT(0), BIT(0)} |
| #define HALMAC_GPIO6_WLMAC_DBG_GPIO6_8822B {HALMAC_WLMAC_DBG, HALMAC_GPIO6, HALMAC_GPIO_OUT, 0x40, BIT(1) | BIT(0), BIT(0)} |
| #define HALMAC_GPIO6_WLPHY_DBG_GPIO6_8822B {HALMAC_WLPHY_DBG, HALMAC_GPIO6, HALMAC_GPIO_IN_OUT, 0x40, BIT(1) | BIT(0), BIT(1)} |
| #define HALMAC_GPIO6_BT_DBG_GPIO6_8822B {HALMAC_BT_DBG, HALMAC_GPIO6, HALMAC_GPIO_OUT, 0x40, BIT(1) | BIT(0), BIT(0) | BIT(1)} |
| #define HALMAC_GPIO6_SW_IO_8822B {HALMAC_SW_IO, HALMAC_GPIO6, HALMAC_GPIO_IN_OUT, 0x40, BIT(1) | BIT(0), 0} |
| |
| /* GPIO7 definition */ |
| #define HALMAC_GPIO7_BT_SPI_D3_8822B {HALMAC_BT_SFLASH, HALMAC_GPIO7, HALMAC_GPIO_IN_OUT, 0x66, BIT(4), BIT(4)} |
| #define HALMAC_GPIO7_WL_SPI_D3_8822B {HALMAC_WL_SFLASH, HALMAC_GPIO7, HALMAC_GPIO_IN_OUT, 0x42, BIT(3), BIT(3)} |
| #define HALMAC_GPIO7_EEDI_8822B {HALMAC_EEPROM, HALMAC_GPIO7, HALMAC_GPIO_OUT, 0x40, BIT(4), BIT(4)} |
| #define HALMAC_GPIO7_JTAG_TMS_8822B {HALMAC_JTAG, HALMAC_GPIO7, HALMAC_GPIO_IN, 0x67, BIT(0), BIT(0)} |
| #define HALMAC_GPIO7_BT_GPIO16_8822B {HALMAC_BT_GPIO, HALMAC_GPIO7, HALMAC_GPIO_IN_OUT, 0x67, BIT(2), BIT(2)} |
| #define HALMAC_GPIO7_SOUT_8822B {HALMAC_WL_UART, HALMAC_GPIO7, HALMAC_GPIO_OUT, 0x41, BIT(0), BIT(0)} |
| #define HALMAC_GPIO7_WLMAC_DBG_GPIO7_8822B {HALMAC_WLMAC_DBG, HALMAC_GPIO7, HALMAC_GPIO_OUT, 0x40, BIT(1) | BIT(0), BIT(0)} |
| #define HALMAC_GPIO7_WLPHY_DBG_GPIO7_8822B {HALMAC_WLPHY_DBG, HALMAC_GPIO7, HALMAC_GPIO_IN_OUT, 0x40, BIT(1) | BIT(0), BIT(1)} |
| #define HALMAC_GPIO7_BT_DBG_GPIO7_8822B {HALMAC_BT_DBG, HALMAC_GPIO7, HALMAC_GPIO_OUT, 0x40, BIT(1) | BIT(0), BIT(0) | BIT(1)} |
| #define HALMAC_GPIO7_SW_IO_8822B {HALMAC_SW_IO, HALMAC_GPIO7, HALMAC_GPIO_IN_OUT, 0x40, BIT(1) | BIT(0), 0} |
| |
| /* GPIO8 definition */ |
| #define HALMAC_GPIO8_WL_EXT_WOL_8822B {HALMAC_WL_HW_EXTWOL, HALMAC_GPIO8, HALMAC_GPIO_IN, 0x4a, BIT(0) | BIT(1), BIT(0) | BIT(1)} |
| #define HALMAC_GPIO8_WL_LED_8822B {HALMAC_WL_LED, HALMAC_GPIO8, HALMAC_GPIO_OUT, 0x4e, BIT(5), BIT(5)} |
| #define HALMAC_GPIO8_SW_IO_8822B {HALMAC_SW_IO, HALMAC_GPIO8, HALMAC_GPIO_IN_OUT, 0x40, BIT(1) | BIT(0), 0} |
| |
| /* GPIO9 definition */ |
| #define HALMAC_GPIO9_DIS_WL_N_8822B {HALMAC_WL_HWPDN, HALMAC_GPIO9, HALMAC_GPIO_IN, 0x68, BIT(3) | BIT(0), BIT(3) | BIT(0)} |
| #define HALMAC_GPIO9_WL_EXT_WOL_8822B {HALMAC_WL_HW_EXTWOL, HALMAC_GPIO9, HALMAC_GPIO_IN, 0x4a, BIT(0) | BIT(1), BIT(0)} |
| #define HALMAC_GPIO9_USCTS0_8822B {HALMAC_UART0, HALMAC_GPIO9, HALMAC_GPIO_IN, 0x66, BIT(6), BIT(6)} |
| #define HALMAC_GPIO9_SW_IO_8822B {HALMAC_SW_IO, HALMAC_GPIO9, HALMAC_GPIO_IN_OUT, 0x40, BIT(1) | BIT(0), 0} |
| |
| /* GPIO10 definition */ |
| #define HALMAC_GPIO10_SW_IO_8822B {HALMAC_SW_IO, HALMAC_GPIO10, HALMAC_GPIO_IN_OUT, 0x40, BIT(1) | BIT(0), 0} |
| |
| /* GPIO11 definition */ |
| #define HALMAC_GPIO11_DIS_BT_N_8822B {HALMAC_BT_HWPDN, HALMAC_GPIO11, HALMAC_GPIO_IN, 0x6a, BIT(0), BIT(0)} |
| #define HALMAC_GPIO11_USOUT0_8822B {HALMAC_UART0, HALMAC_GPIO11, HALMAC_GPIO_OUT, 0x66, BIT(6), BIT(6)} |
| #define HALMAC_GPIO11_SW_IO_8822B {HALMAC_SW_IO, HALMAC_GPIO11, HALMAC_GPIO_IN_OUT, 0x40, BIT(1) | BIT(0), 0} |
| |
| /* GPIO12 definition */ |
| #define HALMAC_GPIO12_USIN0_8822B {HALMAC_UART0, HALMAC_GPIO12, HALMAC_GPIO_IN, 0x66, BIT(6), BIT(6)} |
| #define HALMAC_GPIO12_SW_IO_8822B {HALMAC_SW_IO, HALMAC_GPIO12, HALMAC_GPIO_IN_OUT, 0x40, BIT(1) | BIT(0), 0} |
| |
| /* GPIO13 definition */ |
| #define HALMAC_GPIO13_BT_WAKE_8822B {HALMAC_GPIO13_14_WL_CTRL_EN, HALMAC_GPIO13, HALMAC_GPIO_IN, 0x4e, BIT(6), BIT(6)} |
| #define HALMAC_GPIO13_SW_IO_8822B {HALMAC_SW_IO, HALMAC_GPIO13, HALMAC_GPIO_IN_OUT, 0x40, BIT(1) | BIT(0), 0} |
| |
| /* GPIO14 definition */ |
| #define HALMAC_GPIO14_UART_WAKE_8822B {HALMAC_GPIO13_14_WL_CTRL_EN, HALMAC_GPIO14, HALMAC_GPIO_OUT, 0x4e, BIT(6), BIT(6)} |
| #define HALMAC_GPIO14_SW_IO_8822B {HALMAC_SW_IO, HALMAC_GPIO14, HALMAC_GPIO_IN_OUT, 0x40, BIT(1) | BIT(0), 0} |
| |
| /* GPIO15 definition */ |
| #define HALMAC_GPIO15_EXT_XTAL_8822B {HALMAC_EXT_XTAL, HALMAC_GPIO15, HALMAC_GPIO_OUT, 0x66, BIT(7), BIT(7)} |
| #define HALMAC_GPIO15_SW_IO_8822B {HALMAC_SW_IO, HALMAC_GPIO15, HALMAC_GPIO_IN_OUT, 0x40, BIT(1) | BIT(0), 0} |
| |
| HALMAC_RET_STATUS |
| halmac_pinmux_get_func_8822b( |
| IN PHALMAC_ADAPTER pHalmac_adapter, |
| IN HALMAC_GPIO_FUNC gpio_func, |
| OUT u8 *pEnable |
| ); |
| |
| HALMAC_RET_STATUS |
| halmac_pinmux_set_func_8822b( |
| IN PHALMAC_ADAPTER pHalmac_adapter, |
| IN HALMAC_GPIO_FUNC gpio_func |
| ); |
| |
| HALMAC_RET_STATUS |
| halmac_pinmux_free_func_8822b( |
| IN PHALMAC_ADAPTER pHalmac_adapter, |
| IN HALMAC_GPIO_FUNC gpio_func |
| ); |
| |
| #endif /* HALMAC_8822B_SUPPORT */ |
| |
| #endif/* _HALMAC_GPIO_8822B_H_ */ |