2019-11-09 10:12:08 +00:00
|
|
|
/******************************************************************************
|
|
|
|
*
|
|
|
|
* Copyright(c) 2007 - 2017 Realtek Corporation.
|
|
|
|
*
|
|
|
|
* 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 __RTL8188E_SPEC_H__
|
|
|
|
#define __RTL8188E_SPEC_H__
|
|
|
|
|
|
|
|
|
|
|
|
/* ************************************************************
|
|
|
|
* 8188E Regsiter offset definition
|
|
|
|
* ************************************************************ */
|
|
|
|
|
|
|
|
|
|
|
|
/* ************************************************************
|
|
|
|
*
|
|
|
|
* ************************************************************ */
|
|
|
|
|
|
|
|
/* -----------------------------------------------------
|
|
|
|
*
|
|
|
|
* 0x0000h ~ 0x00FFh System Configuration
|
|
|
|
*
|
|
|
|
* ----------------------------------------------------- */
|
|
|
|
#define REG_BB_PAD_CTRL 0x0064
|
|
|
|
#define REG_HMEBOX_E0 0x0088
|
|
|
|
#define REG_HMEBOX_E1 0x008A
|
|
|
|
#define REG_HMEBOX_E2 0x008C
|
|
|
|
#define REG_HMEBOX_E3 0x008E
|
|
|
|
#define REG_HMEBOX_EXT_0 0x01F0
|
|
|
|
#define REG_HMEBOX_EXT_1 0x01F4
|
|
|
|
#define REG_HMEBOX_EXT_2 0x01F8
|
|
|
|
#define REG_HMEBOX_EXT_3 0x01FC
|
|
|
|
#define REG_HIMR_88E 0x00B0 /* RTL8188E */
|
|
|
|
#define REG_HISR_88E 0x00B4 /* RTL8188E */
|
|
|
|
#define REG_HIMRE_88E 0x00B8 /* RTL8188E */
|
|
|
|
#define REG_HISRE_88E 0x00BC /* RTL8188E */
|
|
|
|
|
|
|
|
#define REG_DBI_WDATA_8188E 0x0348 /* DBI Write data */
|
|
|
|
#define REG_DBI_RDATA_8188E 0x034C /* DBI Read data */
|
|
|
|
#define REG_DBI_ADDR_8188E 0x0350 /* DBI Address */
|
|
|
|
#define REG_DBI_FLAG_8188E 0x0352 /* DBI Read/Write Flag */
|
|
|
|
#define REG_MDIO_WDATA_8188E 0x0354 /* MDIO for Write PCIE PHY */
|
|
|
|
#define REG_MDIO_RDATA_8188E 0x0356 /* MDIO for Reads PCIE PHY */
|
|
|
|
#define REG_MDIO_CTL_8188E 0x0358 /* MDIO for Control */
|
|
|
|
|
|
|
|
#define REG_MACID_NO_LINK_0 0x0484
|
|
|
|
#define REG_MACID_NO_LINK_1 0x0488
|
|
|
|
#define REG_MACID_PAUSE_0 0x048c
|
|
|
|
#define REG_MACID_PAUSE_1 0x0490
|
|
|
|
|
|
|
|
/* -----------------------------------------------------
|
|
|
|
*
|
|
|
|
* 0x0100h ~ 0x01FFh MACTOP General Configuration
|
|
|
|
*
|
|
|
|
* ----------------------------------------------------- */
|
|
|
|
#define REG_PKTBUF_DBG_ADDR (REG_PKTBUF_DBG_CTRL)
|
|
|
|
#define REG_RXPKTBUF_DBG (REG_PKTBUF_DBG_CTRL+2)
|
|
|
|
#define REG_TXPKTBUF_DBG (REG_PKTBUF_DBG_CTRL+3)
|
|
|
|
#define REG_WOWLAN_WAKE_REASON REG_MCUTST_WOWLAN
|
|
|
|
|
|
|
|
/* -----------------------------------------------------
|
|
|
|
*
|
|
|
|
* 0x0200h ~ 0x027Fh TXDMA Configuration
|
|
|
|
*
|
|
|
|
* ----------------------------------------------------- */
|
|
|
|
|
|
|
|
/* -----------------------------------------------------
|
|
|
|
*
|
|
|
|
* 0x0280h ~ 0x02FFh RXDMA Configuration
|
|
|
|
*
|
|
|
|
* ----------------------------------------------------- */
|
|
|
|
|
|
|
|
/* -----------------------------------------------------
|
|
|
|
*
|
|
|
|
* 0x0300h ~ 0x03FFh PCIe
|
|
|
|
*
|
|
|
|
* ----------------------------------------------------- */
|
|
|
|
#define REG_PCIE_HRPWM_8188E 0x0361 /* PCIe RPWM */
|
|
|
|
#define REG_PCIE_HCPWM_8188E 0x0363 /* PCIe CPWM */
|
|
|
|
|
|
|
|
/* -----------------------------------------------------
|
|
|
|
*
|
|
|
|
* 0x0400h ~ 0x047Fh Protocol Configuration
|
|
|
|
*
|
|
|
|
* ----------------------------------------------------- */
|
|
|
|
#ifdef CONFIG_WOWLAN
|
|
|
|
#define REG_TXPKTBUF_IV_LOW 0x01a4
|
|
|
|
#define REG_TXPKTBUF_IV_HIGH 0x01a8
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/* -----------------------------------------------------
|
|
|
|
*
|
|
|
|
* 0x0500h ~ 0x05FFh EDCA Configuration
|
|
|
|
*
|
|
|
|
* ----------------------------------------------------- */
|
|
|
|
|
|
|
|
/* -----------------------------------------------------
|
|
|
|
*
|
|
|
|
* 0x0600h ~ 0x07FFh WMAC Configuration
|
|
|
|
*
|
|
|
|
* ----------------------------------------------------- */
|
|
|
|
#ifdef CONFIG_RF_POWER_TRIM
|
|
|
|
#define EEPROM_RF_GAIN_OFFSET 0xC1
|
|
|
|
#define EEPROM_RF_GAIN_VAL 0xF6
|
|
|
|
#define EEPROM_THERMAL_OFFSET 0xF5
|
|
|
|
#endif /*CONFIG_RF_POWER_TRIM*/
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
|
|
* 88E Driver Initialization Offload REG_FDHM0(Offset 0x88, 8 bits)
|
|
|
|
* ----------------------------------------------------------------------------
|
|
|
|
* IOL config for REG_FDHM0(Reg0x88) */
|
|
|
|
#define CMD_INIT_LLT BIT0
|
|
|
|
#define CMD_READ_EFUSE_MAP BIT1
|
|
|
|
#define CMD_EFUSE_PATCH BIT2
|
|
|
|
#define CMD_IOCONFIG BIT3
|
|
|
|
#define CMD_INIT_LLT_ERR BIT4
|
|
|
|
#define CMD_READ_EFUSE_MAP_ERR BIT5
|
|
|
|
#define CMD_EFUSE_PATCH_ERR BIT6
|
|
|
|
#define CMD_IOCONFIG_ERR BIT7
|
|
|
|
|
|
|
|
/* -----------------------------------------------------
|
|
|
|
*
|
|
|
|
* Redifine register definition for compatibility
|
|
|
|
*
|
|
|
|
* ----------------------------------------------------- */
|
|
|
|
|
|
|
|
/* TODO: use these definition when using REG_xxx naming rule.
|
|
|
|
* NOTE: DO NOT Remove these definition. Use later. */
|
|
|
|
#define ISR_88E REG_HISR_88E
|
|
|
|
|
|
|
|
#ifdef CONFIG_PCI_HCI
|
|
|
|
/* #define IMR_RX_MASK (IMR_ROK_88E|IMR_RDU_88E|IMR_RXFOVW_88E) */
|
|
|
|
#define IMR_TX_MASK (IMR_VODOK_88E | IMR_VIDOK_88E | IMR_BEDOK_88E | IMR_BKDOK_88E | IMR_MGNTDOK_88E | IMR_HIGHDOK_88E | IMR_BCNDERR0_88E)
|
|
|
|
|
|
|
|
#ifdef CONFIG_CONCURRENT_MODE
|
|
|
|
#define RT_BCN_INT_MASKS (IMR_BCNDMAINT0_88E | IMR_TBDOK_88E | IMR_TBDER_88E | IMR_BCNDMAINT_E_88E)
|
|
|
|
#else
|
|
|
|
#define RT_BCN_INT_MASKS (IMR_BCNDMAINT0_88E | IMR_TBDOK_88E | IMR_TBDER_88E)
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#define RT_AC_INT_MASKS (IMR_VIDOK_88E | IMR_VODOK_88E | IMR_BEDOK_88E | IMR_BKDOK_88E)
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
|
|
* 8192C EEPROM/EFUSE share register definition.
|
|
|
|
* ---------------------------------------------------------------------------- */
|
|
|
|
|
|
|
|
#define EFUSE_ACCESS_ON 0x69 /* For RTL8723 only. */
|
|
|
|
#define EFUSE_ACCESS_OFF 0x00 /* For RTL8723 only. */
|
|
|
|
|
|
|
|
#endif /* __RTL8188E_SPEC_H__ */
|