1 /*- 2 * Copyright (c) 2010 Damien Bergamini <damien.bergamini@free.fr> 3 * Copyright (c) 2015-2016 Andriy Voskoboinyk <avos@FreeBSD.org> 4 * 5 * Permission to use, copy, modify, and distribute this software for any 6 * purpose with or without fee is hereby granted, provided that the above 7 * copyright notice and this permission notice appear in all copies. 8 * 9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 * 17 * $OpenBSD: if_urtwnreg.h,v 1.3 2010/11/16 18:02:59 damien Exp $ 18 */ 19 20 #ifndef R88E_REG_H 21 #define R88E_REG_H 22 23 #include <dev/rtwn/rtl8192c/r92c_reg.h> 24 25 /* 26 * MAC registers. 27 */ 28 /* System Configuration. */ 29 #define R88E_BB_PAD_CTRL 0x064 30 #define R88E_HIMR 0x0b0 31 #define R88E_HISR 0x0b4 32 #define R88E_HIMRE 0x0b8 33 #define R88E_HISRE 0x0bc 34 #define R88E_XCK_OUT_CTRL 0x07c 35 /* MAC General Configuration. */ 36 #define R88E_32K_CTRL 0x194 37 #define R88E_HMEBOX_EXT(idx) (0x1f0 + (idx) * 4) 38 /* Protocol Configuration. */ 39 #define R88E_TXPKTBUF_BCNQ1_BDNY 0x457 40 #define R88E_MACID_NO_LINK 0x484 41 #define R88E_TX_RPT_CTRL 0x4ec 42 #define R88E_TX_RPT_MACID_MAX 0x4ed 43 #define R88E_TX_RPT_TIME 0x4f0 44 #define R88E_SCH_TXCMD 0x5f8 45 46 /* Bits for R88E_HIMR. */ 47 #define R88E_HIMR_ROK 0x00000001 /* receive DMA OK */ 48 #define R88E_HIMR_RDU 0x00000002 /* Rx descriptor unavailable */ 49 #define R88E_HIMR_VODOK 0x00000004 /* AC_VO DMA OK */ 50 #define R88E_HIMR_VIDOK 0x00000008 /* AC_VI DMA OK */ 51 #define R88E_HIMR_BEDOK 0x00000010 /* AC_BE DMA OK */ 52 #define R88E_HIMR_BKDOK 0x00000020 /* AC_BK DMA OK */ 53 #define R88E_HIMR_MGNTDOK 0x00000040 /* management queue DMA OK */ 54 #define R88E_HIMR_HIGHDOK 0x00000080 /* high queue DMA OK */ 55 #define R88E_HIMR_CPWM 0x00000100 /* CPU power mode intr 1 */ 56 #define R88E_HIMR_CPWM2 0x00000200 /* CPU power mode intr 2 */ 57 #define R88E_HIMR_C2HCMD 0x00000400 /* C2H command interrupt */ 58 #define R88E_HIMR_HISR 0x00000800 /* (HISR & HIMR) != 0 */ 59 #define R88E_HIMR_ATIMEND 0x00001000 /* ATIM window end interrupt */ 60 #define R88E_HIMR_HSISR 0x00008000 /* (HSIMR & HSISR) != 0 */ 61 #define R88E_HIMR_BCNDERR 0x00010000 /* beacon queue DMA error */ 62 #define R88E_HIMR_BCNINT 0x00100000 /* beacon DMA interrupt 0 */ 63 #define R88E_HIMR_TSF32 0x01000000 /* TSF 32 bit interrupt */ 64 #define R88E_HIMR_TBDOK 0x02000000 /* beacon transmit OK */ 65 #define R88E_HIMR_TBDER 0x04000000 /* beacon transmit error */ 66 #define R88E_HIMR_GTIMER3 0x08000000 /* GTIMER3 interrupt */ 67 #define R88E_HIMR_GTIMER4 0x10000000 /* GTIMER4 interrupt */ 68 #define R88E_HIMR_PSTIMEOUT 0x20000000 /* powersave timeout */ 69 #define R88E_HIMR_TXRPT 0x40000000 /* Tx report interrupt */ 70 71 /* Bits for R88E_HIMRE.*/ 72 #define R88E_HIMRE_RXFOVW 0x00000100 /* receive FIFO overflow */ 73 #define R88E_HIMRE_TXFOVW 0x00000200 /* transmit FIFO overflow */ 74 #define R88E_HIMRE_RXERR 0x00000400 /* receive error */ 75 #define R88E_HIMRE_TXERR 0x00000800 /* transmit error */ 76 #define R88E_HIMRE_BCNDOK1 0x00004000 /* beacon queue DMA OK (1) */ 77 #define R88E_HIMRE_BCNDOK2 0x00008000 /* beacon queue DMA OK (2) */ 78 #define R88E_HIMRE_BCNDOK3 0x00010000 /* beacon queue DMA OK (3) */ 79 #define R88E_HIMRE_BCNDOK4 0x00020000 /* beacon queue DMA OK (4) */ 80 #define R88E_HIMRE_BCNDOK5 0x00040000 /* beacon queue DMA OK (5) */ 81 #define R88E_HIMRE_BCNDOK6 0x00080000 /* beacon queue DMA OK (6) */ 82 #define R88E_HIMRE_BCNDOK7 0x00100000 /* beacon queue DMA OK (7) */ 83 #define R88E_HIMRE_BCNDMAINT1 0x00200000 /* beacon DMA interrupt 1 */ 84 #define R88E_HIMRE_BCNDMAINT2 0x00400000 /* beacon DMA interrupt 2 */ 85 #define R88E_HIMRE_BCNDMAINT3 0x00800000 /* beacon DMA interrupt 3 */ 86 #define R88E_HIMRE_BCNDMAINT4 0x01000000 /* beacon DMA interrupt 4 */ 87 #define R88E_HIMRE_BCNDMAINT5 0x02000000 /* beacon DMA interrupt 5 */ 88 #define R88E_HIMRE_BCNDMAINT6 0x04000000 /* beacon DMA interrupt 6 */ 89 #define R88E_HIMRE_BCNDMAINT7 0x08000000 /* beacon DMA interrupt 7 */ 90 91 /* Bits for R88E_TX_RPT_CTRL. */ 92 #define R88E_TX_RPT1_ENA 0x01 93 #define R88E_TX_RPT2_ENA 0x02 94 95 /* Bits for R92C_MBID_NUM. */ 96 #define R88E_MBID_TXBCN_RPT(id) (0x08 << (id)) 97 98 /* Bits for R92C_SECCFG. */ 99 #define R88E_SECCFG_CHK_KEYID 0x0100 100 101 /* 102 * Baseband registers. 103 */ 104 /* Bits for R92C_LSSI_PARAM(i). */ 105 #define R88E_LSSI_PARAM_ADDR_M 0x0ff00000 106 #define R88E_LSSI_PARAM_ADDR_S 20 107 108 /* 109 * RF (6052) registers. 110 */ 111 #define R88E_RF_T_METER 0x42 112 #define R88E_RF_WE_LUT 0xef 113 114 /* Bits for R92C_RF_CHNLBW. */ 115 #define R88E_RF_CHNLBW_BW20 0x00c00 116 117 /* Bits for R88E_RF_T_METER. */ 118 #define R88E_RF_T_METER_VAL_M 0x0fc00 119 #define R88E_RF_T_METER_VAL_S 10 120 #define R88E_RF_T_METER_START 0x30000 121 122 /* Bits for R88E_XCK_OUT_CTRL. */ 123 #define R88E_XCK_OUT_CTRL_EN 1 124 125 #endif /* R88E_REG_H */ 126