15bd4f692SLarry Finger /* SPDX-License-Identifier: GPL-2.0 */ 25bd4f692SLarry Finger /* Copyright(c) 2009-2012 Realtek Corporation.*/ 33de1ef73SChaoming Li 43de1ef73SChaoming Li #ifndef __RTL92D_REG_H__ 53de1ef73SChaoming Li #define __RTL92D_REG_H__ 63de1ef73SChaoming Li 73de1ef73SChaoming Li /* ----------------------------------------------------- */ 83de1ef73SChaoming Li /* 0x0000h ~ 0x00FFh System Configuration */ 93de1ef73SChaoming Li /* ----------------------------------------------------- */ 103de1ef73SChaoming Li #define REG_SYS_ISO_CTRL 0x0000 113de1ef73SChaoming Li #define REG_SYS_FUNC_EN 0x0002 123de1ef73SChaoming Li #define REG_APS_FSMCO 0x0004 133de1ef73SChaoming Li #define REG_SYS_CLKR 0x0008 143de1ef73SChaoming Li #define REG_9346CR 0x000A 153de1ef73SChaoming Li #define REG_EE_VPD 0x000C 163de1ef73SChaoming Li #define REG_AFE_MISC 0x0010 173de1ef73SChaoming Li #define REG_SPS0_CTRL 0x0011 183de1ef73SChaoming Li #define REG_POWER_OFF_IN_PROCESS 0x0017 193de1ef73SChaoming Li #define REG_SPS_OCP_CFG 0x0018 203de1ef73SChaoming Li #define REG_RSV_CTRL 0x001C 213de1ef73SChaoming Li #define REG_RF_CTRL 0x001F 223de1ef73SChaoming Li #define REG_LDOA15_CTRL 0x0020 233de1ef73SChaoming Li #define REG_LDOV12D_CTRL 0x0021 243de1ef73SChaoming Li #define REG_LDOHCI12_CTRL 0x0022 253de1ef73SChaoming Li #define REG_LPLDO_CTRL 0x0023 263de1ef73SChaoming Li #define REG_AFE_XTAL_CTRL 0x0024 273de1ef73SChaoming Li #define REG_AFE_PLL_CTRL 0x0028 283de1ef73SChaoming Li /* for 92d, DMDP,SMSP,DMSP contrl */ 293de1ef73SChaoming Li #define REG_MAC_PHY_CTRL 0x002c 303de1ef73SChaoming Li #define REG_EFUSE_CTRL 0x0030 313de1ef73SChaoming Li #define REG_EFUSE_TEST 0x0034 323de1ef73SChaoming Li #define REG_PWR_DATA 0x0038 333de1ef73SChaoming Li #define REG_CAL_TIMER 0x003C 343de1ef73SChaoming Li #define REG_ACLK_MON 0x003E 353de1ef73SChaoming Li #define REG_GPIO_MUXCFG 0x0040 363de1ef73SChaoming Li #define REG_GPIO_IO_SEL 0x0042 373de1ef73SChaoming Li #define REG_MAC_PINMUX_CFG 0x0043 383de1ef73SChaoming Li #define REG_GPIO_PIN_CTRL 0x0044 393de1ef73SChaoming Li #define REG_GPIO_INTM 0x0048 403de1ef73SChaoming Li #define REG_LEDCFG0 0x004C 413de1ef73SChaoming Li #define REG_LEDCFG1 0x004D 423de1ef73SChaoming Li #define REG_LEDCFG2 0x004E 433de1ef73SChaoming Li #define REG_LEDCFG3 0x004F 443de1ef73SChaoming Li #define REG_FSIMR 0x0050 453de1ef73SChaoming Li #define REG_FSISR 0x0054 463de1ef73SChaoming Li 473de1ef73SChaoming Li #define REG_MCUFWDL 0x0080 483de1ef73SChaoming Li 493de1ef73SChaoming Li #define REG_HMEBOX_EXT_0 0x0088 503de1ef73SChaoming Li #define REG_HMEBOX_EXT_1 0x008A 513de1ef73SChaoming Li #define REG_HMEBOX_EXT_2 0x008C 523de1ef73SChaoming Li #define REG_HMEBOX_EXT_3 0x008E 53*d75589a0SBitterblue Smith #define SIZE_OF_REG_HMEBOX_EXT 2 543de1ef73SChaoming Li 553de1ef73SChaoming Li #define REG_BIST_SCAN 0x00D0 563de1ef73SChaoming Li #define REG_BIST_RPT 0x00D4 573de1ef73SChaoming Li #define REG_BIST_ROM_RPT 0x00D8 583de1ef73SChaoming Li #define REG_USB_SIE_INTF 0x00E0 593de1ef73SChaoming Li #define REG_PCIE_MIO_INTF 0x00E4 603de1ef73SChaoming Li #define REG_PCIE_MIO_INTD 0x00E8 613de1ef73SChaoming Li #define REG_HPON_FSM 0x00EC 623de1ef73SChaoming Li #define REG_SYS_CFG 0x00F0 633de1ef73SChaoming Li #define REG_MAC_PHY_CTRL_NORMAL 0x00f8 643de1ef73SChaoming Li 653de1ef73SChaoming Li #define REG_MAC0 0x0081 663de1ef73SChaoming Li #define REG_MAC1 0x0053 673de1ef73SChaoming Li #define FW_MAC0_READY 0x18 683de1ef73SChaoming Li #define FW_MAC1_READY 0x1A 693de1ef73SChaoming Li #define MAC0_ON BIT(7) 703de1ef73SChaoming Li #define MAC1_ON BIT(0) 713de1ef73SChaoming Li #define MAC0_READY BIT(0) 723de1ef73SChaoming Li #define MAC1_READY BIT(0) 733de1ef73SChaoming Li 743de1ef73SChaoming Li /* ----------------------------------------------------- */ 753de1ef73SChaoming Li /* 0x0100h ~ 0x01FFh MACTOP General Configuration */ 763de1ef73SChaoming Li /* ----------------------------------------------------- */ 773de1ef73SChaoming Li #define REG_CR 0x0100 783de1ef73SChaoming Li #define REG_PBP 0x0104 793de1ef73SChaoming Li #define REG_TRXDMA_CTRL 0x010C 803de1ef73SChaoming Li #define REG_TRXFF_BNDY 0x0114 813de1ef73SChaoming Li #define REG_TRXFF_STATUS 0x0118 823de1ef73SChaoming Li #define REG_RXFF_PTR 0x011C 833de1ef73SChaoming Li #define REG_HIMR 0x0120 843de1ef73SChaoming Li #define REG_HISR 0x0124 853de1ef73SChaoming Li #define REG_HIMRE 0x0128 863de1ef73SChaoming Li #define REG_HISRE 0x012C 873de1ef73SChaoming Li #define REG_CPWM 0x012F 883de1ef73SChaoming Li #define REG_FWIMR 0x0130 893de1ef73SChaoming Li #define REG_FWISR 0x0134 903de1ef73SChaoming Li #define REG_PKTBUF_DBG_CTRL 0x0140 913de1ef73SChaoming Li #define REG_PKTBUF_DBG_DATA_L 0x0144 923de1ef73SChaoming Li #define REG_PKTBUF_DBG_DATA_H 0x0148 933de1ef73SChaoming Li 943de1ef73SChaoming Li #define REG_TC0_CTRL 0x0150 953de1ef73SChaoming Li #define REG_TC1_CTRL 0x0154 963de1ef73SChaoming Li #define REG_TC2_CTRL 0x0158 973de1ef73SChaoming Li #define REG_TC3_CTRL 0x015C 983de1ef73SChaoming Li #define REG_TC4_CTRL 0x0160 993de1ef73SChaoming Li #define REG_TCUNIT_BASE 0x0164 1003de1ef73SChaoming Li #define REG_MBIST_START 0x0174 1013de1ef73SChaoming Li #define REG_MBIST_DONE 0x0178 1023de1ef73SChaoming Li #define REG_MBIST_FAIL 0x017C 1033de1ef73SChaoming Li #define REG_C2HEVT_MSG_NORMAL 0x01A0 1043de1ef73SChaoming Li #define REG_C2HEVT_MSG_TEST 0x01B8 1053de1ef73SChaoming Li #define REG_C2HEVT_CLEAR 0x01BF 1063de1ef73SChaoming Li #define REG_MCUTST_1 0x01c0 1073de1ef73SChaoming Li #define REG_FMETHR 0x01C8 1083de1ef73SChaoming Li #define REG_HMETFR 0x01CC 1093de1ef73SChaoming Li #define REG_HMEBOX_0 0x01D0 1103de1ef73SChaoming Li #define REG_HMEBOX_1 0x01D4 1113de1ef73SChaoming Li #define REG_HMEBOX_2 0x01D8 1123de1ef73SChaoming Li #define REG_HMEBOX_3 0x01DC 113*d75589a0SBitterblue Smith #define SIZE_OF_REG_HMEBOX 4 1143de1ef73SChaoming Li 1153de1ef73SChaoming Li #define REG_LLT_INIT 0x01E0 1163de1ef73SChaoming Li #define REG_BB_ACCEESS_CTRL 0x01E8 1173de1ef73SChaoming Li #define REG_BB_ACCESS_DATA 0x01EC 1183de1ef73SChaoming Li 1193de1ef73SChaoming Li 1203de1ef73SChaoming Li /* ----------------------------------------------------- */ 1213de1ef73SChaoming Li /* 0x0200h ~ 0x027Fh TXDMA Configuration */ 1223de1ef73SChaoming Li /* ----------------------------------------------------- */ 1233de1ef73SChaoming Li #define REG_RQPN 0x0200 1243de1ef73SChaoming Li #define REG_FIFOPAGE 0x0204 1253de1ef73SChaoming Li #define REG_TDECTRL 0x0208 1263de1ef73SChaoming Li #define REG_TXDMA_OFFSET_CHK 0x020C 1273de1ef73SChaoming Li #define REG_TXDMA_STATUS 0x0210 1283de1ef73SChaoming Li #define REG_RQPN_NPQ 0x0214 1293de1ef73SChaoming Li 1303de1ef73SChaoming Li /* ----------------------------------------------------- */ 1313de1ef73SChaoming Li /* 0x0280h ~ 0x02FFh RXDMA Configuration */ 1323de1ef73SChaoming Li /* ----------------------------------------------------- */ 1333de1ef73SChaoming Li #define REG_RXDMA_AGG_PG_TH 0x0280 1343de1ef73SChaoming Li #define REG_RXPKT_NUM 0x0284 1353de1ef73SChaoming Li #define REG_RXDMA_STATUS 0x0288 1363de1ef73SChaoming Li 1373de1ef73SChaoming Li /* ----------------------------------------------------- */ 1383de1ef73SChaoming Li /* 0x0300h ~ 0x03FFh PCIe */ 1393de1ef73SChaoming Li /* ----------------------------------------------------- */ 1403de1ef73SChaoming Li #define REG_PCIE_CTRL_REG 0x0300 1413de1ef73SChaoming Li #define REG_INT_MIG 0x0304 1423de1ef73SChaoming Li #define REG_BCNQ_DESA 0x0308 1433de1ef73SChaoming Li #define REG_HQ_DESA 0x0310 1443de1ef73SChaoming Li #define REG_MGQ_DESA 0x0318 1453de1ef73SChaoming Li #define REG_VOQ_DESA 0x0320 1463de1ef73SChaoming Li #define REG_VIQ_DESA 0x0328 1473de1ef73SChaoming Li #define REG_BEQ_DESA 0x0330 1483de1ef73SChaoming Li #define REG_BKQ_DESA 0x0338 1493de1ef73SChaoming Li #define REG_RX_DESA 0x0340 1503de1ef73SChaoming Li #define REG_DBI 0x0348 1513de1ef73SChaoming Li #define REG_DBI_WDATA 0x0348 1523de1ef73SChaoming Li #define REG_DBI_RDATA 0x034C 1533de1ef73SChaoming Li #define REG_DBI_CTRL 0x0350 1543de1ef73SChaoming Li #define REG_DBI_FLAG 0x0352 1553de1ef73SChaoming Li #define REG_MDIO 0x0354 1563de1ef73SChaoming Li #define REG_DBG_SEL 0x0360 1573de1ef73SChaoming Li #define REG_PCIE_HRPWM 0x0361 1583de1ef73SChaoming Li #define REG_PCIE_HCPWM 0x0363 1593de1ef73SChaoming Li #define REG_UART_CTRL 0x0364 1603de1ef73SChaoming Li #define REG_UART_TX_DESA 0x0370 1613de1ef73SChaoming Li #define REG_UART_RX_DESA 0x0378 1623de1ef73SChaoming Li 1633de1ef73SChaoming Li /* ----------------------------------------------------- */ 1643de1ef73SChaoming Li /* 0x0400h ~ 0x047Fh Protocol Configuration */ 1653de1ef73SChaoming Li /* ----------------------------------------------------- */ 1663de1ef73SChaoming Li #define REG_VOQ_INFORMATION 0x0400 1673de1ef73SChaoming Li #define REG_VIQ_INFORMATION 0x0404 1683de1ef73SChaoming Li #define REG_BEQ_INFORMATION 0x0408 1693de1ef73SChaoming Li #define REG_BKQ_INFORMATION 0x040C 1703de1ef73SChaoming Li #define REG_MGQ_INFORMATION 0x0410 1713de1ef73SChaoming Li #define REG_HGQ_INFORMATION 0x0414 1723de1ef73SChaoming Li #define REG_BCNQ_INFORMATION 0x0418 1733de1ef73SChaoming Li 1743de1ef73SChaoming Li 1753de1ef73SChaoming Li #define REG_CPU_MGQ_INFORMATION 0x041C 1763de1ef73SChaoming Li #define REG_FWHW_TXQ_CTRL 0x0420 1773de1ef73SChaoming Li #define REG_HWSEQ_CTRL 0x0423 1783de1ef73SChaoming Li #define REG_TXPKTBUF_BCNQ_BDNY 0x0424 1793de1ef73SChaoming Li #define REG_TXPKTBUF_MGQ_BDNY 0x0425 1803de1ef73SChaoming Li #define REG_MULTI_BCNQ_EN 0x0426 1813de1ef73SChaoming Li #define REG_MULTI_BCNQ_OFFSET 0x0427 1823de1ef73SChaoming Li #define REG_SPEC_SIFS 0x0428 1833de1ef73SChaoming Li #define REG_RL 0x042A 1843de1ef73SChaoming Li #define REG_DARFRC 0x0430 1853de1ef73SChaoming Li #define REG_RARFRC 0x0438 1863de1ef73SChaoming Li #define REG_RRSR 0x0440 1873de1ef73SChaoming Li #define REG_ARFR0 0x0444 1883de1ef73SChaoming Li #define REG_ARFR1 0x0448 1893de1ef73SChaoming Li #define REG_ARFR2 0x044C 1903de1ef73SChaoming Li #define REG_ARFR3 0x0450 1913de1ef73SChaoming Li #define REG_AGGLEN_LMT 0x0458 1923de1ef73SChaoming Li #define REG_AMPDU_MIN_SPACE 0x045C 1933de1ef73SChaoming Li #define REG_TXPKTBUF_WMAC_LBK_BF_HD 0x045D 1943de1ef73SChaoming Li #define REG_FAST_EDCA_CTRL 0x0460 1953de1ef73SChaoming Li #define REG_RD_RESP_PKT_TH 0x0463 1963de1ef73SChaoming Li #define REG_INIRTS_RATE_SEL 0x0480 1973de1ef73SChaoming Li #define REG_INIDATA_RATE_SEL 0x0484 1983de1ef73SChaoming Li #define REG_POWER_STATUS 0x04A4 1993de1ef73SChaoming Li #define REG_POWER_STAGE1 0x04B4 2003de1ef73SChaoming Li #define REG_POWER_STAGE2 0x04B8 2013de1ef73SChaoming Li #define REG_PKT_LIFE_TIME 0x04C0 2023de1ef73SChaoming Li #define REG_STBC_SETTING 0x04C4 2033de1ef73SChaoming Li #define REG_PROT_MODE_CTRL 0x04C8 2043de1ef73SChaoming Li #define REG_MAX_AGGR_NUM 0x04CA 2053de1ef73SChaoming Li #define REG_RTS_MAX_AGGR_NUM 0x04CB 2063de1ef73SChaoming Li #define REG_BAR_MODE_CTRL 0x04CC 2073de1ef73SChaoming Li #define REG_RA_TRY_RATE_AGG_LMT 0x04CF 2083de1ef73SChaoming Li #define REG_EARLY_MODE_CONTROL 0x4D0 2093de1ef73SChaoming Li #define REG_NQOS_SEQ 0x04DC 2103de1ef73SChaoming Li #define REG_QOS_SEQ 0x04DE 2113de1ef73SChaoming Li #define REG_NEED_CPU_HANDLE 0x04E0 2123de1ef73SChaoming Li #define REG_PKT_LOSE_RPT 0x04E1 2133de1ef73SChaoming Li #define REG_PTCL_ERR_STATUS 0x04E2 2143de1ef73SChaoming Li #define REG_DUMMY 0x04FC 2153de1ef73SChaoming Li 2163de1ef73SChaoming Li /* ----------------------------------------------------- */ 2173de1ef73SChaoming Li /* 0x0500h ~ 0x05FFh EDCA Configuration */ 2183de1ef73SChaoming Li /* ----------------------------------------------------- */ 2193de1ef73SChaoming Li #define REG_EDCA_VO_PARAM 0x0500 2203de1ef73SChaoming Li #define REG_EDCA_VI_PARAM 0x0504 2213de1ef73SChaoming Li #define REG_EDCA_BE_PARAM 0x0508 2223de1ef73SChaoming Li #define REG_EDCA_BK_PARAM 0x050C 2233de1ef73SChaoming Li #define REG_BCNTCFG 0x0510 2243de1ef73SChaoming Li #define REG_PIFS 0x0512 2253de1ef73SChaoming Li #define REG_RDG_PIFS 0x0513 2263de1ef73SChaoming Li #define REG_SIFS_CTX 0x0514 2273de1ef73SChaoming Li #define REG_SIFS_TRX 0x0516 2283de1ef73SChaoming Li #define REG_AGGR_BREAK_TIME 0x051A 2293de1ef73SChaoming Li #define REG_SLOT 0x051B 2303de1ef73SChaoming Li #define REG_TX_PTCL_CTRL 0x0520 2313de1ef73SChaoming Li #define REG_TXPAUSE 0x0522 2323de1ef73SChaoming Li #define REG_DIS_TXREQ_CLR 0x0523 2333de1ef73SChaoming Li #define REG_RD_CTRL 0x0524 2343de1ef73SChaoming Li #define REG_TBTT_PROHIBIT 0x0540 2353de1ef73SChaoming Li #define REG_RD_NAV_NXT 0x0544 2363de1ef73SChaoming Li #define REG_NAV_PROT_LEN 0x0546 2373de1ef73SChaoming Li #define REG_BCN_CTRL 0x0550 2383de1ef73SChaoming Li #define REG_MBID_NUM 0x0552 2393de1ef73SChaoming Li #define REG_DUAL_TSF_RST 0x0553 2403de1ef73SChaoming Li #define REG_BCN_INTERVAL 0x0554 2413de1ef73SChaoming Li #define REG_MBSSID_BCN_SPACE 0x0554 2423de1ef73SChaoming Li #define REG_DRVERLYINT 0x0558 2433de1ef73SChaoming Li #define REG_BCNDMATIM 0x0559 2443de1ef73SChaoming Li #define REG_ATIMWND 0x055A 2459da96c5eSKevin Lo #define REG_USTIME_TSF 0x055C 2463de1ef73SChaoming Li #define REG_BCN_MAX_ERR 0x055D 2473de1ef73SChaoming Li #define REG_RXTSF_OFFSET_CCK 0x055E 2483de1ef73SChaoming Li #define REG_RXTSF_OFFSET_OFDM 0x055F 2493de1ef73SChaoming Li #define REG_TSFTR 0x0560 2503de1ef73SChaoming Li #define REG_INIT_TSFTR 0x0564 2513de1ef73SChaoming Li #define REG_PSTIMER 0x0580 2523de1ef73SChaoming Li #define REG_TIMER0 0x0584 2533de1ef73SChaoming Li #define REG_TIMER1 0x0588 2543de1ef73SChaoming Li #define REG_ACMHWCTRL 0x05C0 2553de1ef73SChaoming Li #define REG_ACMRSTCTRL 0x05C1 2563de1ef73SChaoming Li #define REG_ACMAVG 0x05C2 2573de1ef73SChaoming Li #define REG_VO_ADMTIME 0x05C4 2583de1ef73SChaoming Li #define REG_VI_ADMTIME 0x05C6 2593de1ef73SChaoming Li #define REG_BE_ADMTIME 0x05C8 2603de1ef73SChaoming Li #define REG_EDCA_RANDOM_GEN 0x05CC 2613de1ef73SChaoming Li #define REG_SCH_TXCMD 0x05D0 2623de1ef73SChaoming Li 2633de1ef73SChaoming Li /* Dual MAC Co-Existence Register */ 2643de1ef73SChaoming Li #define REG_DMC 0x05F0 2653de1ef73SChaoming Li 2663de1ef73SChaoming Li /* ----------------------------------------------------- */ 2673de1ef73SChaoming Li /* 0x0600h ~ 0x07FFh WMAC Configuration */ 2683de1ef73SChaoming Li /* ----------------------------------------------------- */ 2693de1ef73SChaoming Li #define REG_APSD_CTRL 0x0600 2703de1ef73SChaoming Li #define REG_BWOPMODE 0x0603 2713de1ef73SChaoming Li #define REG_TCR 0x0604 2723de1ef73SChaoming Li #define REG_RCR 0x0608 2733de1ef73SChaoming Li #define REG_RX_PKT_LIMIT 0x060C 2743de1ef73SChaoming Li #define REG_RX_DLK_TIME 0x060D 2753de1ef73SChaoming Li #define REG_RX_DRVINFO_SZ 0x060F 2763de1ef73SChaoming Li 2773de1ef73SChaoming Li #define REG_MACID 0x0610 2783de1ef73SChaoming Li #define REG_BSSID 0x0618 2793de1ef73SChaoming Li #define REG_MAR 0x0620 2803de1ef73SChaoming Li #define REG_MBIDCAMCFG 0x0628 2813de1ef73SChaoming Li 2823de1ef73SChaoming Li #define REG_USTIME_EDCA 0x0638 2833de1ef73SChaoming Li #define REG_MAC_SPEC_SIFS 0x063A 2843de1ef73SChaoming Li #define REG_RESP_SIFS_CCK 0x063C 2853de1ef73SChaoming Li #define REG_RESP_SIFS_OFDM 0x063E 2863de1ef73SChaoming Li #define REG_ACKTO 0x0640 2873de1ef73SChaoming Li #define REG_CTS2TO 0x0641 2883de1ef73SChaoming Li #define REG_EIFS 0x0642 2893de1ef73SChaoming Li 2903de1ef73SChaoming Li 2913de1ef73SChaoming Li /* WMA, BA, CCX */ 2923de1ef73SChaoming Li #define REG_NAV_CTRL 0x0650 2933de1ef73SChaoming Li #define REG_BACAMCMD 0x0654 2943de1ef73SChaoming Li #define REG_BACAMCONTENT 0x0658 2953de1ef73SChaoming Li #define REG_LBDLY 0x0660 2963de1ef73SChaoming Li #define REG_FWDLY 0x0661 2973de1ef73SChaoming Li #define REG_RXERR_RPT 0x0664 2983de1ef73SChaoming Li #define REG_WMAC_TRXPTCL_CTL 0x0668 2993de1ef73SChaoming Li 3003de1ef73SChaoming Li 3013de1ef73SChaoming Li /* Security */ 3023de1ef73SChaoming Li #define REG_CAMCMD 0x0670 3033de1ef73SChaoming Li #define REG_CAMWRITE 0x0674 3043de1ef73SChaoming Li #define REG_CAMREAD 0x0678 3053de1ef73SChaoming Li #define REG_CAMDBG 0x067C 3063de1ef73SChaoming Li #define REG_SECCFG 0x0680 3073de1ef73SChaoming Li 3083de1ef73SChaoming Li /* Power */ 3093de1ef73SChaoming Li #define REG_WOW_CTRL 0x0690 3103de1ef73SChaoming Li #define REG_PSSTATUS 0x0691 3113de1ef73SChaoming Li #define REG_PS_RX_INFO 0x0692 3123de1ef73SChaoming Li #define REG_LPNAV_CTRL 0x0694 3133de1ef73SChaoming Li #define REG_WKFMCAM_CMD 0x0698 3143de1ef73SChaoming Li #define REG_WKFMCAM_RWD 0x069C 3153de1ef73SChaoming Li #define REG_RXFLTMAP0 0x06A0 3163de1ef73SChaoming Li #define REG_RXFLTMAP1 0x06A2 3173de1ef73SChaoming Li #define REG_RXFLTMAP2 0x06A4 3183de1ef73SChaoming Li #define REG_BCN_PSR_RPT 0x06A8 3193de1ef73SChaoming Li #define REG_CALB32K_CTRL 0x06AC 3203de1ef73SChaoming Li #define REG_PKT_MON_CTRL 0x06B4 3213de1ef73SChaoming Li #define REG_BT_COEX_TABLE 0x06C0 3223de1ef73SChaoming Li #define REG_WMAC_RESP_TXINFO 0x06D8 3233de1ef73SChaoming Li 3243de1ef73SChaoming Li 3253de1ef73SChaoming Li /* ----------------------------------------------------- */ 3263de1ef73SChaoming Li /* Redifine 8192C register definition for compatibility */ 3273de1ef73SChaoming Li /* ----------------------------------------------------- */ 3283de1ef73SChaoming Li #define CR9346 REG_9346CR 3293de1ef73SChaoming Li #define MSR (REG_CR + 2) 3303de1ef73SChaoming Li #define ISR REG_HISR 3313de1ef73SChaoming Li #define TSFR REG_TSFTR 3323de1ef73SChaoming Li 3333de1ef73SChaoming Li #define MACIDR0 REG_MACID 3343de1ef73SChaoming Li #define MACIDR4 (REG_MACID + 4) 3353de1ef73SChaoming Li 3363de1ef73SChaoming Li #define PBP REG_PBP 3373de1ef73SChaoming Li 3383de1ef73SChaoming Li #define IDR0 MACIDR0 3393de1ef73SChaoming Li #define IDR4 MACIDR4 3403de1ef73SChaoming Li 3413de1ef73SChaoming Li /* ----------------------------------------------------- */ 3423de1ef73SChaoming Li /* 8192C (MSR) Media Status Register(Offset 0x4C, 8 bits)*/ 3433de1ef73SChaoming Li /* ----------------------------------------------------- */ 3443de1ef73SChaoming Li #define MSR_NOLINK 0x00 3453de1ef73SChaoming Li #define MSR_ADHOC 0x01 3463de1ef73SChaoming Li #define MSR_INFRA 0x02 3473de1ef73SChaoming Li #define MSR_AP 0x03 3488a607208SRickard Strandqvist #define MSR_MASK 0x03 3493de1ef73SChaoming Li 3503de1ef73SChaoming Li /* 6. Adaptive Control Registers (Offset: 0x0160 - 0x01CF) */ 3513de1ef73SChaoming Li /* ----------------------------------------------------- */ 3523de1ef73SChaoming Li /* 8192C Response Rate Set Register(offset 0x181, 24bits)*/ 3533de1ef73SChaoming Li /* ----------------------------------------------------- */ 3543de1ef73SChaoming Li #define RRSR_RSC_OFFSET 21 3553de1ef73SChaoming Li #define RRSR_SHORT_OFFSET 23 3563de1ef73SChaoming Li #define RRSR_RSC_BW_40M 0x600000 3573de1ef73SChaoming Li #define RRSR_RSC_UPSUBCHNL 0x400000 3583de1ef73SChaoming Li #define RRSR_RSC_LOWSUBCHNL 0x200000 3593de1ef73SChaoming Li #define RRSR_SHORT 0x800000 3603de1ef73SChaoming Li #define RRSR_1M BIT0 3613de1ef73SChaoming Li #define RRSR_2M BIT1 3623de1ef73SChaoming Li #define RRSR_5_5M BIT2 3633de1ef73SChaoming Li #define RRSR_11M BIT3 3643de1ef73SChaoming Li #define RRSR_6M BIT4 3653de1ef73SChaoming Li #define RRSR_9M BIT5 3663de1ef73SChaoming Li #define RRSR_12M BIT6 3673de1ef73SChaoming Li #define RRSR_18M BIT7 3683de1ef73SChaoming Li #define RRSR_24M BIT8 3693de1ef73SChaoming Li #define RRSR_36M BIT9 3703de1ef73SChaoming Li #define RRSR_48M BIT10 3713de1ef73SChaoming Li #define RRSR_54M BIT11 3723de1ef73SChaoming Li #define RRSR_MCS0 BIT12 3733de1ef73SChaoming Li #define RRSR_MCS1 BIT13 3743de1ef73SChaoming Li #define RRSR_MCS2 BIT14 3753de1ef73SChaoming Li #define RRSR_MCS3 BIT15 3763de1ef73SChaoming Li #define RRSR_MCS4 BIT16 3773de1ef73SChaoming Li #define RRSR_MCS5 BIT17 3783de1ef73SChaoming Li #define RRSR_MCS6 BIT18 3793de1ef73SChaoming Li #define RRSR_MCS7 BIT19 3803de1ef73SChaoming Li #define BRSR_ACKSHORTPMB BIT23 3813de1ef73SChaoming Li 3823de1ef73SChaoming Li /* ----------------------------------------------------- */ 3833de1ef73SChaoming Li /* 8192C Rate Definition */ 3843de1ef73SChaoming Li /* ----------------------------------------------------- */ 3853de1ef73SChaoming Li /* CCK */ 3863de1ef73SChaoming Li #define RATR_1M 0x00000001 3873de1ef73SChaoming Li #define RATR_2M 0x00000002 3883de1ef73SChaoming Li #define RATR_55M 0x00000004 3893de1ef73SChaoming Li #define RATR_11M 0x00000008 3903de1ef73SChaoming Li /* OFDM */ 3913de1ef73SChaoming Li #define RATR_6M 0x00000010 3923de1ef73SChaoming Li #define RATR_9M 0x00000020 3933de1ef73SChaoming Li #define RATR_12M 0x00000040 3943de1ef73SChaoming Li #define RATR_18M 0x00000080 3953de1ef73SChaoming Li #define RATR_24M 0x00000100 3963de1ef73SChaoming Li #define RATR_36M 0x00000200 3973de1ef73SChaoming Li #define RATR_48M 0x00000400 3983de1ef73SChaoming Li #define RATR_54M 0x00000800 3993de1ef73SChaoming Li /* MCS 1 Spatial Stream */ 4003de1ef73SChaoming Li #define RATR_MCS0 0x00001000 4013de1ef73SChaoming Li #define RATR_MCS1 0x00002000 4023de1ef73SChaoming Li #define RATR_MCS2 0x00004000 4033de1ef73SChaoming Li #define RATR_MCS3 0x00008000 4043de1ef73SChaoming Li #define RATR_MCS4 0x00010000 4053de1ef73SChaoming Li #define RATR_MCS5 0x00020000 4063de1ef73SChaoming Li #define RATR_MCS6 0x00040000 4073de1ef73SChaoming Li #define RATR_MCS7 0x00080000 4083de1ef73SChaoming Li /* MCS 2 Spatial Stream */ 4093de1ef73SChaoming Li #define RATR_MCS8 0x00100000 4103de1ef73SChaoming Li #define RATR_MCS9 0x00200000 4113de1ef73SChaoming Li #define RATR_MCS10 0x00400000 4123de1ef73SChaoming Li #define RATR_MCS11 0x00800000 4133de1ef73SChaoming Li #define RATR_MCS12 0x01000000 4143de1ef73SChaoming Li #define RATR_MCS13 0x02000000 4153de1ef73SChaoming Li #define RATR_MCS14 0x04000000 4163de1ef73SChaoming Li #define RATR_MCS15 0x08000000 4173de1ef73SChaoming Li 4183de1ef73SChaoming Li /* CCK */ 4193de1ef73SChaoming Li #define RATE_1M BIT(0) 4203de1ef73SChaoming Li #define RATE_2M BIT(1) 4213de1ef73SChaoming Li #define RATE_5_5M BIT(2) 4223de1ef73SChaoming Li #define RATE_11M BIT(3) 4233de1ef73SChaoming Li /* OFDM */ 4243de1ef73SChaoming Li #define RATE_6M BIT(4) 4253de1ef73SChaoming Li #define RATE_9M BIT(5) 4263de1ef73SChaoming Li #define RATE_12M BIT(6) 4273de1ef73SChaoming Li #define RATE_18M BIT(7) 4283de1ef73SChaoming Li #define RATE_24M BIT(8) 4293de1ef73SChaoming Li #define RATE_36M BIT(9) 4303de1ef73SChaoming Li #define RATE_48M BIT(10) 4313de1ef73SChaoming Li #define RATE_54M BIT(11) 4323de1ef73SChaoming Li /* MCS 1 Spatial Stream */ 4333de1ef73SChaoming Li #define RATE_MCS0 BIT(12) 4343de1ef73SChaoming Li #define RATE_MCS1 BIT(13) 4353de1ef73SChaoming Li #define RATE_MCS2 BIT(14) 4363de1ef73SChaoming Li #define RATE_MCS3 BIT(15) 4373de1ef73SChaoming Li #define RATE_MCS4 BIT(16) 4383de1ef73SChaoming Li #define RATE_MCS5 BIT(17) 4393de1ef73SChaoming Li #define RATE_MCS6 BIT(18) 4403de1ef73SChaoming Li #define RATE_MCS7 BIT(19) 4413de1ef73SChaoming Li /* MCS 2 Spatial Stream */ 4423de1ef73SChaoming Li #define RATE_MCS8 BIT(20) 4433de1ef73SChaoming Li #define RATE_MCS9 BIT(21) 4443de1ef73SChaoming Li #define RATE_MCS10 BIT(22) 4453de1ef73SChaoming Li #define RATE_MCS11 BIT(23) 4463de1ef73SChaoming Li #define RATE_MCS12 BIT(24) 4473de1ef73SChaoming Li #define RATE_MCS13 BIT(25) 4483de1ef73SChaoming Li #define RATE_MCS14 BIT(26) 4493de1ef73SChaoming Li #define RATE_MCS15 BIT(27) 4503de1ef73SChaoming Li 4513de1ef73SChaoming Li /* ALL CCK Rate */ 4523de1ef73SChaoming Li #define RATE_ALL_CCK (RATR_1M | RATR_2M | RATR_55M | \ 4533de1ef73SChaoming Li RATR_11M) 4543de1ef73SChaoming Li #define RATE_ALL_OFDM_AG (RATR_6M | RATR_9M | RATR_12M | \ 4553de1ef73SChaoming Li RATR_18M | RATR_24M | \ 4563de1ef73SChaoming Li RATR_36M | RATR_48M | RATR_54M) 4573de1ef73SChaoming Li #define RATE_ALL_OFDM_1SS (RATR_MCS0 | RATR_MCS1 | RATR_MCS2 | \ 4583de1ef73SChaoming Li RATR_MCS3 | RATR_MCS4 | RATR_MCS5 | \ 4593de1ef73SChaoming Li RATR_MCS6 | RATR_MCS7) 4603de1ef73SChaoming Li #define RATE_ALL_OFDM_2SS (RATR_MCS8 | RATR_MCS9 | RATR_MCS10 | \ 4613de1ef73SChaoming Li RATR_MCS11 | RATR_MCS12 | RATR_MCS13 | \ 4623de1ef73SChaoming Li RATR_MCS14 | RATR_MCS15) 4633de1ef73SChaoming Li 4643de1ef73SChaoming Li /* ----------------------------------------------------- */ 4653de1ef73SChaoming Li /* 8192C BW_OPMODE bits (Offset 0x203, 8bit) */ 4663de1ef73SChaoming Li /* ----------------------------------------------------- */ 4673de1ef73SChaoming Li #define BW_OPMODE_20MHZ BIT(2) 4683de1ef73SChaoming Li #define BW_OPMODE_5G BIT(1) 4693de1ef73SChaoming Li #define BW_OPMODE_11J BIT(0) 4703de1ef73SChaoming Li 4713de1ef73SChaoming Li 4723de1ef73SChaoming Li /* ----------------------------------------------------- */ 4733de1ef73SChaoming Li /* 8192C CAM Config Setting (offset 0x250, 1 byte) */ 4743de1ef73SChaoming Li /* ----------------------------------------------------- */ 4753de1ef73SChaoming Li #define CAM_VALID BIT(15) 4763de1ef73SChaoming Li #define CAM_NOTVALID 0x0000 4773de1ef73SChaoming Li #define CAM_USEDK BIT(5) 4783de1ef73SChaoming Li 4793de1ef73SChaoming Li #define CAM_NONE 0x0 4803de1ef73SChaoming Li #define CAM_WEP40 0x01 4813de1ef73SChaoming Li #define CAM_TKIP 0x02 4823de1ef73SChaoming Li #define CAM_AES 0x04 4833de1ef73SChaoming Li #define CAM_WEP104 0x05 4843de1ef73SChaoming Li #define CAM_SMS4 0x6 4853de1ef73SChaoming Li 4863de1ef73SChaoming Li 4873de1ef73SChaoming Li #define TOTAL_CAM_ENTRY 32 4883de1ef73SChaoming Li #define HALF_CAM_ENTRY 16 4893de1ef73SChaoming Li 4903de1ef73SChaoming Li #define CAM_WRITE BIT(16) 4913de1ef73SChaoming Li #define CAM_READ 0x00000000 4923de1ef73SChaoming Li #define CAM_POLLINIG BIT(31) 4933de1ef73SChaoming Li 4943de1ef73SChaoming Li /* 10. Power Save Control Registers (Offset: 0x0260 - 0x02DF) */ 4953de1ef73SChaoming Li #define WOW_PMEN BIT0 /* Power management Enable. */ 4963de1ef73SChaoming Li #define WOW_WOMEN BIT1 /* WoW function on or off. */ 4973de1ef73SChaoming Li #define WOW_MAGIC BIT2 /* Magic packet */ 4983de1ef73SChaoming Li #define WOW_UWF BIT3 /* Unicast Wakeup frame. */ 4993de1ef73SChaoming Li 5003de1ef73SChaoming Li /* 12. Host Interrupt Status Registers (Offset: 0x0300 - 0x030F) */ 5013de1ef73SChaoming Li /* ----------------------------------------------------- */ 5023de1ef73SChaoming Li /* 8190 IMR/ISR bits (offset 0xfd, 8bits) */ 5033de1ef73SChaoming Li /* ----------------------------------------------------- */ 5043de1ef73SChaoming Li #define IMR8190_DISABLED 0x0 5053de1ef73SChaoming Li #define IMR_BCNDMAINT6 BIT(31) 5063de1ef73SChaoming Li #define IMR_BCNDMAINT5 BIT(30) 5073de1ef73SChaoming Li #define IMR_BCNDMAINT4 BIT(29) 5083de1ef73SChaoming Li #define IMR_BCNDMAINT3 BIT(28) 5093de1ef73SChaoming Li #define IMR_BCNDMAINT2 BIT(27) 5103de1ef73SChaoming Li #define IMR_BCNDMAINT1 BIT(26) 5113de1ef73SChaoming Li #define IMR_BCNDOK8 BIT(25) 5123de1ef73SChaoming Li #define IMR_BCNDOK7 BIT(24) 5133de1ef73SChaoming Li #define IMR_BCNDOK6 BIT(23) 5143de1ef73SChaoming Li #define IMR_BCNDOK5 BIT(22) 5153de1ef73SChaoming Li #define IMR_BCNDOK4 BIT(21) 5163de1ef73SChaoming Li #define IMR_BCNDOK3 BIT(20) 5173de1ef73SChaoming Li #define IMR_BCNDOK2 BIT(19) 5183de1ef73SChaoming Li #define IMR_BCNDOK1 BIT(18) 5193de1ef73SChaoming Li #define IMR_TIMEOUT2 BIT(17) 5203de1ef73SChaoming Li #define IMR_TIMEOUT1 BIT(16) 5213de1ef73SChaoming Li #define IMR_TXFOVW BIT(15) 5223de1ef73SChaoming Li #define IMR_PSTIMEOUT BIT(14) 523e6deaf81SLarry Finger #define IMR_BCNINT BIT(13) 5243de1ef73SChaoming Li #define IMR_RXFOVW BIT(12) 5253de1ef73SChaoming Li #define IMR_RDU BIT(11) 5263de1ef73SChaoming Li #define IMR_ATIMEND BIT(10) 5273de1ef73SChaoming Li #define IMR_BDOK BIT(9) 5283de1ef73SChaoming Li #define IMR_HIGHDOK BIT(8) 5293de1ef73SChaoming Li #define IMR_TBDOK BIT(7) 5303de1ef73SChaoming Li #define IMR_MGNTDOK BIT(6) 5313de1ef73SChaoming Li #define IMR_TBDER BIT(5) 5323de1ef73SChaoming Li #define IMR_BKDOK BIT(4) 5333de1ef73SChaoming Li #define IMR_BEDOK BIT(3) 5343de1ef73SChaoming Li #define IMR_VIDOK BIT(2) 5353de1ef73SChaoming Li #define IMR_VODOK BIT(1) 5363de1ef73SChaoming Li #define IMR_ROK BIT(0) 5373de1ef73SChaoming Li 5383de1ef73SChaoming Li #define IMR_TXERR BIT(11) 5393de1ef73SChaoming Li #define IMR_RXERR BIT(10) 5403de1ef73SChaoming Li #define IMR_C2HCMD BIT(9) 5413de1ef73SChaoming Li #define IMR_CPWM BIT(8) 5423de1ef73SChaoming Li #define IMR_OCPINT BIT(1) 5433de1ef73SChaoming Li #define IMR_WLANOFF BIT(0) 5443de1ef73SChaoming Li 5453de1ef73SChaoming Li /* ----------------------------------------------------- */ 5463de1ef73SChaoming Li /* 8192C EFUSE */ 5473de1ef73SChaoming Li /* ----------------------------------------------------- */ 5483de1ef73SChaoming Li #define HWSET_MAX_SIZE 256 5493de1ef73SChaoming Li #define EFUSE_MAX_SECTION 32 5503de1ef73SChaoming Li #define EFUSE_REAL_CONTENT_LEN 512 5513de1ef73SChaoming Li 5523de1ef73SChaoming Li /* ----------------------------------------------------- */ 5533de1ef73SChaoming Li /* 8192C EEPROM/EFUSE share register definition. */ 5543de1ef73SChaoming Li /* ----------------------------------------------------- */ 5553de1ef73SChaoming Li #define EEPROM_DEFAULT_TSSI 0x0 5563de1ef73SChaoming Li #define EEPROM_DEFAULT_CRYSTALCAP 0x0 5573de1ef73SChaoming Li #define EEPROM_DEFAULT_THERMALMETER 0x12 5583de1ef73SChaoming Li 5593de1ef73SChaoming Li #define EEPROM_DEFAULT_TXPOWERLEVEL_2G 0x2C 5603de1ef73SChaoming Li #define EEPROM_DEFAULT_TXPOWERLEVEL_5G 0x22 5613de1ef73SChaoming Li 5623de1ef73SChaoming Li #define EEPROM_DEFAULT_HT40_2SDIFF 0x0 5633de1ef73SChaoming Li /* HT20<->40 default Tx Power Index Difference */ 5643de1ef73SChaoming Li #define EEPROM_DEFAULT_HT20_DIFF 2 5653de1ef73SChaoming Li /* OFDM Tx Power index diff */ 5663de1ef73SChaoming Li #define EEPROM_DEFAULT_LEGACYHTTXPOWERDIFF 0x4 5673de1ef73SChaoming Li #define EEPROM_DEFAULT_HT40_PWRMAXOFFSET 0 5683de1ef73SChaoming Li #define EEPROM_DEFAULT_HT20_PWRMAXOFFSET 0 5693de1ef73SChaoming Li 5703de1ef73SChaoming Li #define EEPROM_CHANNEL_PLAN_FCC 0x0 5713de1ef73SChaoming Li #define EEPROM_CHANNEL_PLAN_IC 0x1 5723de1ef73SChaoming Li #define EEPROM_CHANNEL_PLAN_ETSI 0x2 5733de1ef73SChaoming Li #define EEPROM_CHANNEL_PLAN_SPAIN 0x3 5743de1ef73SChaoming Li #define EEPROM_CHANNEL_PLAN_FRANCE 0x4 5753de1ef73SChaoming Li #define EEPROM_CHANNEL_PLAN_MKK 0x5 5763de1ef73SChaoming Li #define EEPROM_CHANNEL_PLAN_MKK1 0x6 5773de1ef73SChaoming Li #define EEPROM_CHANNEL_PLAN_ISRAEL 0x7 5783de1ef73SChaoming Li #define EEPROM_CHANNEL_PLAN_TELEC 0x8 5793de1ef73SChaoming Li #define EEPROM_CHANNEL_PLAN_GLOBAL_DOMAIN 0x9 5803de1ef73SChaoming Li #define EEPROM_CHANNEL_PLAN_WORLD_WIDE_13 0xA 5813de1ef73SChaoming Li #define EEPROM_CHANNEL_PLAN_NCC 0xB 5823de1ef73SChaoming Li #define EEPROM_CHANNEL_PLAN_BY_HW_MASK 0x80 5833de1ef73SChaoming Li 5843de1ef73SChaoming Li #define EEPROM_CID_DEFAULT 0x0 5853de1ef73SChaoming Li #define EEPROM_CID_TOSHIBA 0x4 5863de1ef73SChaoming Li #define EEPROM_CID_CCX 0x10 5873de1ef73SChaoming Li #define EEPROM_CID_QMI 0x0D 5883de1ef73SChaoming Li #define EEPROM_CID_WHQL 0xFE 5893de1ef73SChaoming Li 5903de1ef73SChaoming Li 5913de1ef73SChaoming Li #define RTL8192_EEPROM_ID 0x8129 5923de1ef73SChaoming Li #define EEPROM_WAPI_SUPPORT 0x78 5933de1ef73SChaoming Li 5943de1ef73SChaoming Li 5953de1ef73SChaoming Li #define RTL8190_EEPROM_ID 0x8129 /* 0-1 */ 5963de1ef73SChaoming Li #define EEPROM_HPON 0x02 /* LDO settings.2-5 */ 5973de1ef73SChaoming Li #define EEPROM_CLK 0x06 /* Clock settings.6-7 */ 5983de1ef73SChaoming Li #define EEPROM_MAC_FUNCTION 0x08 /* SE Test mode.8 */ 5993de1ef73SChaoming Li 6003de1ef73SChaoming Li #define EEPROM_VID 0x28 /* SE Vendor ID.A-B */ 6013de1ef73SChaoming Li #define EEPROM_DID 0x2A /* SE Device ID. C-D */ 6023de1ef73SChaoming Li #define EEPROM_SVID 0x2C /* SE Vendor ID.E-F */ 6033de1ef73SChaoming Li #define EEPROM_SMID 0x2E /* SE PCI Subsystem ID. 10-11 */ 6043de1ef73SChaoming Li 6053de1ef73SChaoming Li #define EEPROM_MAC_ADDR 0x16 /* SEMAC Address. 12-17 */ 6063de1ef73SChaoming Li #define EEPROM_MAC_ADDR_MAC0_92D 0x55 6073de1ef73SChaoming Li #define EEPROM_MAC_ADDR_MAC1_92D 0x5B 6083de1ef73SChaoming Li 6093de1ef73SChaoming Li /* 2.4G band Tx power index setting */ 6103de1ef73SChaoming Li #define EEPROM_CCK_TX_PWR_INX_2G 0x61 6113de1ef73SChaoming Li #define EEPROM_HT40_1S_TX_PWR_INX_2G 0x67 6123de1ef73SChaoming Li #define EEPROM_HT40_2S_TX_PWR_INX_DIFF_2G 0x6D 6133de1ef73SChaoming Li #define EEPROM_HT20_TX_PWR_INX_DIFF_2G 0x70 6143de1ef73SChaoming Li #define EEPROM_OFDM_TX_PWR_INX_DIFF_2G 0x73 6153de1ef73SChaoming Li #define EEPROM_HT40_MAX_PWR_OFFSET_2G 0x76 6163de1ef73SChaoming Li #define EEPROM_HT20_MAX_PWR_OFFSET_2G 0x79 6173de1ef73SChaoming Li 6183de1ef73SChaoming Li /*5GL channel 32-64 */ 6193de1ef73SChaoming Li #define EEPROM_HT40_1S_TX_PWR_INX_5GL 0x7C 6203de1ef73SChaoming Li #define EEPROM_HT40_2S_TX_PWR_INX_DIFF_5GL 0x82 6213de1ef73SChaoming Li #define EEPROM_HT20_TX_PWR_INX_DIFF_5GL 0x85 6223de1ef73SChaoming Li #define EEPROM_OFDM_TX_PWR_INX_DIFF_5GL 0x88 6233de1ef73SChaoming Li #define EEPROM_HT40_MAX_PWR_OFFSET_5GL 0x8B 6243de1ef73SChaoming Li #define EEPROM_HT20_MAX_PWR_OFFSET_5GL 0x8E 6253de1ef73SChaoming Li 6263de1ef73SChaoming Li /* 5GM channel 100-140 */ 6273de1ef73SChaoming Li #define EEPROM_HT40_1S_TX_PWR_INX_5GM 0x91 6283de1ef73SChaoming Li #define EEPROM_HT40_2S_TX_PWR_INX_DIFF_5GM 0x97 6293de1ef73SChaoming Li #define EEPROM_HT20_TX_PWR_INX_DIFF_5GM 0x9A 6303de1ef73SChaoming Li #define EEPROM_OFDM_TX_PWR_INX_DIFF_5GM 0x9D 6313de1ef73SChaoming Li #define EEPROM_HT40_MAX_PWR_OFFSET_5GM 0xA0 6323de1ef73SChaoming Li #define EEPROM_HT20_MAX_PWR_OFFSET_5GM 0xA3 6333de1ef73SChaoming Li 6343de1ef73SChaoming Li /* 5GH channel 149-165 */ 6353de1ef73SChaoming Li #define EEPROM_HT40_1S_TX_PWR_INX_5GH 0xA6 6363de1ef73SChaoming Li #define EEPROM_HT40_2S_TX_PWR_INX_DIFF_5GH 0xAC 6373de1ef73SChaoming Li #define EEPROM_HT20_TX_PWR_INX_DIFF_5GH 0xAF 6383de1ef73SChaoming Li #define EEPROM_OFDM_TX_PWR_INX_DIFF_5GH 0xB2 6393de1ef73SChaoming Li #define EEPROM_HT40_MAX_PWR_OFFSET_5GH 0xB5 6403de1ef73SChaoming Li #define EEPROM_HT20_MAX_PWR_OFFSET_5GH 0xB8 6413de1ef73SChaoming Li 6423de1ef73SChaoming Li /* Map of supported channels. */ 6433de1ef73SChaoming Li #define EEPROM_CHANNEL_PLAN 0xBB 6443de1ef73SChaoming Li #define EEPROM_IQK_DELTA 0xBC 6453de1ef73SChaoming Li #define EEPROM_LCK_DELTA 0xBC 6463de1ef73SChaoming Li #define EEPROM_XTAL_K 0xBD /* [7:5] */ 6473de1ef73SChaoming Li #define EEPROM_TSSI_A_5G 0xBE 6483de1ef73SChaoming Li #define EEPROM_TSSI_B_5G 0xBF 6493de1ef73SChaoming Li #define EEPROM_TSSI_AB_5G 0xC0 6503de1ef73SChaoming Li #define EEPROM_THERMAL_METER 0xC3 /* [4:0] */ 6513de1ef73SChaoming Li #define EEPROM_RF_OPT1 0xC4 6523de1ef73SChaoming Li #define EEPROM_RF_OPT2 0xC5 6533de1ef73SChaoming Li #define EEPROM_RF_OPT3 0xC6 6543de1ef73SChaoming Li #define EEPROM_RF_OPT4 0xC7 6553de1ef73SChaoming Li #define EEPROM_RF_OPT5 0xC8 6563de1ef73SChaoming Li #define EEPROM_RF_OPT6 0xC9 6573de1ef73SChaoming Li #define EEPROM_VERSION 0xCA 6583de1ef73SChaoming Li #define EEPROM_CUSTOMER_ID 0xCB 6593de1ef73SChaoming Li #define EEPROM_RF_OPT7 0xCC 6603de1ef73SChaoming Li 6613de1ef73SChaoming Li #define EEPROM_DEF_PART_NO 0x3FD /* Byte */ 6623de1ef73SChaoming Li #define EEPROME_CHIP_VERSION_L 0x3FF 6633de1ef73SChaoming Li #define EEPROME_CHIP_VERSION_H 0x3FE 6643de1ef73SChaoming Li 6653de1ef73SChaoming Li /* 6663de1ef73SChaoming Li * Current IOREG MAP 6673de1ef73SChaoming Li * 0x0000h ~ 0x00FFh System Configuration (256 Bytes) 6683de1ef73SChaoming Li * 0x0100h ~ 0x01FFh MACTOP General Configuration (256 Bytes) 6693de1ef73SChaoming Li * 0x0200h ~ 0x027Fh TXDMA Configuration (128 Bytes) 6703de1ef73SChaoming Li * 0x0280h ~ 0x02FFh RXDMA Configuration (128 Bytes) 6713de1ef73SChaoming Li * 0x0300h ~ 0x03FFh PCIE EMAC Reserved Region (256 Bytes) 6723de1ef73SChaoming Li * 0x0400h ~ 0x04FFh Protocol Configuration (256 Bytes) 6733de1ef73SChaoming Li * 0x0500h ~ 0x05FFh EDCA Configuration (256 Bytes) 6743de1ef73SChaoming Li * 0x0600h ~ 0x07FFh WMAC Configuration (512 Bytes) 6753de1ef73SChaoming Li * 0x2000h ~ 0x3FFFh 8051 FW Download Region (8196 Bytes) 6763de1ef73SChaoming Li */ 6773de1ef73SChaoming Li 6783de1ef73SChaoming Li /* ----------------------------------------------------- */ 6793de1ef73SChaoming Li /* 8192C (RCR) (Offset 0x608, 32 bits) */ 6803de1ef73SChaoming Li /* ----------------------------------------------------- */ 6813de1ef73SChaoming Li #define RCR_APPFCS BIT(31) 6823de1ef73SChaoming Li #define RCR_APP_MIC BIT(30) 6833de1ef73SChaoming Li #define RCR_APP_ICV BIT(29) 6843de1ef73SChaoming Li #define RCR_APP_PHYST_RXFF BIT(28) 6853de1ef73SChaoming Li #define RCR_APP_BA_SSN BIT(27) 6863de1ef73SChaoming Li #define RCR_ENMBID BIT(24) 6873de1ef73SChaoming Li #define RCR_LSIGEN BIT(23) 6883de1ef73SChaoming Li #define RCR_MFBEN BIT(22) 6893de1ef73SChaoming Li #define RCR_HTC_LOC_CTRL BIT(14) 6903de1ef73SChaoming Li #define RCR_AMF BIT(13) 6913de1ef73SChaoming Li #define RCR_ACF BIT(12) 6923de1ef73SChaoming Li #define RCR_ADF BIT(11) 6933de1ef73SChaoming Li #define RCR_AICV BIT(9) 6943de1ef73SChaoming Li #define RCR_ACRC32 BIT(8) 6953de1ef73SChaoming Li #define RCR_CBSSID_BCN BIT(7) 6963de1ef73SChaoming Li #define RCR_CBSSID_DATA BIT(6) 6973de1ef73SChaoming Li #define RCR_APWRMGT BIT(5) 6983de1ef73SChaoming Li #define RCR_ADD3 BIT(4) 6993de1ef73SChaoming Li #define RCR_AB BIT(3) 7003de1ef73SChaoming Li #define RCR_AM BIT(2) 7013de1ef73SChaoming Li #define RCR_APM BIT(1) 7023de1ef73SChaoming Li #define RCR_AAP BIT(0) 7033de1ef73SChaoming Li #define RCR_MXDMA_OFFSET 8 7043de1ef73SChaoming Li #define RCR_FIFO_OFFSET 13 7053de1ef73SChaoming Li 7063de1ef73SChaoming Li /* ----------------------------------------------------- */ 7073de1ef73SChaoming Li /* 8192C Regsiter Bit and Content definition */ 7083de1ef73SChaoming Li /* ----------------------------------------------------- */ 7093de1ef73SChaoming Li /* ----------------------------------------------------- */ 7103de1ef73SChaoming Li /* 0x0000h ~ 0x00FFh System Configuration */ 7113de1ef73SChaoming Li /* ----------------------------------------------------- */ 7123de1ef73SChaoming Li 7133de1ef73SChaoming Li /* SPS0_CTRL */ 7143de1ef73SChaoming Li #define SW18_FPWM BIT(3) 7153de1ef73SChaoming Li 7163de1ef73SChaoming Li 7173de1ef73SChaoming Li /* SYS_ISO_CTRL */ 7183de1ef73SChaoming Li #define ISO_MD2PP BIT(0) 7193de1ef73SChaoming Li #define ISO_UA2USB BIT(1) 7203de1ef73SChaoming Li #define ISO_UD2CORE BIT(2) 7213de1ef73SChaoming Li #define ISO_PA2PCIE BIT(3) 7223de1ef73SChaoming Li #define ISO_PD2CORE BIT(4) 7233de1ef73SChaoming Li #define ISO_IP2MAC BIT(5) 7243de1ef73SChaoming Li #define ISO_DIOP BIT(6) 7253de1ef73SChaoming Li #define ISO_DIOE BIT(7) 7263de1ef73SChaoming Li #define ISO_EB2CORE BIT(8) 7273de1ef73SChaoming Li #define ISO_DIOR BIT(9) 7283de1ef73SChaoming Li 7293de1ef73SChaoming Li #define PWC_EV25V BIT(14) 7303de1ef73SChaoming Li #define PWC_EV12V BIT(15) 7313de1ef73SChaoming Li 7323de1ef73SChaoming Li 7333de1ef73SChaoming Li /* SYS_FUNC_EN */ 7343de1ef73SChaoming Li #define FEN_BBRSTB BIT(0) 735b83faedaSLarry Finger #define FEN_BB_GLB_RSTN BIT(1) 7363de1ef73SChaoming Li #define FEN_USBA BIT(2) 7373de1ef73SChaoming Li #define FEN_UPLL BIT(3) 7383de1ef73SChaoming Li #define FEN_USBD BIT(4) 7393de1ef73SChaoming Li #define FEN_DIO_PCIE BIT(5) 7403de1ef73SChaoming Li #define FEN_PCIEA BIT(6) 7413de1ef73SChaoming Li #define FEN_PPLL BIT(7) 7423de1ef73SChaoming Li #define FEN_PCIED BIT(8) 7433de1ef73SChaoming Li #define FEN_DIOE BIT(9) 7443de1ef73SChaoming Li #define FEN_CPUEN BIT(10) 7453de1ef73SChaoming Li #define FEN_DCORE BIT(11) 7463de1ef73SChaoming Li #define FEN_ELDR BIT(12) 7473de1ef73SChaoming Li #define FEN_DIO_RF BIT(13) 7483de1ef73SChaoming Li #define FEN_HWPDN BIT(14) 7493de1ef73SChaoming Li #define FEN_MREGEN BIT(15) 7503de1ef73SChaoming Li 7513de1ef73SChaoming Li /* APS_FSMCO */ 7523de1ef73SChaoming Li #define PFM_LDALL BIT(0) 7533de1ef73SChaoming Li #define PFM_ALDN BIT(1) 7543de1ef73SChaoming Li #define PFM_LDKP BIT(2) 7553de1ef73SChaoming Li #define PFM_WOWL BIT(3) 756b83faedaSLarry Finger #define ENPDN BIT(4) 7573de1ef73SChaoming Li #define PDN_PL BIT(5) 7583de1ef73SChaoming Li #define APFM_ONMAC BIT(8) 7593de1ef73SChaoming Li #define APFM_OFF BIT(9) 7603de1ef73SChaoming Li #define APFM_RSM BIT(10) 7613de1ef73SChaoming Li #define AFSM_HSUS BIT(11) 7623de1ef73SChaoming Li #define AFSM_PCIE BIT(12) 7633de1ef73SChaoming Li #define APDM_MAC BIT(13) 7643de1ef73SChaoming Li #define APDM_HOST BIT(14) 7653de1ef73SChaoming Li #define APDM_HPDN BIT(15) 7663de1ef73SChaoming Li #define RDY_MACON BIT(16) 7673de1ef73SChaoming Li #define SUS_HOST BIT(17) 7683de1ef73SChaoming Li #define ROP_ALD BIT(20) 7693de1ef73SChaoming Li #define ROP_PWR BIT(21) 7703de1ef73SChaoming Li #define ROP_SPS BIT(22) 7713de1ef73SChaoming Li #define SOP_MRST BIT(25) 7723de1ef73SChaoming Li #define SOP_FUSE BIT(26) 7733de1ef73SChaoming Li #define SOP_ABG BIT(27) 7743de1ef73SChaoming Li #define SOP_AMB BIT(28) 7753de1ef73SChaoming Li #define SOP_RCK BIT(29) 7763de1ef73SChaoming Li #define SOP_A8M BIT(30) 7773de1ef73SChaoming Li #define XOP_BTCK BIT(31) 7783de1ef73SChaoming Li 7793de1ef73SChaoming Li /* SYS_CLKR */ 7803de1ef73SChaoming Li #define ANAD16V_EN BIT(0) 7813de1ef73SChaoming Li #define ANA8M BIT(1) 7823de1ef73SChaoming Li #define MACSLP BIT(4) 7833de1ef73SChaoming Li #define LOADER_CLK_EN BIT(5) 7843de1ef73SChaoming Li #define _80M_SSC_DIS BIT(7) 7853de1ef73SChaoming Li #define _80M_SSC_EN_HO BIT(8) 7863de1ef73SChaoming Li #define PHY_SSC_RSTB BIT(9) 7873de1ef73SChaoming Li #define SEC_CLK_EN BIT(10) 7883de1ef73SChaoming Li #define MAC_CLK_EN BIT(11) 7893de1ef73SChaoming Li #define SYS_CLK_EN BIT(12) 7903de1ef73SChaoming Li #define RING_CLK_EN BIT(13) 7913de1ef73SChaoming Li 7923de1ef73SChaoming Li 7933de1ef73SChaoming Li /* 9346CR */ 7943de1ef73SChaoming Li #define BOOT_FROM_EEPROM BIT(4) 7953de1ef73SChaoming Li #define EEPROM_EN BIT(5) 7963de1ef73SChaoming Li 7973de1ef73SChaoming Li /* AFE_MISC */ 7983de1ef73SChaoming Li #define AFE_BGEN BIT(0) 7993de1ef73SChaoming Li #define AFE_MBEN BIT(1) 8003de1ef73SChaoming Li #define MAC_ID_EN BIT(7) 8013de1ef73SChaoming Li 8023de1ef73SChaoming Li /* RSV_CTRL */ 8033de1ef73SChaoming Li #define WLOCK_ALL BIT(0) 8043de1ef73SChaoming Li #define WLOCK_00 BIT(1) 8053de1ef73SChaoming Li #define WLOCK_04 BIT(2) 8063de1ef73SChaoming Li #define WLOCK_08 BIT(3) 8073de1ef73SChaoming Li #define WLOCK_40 BIT(4) 8083de1ef73SChaoming Li #define R_DIS_PRST_0 BIT(5) 8093de1ef73SChaoming Li #define R_DIS_PRST_1 BIT(6) 8103de1ef73SChaoming Li #define LOCK_ALL_EN BIT(7) 8113de1ef73SChaoming Li 8123de1ef73SChaoming Li /* RF_CTRL */ 8133de1ef73SChaoming Li #define RF_EN BIT(0) 8143de1ef73SChaoming Li #define RF_RSTB BIT(1) 8153de1ef73SChaoming Li #define RF_SDMRSTB BIT(2) 8163de1ef73SChaoming Li 8173de1ef73SChaoming Li 8183de1ef73SChaoming Li 8193de1ef73SChaoming Li /* LDOA15_CTRL */ 8203de1ef73SChaoming Li #define LDA15_EN BIT(0) 8213de1ef73SChaoming Li #define LDA15_STBY BIT(1) 8223de1ef73SChaoming Li #define LDA15_OBUF BIT(2) 8233de1ef73SChaoming Li #define LDA15_REG_VOS BIT(3) 8243de1ef73SChaoming Li #define _LDA15_VOADJ(x) (((x) & 0x7) << 4) 8253de1ef73SChaoming Li 8263de1ef73SChaoming Li 8273de1ef73SChaoming Li 8283de1ef73SChaoming Li /* LDOV12D_CTRL */ 8293de1ef73SChaoming Li #define LDV12_EN BIT(0) 8303de1ef73SChaoming Li #define LDV12_SDBY BIT(1) 8313de1ef73SChaoming Li #define LPLDO_HSM BIT(2) 8323de1ef73SChaoming Li #define LPLDO_LSM_DIS BIT(3) 8333de1ef73SChaoming Li #define _LDV12_VADJ(x) (((x) & 0xF) << 4) 8343de1ef73SChaoming Li 8353de1ef73SChaoming Li 8363de1ef73SChaoming Li /* AFE_XTAL_CTRL */ 8373de1ef73SChaoming Li #define XTAL_EN BIT(0) 8383de1ef73SChaoming Li #define XTAL_BSEL BIT(1) 8393de1ef73SChaoming Li #define _XTAL_BOSC(x) (((x) & 0x3) << 2) 8403de1ef73SChaoming Li #define _XTAL_CADJ(x) (((x) & 0xF) << 4) 8413de1ef73SChaoming Li #define XTAL_GATE_USB BIT(8) 8423de1ef73SChaoming Li #define _XTAL_USB_DRV(x) (((x) & 0x3) << 9) 8433de1ef73SChaoming Li #define XTAL_GATE_AFE BIT(11) 8443de1ef73SChaoming Li #define _XTAL_AFE_DRV(x) (((x) & 0x3) << 12) 8453de1ef73SChaoming Li #define XTAL_RF_GATE BIT(14) 8463de1ef73SChaoming Li #define _XTAL_RF_DRV(x) (((x) & 0x3) << 15) 8473de1ef73SChaoming Li #define XTAL_GATE_DIG BIT(17) 8483de1ef73SChaoming Li #define _XTAL_DIG_DRV(x) (((x) & 0x3) << 18) 8493de1ef73SChaoming Li #define XTAL_BT_GATE BIT(20) 8503de1ef73SChaoming Li #define _XTAL_BT_DRV(x) (((x) & 0x3) << 21) 8513de1ef73SChaoming Li #define _XTAL_GPIO(x) (((x) & 0x7) << 23) 8523de1ef73SChaoming Li 8533de1ef73SChaoming Li 8543de1ef73SChaoming Li #define CKDLY_AFE BIT(26) 8553de1ef73SChaoming Li #define CKDLY_USB BIT(27) 8563de1ef73SChaoming Li #define CKDLY_DIG BIT(28) 8573de1ef73SChaoming Li #define CKDLY_BT BIT(29) 8583de1ef73SChaoming Li 8593de1ef73SChaoming Li 8603de1ef73SChaoming Li /* AFE_PLL_CTRL */ 8613de1ef73SChaoming Li #define APLL_EN BIT(0) 8623de1ef73SChaoming Li #define APLL_320_EN BIT(1) 8633de1ef73SChaoming Li #define APLL_FREF_SEL BIT(2) 8643de1ef73SChaoming Li #define APLL_EDGE_SEL BIT(3) 8653de1ef73SChaoming Li #define APLL_WDOGB BIT(4) 8663de1ef73SChaoming Li #define APLL_LPFEN BIT(5) 8673de1ef73SChaoming Li 8683de1ef73SChaoming Li #define APLL_REF_CLK_13MHZ 0x1 8693de1ef73SChaoming Li #define APLL_REF_CLK_19_2MHZ 0x2 8703de1ef73SChaoming Li #define APLL_REF_CLK_20MHZ 0x3 8713de1ef73SChaoming Li #define APLL_REF_CLK_25MHZ 0x4 8723de1ef73SChaoming Li #define APLL_REF_CLK_26MHZ 0x5 8733de1ef73SChaoming Li #define APLL_REF_CLK_38_4MHZ 0x6 8743de1ef73SChaoming Li #define APLL_REF_CLK_40MHZ 0x7 8753de1ef73SChaoming Li 8763de1ef73SChaoming Li #define APLL_320EN BIT(14) 8773de1ef73SChaoming Li #define APLL_80EN BIT(15) 8783de1ef73SChaoming Li #define APLL_1MEN BIT(24) 8793de1ef73SChaoming Li 8803de1ef73SChaoming Li 8813de1ef73SChaoming Li /* EFUSE_CTRL */ 8823de1ef73SChaoming Li #define ALD_EN BIT(18) 8833de1ef73SChaoming Li #define EF_PD BIT(19) 8843de1ef73SChaoming Li #define EF_FLAG BIT(31) 8853de1ef73SChaoming Li 8863de1ef73SChaoming Li /* EFUSE_TEST */ 8873de1ef73SChaoming Li #define EF_TRPT BIT(7) 8883de1ef73SChaoming Li #define LDOE25_EN BIT(31) 8893de1ef73SChaoming Li 8903de1ef73SChaoming Li /* MCUFWDL */ 8913de1ef73SChaoming Li #define MCUFWDL_EN BIT(0) 8923de1ef73SChaoming Li #define MCUFWDL_RDY BIT(1) 893b83faedaSLarry Finger #define FWDL_CHKSUM_RPT BIT(2) 8943de1ef73SChaoming Li #define MACINI_RDY BIT(3) 8953de1ef73SChaoming Li #define BBINI_RDY BIT(4) 8963de1ef73SChaoming Li #define RFINI_RDY BIT(5) 8973de1ef73SChaoming Li #define WINTINI_RDY BIT(6) 8983de1ef73SChaoming Li #define MAC1_WINTINI_RDY BIT(11) 8993de1ef73SChaoming Li #define CPRST BIT(23) 9003de1ef73SChaoming Li 9013de1ef73SChaoming Li /* REG_SYS_CFG */ 9023de1ef73SChaoming Li #define XCLK_VLD BIT(0) 9033de1ef73SChaoming Li #define ACLK_VLD BIT(1) 9043de1ef73SChaoming Li #define UCLK_VLD BIT(2) 9053de1ef73SChaoming Li #define PCLK_VLD BIT(3) 9063de1ef73SChaoming Li #define PCIRSTB BIT(4) 9073de1ef73SChaoming Li #define V15_VLD BIT(5) 9083de1ef73SChaoming Li #define TRP_B15V_EN BIT(7) 9093de1ef73SChaoming Li #define SIC_IDLE BIT(8) 9103de1ef73SChaoming Li #define BD_MAC2 BIT(9) 9113de1ef73SChaoming Li #define BD_MAC1 BIT(10) 9123de1ef73SChaoming Li #define IC_MACPHY_MODE BIT(11) 9133de1ef73SChaoming Li #define PAD_HWPD_IDN BIT(22) 9143de1ef73SChaoming Li #define TRP_VAUX_EN BIT(23) 9153de1ef73SChaoming Li #define TRP_BT_EN BIT(24) 9163de1ef73SChaoming Li #define BD_PKG_SEL BIT(25) 9173de1ef73SChaoming Li #define BD_HCI_SEL BIT(26) 9183de1ef73SChaoming Li #define TYPE_ID BIT(27) 9193de1ef73SChaoming Li 9203de1ef73SChaoming Li /* LLT_INIT */ 9213de1ef73SChaoming Li #define _LLT_NO_ACTIVE 0x0 9223de1ef73SChaoming Li #define _LLT_WRITE_ACCESS 0x1 9233de1ef73SChaoming Li #define _LLT_READ_ACCESS 0x2 9243de1ef73SChaoming Li 9253de1ef73SChaoming Li #define _LLT_INIT_DATA(x) ((x) & 0xFF) 9263de1ef73SChaoming Li #define _LLT_INIT_ADDR(x) (((x) & 0xFF) << 8) 9273de1ef73SChaoming Li #define _LLT_OP(x) (((x) & 0x3) << 30) 9283de1ef73SChaoming Li #define _LLT_OP_VALUE(x) (((x) >> 30) & 0x3) 9293de1ef73SChaoming Li 9303de1ef73SChaoming Li 9313de1ef73SChaoming Li /* ----------------------------------------------------- */ 9323de1ef73SChaoming Li /* 0x0400h ~ 0x047Fh Protocol Configuration */ 9333de1ef73SChaoming Li /* ----------------------------------------------------- */ 9343de1ef73SChaoming Li #define RETRY_LIMIT_SHORT_SHIFT 8 9353de1ef73SChaoming Li #define RETRY_LIMIT_LONG_SHIFT 0 9363de1ef73SChaoming Li 9373de1ef73SChaoming Li 9383de1ef73SChaoming Li /* ----------------------------------------------------- */ 9393de1ef73SChaoming Li /* 0x0500h ~ 0x05FFh EDCA Configuration */ 9403de1ef73SChaoming Li /* ----------------------------------------------------- */ 9413de1ef73SChaoming Li /* EDCA setting */ 9423de1ef73SChaoming Li #define AC_PARAM_TXOP_LIMIT_OFFSET 16 9433de1ef73SChaoming Li #define AC_PARAM_ECW_MAX_OFFSET 12 9443de1ef73SChaoming Li #define AC_PARAM_ECW_MIN_OFFSET 8 9453de1ef73SChaoming Li #define AC_PARAM_AIFS_OFFSET 0 9463de1ef73SChaoming Li 9473de1ef73SChaoming Li /* ACMHWCTRL */ 9483de1ef73SChaoming Li #define ACMHW_HWEN BIT(0) 9493de1ef73SChaoming Li #define ACMHW_BEQEN BIT(1) 9503de1ef73SChaoming Li #define ACMHW_VIQEN BIT(2) 9513de1ef73SChaoming Li #define ACMHW_VOQEN BIT(3) 9523de1ef73SChaoming Li 9533de1ef73SChaoming Li /* ----------------------------------------------------- */ 9543de1ef73SChaoming Li /* 0x0600h ~ 0x07FFh WMAC Configuration */ 9553de1ef73SChaoming Li /* ----------------------------------------------------- */ 9563de1ef73SChaoming Li 9573de1ef73SChaoming Li /* TCR */ 9583de1ef73SChaoming Li #define TSFRST BIT(0) 9593de1ef73SChaoming Li #define DIS_GCLK BIT(1) 9603de1ef73SChaoming Li #define PAD_SEL BIT(2) 9613de1ef73SChaoming Li #define PWR_ST BIT(6) 9623de1ef73SChaoming Li #define PWRBIT_OW_EN BIT(7) 9633de1ef73SChaoming Li #define ACRC BIT(8) 9643de1ef73SChaoming Li #define CFENDFORM BIT(9) 9653de1ef73SChaoming Li #define ICV BIT(10) 9663de1ef73SChaoming Li 9673de1ef73SChaoming Li /* SECCFG */ 9683de1ef73SChaoming Li #define SCR_TXUSEDK BIT(0) 9693de1ef73SChaoming Li #define SCR_RXUSEDK BIT(1) 9703de1ef73SChaoming Li #define SCR_TXENCENABLE BIT(2) 9713de1ef73SChaoming Li #define SCR_RXENCENABLE BIT(3) 9723de1ef73SChaoming Li #define SCR_SKBYA2 BIT(4) 9733de1ef73SChaoming Li #define SCR_NOSKMC BIT(5) 9743de1ef73SChaoming Li #define SCR_TXBCUSEDK BIT(6) 9753de1ef73SChaoming Li #define SCR_RXBCUSEDK BIT(7) 9763de1ef73SChaoming Li 9773de1ef73SChaoming Li /* General definitions */ 9783de1ef73SChaoming Li #define LAST_ENTRY_OF_TX_PKT_BUFFER 255 9793de1ef73SChaoming Li #define LAST_ENTRY_OF_TX_PKT_BUFFER_DUAL_MAC 127 9803de1ef73SChaoming Li 9813de1ef73SChaoming Li #define POLLING_LLT_THRESHOLD 20 9823de1ef73SChaoming Li #define POLLING_READY_TIMEOUT_COUNT 1000 9833de1ef73SChaoming Li 9843de1ef73SChaoming Li /* Min Spacing related settings. */ 9853de1ef73SChaoming Li #define MAX_MSS_DENSITY_2T 0x13 9863de1ef73SChaoming Li #define MAX_MSS_DENSITY_1T 0x0A 9873de1ef73SChaoming Li 9883de1ef73SChaoming Li 9893de1ef73SChaoming Li /* BB-PHY register PMAC 0x100 PHY 0x800 - 0xEFF */ 9903de1ef73SChaoming Li /* 1. PMAC duplicate register due to connection: */ 9913de1ef73SChaoming Li /* RF_Mode, TRxRN, NumOf L-STF */ 9923de1ef73SChaoming Li /* 2. 0x800/0x900/0xA00/0xC00/0xD00/0xE00 */ 9933de1ef73SChaoming Li /* 3. RF register 0x00-2E */ 9943de1ef73SChaoming Li /* 4. Bit Mask for BB/RF register */ 9953de1ef73SChaoming Li /* 5. Other defintion for BB/RF R/W */ 9963de1ef73SChaoming Li 9973de1ef73SChaoming Li /* 3. Page8(0x800) */ 9983de1ef73SChaoming Li #define RFPGA0_RFMOD 0x800 9993de1ef73SChaoming Li 10003de1ef73SChaoming Li #define RFPGA0_TXINFO 0x804 10013de1ef73SChaoming Li #define RFPGA0_PSDFUNCTION 0x808 10023de1ef73SChaoming Li 10033de1ef73SChaoming Li #define RFPGA0_TXGAINSTAGE 0x80c 10043de1ef73SChaoming Li 10053de1ef73SChaoming Li #define RFPGA0_RFTIMING1 0x810 10063de1ef73SChaoming Li #define RFPGA0_RFTIMING2 0x814 10073de1ef73SChaoming Li 10083de1ef73SChaoming Li #define RFPGA0_XA_HSSIPARAMETER1 0x820 10093de1ef73SChaoming Li #define RFPGA0_XA_HSSIPARAMETER2 0x824 10103de1ef73SChaoming Li #define RFPGA0_XB_HSSIPARAMETER1 0x828 10113de1ef73SChaoming Li #define RFPGA0_XB_HSSIPARAMETER2 0x82c 10123de1ef73SChaoming Li 10133de1ef73SChaoming Li #define RFPGA0_XA_LSSIPARAMETER 0x840 10143de1ef73SChaoming Li #define RFPGA0_XB_LSSIPARAMETER 0x844 10153de1ef73SChaoming Li 1016b83faedaSLarry Finger #define RFPGA0_RFWAKEUPPARAMETER 0x850 10173de1ef73SChaoming Li #define RFPGA0_RFSLEEPUPPARAMETER 0x854 10183de1ef73SChaoming Li 10193de1ef73SChaoming Li #define RFPGA0_XAB_SWITCHCONTROL 0x858 10203de1ef73SChaoming Li #define RFPGA0_XCD_SWITCHCONTROL 0x85c 10213de1ef73SChaoming Li 10223de1ef73SChaoming Li #define RFPGA0_XA_RFINTERFACEOE 0x860 10233de1ef73SChaoming Li #define RFPGA0_XB_RFINTERFACEOE 0x864 10243de1ef73SChaoming Li 10253de1ef73SChaoming Li #define RFPGA0_XAB_RFINTERFACESW 0x870 10263de1ef73SChaoming Li #define RFPGA0_XCD_RFINTERFACESW 0x874 10273de1ef73SChaoming Li 10283de1ef73SChaoming Li #define RFPGA0_XAB_RFPARAMETER 0x878 10293de1ef73SChaoming Li #define RFPGA0_XCD_RFPARAMETER 0x87c 10303de1ef73SChaoming Li 10313de1ef73SChaoming Li #define RFPGA0_ANALOGPARAMETER1 0x880 10323de1ef73SChaoming Li #define RFPGA0_ANALOGPARAMETER2 0x884 10333de1ef73SChaoming Li #define RFPGA0_ANALOGPARAMETER3 0x888 10343de1ef73SChaoming Li #define RFPGA0_ADDALLOCKEN 0x888 10353de1ef73SChaoming Li #define RFPGA0_ANALOGPARAMETER4 0x88c 10363de1ef73SChaoming Li 10373de1ef73SChaoming Li #define RFPGA0_XA_LSSIREADBACK 0x8a0 10383de1ef73SChaoming Li #define RFPGA0_XB_LSSIREADBACK 0x8a4 10393de1ef73SChaoming Li #define RFPGA0_XC_LSSIREADBACK 0x8a8 10403de1ef73SChaoming Li #define RFPGA0_XD_LSSIREADBACK 0x8ac 10413de1ef73SChaoming Li 10423de1ef73SChaoming Li #define RFPGA0_PSDREPORT 0x8b4 10433de1ef73SChaoming Li #define TRANSCEIVERA_HSPI_READBACK 0x8b8 10443de1ef73SChaoming Li #define TRANSCEIVERB_HSPI_READBACK 0x8bc 10453de1ef73SChaoming Li #define RFPGA0_XAB_RFINTERFACERB 0x8e0 10463de1ef73SChaoming Li #define RFPGA0_XCD_RFINTERFACERB 0x8e4 10473de1ef73SChaoming Li 10483de1ef73SChaoming Li /* 4. Page9(0x900) */ 10493de1ef73SChaoming Li #define RFPGA1_RFMOD 0x900 10503de1ef73SChaoming Li 10513de1ef73SChaoming Li #define RFPGA1_TXBLOCK 0x904 10523de1ef73SChaoming Li #define RFPGA1_DEBUGSELECT 0x908 10533de1ef73SChaoming Li #define RFPGA1_TXINFO 0x90c 10543de1ef73SChaoming Li 10553de1ef73SChaoming Li /* 5. PageA(0xA00) */ 10563de1ef73SChaoming Li #define RCCK0_SYSTEM 0xa00 10573de1ef73SChaoming Li 10583de1ef73SChaoming Li #define RCCK0_AFESSTTING 0xa04 10593de1ef73SChaoming Li #define RCCK0_CCA 0xa08 10603de1ef73SChaoming Li 10613de1ef73SChaoming Li #define RCCK0_RXAGC1 0xa0c 10623de1ef73SChaoming Li #define RCCK0_RXAGC2 0xa10 10633de1ef73SChaoming Li 10643de1ef73SChaoming Li #define RCCK0_RXHP 0xa14 10653de1ef73SChaoming Li 10663de1ef73SChaoming Li #define RCCK0_DSPPARAMETER1 0xa18 10673de1ef73SChaoming Li #define RCCK0_DSPPARAMETER2 0xa1c 10683de1ef73SChaoming Li 10693de1ef73SChaoming Li #define RCCK0_TXFILTER1 0xa20 10703de1ef73SChaoming Li #define RCCK0_TXFILTER2 0xa24 10713de1ef73SChaoming Li #define RCCK0_DEBUGPORT 0xa28 10723de1ef73SChaoming Li #define RCCK0_FALSEALARMREPORT 0xa2c 10733de1ef73SChaoming Li #define RCCK0_TRSSIREPORT 0xa50 10743de1ef73SChaoming Li #define RCCK0_RXREPORT 0xa54 10753de1ef73SChaoming Li #define RCCK0_FACOUNTERLOWER 0xa5c 10763de1ef73SChaoming Li #define RCCK0_FACOUNTERUPPER 0xa58 10773de1ef73SChaoming Li 10783de1ef73SChaoming Li /* 6. PageC(0xC00) */ 10793de1ef73SChaoming Li #define ROFDM0_LSTF 0xc00 10803de1ef73SChaoming Li 10813de1ef73SChaoming Li #define ROFDM0_TRXPATHENABLE 0xc04 10823de1ef73SChaoming Li #define ROFDM0_TRMUXPAR 0xc08 10833de1ef73SChaoming Li #define ROFDM0_TRSWISOLATION 0xc0c 10843de1ef73SChaoming Li 10853de1ef73SChaoming Li #define ROFDM0_XARXAFE 0xc10 10863de1ef73SChaoming Li #define ROFDM0_XARXIQIMBALANCE 0xc14 10873de1ef73SChaoming Li #define ROFDM0_XBRXAFE 0xc18 10883de1ef73SChaoming Li #define ROFDM0_XBRXIQIMBALANCE 0xc1c 10893de1ef73SChaoming Li #define ROFDM0_XCRXAFE 0xc20 10903de1ef73SChaoming Li #define ROFDM0_XCRXIQIMBALANCE 0xc24 10913de1ef73SChaoming Li #define ROFDM0_XDRXAFE 0xc28 10923de1ef73SChaoming Li #define ROFDM0_XDRXIQIMBALANCE 0xc2c 10933de1ef73SChaoming Li 10943de1ef73SChaoming Li #define ROFDM0_RXDETECTOR1 0xc30 10953de1ef73SChaoming Li #define ROFDM0_RXDETECTOR2 0xc34 10963de1ef73SChaoming Li #define ROFDM0_RXDETECTOR3 0xc38 10973de1ef73SChaoming Li #define ROFDM0_RXDETECTOR4 0xc3c 10983de1ef73SChaoming Li 10993de1ef73SChaoming Li #define ROFDM0_RXDSP 0xc40 11003de1ef73SChaoming Li #define ROFDM0_CFOANDDAGC 0xc44 11013de1ef73SChaoming Li #define ROFDM0_CCADROPTHRESHOLD 0xc48 11023de1ef73SChaoming Li #define ROFDM0_ECCATHRESHOLD 0xc4c 11033de1ef73SChaoming Li 11043de1ef73SChaoming Li #define ROFDM0_XAAGCCORE1 0xc50 11053de1ef73SChaoming Li #define ROFDM0_XAAGCCORE2 0xc54 11063de1ef73SChaoming Li #define ROFDM0_XBAGCCORE1 0xc58 11073de1ef73SChaoming Li #define ROFDM0_XBAGCCORE2 0xc5c 11083de1ef73SChaoming Li #define ROFDM0_XCAGCCORE1 0xc60 11093de1ef73SChaoming Li #define ROFDM0_XCAGCCORE2 0xc64 11103de1ef73SChaoming Li #define ROFDM0_XDAGCCORE1 0xc68 11113de1ef73SChaoming Li #define ROFDM0_XDAGCCORE2 0xc6c 11123de1ef73SChaoming Li 11133de1ef73SChaoming Li #define ROFDM0_AGCPARAMETER1 0xc70 11143de1ef73SChaoming Li #define ROFDM0_AGCPARAMETER2 0xc74 11153de1ef73SChaoming Li #define ROFDM0_AGCRSSITABLE 0xc78 11163de1ef73SChaoming Li #define ROFDM0_HTSTFAGC 0xc7c 11173de1ef73SChaoming Li 1118b83faedaSLarry Finger #define ROFDM0_XATXIQIMBALANCE 0xc80 1119b83faedaSLarry Finger #define ROFDM0_XATXAFE 0xc84 1120b83faedaSLarry Finger #define ROFDM0_XBTXIQIMBALANCE 0xc88 1121b83faedaSLarry Finger #define ROFDM0_XBTXAFE 0xc8c 1122b83faedaSLarry Finger #define ROFDM0_XCTXIQIMBALANCE 0xc90 1123b83faedaSLarry Finger #define ROFDM0_XCTXAFE 0xc94 1124b83faedaSLarry Finger #define ROFDM0_XDTXIQIMBALANCE 0xc98 1125b83faedaSLarry Finger #define ROFDM0_XDTXAFE 0xc9c 11263de1ef73SChaoming Li 11273de1ef73SChaoming Li #define ROFDM0_RXHPPARAMETER 0xce0 11283de1ef73SChaoming Li #define ROFDM0_TXPSEUDONOISEWGT 0xce4 11293de1ef73SChaoming Li #define ROFDM0_FRAMESYNC 0xcf0 11303de1ef73SChaoming Li #define ROFDM0_DFSREPORT 0xcf4 11313de1ef73SChaoming Li #define ROFDM0_TXCOEFF1 0xca4 11323de1ef73SChaoming Li #define ROFDM0_TXCOEFF2 0xca8 11333de1ef73SChaoming Li #define ROFDM0_TXCOEFF3 0xcac 11343de1ef73SChaoming Li #define ROFDM0_TXCOEFF4 0xcb0 11353de1ef73SChaoming Li #define ROFDM0_TXCOEFF5 0xcb4 11363de1ef73SChaoming Li #define ROFDM0_TXCOEFF6 0xcb8 11373de1ef73SChaoming Li 11383de1ef73SChaoming Li /* 7. PageD(0xD00) */ 11393de1ef73SChaoming Li #define ROFDM1_LSTF 0xd00 11403de1ef73SChaoming Li #define ROFDM1_TRXPATHENABLE 0xd04 11413de1ef73SChaoming Li 11423de1ef73SChaoming Li #define ROFDM1_CFO 0xd08 11433de1ef73SChaoming Li #define ROFDM1_CSI1 0xd10 11443de1ef73SChaoming Li #define ROFDM1_SBD 0xd14 11453de1ef73SChaoming Li #define ROFDM1_CSI2 0xd18 11463de1ef73SChaoming Li #define ROFDM1_CFOTRACKING 0xd2c 11473de1ef73SChaoming Li #define ROFDM1_TRXMESAURE1 0xd34 11483de1ef73SChaoming Li #define ROFDM1_INTFDET 0xd3c 11493de1ef73SChaoming Li #define ROFDM1_PSEUDONOISESTATEAB 0xd50 11503de1ef73SChaoming Li #define ROFDM1_PSEUDONOISESTATECD 0xd54 11513de1ef73SChaoming Li #define ROFDM1_RXPSEUDONOISEWGT 0xd58 11523de1ef73SChaoming Li 11533de1ef73SChaoming Li #define ROFDM_PHYCOUNTER1 0xda0 11543de1ef73SChaoming Li #define ROFDM_PHYCOUNTER2 0xda4 11553de1ef73SChaoming Li #define ROFDM_PHYCOUNTER3 0xda8 11563de1ef73SChaoming Li 11573de1ef73SChaoming Li #define ROFDM_SHORTCFOAB 0xdac 11583de1ef73SChaoming Li #define ROFDM_SHORTCFOCD 0xdb0 11593de1ef73SChaoming Li #define ROFDM_LONGCFOAB 0xdb4 11603de1ef73SChaoming Li #define ROFDM_LONGCFOCD 0xdb8 11613de1ef73SChaoming Li #define ROFDM_TAILCFOAB 0xdbc 11623de1ef73SChaoming Li #define ROFDM_TAILCFOCD 0xdc0 11633de1ef73SChaoming Li #define ROFDM_PWMEASURE1 0xdc4 11643de1ef73SChaoming Li #define ROFDM_PWMEASURE2 0xdc8 11653de1ef73SChaoming Li #define ROFDM_BWREPORT 0xdcc 11663de1ef73SChaoming Li #define ROFDM_AGCREPORT 0xdd0 11673de1ef73SChaoming Li #define ROFDM_RXSNR 0xdd4 11683de1ef73SChaoming Li #define ROFDM_RXEVMCSI 0xdd8 1169b83faedaSLarry Finger #define ROFDM_SIGREPORT 0xddc 11703de1ef73SChaoming Li 11713de1ef73SChaoming Li /* 8. PageE(0xE00) */ 11723de1ef73SChaoming Li #define RTXAGC_A_RATE18_06 0xe00 11733de1ef73SChaoming Li #define RTXAGC_A_RATE54_24 0xe04 11743de1ef73SChaoming Li #define RTXAGC_A_CCK1_MCS32 0xe08 11753de1ef73SChaoming Li #define RTXAGC_A_MCS03_MCS00 0xe10 11763de1ef73SChaoming Li #define RTXAGC_A_MCS07_MCS04 0xe14 11773de1ef73SChaoming Li #define RTXAGC_A_MCS11_MCS08 0xe18 11783de1ef73SChaoming Li #define RTXAGC_A_MCS15_MCS12 0xe1c 11793de1ef73SChaoming Li 11803de1ef73SChaoming Li #define RTXAGC_B_RATE18_06 0x830 11813de1ef73SChaoming Li #define RTXAGC_B_RATE54_24 0x834 11823de1ef73SChaoming Li #define RTXAGC_B_CCK1_55_MCS32 0x838 11833de1ef73SChaoming Li #define RTXAGC_B_MCS03_MCS00 0x83c 11843de1ef73SChaoming Li #define RTXAGC_B_MCS07_MCS04 0x848 11853de1ef73SChaoming Li #define RTXAGC_B_MCS11_MCS08 0x84c 11863de1ef73SChaoming Li #define RTXAGC_B_MCS15_MCS12 0x868 11873de1ef73SChaoming Li #define RTXAGC_B_CCK11_A_CCK2_11 0x86c 11883de1ef73SChaoming Li 11893de1ef73SChaoming Li /* RL6052 Register definition */ 11903de1ef73SChaoming Li #define RF_AC 0x00 11913de1ef73SChaoming Li 11923de1ef73SChaoming Li #define RF_IQADJ_G1 0x01 11933de1ef73SChaoming Li #define RF_IQADJ_G2 0x02 11943de1ef73SChaoming Li #define RF_POW_TRSW 0x05 11953de1ef73SChaoming Li 11963de1ef73SChaoming Li #define RF_GAIN_RX 0x06 11973de1ef73SChaoming Li #define RF_GAIN_TX 0x07 11983de1ef73SChaoming Li 11993de1ef73SChaoming Li #define RF_TXM_IDAC 0x08 12003de1ef73SChaoming Li #define RF_BS_IQGEN 0x0F 12013de1ef73SChaoming Li 12023de1ef73SChaoming Li #define RF_MODE1 0x10 12033de1ef73SChaoming Li #define RF_MODE2 0x11 12043de1ef73SChaoming Li 12053de1ef73SChaoming Li #define RF_RX_AGC_HP 0x12 12063de1ef73SChaoming Li #define RF_TX_AGC 0x13 12073de1ef73SChaoming Li #define RF_BIAS 0x14 12083de1ef73SChaoming Li #define RF_IPA 0x15 12093de1ef73SChaoming Li #define RF_POW_ABILITY 0x17 12103de1ef73SChaoming Li #define RF_MODE_AG 0x18 1211b83faedaSLarry Finger #define rfchannel 0x18 12123de1ef73SChaoming Li #define RF_CHNLBW 0x18 12133de1ef73SChaoming Li #define RF_TOP 0x19 12143de1ef73SChaoming Li 12153de1ef73SChaoming Li #define RF_RX_G1 0x1A 12163de1ef73SChaoming Li #define RF_RX_G2 0x1B 12173de1ef73SChaoming Li 12183de1ef73SChaoming Li #define RF_RX_BB2 0x1C 12193de1ef73SChaoming Li #define RF_RX_BB1 0x1D 12203de1ef73SChaoming Li 12213de1ef73SChaoming Li #define RF_RCK1 0x1E 12223de1ef73SChaoming Li #define RF_RCK2 0x1F 12233de1ef73SChaoming Li 12243de1ef73SChaoming Li #define RF_TX_G1 0x20 12253de1ef73SChaoming Li #define RF_TX_G2 0x21 12263de1ef73SChaoming Li #define RF_TX_G3 0x22 12273de1ef73SChaoming Li 12283de1ef73SChaoming Li #define RF_TX_BB1 0x23 12293de1ef73SChaoming Li 12303de1ef73SChaoming Li #define RF_T_METER 0x42 12313de1ef73SChaoming Li 12323de1ef73SChaoming Li #define RF_SYN_G1 0x25 12333de1ef73SChaoming Li #define RF_SYN_G2 0x26 12343de1ef73SChaoming Li #define RF_SYN_G3 0x27 12353de1ef73SChaoming Li #define RF_SYN_G4 0x28 12363de1ef73SChaoming Li #define RF_SYN_G5 0x29 12373de1ef73SChaoming Li #define RF_SYN_G6 0x2A 12383de1ef73SChaoming Li #define RF_SYN_G7 0x2B 12393de1ef73SChaoming Li #define RF_SYN_G8 0x2C 12403de1ef73SChaoming Li 12413de1ef73SChaoming Li #define RF_RCK_OS 0x30 12423de1ef73SChaoming Li 12433de1ef73SChaoming Li #define RF_TXPA_G1 0x31 12443de1ef73SChaoming Li #define RF_TXPA_G2 0x32 12453de1ef73SChaoming Li #define RF_TXPA_G3 0x33 12463de1ef73SChaoming Li 12473de1ef73SChaoming Li /* Bit Mask */ 12483de1ef73SChaoming Li 12493de1ef73SChaoming Li /* 2. Page8(0x800) */ 12503de1ef73SChaoming Li #define BRFMOD 0x1 12513de1ef73SChaoming Li #define BCCKTXSC 0x30 12523de1ef73SChaoming Li #define BCCKEN 0x1000000 12533de1ef73SChaoming Li #define BOFDMEN 0x2000000 12543de1ef73SChaoming Li 12553de1ef73SChaoming Li #define B3WIREDATALENGTH 0x800 12563de1ef73SChaoming Li #define B3WIREADDRESSLENGTH 0x400 12573de1ef73SChaoming Li 12583de1ef73SChaoming Li #define BRFSI_RFENV 0x10 12593de1ef73SChaoming Li 12603de1ef73SChaoming Li #define BLSSIREADADDRESS 0x7f800000 12613de1ef73SChaoming Li #define BLSSIREADEDGE 0x80000000 12623de1ef73SChaoming Li #define BLSSIREADBACKDATA 0xfffff 12633de1ef73SChaoming Li /* 4. PageA(0xA00) */ 12643de1ef73SChaoming Li #define BCCKSIDEBAND 0x10 12653de1ef73SChaoming Li 12663de1ef73SChaoming Li /* Other Definition */ 12673de1ef73SChaoming Li #define BBYTE0 0x1 12683de1ef73SChaoming Li #define BBYTE1 0x2 12693de1ef73SChaoming Li #define BBYTE2 0x4 12703de1ef73SChaoming Li #define BBYTE3 0x8 12713de1ef73SChaoming Li #define BWORD0 0x3 12723de1ef73SChaoming Li #define BWORD1 0xc 12733de1ef73SChaoming Li #define BDWORD 0xf 12743de1ef73SChaoming Li 12753de1ef73SChaoming Li #endif 1276