Home | History | Annotate | Line # | Download | only in ic
      1  1.7  christos /*	$NetBSD: rt2860reg.h,v 1.7 2016/10/08 15:57:11 christos Exp $	*/
      2  1.7  christos /*	$OpenBSD: rt2860reg.h,v 1.33 2016/08/17 11:50:52 stsp Exp $	*/
      3  1.7  christos /*	$FreeBSD: head/sys/dev/ral/rt2860reg.h 301575 2016-06-08 02:37:23Z kevlo */
      4  1.1    nonaka 
      5  1.1    nonaka /*-
      6  1.1    nonaka  * Copyright (c) 2007
      7  1.1    nonaka  *	Damien Bergamini <damien.bergamini (at) free.fr>
      8  1.1    nonaka  *
      9  1.1    nonaka  * Permission to use, copy, modify, and distribute this software for any
     10  1.1    nonaka  * purpose with or without fee is hereby granted, provided that the above
     11  1.1    nonaka  * copyright notice and this permission notice appear in all copies.
     12  1.1    nonaka  *
     13  1.1    nonaka  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
     14  1.1    nonaka  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
     15  1.1    nonaka  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
     16  1.1    nonaka  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
     17  1.1    nonaka  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
     18  1.1    nonaka  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
     19  1.1    nonaka  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
     20  1.1    nonaka  */
     21  1.1    nonaka 
     22  1.5  christos #define RT2860_NOISE_FLOOR		-95
     23  1.5  christos 
     24  1.1    nonaka /* PCI registers */
     25  1.1    nonaka #define RT2860_PCI_CFG			0x0000
     26  1.1    nonaka #define RT2860_PCI_EECTRL		0x0004
     27  1.1    nonaka #define RT2860_PCI_MCUCTRL		0x0008
     28  1.1    nonaka #define RT2860_PCI_SYSCTRL		0x000c
     29  1.1    nonaka #define RT2860_PCIE_JTAG		0x0010
     30  1.1    nonaka 
     31  1.1    nonaka #define RT3090_AUX_CTRL			0x010c
     32  1.1    nonaka 
     33  1.1    nonaka #define RT3070_OPT_14			0x0114
     34  1.1    nonaka 
     35  1.1    nonaka /* SCH/DMA registers */
     36  1.1    nonaka #define RT2860_INT_STATUS		0x0200
     37  1.1    nonaka #define RT2860_INT_MASK			0x0204
     38  1.1    nonaka #define RT2860_WPDMA_GLO_CFG		0x0208
     39  1.1    nonaka #define RT2860_WPDMA_RST_IDX		0x020c
     40  1.1    nonaka #define RT2860_DELAY_INT_CFG		0x0210
     41  1.1    nonaka #define RT2860_WMM_AIFSN_CFG		0x0214
     42  1.1    nonaka #define RT2860_WMM_CWMIN_CFG		0x0218
     43  1.1    nonaka #define RT2860_WMM_CWMAX_CFG		0x021c
     44  1.1    nonaka #define RT2860_WMM_TXOP0_CFG		0x0220
     45  1.1    nonaka #define RT2860_WMM_TXOP1_CFG		0x0224
     46  1.1    nonaka #define RT2860_GPIO_CTRL		0x0228
     47  1.1    nonaka #define RT2860_MCU_CMD_REG		0x022c
     48  1.1    nonaka #define RT2860_TX_BASE_PTR(qid)		(0x0230 + (qid) * 16)
     49  1.1    nonaka #define RT2860_TX_MAX_CNT(qid)		(0x0234 + (qid) * 16)
     50  1.1    nonaka #define RT2860_TX_CTX_IDX(qid)		(0x0238 + (qid) * 16)
     51  1.1    nonaka #define RT2860_TX_DTX_IDX(qid)		(0x023c + (qid) * 16)
     52  1.1    nonaka #define RT2860_RX_BASE_PTR		0x0290
     53  1.1    nonaka #define RT2860_RX_MAX_CNT		0x0294
     54  1.1    nonaka #define RT2860_RX_CALC_IDX		0x0298
     55  1.1    nonaka #define RT2860_FS_DRX_IDX		0x029c
     56  1.1    nonaka #define RT2860_USB_DMA_CFG		0x02a0	/* RT2870 only */
     57  1.1    nonaka #define RT2860_US_CYC_CNT		0x02a4
     58  1.1    nonaka 
     59  1.1    nonaka /* PBF registers */
     60  1.1    nonaka #define RT2860_SYS_CTRL			0x0400
     61  1.1    nonaka #define RT2860_HOST_CMD			0x0404
     62  1.1    nonaka #define RT2860_PBF_CFG			0x0408
     63  1.1    nonaka #define RT2860_MAX_PCNT			0x040c
     64  1.1    nonaka #define RT2860_BUF_CTRL			0x0410
     65  1.1    nonaka #define RT2860_MCU_INT_STA		0x0414
     66  1.1    nonaka #define RT2860_MCU_INT_ENA		0x0418
     67  1.1    nonaka #define RT2860_TXQ_IO(qid)		(0x041c + (qid) * 4)
     68  1.1    nonaka #define RT2860_RX0Q_IO			0x0424
     69  1.1    nonaka #define RT2860_BCN_OFFSET0		0x042c
     70  1.1    nonaka #define RT2860_BCN_OFFSET1		0x0430
     71  1.1    nonaka #define RT2860_TXRXQ_STA		0x0434
     72  1.1    nonaka #define RT2860_TXRXQ_PCNT		0x0438
     73  1.1    nonaka #define RT2860_PBF_DBG			0x043c
     74  1.1    nonaka #define RT2860_CAP_CTRL			0x0440
     75  1.1    nonaka 
     76  1.1    nonaka /* RT3070 registers */
     77  1.1    nonaka #define RT3070_RF_CSR_CFG		0x0500
     78  1.1    nonaka #define RT3070_EFUSE_CTRL		0x0580
     79  1.1    nonaka #define RT3070_EFUSE_DATA0		0x0590
     80  1.1    nonaka #define RT3070_EFUSE_DATA1		0x0594
     81  1.1    nonaka #define RT3070_EFUSE_DATA2		0x0598
     82  1.1    nonaka #define RT3070_EFUSE_DATA3		0x059c
     83  1.1    nonaka #define RT3090_OSC_CTRL			0x05a4
     84  1.1    nonaka #define RT3070_LDO_CFG0			0x05d4
     85  1.1    nonaka #define RT3070_GPIO_SWITCH		0x05dc
     86  1.1    nonaka 
     87  1.2  christos /* RT5592 registers */
     88  1.2  christos #define RT5592_DEBUG_INDEX		0x05e8
     89  1.2  christos 
     90  1.1    nonaka /* MAC registers */
     91  1.1    nonaka #define RT2860_ASIC_VER_ID		0x1000
     92  1.1    nonaka #define RT2860_MAC_SYS_CTRL		0x1004
     93  1.1    nonaka #define RT2860_MAC_ADDR_DW0		0x1008
     94  1.1    nonaka #define RT2860_MAC_ADDR_DW1		0x100c
     95  1.1    nonaka #define RT2860_MAC_BSSID_DW0		0x1010
     96  1.1    nonaka #define RT2860_MAC_BSSID_DW1		0x1014
     97  1.1    nonaka #define RT2860_MAX_LEN_CFG		0x1018
     98  1.1    nonaka #define RT2860_BBP_CSR_CFG		0x101c
     99  1.1    nonaka #define RT2860_RF_CSR_CFG0		0x1020
    100  1.1    nonaka #define RT2860_RF_CSR_CFG1		0x1024
    101  1.1    nonaka #define RT2860_RF_CSR_CFG2		0x1028
    102  1.1    nonaka #define RT2860_LED_CFG			0x102c
    103  1.1    nonaka 
    104  1.1    nonaka /* undocumented registers */
    105  1.1    nonaka #define RT2860_DEBUG			0x10f4
    106  1.1    nonaka 
    107  1.1    nonaka /* MAC Timing control registers */
    108  1.1    nonaka #define RT2860_XIFS_TIME_CFG		0x1100
    109  1.1    nonaka #define RT2860_BKOFF_SLOT_CFG		0x1104
    110  1.1    nonaka #define RT2860_NAV_TIME_CFG		0x1108
    111  1.1    nonaka #define RT2860_CH_TIME_CFG		0x110c
    112  1.1    nonaka #define RT2860_PBF_LIFE_TIMER		0x1110
    113  1.1    nonaka #define RT2860_BCN_TIME_CFG		0x1114
    114  1.1    nonaka #define RT2860_TBTT_SYNC_CFG		0x1118
    115  1.1    nonaka #define RT2860_TSF_TIMER_DW0		0x111c
    116  1.1    nonaka #define RT2860_TSF_TIMER_DW1		0x1120
    117  1.1    nonaka #define RT2860_TBTT_TIMER		0x1124
    118  1.1    nonaka #define RT2860_INT_TIMER_CFG		0x1128
    119  1.1    nonaka #define RT2860_INT_TIMER_EN		0x112c
    120  1.1    nonaka #define RT2860_CH_IDLE_TIME		0x1130
    121  1.1    nonaka 
    122  1.1    nonaka /* MAC Power Save configuration registers */
    123  1.1    nonaka #define RT2860_MAC_STATUS_REG		0x1200
    124  1.1    nonaka #define RT2860_PWR_PIN_CFG		0x1204
    125  1.1    nonaka #define RT2860_AUTO_WAKEUP_CFG		0x1208
    126  1.1    nonaka 
    127  1.1    nonaka /* MAC TX configuration registers */
    128  1.1    nonaka #define RT2860_EDCA_AC_CFG(aci)		(0x1300 + (aci) * 4)
    129  1.1    nonaka #define RT2860_EDCA_TID_AC_MAP		0x1310
    130  1.1    nonaka #define RT2860_TX_PWR_CFG(ridx)		(0x1314 + (ridx) * 4)
    131  1.1    nonaka #define RT2860_TX_PIN_CFG		0x1328
    132  1.1    nonaka #define RT2860_TX_BAND_CFG		0x132c
    133  1.1    nonaka #define RT2860_TX_SW_CFG0		0x1330
    134  1.1    nonaka #define RT2860_TX_SW_CFG1		0x1334
    135  1.1    nonaka #define RT2860_TX_SW_CFG2		0x1338
    136  1.1    nonaka #define RT2860_TXOP_THRES_CFG		0x133c
    137  1.1    nonaka #define RT2860_TXOP_CTRL_CFG		0x1340
    138  1.1    nonaka #define RT2860_TX_RTS_CFG		0x1344
    139  1.1    nonaka #define RT2860_TX_TIMEOUT_CFG		0x1348
    140  1.1    nonaka #define RT2860_TX_RTY_CFG		0x134c
    141  1.1    nonaka #define RT2860_TX_LINK_CFG		0x1350
    142  1.1    nonaka #define RT2860_HT_FBK_CFG0		0x1354
    143  1.1    nonaka #define RT2860_HT_FBK_CFG1		0x1358
    144  1.1    nonaka #define RT2860_LG_FBK_CFG0		0x135c
    145  1.1    nonaka #define RT2860_LG_FBK_CFG1		0x1360
    146  1.1    nonaka #define RT2860_CCK_PROT_CFG		0x1364
    147  1.1    nonaka #define RT2860_OFDM_PROT_CFG		0x1368
    148  1.1    nonaka #define RT2860_MM20_PROT_CFG		0x136c
    149  1.1    nonaka #define RT2860_MM40_PROT_CFG		0x1370
    150  1.1    nonaka #define RT2860_GF20_PROT_CFG		0x1374
    151  1.1    nonaka #define RT2860_GF40_PROT_CFG		0x1378
    152  1.1    nonaka #define RT2860_EXP_CTS_TIME		0x137c
    153  1.1    nonaka #define RT2860_EXP_ACK_TIME		0x1380
    154  1.1    nonaka 
    155  1.1    nonaka /* MAC RX configuration registers */
    156  1.1    nonaka #define RT2860_RX_FILTR_CFG		0x1400
    157  1.1    nonaka #define RT2860_AUTO_RSP_CFG		0x1404
    158  1.1    nonaka #define RT2860_LEGACY_BASIC_RATE	0x1408
    159  1.1    nonaka #define RT2860_HT_BASIC_RATE		0x140c
    160  1.1    nonaka #define RT2860_HT_CTRL_CFG		0x1410
    161  1.1    nonaka #define RT2860_SIFS_COST_CFG		0x1414
    162  1.1    nonaka #define RT2860_RX_PARSER_CFG		0x1418
    163  1.1    nonaka 
    164  1.1    nonaka /* MAC Security configuration registers */
    165  1.1    nonaka #define RT2860_TX_SEC_CNT0		0x1500
    166  1.1    nonaka #define RT2860_RX_SEC_CNT0		0x1504
    167  1.1    nonaka #define RT2860_CCMP_FC_MUTE		0x1508
    168  1.1    nonaka 
    169  1.1    nonaka /* MAC HCCA/PSMP configuration registers */
    170  1.1    nonaka #define RT2860_TXOP_HLDR_ADDR0		0x1600
    171  1.1    nonaka #define RT2860_TXOP_HLDR_ADDR1		0x1604
    172  1.1    nonaka #define RT2860_TXOP_HLDR_ET		0x1608
    173  1.1    nonaka #define RT2860_QOS_CFPOLL_RA_DW0	0x160c
    174  1.1    nonaka #define RT2860_QOS_CFPOLL_A1_DW1	0x1610
    175  1.1    nonaka #define RT2860_QOS_CFPOLL_QC		0x1614
    176  1.1    nonaka 
    177  1.1    nonaka /* MAC Statistics Counters */
    178  1.1    nonaka #define RT2860_RX_STA_CNT0		0x1700
    179  1.1    nonaka #define RT2860_RX_STA_CNT1		0x1704
    180  1.1    nonaka #define RT2860_RX_STA_CNT2		0x1708
    181  1.1    nonaka #define RT2860_TX_STA_CNT0		0x170c
    182  1.1    nonaka #define RT2860_TX_STA_CNT1		0x1710
    183  1.1    nonaka #define RT2860_TX_STA_CNT2		0x1714
    184  1.1    nonaka #define RT2860_TX_STAT_FIFO		0x1718
    185  1.1    nonaka 
    186  1.1    nonaka /* RX WCID search table */
    187  1.1    nonaka #define RT2860_WCID_ENTRY(wcid)		(0x1800 + (wcid) * 8)
    188  1.1    nonaka 
    189  1.1    nonaka #define RT2860_FW_BASE			0x2000
    190  1.1    nonaka #define RT2870_FW_BASE			0x3000
    191  1.1    nonaka 
    192  1.1    nonaka /* Pair-wise key table */
    193  1.1    nonaka #define RT2860_PKEY(wcid)		(0x4000 + (wcid) * 32)
    194  1.1    nonaka 
    195  1.1    nonaka /* IV/EIV table */
    196  1.1    nonaka #define RT2860_IVEIV(wcid)		(0x6000 + (wcid) * 8)
    197  1.1    nonaka 
    198  1.1    nonaka /* WCID attribute table */
    199  1.1    nonaka #define RT2860_WCID_ATTR(wcid)		(0x6800 + (wcid) * 4)
    200  1.1    nonaka 
    201  1.1    nonaka /* Shared Key Table */
    202  1.1    nonaka #define RT2860_SKEY(vap, kidx)		(0x6c00 + (vap) * 128 + (kidx) * 32)
    203  1.1    nonaka 
    204  1.1    nonaka /* Shared Key Mode */
    205  1.1    nonaka #define RT2860_SKEY_MODE_0_7		0x7000
    206  1.1    nonaka #define RT2860_SKEY_MODE_8_15		0x7004
    207  1.1    nonaka #define RT2860_SKEY_MODE_16_23		0x7008
    208  1.1    nonaka #define RT2860_SKEY_MODE_24_31		0x700c
    209  1.1    nonaka 
    210  1.1    nonaka /* Shared Memory between MCU and host */
    211  1.1    nonaka #define RT2860_H2M_MAILBOX		0x7010
    212  1.1    nonaka #define RT2860_H2M_MAILBOX_CID		0x7014
    213  1.1    nonaka #define RT2860_H2M_MAILBOX_STATUS	0x701c
    214  1.2  christos #define RT2860_H2M_INTSRC		0x7024
    215  1.1    nonaka #define RT2860_H2M_BBPAGENT		0x7028
    216  1.1    nonaka #define RT2860_BCN_BASE(vap)		(0x7800 + (vap) * 512)
    217  1.1    nonaka 
    218  1.1    nonaka 
    219  1.1    nonaka /* possible flags for RT2860_PCI_CFG */
    220  1.5  christos #define RT2860_PCI_CFG_USB	(1U << 17)
    221  1.5  christos #define RT2860_PCI_CFG_PCI	(1U << 16)
    222  1.1    nonaka 
    223  1.1    nonaka /* possible flags for register RT2860_PCI_EECTRL */
    224  1.5  christos #define RT2860_C	(1U << 0)
    225  1.5  christos #define RT2860_S	(1U << 1)
    226  1.5  christos #define RT2860_D	(1U << 2)
    227  1.1    nonaka #define RT2860_SHIFT_D	2
    228  1.5  christos #define RT2860_Q	(1U << 3)
    229  1.1    nonaka #define RT2860_SHIFT_Q	3
    230  1.1    nonaka 
    231  1.1    nonaka /* possible flags for registers INT_STATUS/INT_MASK */
    232  1.5  christos #define RT2860_TX_COHERENT	(1U << 17)
    233  1.5  christos #define RT2860_RX_COHERENT	(1U << 16)
    234  1.5  christos #define RT2860_MAC_INT_4	(1U << 15)
    235  1.5  christos #define RT2860_MAC_INT_3	(1U << 14)
    236  1.5  christos #define RT2860_MAC_INT_2	(1U << 13)
    237  1.5  christos #define RT2860_MAC_INT_1	(1U << 12)
    238  1.5  christos #define RT2860_MAC_INT_0	(1U << 11)
    239  1.5  christos #define RT2860_TX_RX_COHERENT	(1U << 10)
    240  1.5  christos #define RT2860_MCU_CMD_INT	(1U <<  9)
    241  1.5  christos #define RT2860_TX_DONE_INT5	(1U <<  8)
    242  1.5  christos #define RT2860_TX_DONE_INT4	(1U <<  7)
    243  1.5  christos #define RT2860_TX_DONE_INT3	(1U <<  6)
    244  1.5  christos #define RT2860_TX_DONE_INT2	(1U <<  5)
    245  1.5  christos #define RT2860_TX_DONE_INT1	(1U <<  4)
    246  1.5  christos #define RT2860_TX_DONE_INT0	(1U <<  3)
    247  1.5  christos #define RT2860_RX_DONE_INT	(1U <<  2)
    248  1.5  christos #define RT2860_TX_DLY_INT	(1U <<  1)
    249  1.5  christos #define RT2860_RX_DLY_INT	(1U <<  0)
    250  1.1    nonaka 
    251  1.1    nonaka /* possible flags for register WPDMA_GLO_CFG */
    252  1.1    nonaka #define RT2860_HDR_SEG_LEN_SHIFT	8
    253  1.5  christos #define RT2860_BIG_ENDIAN		(1U << 7)
    254  1.5  christos #define RT2860_TX_WB_DDONE		(1U << 6)
    255  1.1    nonaka #define RT2860_WPDMA_BT_SIZE_SHIFT	4
    256  1.1    nonaka #define RT2860_WPDMA_BT_SIZE16		0
    257  1.1    nonaka #define RT2860_WPDMA_BT_SIZE32		1
    258  1.1    nonaka #define RT2860_WPDMA_BT_SIZE64		2
    259  1.1    nonaka #define RT2860_WPDMA_BT_SIZE128		3
    260  1.5  christos #define RT2860_RX_DMA_BUSY		(1U << 3)
    261  1.5  christos #define RT2860_RX_DMA_EN		(1U << 2)
    262  1.5  christos #define RT2860_TX_DMA_BUSY		(1U << 1)
    263  1.5  christos #define RT2860_TX_DMA_EN		(1U << 0)
    264  1.5  christos 
    265  1.5  christos /* flags for register WPDMA_RST_IDX */
    266  1.5  christos #define RT2860_RST_DRX_IDX0		(1U << 16)
    267  1.5  christos #define RT2860_RST_DTX_IDX5		(1U <<  5)
    268  1.5  christos #define RT2860_RST_DTX_IDX4		(1U <<  4)
    269  1.5  christos #define RT2860_RST_DTX_IDX3		(1U <<  3)
    270  1.5  christos #define RT2860_RST_DTX_IDX2		(1U <<  2)
    271  1.5  christos #define RT2860_RST_DTX_IDX1		(1U <<  1)
    272  1.5  christos #define RT2860_RST_DTX_IDX0		(1U <<  0)
    273  1.1    nonaka 
    274  1.1    nonaka /* possible flags for register DELAY_INT_CFG */
    275  1.2  christos #define RT2860_TXDLY_INT_EN		(1U << 31)
    276  1.1    nonaka #define RT2860_TXMAX_PINT_SHIFT		24
    277  1.1    nonaka #define RT2860_TXMAX_PTIME_SHIFT	16
    278  1.2  christos #define RT2860_RXDLY_INT_EN		(1U << 15)
    279  1.1    nonaka #define RT2860_RXMAX_PINT_SHIFT		8
    280  1.1    nonaka #define RT2860_RXMAX_PTIME_SHIFT	0
    281  1.1    nonaka 
    282  1.1    nonaka /* possible flags for register GPIO_CTRL */
    283  1.1    nonaka #define RT2860_GPIO_D_SHIFT	8
    284  1.1    nonaka #define RT2860_GPIO_O_SHIFT	0
    285  1.1    nonaka 
    286  1.1    nonaka /* possible flags for register USB_DMA_CFG */
    287  1.2  christos #define RT2860_USB_TX_BUSY		(1U << 31)
    288  1.2  christos #define RT2860_USB_RX_BUSY		(1U << 30)
    289  1.1    nonaka #define RT2860_USB_EPOUT_VLD_SHIFT	24
    290  1.2  christos #define RT2860_USB_TX_EN		(1U << 23)
    291  1.2  christos #define RT2860_USB_RX_EN		(1U << 22)
    292  1.2  christos #define RT2860_USB_RX_AGG_EN		(1U << 21)
    293  1.2  christos #define RT2860_USB_TXOP_HALT		(1U << 20)
    294  1.2  christos #define RT2860_USB_TX_CLEAR		(1U << 19)
    295  1.2  christos #define RT2860_USB_PHY_WD_EN		(1U << 16)
    296  1.2  christos #define RT2860_USB_PHY_MAN_RST		(1U << 15)
    297  1.1    nonaka #define RT2860_USB_RX_AGG_LMT(x)	((x) << 8)	/* in unit of 1KB */
    298  1.1    nonaka #define RT2860_USB_RX_AGG_TO(x)		((x) & 0xff)	/* in unit of 33ns */
    299  1.1    nonaka 
    300  1.1    nonaka /* possible flags for register US_CYC_CNT */
    301  1.5  christos #define RT2860_TEST_EN		(1U << 24)
    302  1.1    nonaka #define RT2860_TEST_SEL_SHIFT	16
    303  1.5  christos #define RT2860_BT_MODE_EN	(1U <<  8)
    304  1.1    nonaka #define RT2860_US_CYC_CNT_SHIFT	0
    305  1.1    nonaka 
    306  1.1    nonaka /* possible flags for register SYS_CTRL */
    307  1.5  christos #define RT2860_HST_PM_SEL	(1U << 16)
    308  1.5  christos #define RT2860_CAP_MODE		(1U << 14)
    309  1.5  christos #define RT2860_PME_OEN		(1U << 13)
    310  1.5  christos #define RT2860_CLKSELECT	(1U << 12)
    311  1.5  christos #define RT2860_PBF_CLK_EN	(1U << 11)
    312  1.5  christos #define RT2860_MAC_CLK_EN	(1U << 10)
    313  1.5  christos #define RT2860_DMA_CLK_EN	(1U <<  9)
    314  1.5  christos #define RT2860_MCU_READY	(1U <<  7)
    315  1.5  christos #define RT2860_ASY_RESET	(1U <<  4)
    316  1.5  christos #define RT2860_PBF_RESET	(1U <<  3)
    317  1.5  christos #define RT2860_MAC_RESET	(1U <<  2)
    318  1.5  christos #define RT2860_DMA_RESET	(1U <<  1)
    319  1.5  christos #define RT2860_MCU_RESET	(1U <<  0)
    320  1.1    nonaka 
    321  1.1    nonaka /* possible values for register HOST_CMD */
    322  1.1    nonaka #define RT2860_MCU_CMD_SLEEP	0x30
    323  1.1    nonaka #define RT2860_MCU_CMD_WAKEUP	0x31
    324  1.1    nonaka #define RT2860_MCU_CMD_LEDS	0x50
    325  1.1    nonaka #define RT2860_MCU_CMD_LED_RSSI	0x51
    326  1.1    nonaka #define RT2860_MCU_CMD_LED1	0x52
    327  1.1    nonaka #define RT2860_MCU_CMD_LED2	0x53
    328  1.1    nonaka #define RT2860_MCU_CMD_LED3	0x54
    329  1.1    nonaka #define RT2860_MCU_CMD_RFRESET	0x72
    330  1.1    nonaka #define RT2860_MCU_CMD_ANTSEL	0x73
    331  1.1    nonaka #define RT2860_MCU_CMD_BBP	0x80
    332  1.1    nonaka #define RT2860_MCU_CMD_PSLEVEL	0x83
    333  1.1    nonaka 
    334  1.1    nonaka /* possible flags for register PBF_CFG */
    335  1.1    nonaka #define RT2860_TX1Q_NUM_SHIFT	21
    336  1.1    nonaka #define RT2860_TX2Q_NUM_SHIFT	16
    337  1.5  christos #define RT2860_NULL0_MODE	(1U << 15)
    338  1.5  christos #define RT2860_NULL1_MODE	(1U << 14)
    339  1.5  christos #define RT2860_RX_DROP_MODE	(1U << 13)
    340  1.5  christos #define RT2860_TX0Q_MANUAL	(1U << 12)
    341  1.5  christos #define RT2860_TX1Q_MANUAL	(1U << 11)
    342  1.5  christos #define RT2860_TX2Q_MANUAL	(1U << 10)
    343  1.5  christos #define RT2860_RX0Q_MANUAL	(1U <<  9)
    344  1.5  christos #define RT2860_HCCA_EN		(1U <<  8)
    345  1.5  christos #define RT2860_TX0Q_EN		(1U <<  4)
    346  1.5  christos #define RT2860_TX1Q_EN		(1U <<  3)
    347  1.5  christos #define RT2860_TX2Q_EN		(1U <<  2)
    348  1.5  christos #define RT2860_RX0Q_EN		(1U <<  1)
    349  1.1    nonaka 
    350  1.1    nonaka /* possible flags for register BUF_CTRL */
    351  1.5  christos #define RT2860_WRITE_TXQ(qid)	(1U << (11 - (qid)))
    352  1.5  christos #define RT2860_NULL0_KICK	(1U << 7)
    353  1.5  christos #define RT2860_NULL1_KICK	(1U << 6)
    354  1.5  christos #define RT2860_BUF_RESET	(1U << 5)
    355  1.5  christos #define RT2860_READ_TXQ(qid)	(1U << (3 - (qid))
    356  1.5  christos #define RT2860_READ_RX0Q	(1U << 0)
    357  1.1    nonaka 
    358  1.1    nonaka /* possible flags for registers MCU_INT_STA/MCU_INT_ENA */
    359  1.5  christos #define RT2860_MCU_MAC_INT_8	(1U << 24)
    360  1.5  christos #define RT2860_MCU_MAC_INT_7	(1U << 23)
    361  1.5  christos #define RT2860_MCU_MAC_INT_6	(1U << 22)
    362  1.5  christos #define RT2860_MCU_MAC_INT_4	(1U << 20)
    363  1.5  christos #define RT2860_MCU_MAC_INT_3	(1U << 19)
    364  1.5  christos #define RT2860_MCU_MAC_INT_2	(1U << 18)
    365  1.5  christos #define RT2860_MCU_MAC_INT_1	(1U << 17)
    366  1.5  christos #define RT2860_MCU_MAC_INT_0	(1U << 16)
    367  1.5  christos #define RT2860_DTX0_INT		(1U << 11)
    368  1.5  christos #define RT2860_DTX1_INT		(1U << 10)
    369  1.5  christos #define RT2860_DTX2_INT		(1U <<  9)
    370  1.5  christos #define RT2860_DRX0_INT		(1U <<  8)
    371  1.5  christos #define RT2860_HCMD_INT		(1U <<  7)
    372  1.5  christos #define RT2860_N0TX_INT		(1U <<  6)
    373  1.5  christos #define RT2860_N1TX_INT		(1U <<  5)
    374  1.5  christos #define RT2860_BCNTX_INT	(1U <<  4)
    375  1.5  christos #define RT2860_MTX0_INT		(1U <<  3)
    376  1.5  christos #define RT2860_MTX1_INT		(1U <<  2)
    377  1.5  christos #define RT2860_MTX2_INT		(1U <<  1)
    378  1.5  christos #define RT2860_MRX0_INT		(1U <<  0)
    379  1.1    nonaka 
    380  1.1    nonaka /* possible flags for register TXRXQ_PCNT */
    381  1.1    nonaka #define RT2860_RX0Q_PCNT_MASK	0xff000000
    382  1.1    nonaka #define RT2860_TX2Q_PCNT_MASK	0x00ff0000
    383  1.1    nonaka #define RT2860_TX1Q_PCNT_MASK	0x0000ff00
    384  1.1    nonaka #define RT2860_TX0Q_PCNT_MASK	0x000000ff
    385  1.1    nonaka 
    386  1.1    nonaka /* possible flags for register CAP_CTRL */
    387  1.2  christos #define RT2860_CAP_ADC_FEQ		(1U << 31)
    388  1.2  christos #define RT2860_CAP_START		(1U << 30)
    389  1.2  christos #define RT2860_MAN_TRIG			(1U << 29)
    390  1.1    nonaka #define RT2860_TRIG_OFFSET_SHIFT	16
    391  1.1    nonaka #define RT2860_START_ADDR_SHIFT		0
    392  1.1    nonaka 
    393  1.1    nonaka /* possible flags for register RF_CSR_CFG */
    394  1.5  christos #define RT3070_RF_KICK		(1U << 17)
    395  1.5  christos #define RT3070_RF_WRITE		(1U << 16)
    396  1.1    nonaka 
    397  1.1    nonaka /* possible flags for register EFUSE_CTRL */
    398  1.2  christos #define RT3070_SEL_EFUSE	(1U << 31)
    399  1.2  christos #define RT3070_EFSROM_KICK	(1U << 30)
    400  1.1    nonaka #define RT3070_EFSROM_AIN_MASK	0x03ff0000
    401  1.1    nonaka #define RT3070_EFSROM_AIN_SHIFT	16
    402  1.1    nonaka #define RT3070_EFSROM_MODE_MASK	0x000000c0
    403  1.1    nonaka #define RT3070_EFUSE_AOUT_MASK	0x0000003f
    404  1.1    nonaka 
    405  1.2  christos /* possible flag for register DEBUG_INDEX */
    406  1.2  christos #define RT5592_SEL_XTAL		(1U << 31)
    407  1.2  christos 
    408  1.1    nonaka /* possible flags for register MAC_SYS_CTRL */
    409  1.5  christos #define RT2860_RX_TS_EN		(1U << 7)
    410  1.5  christos #define RT2860_WLAN_HALT_EN	(1U << 6)
    411  1.5  christos #define RT2860_PBF_LOOP_EN	(1U << 5)
    412  1.5  christos #define RT2860_CONT_TX_TEST	(1U << 4)
    413  1.5  christos #define RT2860_MAC_RX_EN	(1U << 3)
    414  1.5  christos #define RT2860_MAC_TX_EN	(1U << 2)
    415  1.5  christos #define RT2860_BBP_HRST		(1U << 1)
    416  1.5  christos #define RT2860_MAC_SRST		(1U << 0)
    417  1.1    nonaka 
    418  1.1    nonaka /* possible flags for register MAC_BSSID_DW1 */
    419  1.1    nonaka #define RT2860_MULTI_BCN_NUM_SHIFT	18
    420  1.1    nonaka #define RT2860_MULTI_BSSID_MODE_SHIFT	16
    421  1.1    nonaka 
    422  1.1    nonaka /* possible flags for register MAX_LEN_CFG */
    423  1.1    nonaka #define RT2860_MIN_MPDU_LEN_SHIFT	16
    424  1.1    nonaka #define RT2860_MAX_PSDU_LEN_SHIFT	12
    425  1.1    nonaka #define RT2860_MAX_PSDU_LEN8K		0
    426  1.1    nonaka #define RT2860_MAX_PSDU_LEN16K		1
    427  1.1    nonaka #define RT2860_MAX_PSDU_LEN32K		2
    428  1.1    nonaka #define RT2860_MAX_PSDU_LEN64K		3
    429  1.1    nonaka #define RT2860_MAX_MPDU_LEN_SHIFT	0
    430  1.1    nonaka 
    431  1.1    nonaka /* possible flags for registers BBP_CSR_CFG/H2M_BBPAGENT */
    432  1.5  christos #define RT2860_BBP_RW_PARALLEL		(1U << 19)
    433  1.5  christos #define RT2860_BBP_PAR_DUR_112_5	(1U << 18)
    434  1.5  christos #define RT2860_BBP_CSR_KICK		(1U << 17)
    435  1.5  christos #define RT2860_BBP_CSR_READ		(1U << 16)
    436  1.1    nonaka #define RT2860_BBP_ADDR_SHIFT		8
    437  1.1    nonaka #define RT2860_BBP_DATA_SHIFT		0
    438  1.1    nonaka 
    439  1.1    nonaka /* possible flags for register RF_CSR_CFG0 */
    440  1.2  christos #define RT2860_RF_REG_CTRL		(1U << 31)
    441  1.2  christos #define RT2860_RF_LE_SEL1		(1U << 30)
    442  1.2  christos #define RT2860_RF_LE_STBY		(1U << 29)
    443  1.1    nonaka #define RT2860_RF_REG_WIDTH_SHIFT	24
    444  1.1    nonaka #define RT2860_RF_REG_0_SHIFT		0
    445  1.1    nonaka 
    446  1.1    nonaka /* possible flags for register RF_CSR_CFG1 */
    447  1.5  christos #define RT2860_RF_DUR_5		(1U << 24)
    448  1.1    nonaka #define RT2860_RF_REG_1_SHIFT	0
    449  1.1    nonaka 
    450  1.1    nonaka /* possible flags for register LED_CFG */
    451  1.5  christos #define RT2860_LED_POL			(1U << 30)
    452  1.1    nonaka #define RT2860_Y_LED_MODE_SHIFT		28
    453  1.1    nonaka #define RT2860_G_LED_MODE_SHIFT		26
    454  1.1    nonaka #define RT2860_R_LED_MODE_SHIFT		24
    455  1.1    nonaka #define RT2860_LED_MODE_OFF		0
    456  1.1    nonaka #define RT2860_LED_MODE_BLINK_TX	1
    457  1.1    nonaka #define RT2860_LED_MODE_SLOW_BLINK	2
    458  1.1    nonaka #define RT2860_LED_MODE_ON		3
    459  1.1    nonaka #define RT2860_SLOW_BLK_TIME_SHIFT	16
    460  1.1    nonaka #define RT2860_LED_OFF_TIME_SHIFT	8
    461  1.1    nonaka #define RT2860_LED_ON_TIME_SHIFT	0
    462  1.1    nonaka 
    463  1.1    nonaka /* possible flags for register XIFS_TIME_CFG */
    464  1.5  christos #define RT2860_BB_RXEND_EN		(1U << 29)
    465  1.1    nonaka #define RT2860_EIFS_TIME_SHIFT		20
    466  1.1    nonaka #define RT2860_OFDM_XIFS_TIME_SHIFT	16
    467  1.1    nonaka #define RT2860_OFDM_SIFS_TIME_SHIFT	8
    468  1.1    nonaka #define RT2860_CCK_SIFS_TIME_SHIFT	0
    469  1.1    nonaka 
    470  1.1    nonaka /* possible flags for register BKOFF_SLOT_CFG */
    471  1.1    nonaka #define RT2860_CC_DELAY_TIME_SHIFT	8
    472  1.1    nonaka #define RT2860_SLOT_TIME		0
    473  1.1    nonaka 
    474  1.1    nonaka /* possible flags for register NAV_TIME_CFG */
    475  1.2  christos #define RT2860_NAV_UPD			(1U << 31)
    476  1.1    nonaka #define RT2860_NAV_UPD_VAL_SHIFT	16
    477  1.2  christos #define RT2860_NAV_CLR_EN		(1U << 15)
    478  1.1    nonaka #define RT2860_NAV_TIMER_SHIFT		0
    479  1.1    nonaka 
    480  1.1    nonaka /* possible flags for register CH_TIME_CFG */
    481  1.5  christos #define RT2860_EIFS_AS_CH_BUSY	(1U << 4)
    482  1.5  christos #define RT2860_NAV_AS_CH_BUSY	(1U << 3)
    483  1.5  christos #define RT2860_RX_AS_CH_BUSY	(1U << 2)
    484  1.5  christos #define RT2860_TX_AS_CH_BUSY	(1U << 1)
    485  1.5  christos #define RT2860_CH_STA_TIMER_EN	(1U << 0)
    486  1.1    nonaka 
    487  1.1    nonaka /* possible values for register BCN_TIME_CFG */
    488  1.1    nonaka #define RT2860_TSF_INS_COMP_SHIFT	24
    489  1.5  christos #define RT2860_BCN_TX_EN		(1U << 20)
    490  1.5  christos #define RT2860_TBTT_TIMER_EN		(1U << 19)
    491  1.1    nonaka #define RT2860_TSF_SYNC_MODE_SHIFT	17
    492  1.1    nonaka #define RT2860_TSF_SYNC_MODE_DIS	0
    493  1.1    nonaka #define RT2860_TSF_SYNC_MODE_STA	1
    494  1.1    nonaka #define RT2860_TSF_SYNC_MODE_IBSS	2
    495  1.1    nonaka #define RT2860_TSF_SYNC_MODE_HOSTAP	3
    496  1.5  christos #define RT2860_TSF_TIMER_EN		(1U << 16)
    497  1.1    nonaka #define RT2860_BCN_INTVAL_SHIFT		0
    498  1.1    nonaka 
    499  1.1    nonaka /* possible flags for register TBTT_SYNC_CFG */
    500  1.1    nonaka #define RT2860_BCN_CWMIN_SHIFT		20
    501  1.1    nonaka #define RT2860_BCN_AIFSN_SHIFT		16
    502  1.1    nonaka #define RT2860_BCN_EXP_WIN_SHIFT	8
    503  1.1    nonaka #define RT2860_TBTT_ADJUST_SHIFT	0
    504  1.1    nonaka 
    505  1.1    nonaka /* possible flags for register INT_TIMER_CFG */
    506  1.1    nonaka #define RT2860_GP_TIMER_SHIFT		16
    507  1.1    nonaka #define RT2860_PRE_TBTT_TIMER_SHIFT	0
    508  1.1    nonaka 
    509  1.1    nonaka /* possible flags for register INT_TIMER_EN */
    510  1.5  christos #define RT2860_GP_TIMER_EN	(1U << 1)
    511  1.5  christos #define RT2860_PRE_TBTT_INT_EN	(1U << 0)
    512  1.1    nonaka 
    513  1.1    nonaka /* possible flags for register MAC_STATUS_REG */
    514  1.5  christos #define RT2860_RX_STATUS_BUSY	(1U << 1)
    515  1.5  christos #define RT2860_TX_STATUS_BUSY	(1U << 0)
    516  1.1    nonaka 
    517  1.1    nonaka /* possible flags for register PWR_PIN_CFG */
    518  1.5  christos #define RT2860_IO_ADDA_PD	(1U << 3)
    519  1.5  christos #define RT2860_IO_PLL_PD	(1U << 2)
    520  1.5  christos #define RT2860_IO_RA_PE		(1U << 1)
    521  1.5  christos #define RT2860_IO_RF_PE		(1U << 0)
    522  1.1    nonaka 
    523  1.1    nonaka /* possible flags for register AUTO_WAKEUP_CFG */
    524  1.5  christos #define RT2860_AUTO_WAKEUP_EN		(1U << 15)
    525  1.1    nonaka #define RT2860_SLEEP_TBTT_NUM_SHIFT	8
    526  1.1    nonaka #define RT2860_WAKEUP_LEAD_TIME_SHIFT	0
    527  1.1    nonaka 
    528  1.1    nonaka /* possible flags for register TX_PIN_CFG */
    529  1.2  christos #define RT3593_LNA_PE_G2_POL	(1U << 31)
    530  1.2  christos #define RT3593_LNA_PE_A2_POL	(1U << 30)
    531  1.2  christos #define RT3593_LNA_PE_G2_EN	(1U << 29)
    532  1.2  christos #define RT3593_LNA_PE_A2_EN	(1U << 28)
    533  1.1    nonaka #define RT3593_LNA_PE2_EN	(RT3593_LNA_PE_A2_EN | RT3593_LNA_PE_G2_EN)
    534  1.2  christos #define RT3593_PA_PE_G2_POL	(1U << 27)
    535  1.2  christos #define RT3593_PA_PE_A2_POL	(1U << 26)
    536  1.2  christos #define RT3593_PA_PE_G2_EN	(1U << 25)
    537  1.2  christos #define RT3593_PA_PE_A2_EN	(1U << 24)
    538  1.2  christos #define RT2860_TRSW_POL		(1U << 19)
    539  1.2  christos #define RT2860_TRSW_EN		(1U << 18)
    540  1.2  christos #define RT2860_RFTR_POL		(1U << 17)
    541  1.2  christos #define RT2860_RFTR_EN		(1U << 16)
    542  1.2  christos #define RT2860_LNA_PE_G1_POL	(1U << 15)
    543  1.2  christos #define RT2860_LNA_PE_A1_POL	(1U << 14)
    544  1.2  christos #define RT2860_LNA_PE_G0_POL	(1U << 13)
    545  1.2  christos #define RT2860_LNA_PE_A0_POL	(1U << 12)
    546  1.2  christos #define RT2860_LNA_PE_G1_EN	(1U << 11)
    547  1.2  christos #define RT2860_LNA_PE_A1_EN	(1U << 10)
    548  1.1    nonaka #define RT2860_LNA_PE1_EN	(RT2860_LNA_PE_A1_EN | RT2860_LNA_PE_G1_EN)
    549  1.2  christos #define RT2860_LNA_PE_G0_EN	(1U <<  9)
    550  1.2  christos #define RT2860_LNA_PE_A0_EN	(1U <<  8)
    551  1.1    nonaka #define RT2860_LNA_PE0_EN	(RT2860_LNA_PE_A0_EN | RT2860_LNA_PE_G0_EN)
    552  1.2  christos #define RT2860_PA_PE_G1_POL	(1U <<  7)
    553  1.2  christos #define RT2860_PA_PE_A1_POL	(1U <<  6)
    554  1.2  christos #define RT2860_PA_PE_G0_POL	(1U <<  5)
    555  1.2  christos #define RT2860_PA_PE_A0_POL	(1U <<  4)
    556  1.2  christos #define RT2860_PA_PE_G1_EN	(1U <<  3)
    557  1.2  christos #define RT2860_PA_PE_A1_EN	(1U <<  2)
    558  1.2  christos #define RT2860_PA_PE_G0_EN	(1U <<  1)
    559  1.2  christos #define RT2860_PA_PE_A0_EN	(1U <<  0)
    560  1.1    nonaka 
    561  1.1    nonaka /* possible flags for register TX_BAND_CFG */
    562  1.5  christos #define RT2860_5G_BAND_SEL_N	(1U << 2)
    563  1.5  christos #define RT2860_5G_BAND_SEL_P	(1U << 1)
    564  1.5  christos #define RT2860_TX_BAND_SEL	(1U << 0)
    565  1.1    nonaka 
    566  1.1    nonaka /* possible flags for register TX_SW_CFG0 */
    567  1.1    nonaka #define RT2860_DLY_RFTR_EN_SHIFT	24
    568  1.1    nonaka #define RT2860_DLY_TRSW_EN_SHIFT	16
    569  1.1    nonaka #define RT2860_DLY_PAPE_EN_SHIFT	8
    570  1.1    nonaka #define RT2860_DLY_TXPE_EN_SHIFT	0
    571  1.1    nonaka 
    572  1.1    nonaka /* possible flags for register TX_SW_CFG1 */
    573  1.1    nonaka #define RT2860_DLY_RFTR_DIS_SHIFT	16
    574  1.1    nonaka #define RT2860_DLY_TRSW_DIS_SHIFT	8
    575  1.1    nonaka #define RT2860_DLY_PAPE_DIS SHIFT	0
    576  1.1    nonaka 
    577  1.1    nonaka /* possible flags for register TX_SW_CFG2 */
    578  1.1    nonaka #define RT2860_DLY_LNA_EN_SHIFT		24
    579  1.1    nonaka #define RT2860_DLY_LNA_DIS_SHIFT	16
    580  1.1    nonaka #define RT2860_DLY_DAC_EN_SHIFT		8
    581  1.1    nonaka #define RT2860_DLY_DAC_DIS_SHIFT	0
    582  1.1    nonaka 
    583  1.1    nonaka /* possible flags for register TXOP_THRES_CFG */
    584  1.1    nonaka #define RT2860_TXOP_REM_THRES_SHIFT	24
    585  1.1    nonaka #define RT2860_CF_END_THRES_SHIFT	16
    586  1.1    nonaka #define RT2860_RDG_IN_THRES		8
    587  1.1    nonaka #define RT2860_RDG_OUT_THRES		0
    588  1.1    nonaka 
    589  1.1    nonaka /* possible flags for register TXOP_CTRL_CFG */
    590  1.1    nonaka #define RT2860_EXT_CW_MIN_SHIFT		16
    591  1.1    nonaka #define RT2860_EXT_CCA_DLY_SHIFT	8
    592  1.5  christos #define RT2860_EXT_CCA_EN		(1U << 7)
    593  1.5  christos #define RT2860_LSIG_TXOP_EN		(1U << 6)
    594  1.5  christos #define RT2860_TXOP_TRUN_EN_MIMOPS	(1U << 4)
    595  1.5  christos #define RT2860_TXOP_TRUN_EN_TXOP	(1U << 3)
    596  1.5  christos #define RT2860_TXOP_TRUN_EN_RATE	(1U << 2)
    597  1.5  christos #define RT2860_TXOP_TRUN_EN_AC		(1U << 1)
    598  1.5  christos #define RT2860_TXOP_TRUN_EN_TIMEOUT	(1U << 0)
    599  1.1    nonaka 
    600  1.1    nonaka /* possible flags for register TX_RTS_CFG */
    601  1.5  christos #define RT2860_RTS_FBK_EN		(1U << 24)
    602  1.1    nonaka #define RT2860_RTS_THRES_SHIFT		8
    603  1.1    nonaka #define RT2860_RTS_RTY_LIMIT_SHIFT	0
    604  1.1    nonaka 
    605  1.1    nonaka /* possible flags for register TX_TIMEOUT_CFG */
    606  1.1    nonaka #define RT2860_TXOP_TIMEOUT_SHIFT	16
    607  1.1    nonaka #define RT2860_RX_ACK_TIMEOUT_SHIFT	8
    608  1.1    nonaka #define RT2860_MPDU_LIFE_TIME_SHIFT	4
    609  1.1    nonaka 
    610  1.1    nonaka /* possible flags for register TX_RTY_CFG */
    611  1.5  christos #define RT2860_TX_AUTOFB_EN		(1U << 30)
    612  1.5  christos #define RT2860_AGG_RTY_MODE_TIMER	(1U << 29)
    613  1.5  christos #define RT2860_NAG_RTY_MODE_TIMER	(1U << 28)
    614  1.1    nonaka #define RT2860_LONG_RTY_THRES_SHIFT	16
    615  1.1    nonaka #define RT2860_LONG_RTY_LIMIT_SHIFT	8
    616  1.1    nonaka #define RT2860_SHORT_RTY_LIMIT_SHIFT	0
    617  1.1    nonaka 
    618  1.1    nonaka /* possible flags for register TX_LINK_CFG */
    619  1.1    nonaka #define RT2860_REMOTE_MFS_SHIFT		24
    620  1.1    nonaka #define RT2860_REMOTE_MFB_SHIFT		16
    621  1.5  christos #define RT2860_TX_CFACK_EN		(1U << 12)
    622  1.5  christos #define RT2860_TX_RDG_EN		(1U << 11)
    623  1.5  christos #define RT2860_TX_MRQ_EN		(1U << 10)
    624  1.5  christos #define RT2860_REMOTE_UMFS_EN		(1U <<  9)
    625  1.5  christos #define RT2860_TX_MFB_EN		(1U <<  8)
    626  1.1    nonaka #define RT2860_REMOTE_MFB_LT_SHIFT	0
    627  1.1    nonaka 
    628  1.1    nonaka /* possible flags for registers *_PROT_CFG */
    629  1.5  christos #define RT2860_RTSTH_EN			(1U << 26)
    630  1.5  christos #define RT2860_TXOP_ALLOW_GF40		(1U << 25)
    631  1.5  christos #define RT2860_TXOP_ALLOW_GF20		(1U << 24)
    632  1.5  christos #define RT2860_TXOP_ALLOW_MM40		(1U << 23)
    633  1.5  christos #define RT2860_TXOP_ALLOW_MM20		(1U << 22)
    634  1.5  christos #define RT2860_TXOP_ALLOW_OFDM		(1U << 21)
    635  1.5  christos #define RT2860_TXOP_ALLOW_CCK		(1U << 20)
    636  1.1    nonaka #define RT2860_TXOP_ALLOW_ALL		(0x3f << 20)
    637  1.5  christos #define RT2860_PROT_NAV_SHORT		(1U << 18)
    638  1.1    nonaka #define RT2860_PROT_NAV_LONG		(2 << 18)
    639  1.5  christos #define RT2860_PROT_CTRL_RTS_CTS	(1U << 16)
    640  1.1    nonaka #define RT2860_PROT_CTRL_CTS		(2 << 16)
    641  1.1    nonaka 
    642  1.1    nonaka /* possible flags for registers EXP_{CTS,ACK}_TIME */
    643  1.1    nonaka #define RT2860_EXP_OFDM_TIME_SHIFT	16
    644  1.1    nonaka #define RT2860_EXP_CCK_TIME_SHIFT	0
    645  1.1    nonaka 
    646  1.1    nonaka /* possible flags for register RX_FILTR_CFG */
    647  1.5  christos #define RT2860_DROP_CTRL_RSV	(1U << 16)
    648  1.5  christos #define RT2860_DROP_BAR		(1U << 15)
    649  1.5  christos #define RT2860_DROP_BA		(1U << 14)
    650  1.5  christos #define RT2860_DROP_PSPOLL	(1U << 13)
    651  1.5  christos #define RT2860_DROP_RTS		(1U << 12)
    652  1.5  christos #define RT2860_DROP_CTS		(1U << 11)
    653  1.5  christos #define RT2860_DROP_ACK		(1U << 10)
    654  1.5  christos #define RT2860_DROP_CFEND	(1U <<  9)
    655  1.5  christos #define RT2860_DROP_CFACK	(1U <<  8)
    656  1.5  christos #define RT2860_DROP_DUPL	(1U <<  7)
    657  1.5  christos #define RT2860_DROP_BC		(1U <<  6)
    658  1.5  christos #define RT2860_DROP_MC		(1U <<  5)
    659  1.5  christos #define RT2860_DROP_VER_ERR	(1U <<  4)
    660  1.5  christos #define RT2860_DROP_NOT_MYBSS	(1U <<  3)
    661  1.5  christos #define RT2860_DROP_UC_NOME	(1U <<  2)
    662  1.5  christos #define RT2860_DROP_PHY_ERR	(1U <<  1)
    663  1.5  christos #define RT2860_DROP_CRC_ERR	(1U <<  0)
    664  1.1    nonaka 
    665  1.1    nonaka /* possible flags for register AUTO_RSP_CFG */
    666  1.5  christos #define RT2860_CTRL_PWR_BIT	(1U << 7)
    667  1.5  christos #define RT2860_BAC_ACK_POLICY	(1U << 6)
    668  1.5  christos #define RT2860_CCK_SHORT_EN	(1U << 4)
    669  1.5  christos #define RT2860_CTS_40M_REF_EN	(1U << 3)
    670  1.5  christos #define RT2860_CTS_40M_MODE_EN	(1U << 2)
    671  1.5  christos #define RT2860_BAC_ACKPOLICY_EN	(1U << 1)
    672  1.5  christos #define RT2860_AUTO_RSP_EN	(1U << 0)
    673  1.1    nonaka 
    674  1.1    nonaka /* possible flags for register SIFS_COST_CFG */
    675  1.1    nonaka #define RT2860_OFDM_SIFS_COST_SHIFT	8
    676  1.1    nonaka #define RT2860_CCK_SIFS_COST_SHIFT	0
    677  1.1    nonaka 
    678  1.1    nonaka /* possible flags for register TXOP_HLDR_ET */
    679  1.5  christos #define RT2860_TXOP_ETM1_EN		(1U << 25)
    680  1.5  christos #define RT2860_TXOP_ETM0_EN		(1U << 24)
    681  1.1    nonaka #define RT2860_TXOP_ETM_THRES_SHIFT	16
    682  1.5  christos #define RT2860_TXOP_ETO_EN		(1U <<  8)
    683  1.1    nonaka #define RT2860_TXOP_ETO_THRES_SHIFT	1
    684  1.5  christos #define RT2860_PER_RX_RST_EN		(1U <<  0)
    685  1.1    nonaka 
    686  1.1    nonaka /* possible flags for register TX_STAT_FIFO */
    687  1.1    nonaka #define RT2860_TXQ_MCS_SHIFT	16
    688  1.1    nonaka #define RT2860_TXQ_WCID_SHIFT	8
    689  1.5  christos #define RT2860_TXQ_ACKREQ	(1U << 7)
    690  1.5  christos #define RT2860_TXQ_AGG		(1U << 6)
    691  1.5  christos #define RT2860_TXQ_OK		(1U << 5)
    692  1.1    nonaka #define RT2860_TXQ_PID_SHIFT	1
    693  1.5  christos #define RT2860_TXQ_VLD		(1U << 0)
    694  1.1    nonaka 
    695  1.1    nonaka /* possible flags for register WCID_ATTR */
    696  1.1    nonaka #define RT2860_MODE_NOSEC	0
    697  1.1    nonaka #define RT2860_MODE_WEP40	1
    698  1.1    nonaka #define RT2860_MODE_WEP104	2
    699  1.1    nonaka #define RT2860_MODE_TKIP	3
    700  1.1    nonaka #define RT2860_MODE_AES_CCMP	4
    701  1.1    nonaka #define RT2860_MODE_CKIP40	5
    702  1.1    nonaka #define RT2860_MODE_CKIP104	6
    703  1.1    nonaka #define RT2860_MODE_CKIP128	7
    704  1.5  christos #define RT2860_RX_PKEY_EN	(1U << 0)
    705  1.1    nonaka 
    706  1.1    nonaka /* possible flags for register H2M_MAILBOX */
    707  1.5  christos #define RT2860_H2M_BUSY		(1U << 24)
    708  1.1    nonaka #define RT2860_TOKEN_NO_INTR	0xff
    709  1.1    nonaka 
    710  1.1    nonaka 
    711  1.1    nonaka /* possible flags for MCU command RT2860_MCU_CMD_LEDS */
    712  1.5  christos #define RT2860_LED_RADIO	(1U << 13)
    713  1.5  christos #define RT2860_LED_LINK_2GHZ	(1U << 14)
    714  1.5  christos #define RT2860_LED_LINK_5GHZ	(1U << 15)
    715  1.1    nonaka 
    716  1.1    nonaka 
    717  1.1    nonaka /* possible flags for RT3020 RF register 1 */
    718  1.5  christos #define RT3070_RF_BLOCK	(1U << 0)
    719  1.5  christos #define RT3070_PLL_PD	(1U << 1)
    720  1.5  christos #define RT3070_RX0_PD	(1U << 2)
    721  1.5  christos #define RT3070_TX0_PD	(1U << 3)
    722  1.5  christos #define RT3070_RX1_PD	(1U << 4)
    723  1.5  christos #define RT3070_TX1_PD	(1U << 5)
    724  1.5  christos #define RT3070_RX2_PD	(1U << 6)
    725  1.5  christos #define RT3070_TX2_PD	(1U << 7)
    726  1.1    nonaka 
    727  1.1    nonaka /* possible flags for RT3020 RF register 7 */
    728  1.5  christos #define RT3070_TUNE	(1U << 0)
    729  1.1    nonaka 
    730  1.1    nonaka /* possible flags for RT3020 RF register 15 */
    731  1.5  christos #define RT3070_TX_LO2	(1U << 3)
    732  1.1    nonaka 
    733  1.1    nonaka /* possible flags for RT3020 RF register 17 */
    734  1.5  christos #define RT3070_TX_LO1	(1U << 3)
    735  1.1    nonaka 
    736  1.1    nonaka /* possible flags for RT3020 RF register 20 */
    737  1.5  christos #define RT3070_RX_LO1	(1U << 3)
    738  1.1    nonaka 
    739  1.1    nonaka /* possible flags for RT3020 RF register 21 */
    740  1.5  christos #define RT3070_RX_LO2	(1U << 3)
    741  1.5  christos #define RT3070_RX_CTB	(1U << 7)
    742  1.1    nonaka 
    743  1.1    nonaka /* possible flags for RT3020 RF register 22 */
    744  1.5  christos #define RT3070_BB_LOOPBACK	(1U << 0)
    745  1.1    nonaka 
    746  1.1    nonaka /* possible flags for RT3053 RF register 1 */
    747  1.5  christos #define RT3593_VCO	(1U << 0)
    748  1.1    nonaka 
    749  1.1    nonaka /* possible flags for RT3053 RF register 2 */
    750  1.5  christos #define RT3593_RESCAL	(1U << 7)
    751  1.1    nonaka 
    752  1.1    nonaka /* possible flags for RT3053 RF register 3 */
    753  1.5  christos #define RT3593_VCOCAL	(1U << 7)
    754  1.1    nonaka 
    755  1.1    nonaka /* possible flags for RT3053 RF register 6 */
    756  1.5  christos #define RT3593_VCO_IC	(1U << 6)
    757  1.1    nonaka 
    758  1.2  christos /* possible flags for RT3053 RF register 18 */
    759  1.5  christos #define RT3593_AUTOTUNE_BYPASS	(1U << 6)
    760  1.2  christos 
    761  1.1    nonaka /* possible flags for RT3053 RF register 20 */
    762  1.1    nonaka #define RT3593_LDO_PLL_VC_MASK	0x0e
    763  1.1    nonaka #define RT3593_LDO_RF_VC_MASK	0xe0
    764  1.1    nonaka 
    765  1.1    nonaka /* possible flags for RT3053 RF register 22 */
    766  1.1    nonaka #define RT3593_CP_IC_MASK	0xe0
    767  1.1    nonaka #define RT3593_CP_IC_SHIFT	5
    768  1.1    nonaka 
    769  1.7  christos /* possible flags for RT3053 RF register 46 */
    770  1.7  christos #define RT3593_RX_CTB	(1U << 5)
    771  1.7  christos 
    772  1.7  christos #define RT3090_DEF_LNA	10
    773  1.7  christos 
    774  1.2  christos /* possible flags for RT5390 RF register 38. */
    775  1.5  christos #define RT5390_RX_LO1	(1U << 5)
    776  1.2  christos 
    777  1.2  christos /* possible flags for RT5390 RF register 39. */
    778  1.5  christos #define RT5390_RX_LO2	(1U << 7)
    779  1.2  christos 
    780  1.4  christos /* possible flags for RT5390 RF register 42 */
    781  1.5  christos #define RT5390_RX_CTB	(1U << 6)
    782  1.4  christos 
    783  1.1    nonaka /* possible flags for RT3053 RF register 46 */
    784  1.5  christos #define RT3593_RX_CTB	(1U << 5)
    785  1.1    nonaka 
    786  1.2  christos /* possible flags for RT3053 RF register 50 */
    787  1.5  christos #define RT3593_TX_LO2	(1U << 4)
    788  1.2  christos 
    789  1.2  christos /* possible flags for RT3053 RF register 51 */
    790  1.5  christos #define RT3593_TX_LO1	(1U << 4)
    791  1.2  christos 
    792  1.6   mlelstv /* Possible flags for RT5390 RF register 2. */
    793  1.6   mlelstv #define RT5390_RESCAL	(1 << 7)
    794  1.6   mlelstv 
    795  1.6   mlelstv /* Possible flags for RT5390 RF register 3. */
    796  1.6   mlelstv #define RT5390_VCOCAL	(1 << 7)
    797  1.6   mlelstv 
    798  1.2  christos /* Possible flags for RT5390 BBP register 4. */
    799  1.5  christos #define RT5390_MAC_IF_CTRL	(1U << 6)
    800  1.2  christos 
    801  1.2  christos /* possible flags for RT5390 BBP register 105. */
    802  1.5  christos #define RT5390_MLD			(1U << 2)
    803  1.5  christos #define RT5390_EN_SIG_MODULATION	(1U << 3)
    804  1.2  christos 
    805  1.1    nonaka #define RT3090_DEF_LNA	10
    806  1.1    nonaka 
    807  1.1    nonaka /* RT2860 TX descriptor */
    808  1.1    nonaka struct rt2860_txd {
    809  1.1    nonaka 	uint32_t	sdp0;		/* Segment Data Pointer 0 */
    810  1.1    nonaka 	uint16_t	sdl1;		/* Segment Data Length 1 */
    811  1.5  christos #define RT2860_TX_BURST	(1U << 15)
    812  1.5  christos #define RT2860_TX_LS1	(1U << 14)	/* SDP1 is the last segment */
    813  1.1    nonaka 
    814  1.1    nonaka 	uint16_t	sdl0;		/* Segment Data Length 0 */
    815  1.5  christos #define RT2860_TX_DDONE	(1U << 15)
    816  1.5  christos #define RT2860_TX_LS0	(1U << 14)	/* SDP0 is the last segment */
    817  1.1    nonaka 
    818  1.1    nonaka 	uint32_t	sdp1;		/* Segment Data Pointer 1 */
    819  1.1    nonaka 	uint8_t		reserved[3];
    820  1.1    nonaka 	uint8_t		flags;
    821  1.1    nonaka #define RT2860_TX_QSEL_SHIFT	1
    822  1.1    nonaka #define RT2860_TX_QSEL_MGMT	(0 << 1)
    823  1.5  christos #define RT2860_TX_QSEL_HCCA	(1U << 1)
    824  1.1    nonaka #define RT2860_TX_QSEL_EDCA	(2 << 1)
    825  1.5  christos #define RT2860_TX_WIV		(1U << 0)
    826  1.1    nonaka } __packed;
    827  1.1    nonaka 
    828  1.1    nonaka /* RT2870 TX descriptor */
    829  1.1    nonaka struct rt2870_txd {
    830  1.1    nonaka 	uint16_t	len;
    831  1.1    nonaka 	uint8_t		pad;
    832  1.1    nonaka 	uint8_t		flags;
    833  1.1    nonaka } __packed;
    834  1.1    nonaka 
    835  1.1    nonaka /* TX Wireless Information */
    836  1.1    nonaka struct rt2860_txwi {
    837  1.1    nonaka 	uint8_t		flags;
    838  1.1    nonaka #define RT2860_TX_MPDU_DSITY_SHIFT	5
    839  1.5  christos #define RT2860_TX_AMPDU			(1U << 4)
    840  1.5  christos #define RT2860_TX_TS			(1U << 3)
    841  1.5  christos #define RT2860_TX_CFACK			(1U << 2)
    842  1.5  christos #define RT2860_TX_MMPS			(1U << 1)
    843  1.5  christos #define RT2860_TX_FRAG			(1U << 0)
    844  1.1    nonaka 
    845  1.1    nonaka 	uint8_t		txop;
    846  1.1    nonaka #define RT2860_TX_TXOP_HT	0
    847  1.1    nonaka #define RT2860_TX_TXOP_PIFS	1
    848  1.1    nonaka #define RT2860_TX_TXOP_SIFS	2
    849  1.1    nonaka #define RT2860_TX_TXOP_BACKOFF	3
    850  1.1    nonaka 
    851  1.1    nonaka 	uint16_t	phy;
    852  1.1    nonaka #define RT2860_PHY_MODE		0xc000
    853  1.1    nonaka #define RT2860_PHY_CCK		(0 << 14)
    854  1.5  christos #define RT2860_PHY_OFDM		(1U << 14)
    855  1.1    nonaka #define RT2860_PHY_HT		(2 << 14)
    856  1.1    nonaka #define RT2860_PHY_HT_GF	(3 << 14)
    857  1.5  christos #define RT2860_PHY_SGI		(1U << 8)
    858  1.5  christos #define RT2860_PHY_BW40		(1U << 7)
    859  1.1    nonaka #define RT2860_PHY_MCS		0x7f
    860  1.5  christos #define RT2860_PHY_SHPRE	(1U << 3)
    861  1.1    nonaka 
    862  1.1    nonaka 	uint8_t		xflags;
    863  1.1    nonaka #define RT2860_TX_BAWINSIZE_SHIFT	2
    864  1.5  christos #define RT2860_TX_NSEQ			(1U << 1)
    865  1.5  christos #define RT2860_TX_ACK			(1U << 0)
    866  1.1    nonaka 
    867  1.1    nonaka 	uint8_t		wcid;	/* Wireless Client ID */
    868  1.1    nonaka 	uint16_t	len;
    869  1.1    nonaka #define RT2860_TX_PID_SHIFT	12
    870  1.1    nonaka 
    871  1.1    nonaka 	uint32_t	iv;
    872  1.1    nonaka 	uint32_t	eiv;
    873  1.1    nonaka } __packed;
    874  1.1    nonaka 
    875  1.1    nonaka /* RT2860 RX descriptor */
    876  1.1    nonaka struct rt2860_rxd {
    877  1.1    nonaka 	uint32_t	sdp0;
    878  1.1    nonaka 	uint16_t	sdl1;	/* unused */
    879  1.1    nonaka 	uint16_t	sdl0;
    880  1.5  christos #define RT2860_RX_DDONE	(1U << 15)
    881  1.5  christos #define RT2860_RX_LS0	(1U << 14)
    882  1.1    nonaka 
    883  1.1    nonaka 	uint32_t	sdp1;	/* unused */
    884  1.1    nonaka 	uint32_t	flags;
    885  1.5  christos #define RT2860_RX_DEC		(1U << 16)
    886  1.5  christos #define RT2860_RX_AMPDU		(1U << 15)
    887  1.5  christos #define RT2860_RX_L2PAD		(1U << 14)
    888  1.5  christos #define RT2860_RX_RSSI		(1U << 13)
    889  1.5  christos #define RT2860_RX_HTC		(1U << 12)
    890  1.5  christos #define RT2860_RX_AMSDU		(1U << 11)
    891  1.5  christos #define RT2860_RX_MICERR	(1U << 10)
    892  1.5  christos #define RT2860_RX_ICVERR	(1U <<  9)
    893  1.5  christos #define RT2860_RX_CRCERR	(1U <<  8)
    894  1.5  christos #define RT2860_RX_MYBSS		(1U <<  7)
    895  1.5  christos #define RT2860_RX_BC		(1U <<  6)
    896  1.5  christos #define RT2860_RX_MC		(1U <<  5)
    897  1.5  christos #define RT2860_RX_UC2ME		(1U <<  4)
    898  1.5  christos #define RT2860_RX_FRAG		(1U <<  3)
    899  1.5  christos #define RT2860_RX_NULL		(1U <<  2)
    900  1.5  christos #define RT2860_RX_DATA		(1U <<  1)
    901  1.5  christos #define RT2860_RX_BA		(1U <<  0)
    902  1.1    nonaka } __packed;
    903  1.1    nonaka 
    904  1.1    nonaka /* RT2870 RX descriptor */
    905  1.1    nonaka struct rt2870_rxd {
    906  1.1    nonaka 	/* single 32-bit field */
    907  1.1    nonaka 	uint32_t	flags;
    908  1.1    nonaka } __packed;
    909  1.1    nonaka 
    910  1.1    nonaka /* RX Wireless Information */
    911  1.1    nonaka struct rt2860_rxwi {
    912  1.1    nonaka 	uint8_t		wcid;
    913  1.1    nonaka 	uint8_t		keyidx;
    914  1.1    nonaka #define RT2860_RX_UDF_SHIFT	5
    915  1.1    nonaka #define RT2860_RX_BSS_IDX_SHIFT	2
    916  1.1    nonaka 
    917  1.1    nonaka 	uint16_t	len;
    918  1.1    nonaka #define RT2860_RX_TID_SHIFT	12
    919  1.1    nonaka 
    920  1.1    nonaka 	uint16_t	seq;
    921  1.1    nonaka 	uint16_t	phy;
    922  1.1    nonaka 	uint8_t		rssi[3];
    923  1.1    nonaka 	uint8_t		reserved1;
    924  1.1    nonaka 	uint8_t		snr[2];
    925  1.1    nonaka 	uint16_t	reserved2;
    926  1.1    nonaka } __packed;
    927  1.1    nonaka 
    928  1.1    nonaka 
    929  1.1    nonaka /* first DMA segment contains TXWI + 802.11 header + 32-bit padding */
    930  1.1    nonaka #define RT2860_TXWI_DMASZ			\
    931  1.1    nonaka 	(sizeof (struct rt2860_txwi) +		\
    932  1.1    nonaka 	 sizeof (struct ieee80211_htframe) +	\
    933  1.1    nonaka 	 sizeof (uint16_t))
    934  1.1    nonaka 
    935  1.1    nonaka #define RT2860_RF1	0
    936  1.1    nonaka #define RT2860_RF2	2
    937  1.1    nonaka #define RT2860_RF3	1
    938  1.1    nonaka #define RT2860_RF4	3
    939  1.1    nonaka 
    940  1.5  christos #define RT2860_RF_2820	0x0001	/* 2T3R */
    941  1.5  christos #define RT2860_RF_2850	0x0002	/* dual-band 2T3R */
    942  1.5  christos #define RT2860_RF_2720	0x0003	/* 1T2R */
    943  1.5  christos #define RT2860_RF_2750	0x0004	/* dual-band 1T2R */
    944  1.5  christos #define RT3070_RF_3020	0x0005	/* 1T1R */
    945  1.5  christos #define RT3070_RF_2020	0x0006	/* b/g */
    946  1.5  christos #define RT3070_RF_3021	0x0007	/* 1T2R */
    947  1.5  christos #define RT3070_RF_3022	0x0008	/* 2T2R */
    948  1.5  christos #define RT3070_RF_3052	0x0009	/* dual-band 2T2R */
    949  1.5  christos #define RT3070_RF_3320	0x000b	/* 1T1R */
    950  1.5  christos #define RT3070_RF_3053	0x000d	/* dual-band 3T3R */
    951  1.2  christos #define RT5592_RF_5592	0x000f	/* dual-band 2T2R */
    952  1.5  christos #define RT5390_RF_5360	0x5360	/* 1T1R */
    953  1.2  christos #define RT5390_RF_5370	0x5370	/* 1T1R */
    954  1.2  christos #define RT5390_RF_5372	0x5372	/* 2T2R */
    955  1.5  christos #define RT5390_RF_5390	0x5390	/* 1T1R */
    956  1.7  christos #define RT5390_RF_5392	0x5392	/* 2T2R */
    957  1.4  christos 
    958  1.1    nonaka /* USB commands for RT2870 only */
    959  1.1    nonaka #define RT2870_RESET		1
    960  1.1    nonaka #define RT2870_WRITE_2		2
    961  1.1    nonaka #define RT2870_WRITE_REGION_1	6
    962  1.1    nonaka #define RT2870_READ_REGION_1	7
    963  1.1    nonaka #define RT2870_EEPROM_READ	9
    964  1.1    nonaka 
    965  1.1    nonaka #define RT2860_EEPROM_DELAY	1	/* minimum hold time (microsecond) */
    966  1.1    nonaka 
    967  1.5  christos #define RT2860_EEPROM_CHIPID		0x00
    968  1.1    nonaka #define RT2860_EEPROM_VERSION		0x01
    969  1.1    nonaka #define RT2860_EEPROM_MAC01		0x02
    970  1.1    nonaka #define RT2860_EEPROM_MAC23		0x03
    971  1.1    nonaka #define RT2860_EEPROM_MAC45		0x04
    972  1.1    nonaka #define RT2860_EEPROM_PCIE_PSLEVEL	0x11
    973  1.1    nonaka #define RT2860_EEPROM_REV		0x12
    974  1.1    nonaka #define RT2860_EEPROM_ANTENNA		0x1a
    975  1.1    nonaka #define RT2860_EEPROM_CONFIG		0x1b
    976  1.1    nonaka #define RT2860_EEPROM_COUNTRY		0x1c
    977  1.1    nonaka #define RT2860_EEPROM_FREQ_LEDS		0x1d
    978  1.1    nonaka #define RT2860_EEPROM_LED1		0x1e
    979  1.1    nonaka #define RT2860_EEPROM_LED2		0x1f
    980  1.1    nonaka #define RT2860_EEPROM_LED3		0x20
    981  1.1    nonaka #define RT2860_EEPROM_LNA		0x22
    982  1.1    nonaka #define RT2860_EEPROM_RSSI1_2GHZ	0x23
    983  1.1    nonaka #define RT2860_EEPROM_RSSI2_2GHZ	0x24
    984  1.1    nonaka #define RT2860_EEPROM_RSSI1_5GHZ	0x25
    985  1.1    nonaka #define RT2860_EEPROM_RSSI2_5GHZ	0x26
    986  1.1    nonaka #define RT2860_EEPROM_DELTAPWR		0x28
    987  1.1    nonaka #define RT2860_EEPROM_PWR2GHZ_BASE1	0x29
    988  1.1    nonaka #define RT2860_EEPROM_PWR2GHZ_BASE2	0x30
    989  1.1    nonaka #define RT2860_EEPROM_TSSI1_2GHZ	0x37
    990  1.1    nonaka #define RT2860_EEPROM_TSSI2_2GHZ	0x38
    991  1.1    nonaka #define RT2860_EEPROM_TSSI3_2GHZ	0x39
    992  1.1    nonaka #define RT2860_EEPROM_TSSI4_2GHZ	0x3a
    993  1.1    nonaka #define RT2860_EEPROM_TSSI5_2GHZ	0x3b
    994  1.1    nonaka #define RT2860_EEPROM_PWR5GHZ_BASE1	0x3c
    995  1.1    nonaka #define RT2860_EEPROM_PWR5GHZ_BASE2	0x53
    996  1.1    nonaka #define RT2860_EEPROM_TSSI1_5GHZ	0x6a
    997  1.1    nonaka #define RT2860_EEPROM_TSSI2_5GHZ	0x6b
    998  1.1    nonaka #define RT2860_EEPROM_TSSI3_5GHZ	0x6c
    999  1.1    nonaka #define RT2860_EEPROM_TSSI4_5GHZ	0x6d
   1000  1.1    nonaka #define RT2860_EEPROM_TSSI5_5GHZ	0x6e
   1001  1.1    nonaka #define RT2860_EEPROM_RPWR		0x6f
   1002  1.1    nonaka #define RT2860_EEPROM_BBP_BASE		0x78
   1003  1.1    nonaka #define RT3071_EEPROM_RF_BASE		0x82
   1004  1.1    nonaka 
   1005  1.2  christos /* EEPROM registers for RT3593. */
   1006  1.2  christos #define RT3593_EEPROM_FREQ_LEDS		0x21
   1007  1.2  christos #define RT3593_EEPROM_FREQ		0x22
   1008  1.2  christos #define RT3593_EEPROM_LED1		0x22
   1009  1.2  christos #define RT3593_EEPROM_LED2		0x23
   1010  1.2  christos #define RT3593_EEPROM_LED3		0x24
   1011  1.2  christos #define RT3593_EEPROM_LNA		0x26
   1012  1.2  christos #define RT3593_EEPROM_LNA_5GHZ		0x27
   1013  1.2  christos #define RT3593_EEPROM_RSSI1_2GHZ	0x28
   1014  1.2  christos #define RT3593_EEPROM_RSSI2_2GHZ	0x29
   1015  1.2  christos #define RT3593_EEPROM_RSSI1_5GHZ	0x2a
   1016  1.2  christos #define RT3593_EEPROM_RSSI2_5GHZ	0x2b
   1017  1.2  christos #define RT3593_EEPROM_PWR2GHZ_BASE1	0x30
   1018  1.2  christos #define RT3593_EEPROM_PWR2GHZ_BASE2	0x37
   1019  1.2  christos #define RT3593_EEPROM_PWR2GHZ_BASE3	0x3e
   1020  1.2  christos #define RT3593_EEPROM_PWR5GHZ_BASE1	0x4b
   1021  1.2  christos #define RT3593_EEPROM_PWR5GHZ_BASE2	0x65
   1022  1.2  christos #define RT3593_EEPROM_PWR5GHZ_BASE3	0x7f
   1023  1.2  christos 
   1024  1.2  christos /*
   1025  1.2  christos  * EEPROM IQ calibration.
   1026  1.2  christos  */
   1027  1.2  christos #define RT5390_EEPROM_IQ_GAIN_CAL_TX0_2GHZ			0x130
   1028  1.2  christos #define RT5390_EEPROM_IQ_PHASE_CAL_TX0_2GHZ			0x131
   1029  1.2  christos #define RT5390_EEPROM_IQ_GAIN_CAL_TX1_2GHZ			0x133
   1030  1.2  christos #define RT5390_EEPROM_IQ_PHASE_CAL_TX1_2GHZ			0x134
   1031  1.2  christos #define RT5390_EEPROM_RF_IQ_COMPENSATION_CTL			0x13c
   1032  1.2  christos #define RT5390_EEPROM_RF_IQ_IMBALANCE_COMPENSATION_CTL		0x13d
   1033  1.2  christos #define RT5390_EEPROM_IQ_GAIN_CAL_TX0_CH36_TO_CH64_5GHZ		0x144
   1034  1.2  christos #define RT5390_EEPROM_IQ_PHASE_CAL_TX0_CH36_TO_CH64_5GHZ	0x145
   1035  1.2  christos #define RT5390_EEPROM_IQ_GAIN_CAL_TX0_CH100_TO_CH138_5GHZ	0x146
   1036  1.2  christos #define RT5390_EEPROM_IQ_PHASE_CAL_TX0_CH100_TO_CH138_5GHZ	0x147
   1037  1.2  christos #define RT5390_EEPROM_IQ_GAIN_CAL_TX0_CH140_TO_CH165_5GHZ	0x148
   1038  1.2  christos #define RT5390_EEPROM_IQ_PHASE_CAL_TX0_CH140_TO_CH165_5GHZ	0x149
   1039  1.2  christos #define RT5390_EEPROM_IQ_GAIN_CAL_TX1_CH36_TO_CH64_5GHZ		0x14a
   1040  1.2  christos #define RT5390_EEPROM_IQ_PHASE_CAL_TX1_CH36_TO_CH64_5GHZ	0x14b
   1041  1.2  christos #define RT5390_EEPROM_IQ_GAIN_CAL_TX1_CH100_TO_CH138_5GHZ	0x14c
   1042  1.2  christos #define RT5390_EEPROM_IQ_PHASE_CAL_TX1_CH100_TO_CH138_5GHZ	0x14d
   1043  1.2  christos #define RT5390_EEPROM_IQ_GAIN_CAL_TX1_CH140_TO_CH165_5GHZ	0x14e
   1044  1.2  christos #define RT5390_EEPROM_IQ_PHASE_CAL_TX1_CH140_TO_CH165_5GHZ	0x14f
   1045  1.2  christos 
   1046  1.1    nonaka #define RT2860_RIDX_CCK1	 0
   1047  1.1    nonaka #define RT2860_RIDX_CCK11	 3
   1048  1.1    nonaka #define RT2860_RIDX_OFDM6	 4
   1049  1.1    nonaka #define RT2860_RIDX_MAX		11
   1050  1.1    nonaka static const struct rt2860_rate {
   1051  1.1    nonaka 	uint8_t		rate;
   1052  1.1    nonaka 	uint8_t		mcs;
   1053  1.1    nonaka 	enum		ieee80211_phytype phy;
   1054  1.1    nonaka 	uint8_t		ctl_ridx;
   1055  1.1    nonaka 	uint16_t	sp_ack_dur;
   1056  1.1    nonaka 	uint16_t	lp_ack_dur;
   1057  1.1    nonaka } rt2860_rates[] = {
   1058  1.1    nonaka 	{   2, 0, IEEE80211_T_DS,   0, 314, 314 },
   1059  1.1    nonaka 	{   4, 1, IEEE80211_T_DS,   1, 258, 162 },
   1060  1.1    nonaka 	{  11, 2, IEEE80211_T_DS,   2, 223, 127 },
   1061  1.1    nonaka 	{  22, 3, IEEE80211_T_DS,   3, 213, 117 },
   1062  1.1    nonaka 	{  12, 0, IEEE80211_T_OFDM, 4,  60,  60 },
   1063  1.1    nonaka 	{  18, 1, IEEE80211_T_OFDM, 4,  52,  52 },
   1064  1.1    nonaka 	{  24, 2, IEEE80211_T_OFDM, 6,  48,  48 },
   1065  1.1    nonaka 	{  36, 3, IEEE80211_T_OFDM, 6,  44,  44 },
   1066  1.1    nonaka 	{  48, 4, IEEE80211_T_OFDM, 8,  44,  44 },
   1067  1.1    nonaka 	{  72, 5, IEEE80211_T_OFDM, 8,  40,  40 },
   1068  1.1    nonaka 	{  96, 6, IEEE80211_T_OFDM, 8,  40,  40 },
   1069  1.1    nonaka 	{ 108, 7, IEEE80211_T_OFDM, 8,  40,  40 }
   1070  1.1    nonaka };
   1071  1.1    nonaka 
   1072  1.1    nonaka /*
   1073  1.1    nonaka  * Control and status registers access macros.
   1074  1.1    nonaka  */
   1075  1.1    nonaka #define RAL_READ(sc, reg)						\
   1076  1.1    nonaka 	bus_space_read_4((sc)->sc_st, (sc)->sc_sh, (reg))
   1077  1.1    nonaka 
   1078  1.1    nonaka #define RAL_WRITE(sc, reg, val)						\
   1079  1.1    nonaka 	bus_space_write_4((sc)->sc_st, (sc)->sc_sh, (reg), (val))
   1080  1.1    nonaka 
   1081  1.1    nonaka #define RAL_BARRIER_WRITE(sc)						\
   1082  1.1    nonaka 	bus_space_barrier((sc)->sc_st, (sc)->sc_sh, 0, 0x1800,		\
   1083  1.1    nonaka 	    BUS_SPACE_BARRIER_WRITE)
   1084  1.1    nonaka 
   1085  1.1    nonaka #define RAL_BARRIER_READ_WRITE(sc)					\
   1086  1.1    nonaka 	bus_space_barrier((sc)->sc_st, (sc)->sc_sh, 0, 0x1800,		\
   1087  1.1    nonaka 	    BUS_SPACE_BARRIER_READ | BUS_SPACE_BARRIER_WRITE)
   1088  1.1    nonaka 
   1089  1.1    nonaka #define RAL_WRITE_REGION_1(sc, offset, datap, count)			\
   1090  1.1    nonaka 	bus_space_write_region_1((sc)->sc_st, (sc)->sc_sh, (offset),	\
   1091  1.1    nonaka 	    (datap), (count))
   1092  1.1    nonaka 
   1093  1.1    nonaka #define RAL_SET_REGION_4(sc, offset, val, count)			\
   1094  1.1    nonaka 	bus_space_set_region_4((sc)->sc_st, (sc)->sc_sh, (offset),	\
   1095  1.1    nonaka 	    (val), (count))
   1096  1.1    nonaka 
   1097  1.1    nonaka /*
   1098  1.1    nonaka  * EEPROM access macro.
   1099  1.1    nonaka  */
   1100  1.1    nonaka #define RT2860_EEPROM_CTL(sc, val) do {					\
   1101  1.1    nonaka 	RAL_WRITE((sc), RT2860_PCI_EECTRL, (val));			\
   1102  1.1    nonaka 	RAL_BARRIER_READ_WRITE((sc));					\
   1103  1.1    nonaka 	DELAY(RT2860_EEPROM_DELAY);					\
   1104  1.1    nonaka } while (/* CONSTCOND */0)
   1105  1.1    nonaka 
   1106  1.1    nonaka /*
   1107  1.1    nonaka  * Default values for MAC registers; values taken from the reference driver.
   1108  1.1    nonaka  */
   1109  1.1    nonaka #define RT2860_DEF_MAC					\
   1110  1.1    nonaka 	{ RT2860_BCN_OFFSET0,		0xf8f0e8e0 },	\
   1111  1.5  christos 	{ RT2860_BCN_OFFSET1,		0x6f77d0c8 },	\
   1112  1.1    nonaka 	{ RT2860_LEGACY_BASIC_RATE,	0x0000013f },	\
   1113  1.1    nonaka 	{ RT2860_HT_BASIC_RATE,		0x00008003 },	\
   1114  1.1    nonaka 	{ RT2860_MAC_SYS_CTRL,		0x00000000 },	\
   1115  1.5  christos 	{ RT2860_RX_FILTR_CFG,		0x00017f97 },	\
   1116  1.1    nonaka 	{ RT2860_BKOFF_SLOT_CFG,	0x00000209 },	\
   1117  1.1    nonaka 	{ RT2860_TX_SW_CFG0,		0x00000000 },	\
   1118  1.1    nonaka 	{ RT2860_TX_SW_CFG1,		0x00080606 },	\
   1119  1.1    nonaka 	{ RT2860_TX_LINK_CFG,		0x00001020 },	\
   1120  1.1    nonaka 	{ RT2860_TX_TIMEOUT_CFG,	0x000a2090 },	\
   1121  1.5  christos 	{ RT2860_MAX_LEN_CFG,		0x00001f00 },	\
   1122  1.1    nonaka 	{ RT2860_LED_CFG,		0x7f031e46 },	\
   1123  1.1    nonaka 	{ RT2860_WMM_AIFSN_CFG,		0x00002273 },	\
   1124  1.1    nonaka 	{ RT2860_WMM_CWMIN_CFG,		0x00002344 },	\
   1125  1.1    nonaka 	{ RT2860_WMM_CWMAX_CFG,		0x000034aa },	\
   1126  1.1    nonaka 	{ RT2860_MAX_PCNT,		0x1f3fbf9f },	\
   1127  1.1    nonaka 	{ RT2860_TX_RTY_CFG,		0x47d01f0f },	\
   1128  1.1    nonaka 	{ RT2860_AUTO_RSP_CFG,		0x00000013 },	\
   1129  1.1    nonaka 	{ RT2860_CCK_PROT_CFG,		0x05740003 },	\
   1130  1.1    nonaka 	{ RT2860_OFDM_PROT_CFG,		0x05740003 },	\
   1131  1.1    nonaka 	{ RT2860_GF20_PROT_CFG,		0x01744004 },	\
   1132  1.1    nonaka 	{ RT2860_GF40_PROT_CFG,		0x03f44084 },	\
   1133  1.1    nonaka 	{ RT2860_MM20_PROT_CFG,		0x01744004 },	\
   1134  1.1    nonaka 	{ RT2860_MM40_PROT_CFG,		0x03f54084 },	\
   1135  1.1    nonaka 	{ RT2860_TXOP_CTRL_CFG,		0x0000583f },	\
   1136  1.1    nonaka 	{ RT2860_TXOP_HLDR_ET,		0x00000002 },	\
   1137  1.1    nonaka 	{ RT2860_TX_RTS_CFG,		0x00092b20 },	\
   1138  1.1    nonaka 	{ RT2860_EXP_ACK_TIME,		0x002400ca },	\
   1139  1.1    nonaka 	{ RT2860_XIFS_TIME_CFG,		0x33a41010 },	\
   1140  1.1    nonaka 	{ RT2860_PWR_PIN_CFG,		0x00000003 }
   1141  1.1    nonaka 
   1142  1.1    nonaka /* XXX only a few registers differ from above, try to merge? */
   1143  1.1    nonaka #define RT2870_DEF_MAC					\
   1144  1.1    nonaka 	{ RT2860_BCN_OFFSET0,		0xf8f0e8e0 },	\
   1145  1.1    nonaka 	{ RT2860_LEGACY_BASIC_RATE,	0x0000013f },	\
   1146  1.1    nonaka 	{ RT2860_HT_BASIC_RATE,		0x00008003 },	\
   1147  1.1    nonaka 	{ RT2860_MAC_SYS_CTRL,		0x00000000 },	\
   1148  1.1    nonaka 	{ RT2860_BKOFF_SLOT_CFG,	0x00000209 },	\
   1149  1.1    nonaka 	{ RT2860_TX_SW_CFG0,		0x00000000 },	\
   1150  1.1    nonaka 	{ RT2860_TX_SW_CFG1,		0x00080606 },	\
   1151  1.1    nonaka 	{ RT2860_TX_LINK_CFG,		0x00001020 },	\
   1152  1.1    nonaka 	{ RT2860_TX_TIMEOUT_CFG,	0x000a2090 },	\
   1153  1.1    nonaka 	{ RT2860_LED_CFG,		0x7f031e46 },	\
   1154  1.1    nonaka 	{ RT2860_WMM_AIFSN_CFG,		0x00002273 },	\
   1155  1.1    nonaka 	{ RT2860_WMM_CWMIN_CFG,		0x00002344 },	\
   1156  1.1    nonaka 	{ RT2860_WMM_CWMAX_CFG,		0x000034aa },	\
   1157  1.1    nonaka 	{ RT2860_MAX_PCNT,		0x1f3fbf9f },	\
   1158  1.1    nonaka 	{ RT2860_TX_RTY_CFG,		0x47d01f0f },	\
   1159  1.1    nonaka 	{ RT2860_AUTO_RSP_CFG,		0x00000013 },	\
   1160  1.1    nonaka 	{ RT2860_CCK_PROT_CFG,		0x05740003 },	\
   1161  1.1    nonaka 	{ RT2860_OFDM_PROT_CFG,		0x05740003 },	\
   1162  1.1    nonaka 	{ RT2860_PBF_CFG,		0x00f40006 },	\
   1163  1.1    nonaka 	{ RT2860_WPDMA_GLO_CFG,		0x00000030 },	\
   1164  1.1    nonaka 	{ RT2860_GF20_PROT_CFG,		0x01744004 },	\
   1165  1.1    nonaka 	{ RT2860_GF40_PROT_CFG,		0x03f44084 },	\
   1166  1.1    nonaka 	{ RT2860_MM20_PROT_CFG,		0x01744004 },	\
   1167  1.1    nonaka 	{ RT2860_MM40_PROT_CFG,		0x03f44084 },	\
   1168  1.1    nonaka 	{ RT2860_TXOP_CTRL_CFG,		0x0000583f },	\
   1169  1.1    nonaka 	{ RT2860_TXOP_HLDR_ET,		0x00000002 },	\
   1170  1.1    nonaka 	{ RT2860_TX_RTS_CFG,		0x00092b20 },	\
   1171  1.1    nonaka 	{ RT2860_EXP_ACK_TIME,		0x002400ca },	\
   1172  1.1    nonaka 	{ RT2860_XIFS_TIME_CFG,		0x33a41010 },	\
   1173  1.1    nonaka 	{ RT2860_PWR_PIN_CFG,		0x00000003 }
   1174  1.1    nonaka 
   1175  1.1    nonaka /*
   1176  1.1    nonaka  * Default values for BBP registers; values taken from the reference driver.
   1177  1.1    nonaka  */
   1178  1.1    nonaka #define RT2860_DEF_BBP	\
   1179  1.1    nonaka 	{  65, 0x2c },	\
   1180  1.1    nonaka 	{  66, 0x38 },	\
   1181  1.5  christos 	{  68, 0x0b },	\
   1182  1.1    nonaka 	{  69, 0x12 },	\
   1183  1.1    nonaka 	{  70, 0x0a },	\
   1184  1.1    nonaka 	{  73, 0x10 },	\
   1185  1.1    nonaka 	{  81, 0x37 },	\
   1186  1.1    nonaka 	{  82, 0x62 },	\
   1187  1.1    nonaka 	{  83, 0x6a },	\
   1188  1.1    nonaka 	{  84, 0x99 },	\
   1189  1.1    nonaka 	{  86, 0x00 },	\
   1190  1.1    nonaka 	{  91, 0x04 },	\
   1191  1.1    nonaka 	{  92, 0x00 },	\
   1192  1.1    nonaka 	{ 103, 0x00 },	\
   1193  1.1    nonaka 	{ 105, 0x05 },	\
   1194  1.1    nonaka 	{ 106, 0x35 }
   1195  1.1    nonaka 
   1196  1.2  christos #define RT5390_DEF_BBP	\
   1197  1.2  christos 	{  31, 0x08 },	\
   1198  1.2  christos 	{  65, 0x2c },	\
   1199  1.2  christos 	{  66, 0x38 },	\
   1200  1.2  christos 	{  68, 0x0b },	\
   1201  1.7  christos 	{  69, 0x0d },	\
   1202  1.7  christos 	{  70, 0x06 },	\
   1203  1.2  christos 	{  73, 0x13 },	\
   1204  1.2  christos 	{  75, 0x46 },	\
   1205  1.2  christos 	{  76, 0x28 },	\
   1206  1.2  christos 	{  77, 0x59 },	\
   1207  1.2  christos 	{  81, 0x37 },	\
   1208  1.2  christos 	{  82, 0x62 },	\
   1209  1.2  christos 	{  83, 0x7a },	\
   1210  1.7  christos 	{  84, 0x9a },	\
   1211  1.2  christos 	{  86, 0x38 },	\
   1212  1.2  christos 	{  91, 0x04 },	\
   1213  1.2  christos 	{  92, 0x02 },	\
   1214  1.2  christos 	{ 103, 0xc0 },	\
   1215  1.2  christos 	{ 104, 0x92 },	\
   1216  1.2  christos 	{ 105, 0x3c },	\
   1217  1.2  christos 	{ 106, 0x03 },	\
   1218  1.2  christos 	{ 128, 0x12 }
   1219  1.2  christos 
   1220  1.2  christos #define RT5592_DEF_BBP	\
   1221  1.2  christos 	{  20, 0x06 },	\
   1222  1.2  christos 	{  31, 0x08 },	\
   1223  1.2  christos 	{  65, 0x2c },	\
   1224  1.2  christos 	{  66, 0x38 },	\
   1225  1.2  christos 	{  68, 0xdd },	\
   1226  1.2  christos 	{  69, 0x1a },	\
   1227  1.2  christos 	{  70, 0x05 },	\
   1228  1.2  christos 	{  73, 0x13 },	\
   1229  1.2  christos 	{  74, 0x0f },	\
   1230  1.2  christos 	{  75, 0x4f },	\
   1231  1.2  christos 	{  76, 0x28 },	\
   1232  1.2  christos 	{  77, 0x59 },	\
   1233  1.2  christos 	{  81, 0x37 },	\
   1234  1.2  christos 	{  82, 0x62 },	\
   1235  1.2  christos 	{  83, 0x6a },	\
   1236  1.2  christos 	{  84, 0x9a },	\
   1237  1.2  christos 	{  86, 0x38 },	\
   1238  1.2  christos 	{  88, 0x90 },	\
   1239  1.2  christos 	{  91, 0x04 },	\
   1240  1.2  christos 	{  92, 0x02 },	\
   1241  1.2  christos 	{  95, 0x9a },	\
   1242  1.2  christos 	{  98, 0x12 },	\
   1243  1.2  christos 	{ 103, 0xc0 },	\
   1244  1.2  christos 	{ 104, 0x92 },	\
   1245  1.2  christos 	{ 105, 0x3c },	\
   1246  1.2  christos 	{ 106, 0x35 },	\
   1247  1.2  christos 	{ 128, 0x12 },	\
   1248  1.2  christos 	{ 134, 0xd0 },	\
   1249  1.2  christos 	{ 135, 0xf6 },	\
   1250  1.2  christos 	{ 137, 0x0f }
   1251  1.2  christos 
   1252  1.1    nonaka /*
   1253  1.1    nonaka  * Default settings for RF registers; values derived from the reference driver.
   1254  1.1    nonaka  */
   1255  1.1    nonaka #define RT2860_RF2850						\
   1256  1.1    nonaka 	{   1, 0x100bb3, 0x1301e1, 0x05a014, 0x001402 },	\
   1257  1.1    nonaka 	{   2, 0x100bb3, 0x1301e1, 0x05a014, 0x001407 },	\
   1258  1.1    nonaka 	{   3, 0x100bb3, 0x1301e2, 0x05a014, 0x001402 },	\
   1259  1.1    nonaka 	{   4, 0x100bb3, 0x1301e2, 0x05a014, 0x001407 },	\
   1260  1.1    nonaka 	{   5, 0x100bb3, 0x1301e3, 0x05a014, 0x001402 },	\
   1261  1.1    nonaka 	{   6, 0x100bb3, 0x1301e3, 0x05a014, 0x001407 },	\
   1262  1.1    nonaka 	{   7, 0x100bb3, 0x1301e4, 0x05a014, 0x001402 },	\
   1263  1.1    nonaka 	{   8, 0x100bb3, 0x1301e4, 0x05a014, 0x001407 },	\
   1264  1.1    nonaka 	{   9, 0x100bb3, 0x1301e5, 0x05a014, 0x001402 },	\
   1265  1.1    nonaka 	{  10, 0x100bb3, 0x1301e5, 0x05a014, 0x001407 },	\
   1266  1.1    nonaka 	{  11, 0x100bb3, 0x1301e6, 0x05a014, 0x001402 },	\
   1267  1.1    nonaka 	{  12, 0x100bb3, 0x1301e6, 0x05a014, 0x001407 },	\
   1268  1.1    nonaka 	{  13, 0x100bb3, 0x1301e7, 0x05a014, 0x001402 },	\
   1269  1.1    nonaka 	{  14, 0x100bb3, 0x1301e8, 0x05a014, 0x001404 },	\
   1270  1.1    nonaka 	{  36, 0x100bb3, 0x130266, 0x056014, 0x001408 },	\
   1271  1.1    nonaka 	{  38, 0x100bb3, 0x130267, 0x056014, 0x001404 },	\
   1272  1.1    nonaka 	{  40, 0x100bb2, 0x1301a0, 0x056014, 0x001400 },	\
   1273  1.1    nonaka 	{  44, 0x100bb2, 0x1301a0, 0x056014, 0x001408 },	\
   1274  1.1    nonaka 	{  46, 0x100bb2, 0x1301a1, 0x056014, 0x001402 },	\
   1275  1.1    nonaka 	{  48, 0x100bb2, 0x1301a1, 0x056014, 0x001406 },	\
   1276  1.1    nonaka 	{  52, 0x100bb2, 0x1301a2, 0x056014, 0x001404 },	\
   1277  1.1    nonaka 	{  54, 0x100bb2, 0x1301a2, 0x056014, 0x001408 },	\
   1278  1.1    nonaka 	{  56, 0x100bb2, 0x1301a3, 0x056014, 0x001402 },	\
   1279  1.1    nonaka 	{  60, 0x100bb2, 0x1301a4, 0x056014, 0x001400 },	\
   1280  1.1    nonaka 	{  62, 0x100bb2, 0x1301a4, 0x056014, 0x001404 },	\
   1281  1.1    nonaka 	{  64, 0x100bb2, 0x1301a4, 0x056014, 0x001408 },	\
   1282  1.1    nonaka 	{ 100, 0x100bb2, 0x1301ac, 0x05e014, 0x001400 },	\
   1283  1.1    nonaka 	{ 102, 0x100bb2, 0x1701ac, 0x15e014, 0x001404 },	\
   1284  1.1    nonaka 	{ 104, 0x100bb2, 0x1701ac, 0x15e014, 0x001408 },	\
   1285  1.1    nonaka 	{ 108, 0x100bb3, 0x17028c, 0x15e014, 0x001404 },	\
   1286  1.1    nonaka 	{ 110, 0x100bb3, 0x13028d, 0x05e014, 0x001400 },	\
   1287  1.1    nonaka 	{ 112, 0x100bb3, 0x13028d, 0x05e014, 0x001406 },	\
   1288  1.1    nonaka 	{ 116, 0x100bb3, 0x13028e, 0x05e014, 0x001408 },	\
   1289  1.1    nonaka 	{ 118, 0x100bb3, 0x13028f, 0x05e014, 0x001404 },	\
   1290  1.1    nonaka 	{ 120, 0x100bb1, 0x1300e0, 0x05e014, 0x001400 },	\
   1291  1.1    nonaka 	{ 124, 0x100bb1, 0x1300e0, 0x05e014, 0x001404 },	\
   1292  1.1    nonaka 	{ 126, 0x100bb1, 0x1300e0, 0x05e014, 0x001406 },	\
   1293  1.1    nonaka 	{ 128, 0x100bb1, 0x1300e0, 0x05e014, 0x001408 },	\
   1294  1.1    nonaka 	{ 132, 0x100bb1, 0x1300e1, 0x05e014, 0x001402 },	\
   1295  1.1    nonaka 	{ 134, 0x100bb1, 0x1300e1, 0x05e014, 0x001404 },	\
   1296  1.1    nonaka 	{ 136, 0x100bb1, 0x1300e1, 0x05e014, 0x001406 },	\
   1297  1.1    nonaka 	{ 140, 0x100bb1, 0x1300e2, 0x05e014, 0x001400 },	\
   1298  1.1    nonaka 	{ 149, 0x100bb1, 0x1300e2, 0x05e014, 0x001409 },	\
   1299  1.1    nonaka 	{ 151, 0x100bb1, 0x1300e3, 0x05e014, 0x001401 },	\
   1300  1.1    nonaka 	{ 153, 0x100bb1, 0x1300e3, 0x05e014, 0x001403 },	\
   1301  1.1    nonaka 	{ 157, 0x100bb1, 0x1300e3, 0x05e014, 0x001407 },	\
   1302  1.1    nonaka 	{ 159, 0x100bb1, 0x1300e3, 0x05e014, 0x001409 },	\
   1303  1.1    nonaka 	{ 161, 0x100bb1, 0x1300e4, 0x05e014, 0x001401 },	\
   1304  1.1    nonaka 	{ 165, 0x100bb1, 0x1300e4, 0x05e014, 0x001405 },	\
   1305  1.1    nonaka 	{ 167, 0x100bb1, 0x1300f4, 0x05e014, 0x001407 },	\
   1306  1.1    nonaka 	{ 169, 0x100bb1, 0x1300f4, 0x05e014, 0x001409 },	\
   1307  1.1    nonaka 	{ 171, 0x100bb1, 0x1300f5, 0x05e014, 0x001401 },	\
   1308  1.1    nonaka 	{ 173, 0x100bb1, 0x1300f5, 0x05e014, 0x001403 }
   1309  1.1    nonaka 
   1310  1.1    nonaka #define RT3070_RF3052		\
   1311  1.1    nonaka 	{ 0xf1, 2,  2 },	\
   1312  1.1    nonaka 	{ 0xf1, 2,  7 },	\
   1313  1.1    nonaka 	{ 0xf2, 2,  2 },	\
   1314  1.1    nonaka 	{ 0xf2, 2,  7 },	\
   1315  1.1    nonaka 	{ 0xf3, 2,  2 },	\
   1316  1.1    nonaka 	{ 0xf3, 2,  7 },	\
   1317  1.1    nonaka 	{ 0xf4, 2,  2 },	\
   1318  1.1    nonaka 	{ 0xf4, 2,  7 },	\
   1319  1.1    nonaka 	{ 0xf5, 2,  2 },	\
   1320  1.1    nonaka 	{ 0xf5, 2,  7 },	\
   1321  1.1    nonaka 	{ 0xf6, 2,  2 },	\
   1322  1.1    nonaka 	{ 0xf6, 2,  7 },	\
   1323  1.1    nonaka 	{ 0xf7, 2,  2 },	\
   1324  1.1    nonaka 	{ 0xf8, 2,  4 },	\
   1325  1.1    nonaka 	{ 0x56, 0,  4 },	\
   1326  1.1    nonaka 	{ 0x56, 0,  6 },	\
   1327  1.1    nonaka 	{ 0x56, 0,  8 },	\
   1328  1.1    nonaka 	{ 0x57, 0,  0 },	\
   1329  1.1    nonaka 	{ 0x57, 0,  2 },	\
   1330  1.1    nonaka 	{ 0x57, 0,  4 },	\
   1331  1.1    nonaka 	{ 0x57, 0,  8 },	\
   1332  1.1    nonaka 	{ 0x57, 0, 10 },	\
   1333  1.1    nonaka 	{ 0x58, 0,  0 },	\
   1334  1.1    nonaka 	{ 0x58, 0,  4 },	\
   1335  1.1    nonaka 	{ 0x58, 0,  6 },	\
   1336  1.1    nonaka 	{ 0x58, 0,  8 },	\
   1337  1.1    nonaka 	{ 0x5b, 0,  8 },	\
   1338  1.1    nonaka 	{ 0x5b, 0, 10 },	\
   1339  1.1    nonaka 	{ 0x5c, 0,  0 },	\
   1340  1.1    nonaka 	{ 0x5c, 0,  4 },	\
   1341  1.1    nonaka 	{ 0x5c, 0,  6 },	\
   1342  1.1    nonaka 	{ 0x5c, 0,  8 },	\
   1343  1.1    nonaka 	{ 0x5d, 0,  0 },	\
   1344  1.1    nonaka 	{ 0x5d, 0,  2 },	\
   1345  1.1    nonaka 	{ 0x5d, 0,  4 },	\
   1346  1.1    nonaka 	{ 0x5d, 0,  8 },	\
   1347  1.1    nonaka 	{ 0x5d, 0, 10 },	\
   1348  1.1    nonaka 	{ 0x5e, 0,  0 },	\
   1349  1.1    nonaka 	{ 0x5e, 0,  4 },	\
   1350  1.1    nonaka 	{ 0x5e, 0,  6 },	\
   1351  1.1    nonaka 	{ 0x5e, 0,  8 },	\
   1352  1.1    nonaka 	{ 0x5f, 0,  0 },	\
   1353  1.1    nonaka 	{ 0x5f, 0,  9 },	\
   1354  1.1    nonaka 	{ 0x5f, 0, 11 },	\
   1355  1.1    nonaka 	{ 0x60, 0,  1 },	\
   1356  1.1    nonaka 	{ 0x60, 0,  5 },	\
   1357  1.1    nonaka 	{ 0x60, 0,  7 },	\
   1358  1.1    nonaka 	{ 0x60, 0,  9 },	\
   1359  1.1    nonaka 	{ 0x61, 0,  1 },	\
   1360  1.1    nonaka 	{ 0x61, 0,  3 },	\
   1361  1.1    nonaka 	{ 0x61, 0,  5 },	\
   1362  1.1    nonaka 	{ 0x61, 0,  7 },	\
   1363  1.1    nonaka 	{ 0x61, 0,  9 }
   1364  1.1    nonaka 
   1365  1.2  christos #define RT5592_RF5592_20MHZ	\
   1366  1.2  christos 	{ 0x1e2,  4, 10, 3 },	\
   1367  1.2  christos 	{ 0x1e3,  4, 10, 3 },	\
   1368  1.2  christos 	{ 0x1e4,  4, 10, 3 },	\
   1369  1.2  christos 	{ 0x1e5,  4, 10, 3 },	\
   1370  1.2  christos 	{ 0x1e6,  4, 10, 3 },	\
   1371  1.2  christos 	{ 0x1e7,  4, 10, 3 },	\
   1372  1.2  christos 	{ 0x1e8,  4, 10, 3 },	\
   1373  1.2  christos 	{ 0x1e9,  4, 10, 3 },	\
   1374  1.2  christos 	{ 0x1ea,  4, 10, 3 },	\
   1375  1.2  christos 	{ 0x1eb,  4, 10, 3 },	\
   1376  1.2  christos 	{ 0x1ec,  4, 10, 3 },	\
   1377  1.2  christos 	{ 0x1ed,  4, 10, 3 },	\
   1378  1.2  christos 	{ 0x1ee,  4, 10, 3 },	\
   1379  1.2  christos 	{ 0x1f0,  8, 10, 3 },	\
   1380  1.2  christos 	{  0xac,  8, 12, 1 },	\
   1381  1.2  christos 	{  0xad,  0, 12, 1 },	\
   1382  1.2  christos 	{  0xad,  4, 12, 1 },	\
   1383  1.2  christos 	{  0xae,  0, 12, 1 },	\
   1384  1.2  christos 	{  0xae,  4, 12, 1 },	\
   1385  1.2  christos 	{  0xae,  8, 12, 1 },	\
   1386  1.2  christos 	{  0xaf,  4, 12, 1 },	\
   1387  1.2  christos 	{  0xaf,  8, 12, 1 },	\
   1388  1.2  christos 	{  0xb0,  0, 12, 1 },	\
   1389  1.2  christos 	{  0xb0,  8, 12, 1 },	\
   1390  1.2  christos 	{  0xb1,  0, 12, 1 },	\
   1391  1.2  christos 	{  0xb1,  4, 12, 1 },	\
   1392  1.2  christos 	{  0xb7,  4, 12, 1 },	\
   1393  1.2  christos 	{  0xb7,  8, 12, 1 },	\
   1394  1.2  christos 	{  0xb8,  0, 12, 1 },	\
   1395  1.2  christos 	{  0xb8,  8, 12, 1 },	\
   1396  1.2  christos 	{  0xb9,  0, 12, 1 },	\
   1397  1.2  christos 	{  0xb9,  4, 12, 1 },	\
   1398  1.2  christos 	{  0xba,  0, 12, 1 },	\
   1399  1.2  christos 	{  0xba,  4, 12, 1 },	\
   1400  1.2  christos 	{  0xba,  8, 12, 1 },	\
   1401  1.2  christos 	{  0xbb,  4, 12, 1 },	\
   1402  1.2  christos 	{  0xbb,  8, 12, 1 },	\
   1403  1.2  christos 	{  0xbc,  0, 12, 1 },	\
   1404  1.2  christos 	{  0xbc,  8, 12, 1 },	\
   1405  1.2  christos 	{  0xbd,  0, 12, 1 },	\
   1406  1.2  christos 	{  0xbd,  4, 12, 1 },	\
   1407  1.2  christos 	{  0xbe,  0, 12, 1 },	\
   1408  1.2  christos 	{  0xbf,  6, 12, 1 },	\
   1409  1.2  christos 	{  0xbf, 10, 12, 1 },	\
   1410  1.2  christos 	{  0xc0,  2, 12, 1 },	\
   1411  1.2  christos 	{  0xc0, 10, 12, 1 },	\
   1412  1.2  christos 	{  0xc1,  2, 12, 1 },	\
   1413  1.2  christos 	{  0xc1,  6, 12, 1 },	\
   1414  1.2  christos 	{  0xc2,  2, 12, 1 },	\
   1415  1.2  christos 	{  0xa4,  0, 12, 1 },	\
   1416  1.2  christos 	{  0xa4,  4, 12, 1 },	\
   1417  1.2  christos 	{  0xa5,  8, 12, 1 },	\
   1418  1.2  christos 	{  0xa6,  0, 12, 1 }
   1419  1.2  christos 
   1420  1.2  christos #define RT5592_RF5592_40MHZ	\
   1421  1.2  christos 	{ 0xf1,  2, 10, 3 },	\
   1422  1.2  christos 	{ 0xf1,  7, 10, 3 },	\
   1423  1.2  christos 	{ 0xf2,  2, 10, 3 },	\
   1424  1.2  christos 	{ 0xf2,  7, 10, 3 },	\
   1425  1.2  christos 	{ 0xf3,  2, 10, 3 },	\
   1426  1.2  christos 	{ 0xf3,  7, 10, 3 },	\
   1427  1.2  christos 	{ 0xf4,  2, 10, 3 },	\
   1428  1.2  christos 	{ 0xf4,  7, 10, 3 },	\
   1429  1.2  christos 	{ 0xf5,  2, 10, 3 },	\
   1430  1.2  christos 	{ 0xf5,  7, 10, 3 },	\
   1431  1.2  christos 	{ 0xf6,  2, 10, 3 },	\
   1432  1.2  christos 	{ 0xf6,  7, 10, 3 },	\
   1433  1.2  christos 	{ 0xf7,  2, 10, 3 },	\
   1434  1.2  christos 	{ 0xf8,  4, 10, 3 },	\
   1435  1.2  christos 	{ 0x56,  4, 12, 1 },	\
   1436  1.2  christos 	{ 0x56,  6, 12, 1 },	\
   1437  1.2  christos 	{ 0x56,  8, 12, 1 },	\
   1438  1.2  christos 	{ 0x57,  0, 12, 1 },	\
   1439  1.2  christos 	{ 0x57,  2, 12, 1 },	\
   1440  1.2  christos 	{ 0x57,  4, 12, 1 },	\
   1441  1.2  christos 	{ 0x57,  8, 12, 1 },	\
   1442  1.2  christos 	{ 0x57, 10, 12, 1 },	\
   1443  1.2  christos 	{ 0x58,  0, 12, 1 },	\
   1444  1.2  christos 	{ 0x58,  4, 12, 1 },	\
   1445  1.2  christos 	{ 0x58,  6, 12, 1 },	\
   1446  1.2  christos 	{ 0x58,  8, 12, 1 },	\
   1447  1.2  christos 	{ 0x5b,  8, 12, 1 },	\
   1448  1.2  christos 	{ 0x5b, 10, 12, 1 },	\
   1449  1.2  christos 	{ 0x5c,  0, 12, 1 },	\
   1450  1.2  christos 	{ 0x5c,  4, 12, 1 },	\
   1451  1.2  christos 	{ 0x5c,  6, 12, 1 },	\
   1452  1.2  christos 	{ 0x5c,  8, 12, 1 },	\
   1453  1.2  christos 	{ 0x5d,  0, 12, 1 },	\
   1454  1.2  christos 	{ 0x5d,  2, 12, 1 },	\
   1455  1.2  christos 	{ 0x5d,  4, 12, 1 },	\
   1456  1.2  christos 	{ 0x5d,  8, 12, 1 },	\
   1457  1.2  christos 	{ 0x5d, 10, 12, 1 },	\
   1458  1.2  christos 	{ 0x5e,  0, 12, 1 },	\
   1459  1.2  christos 	{ 0x5e,  4, 12, 1 },	\
   1460  1.2  christos 	{ 0x5e,  6, 12, 1 },	\
   1461  1.2  christos 	{ 0x5e,  8, 12, 1 },	\
   1462  1.2  christos 	{ 0x5f,  0, 12, 1 },	\
   1463  1.2  christos 	{ 0x5f,  9, 12, 1 },	\
   1464  1.2  christos 	{ 0x5f, 11, 12, 1 },	\
   1465  1.2  christos 	{ 0x60,  1, 12, 1 },	\
   1466  1.2  christos 	{ 0x60,  5, 12, 1 },	\
   1467  1.2  christos 	{ 0x60,  7, 12, 1 },	\
   1468  1.2  christos 	{ 0x60,  9, 12, 1 },	\
   1469  1.2  christos 	{ 0x61,  1, 12, 1 },	\
   1470  1.2  christos 	{ 0x52,  0, 12, 1 },	\
   1471  1.2  christos 	{ 0x52,  4, 12, 1 },	\
   1472  1.2  christos 	{ 0x52,  8, 12, 1 },	\
   1473  1.2  christos 	{ 0x53,  0, 12, 1 }
   1474  1.2  christos 
   1475  1.1    nonaka #define RT3070_DEF_RF	\
   1476  1.1    nonaka 	{  4, 0x40 },	\
   1477  1.1    nonaka 	{  5, 0x03 },	\
   1478  1.1    nonaka 	{  6, 0x02 },	\
   1479  1.5  christos 	{  7, 0x60 },	\
   1480  1.1    nonaka 	{  9, 0x0f },	\
   1481  1.1    nonaka 	{ 10, 0x41 },	\
   1482  1.1    nonaka 	{ 11, 0x21 },	\
   1483  1.1    nonaka 	{ 12, 0x7b },	\
   1484  1.1    nonaka 	{ 14, 0x90 },	\
   1485  1.1    nonaka 	{ 15, 0x58 },	\
   1486  1.1    nonaka 	{ 16, 0xb3 },	\
   1487  1.1    nonaka 	{ 17, 0x92 },	\
   1488  1.1    nonaka 	{ 18, 0x2c },	\
   1489  1.1    nonaka 	{ 19, 0x02 },	\
   1490  1.1    nonaka 	{ 20, 0xba },	\
   1491  1.1    nonaka 	{ 21, 0xdb },	\
   1492  1.1    nonaka 	{ 24, 0x16 },	\
   1493  1.7  christos 	{ 25, 0x01 },	\
   1494  1.1    nonaka 	{ 29, 0x1f }
   1495  1.1    nonaka 
   1496  1.7  christos #define RT3572_DEF_RF	\
   1497  1.7  christos 	{  0, 0x70 },	\
   1498  1.7  christos 	{  1, 0x81 },	\
   1499  1.7  christos 	{  2, 0xf1 },	\
   1500  1.7  christos 	{  3, 0x02 },	\
   1501  1.7  christos 	{  4, 0x4c },	\
   1502  1.7  christos 	{  5, 0x05 },	\
   1503  1.7  christos 	{  6, 0x4a },	\
   1504  1.7  christos 	{  7, 0xd8 },	\
   1505  1.7  christos 	{  9, 0xc3 },	\
   1506  1.7  christos 	{ 10, 0xf1 },	\
   1507  1.7  christos 	{ 11, 0xb9 },	\
   1508  1.7  christos 	{ 12, 0x70 },	\
   1509  1.7  christos 	{ 13, 0x65 },	\
   1510  1.7  christos 	{ 14, 0xa0 },	\
   1511  1.7  christos 	{ 15, 0x53 },	\
   1512  1.7  christos 	{ 16, 0x4c },	\
   1513  1.7  christos 	{ 17, 0x23 },	\
   1514  1.7  christos 	{ 18, 0xac },	\
   1515  1.7  christos 	{ 19, 0x93 },	\
   1516  1.7  christos 	{ 20, 0xb3 },	\
   1517  1.7  christos 	{ 21, 0xd0 },	\
   1518  1.7  christos 	{ 22, 0x00 },  	\
   1519  1.7  christos 	{ 23, 0x3c },	\
   1520  1.7  christos 	{ 24, 0x16 },	\
   1521  1.7  christos 	{ 25, 0x15 },	\
   1522  1.7  christos 	{ 26, 0x85 },	\
   1523  1.7  christos 	{ 27, 0x00 },	\
   1524  1.7  christos 	{ 28, 0x00 },	\
   1525  1.7  christos 	{ 29, 0x9b },	\
   1526  1.7  christos 	{ 30, 0x09 },	\
   1527  1.7  christos 	{ 31, 0x10 }
   1528  1.7  christos 
   1529  1.7  christos #define RT3593_DEF_RF	\
   1530  1.7  christos 	{  1, 0x03 },	\
   1531  1.7  christos 	{  3, 0x80 },	\
   1532  1.7  christos 	{  5, 0x00 },	\
   1533  1.7  christos 	{  6, 0x40 },	\
   1534  1.7  christos 	{  8, 0xf1 },	\
   1535  1.7  christos 	{  9, 0x02 },	\
   1536  1.7  christos 	{ 10, 0xd3 },	\
   1537  1.7  christos 	{ 11, 0x40 },	\
   1538  1.7  christos 	{ 12, 0x4e },	\
   1539  1.7  christos 	{ 13, 0x12 },	\
   1540  1.7  christos 	{ 18, 0x40 },	\
   1541  1.7  christos 	{ 22, 0x20 },	\
   1542  1.7  christos 	{ 30, 0x10 },	\
   1543  1.7  christos 	{ 31, 0x80 },	\
   1544  1.7  christos 	{ 32, 0x78 },	\
   1545  1.7  christos 	{ 33, 0x3b },	\
   1546  1.7  christos 	{ 34, 0x3c },	\
   1547  1.7  christos 	{ 35, 0xe0 },	\
   1548  1.7  christos 	{ 38, 0x86 },	\
   1549  1.7  christos 	{ 39, 0x23 },	\
   1550  1.7  christos 	{ 44, 0xd3 },	\
   1551  1.7  christos 	{ 45, 0xbb },	\
   1552  1.7  christos 	{ 46, 0x60 },	\
   1553  1.7  christos 	{ 49, 0x81 },	\
   1554  1.7  christos 	{ 50, 0x86 },	\
   1555  1.7  christos 	{ 51, 0x75 },	\
   1556  1.7  christos 	{ 52, 0x45 },	\
   1557  1.7  christos 	{ 53, 0x18 },	\
   1558  1.7  christos 	{ 54, 0x18 },	\
   1559  1.7  christos 	{ 55, 0x18 },	\
   1560  1.7  christos 	{ 56, 0xdb },	\
   1561  1.7  christos 	{ 57, 0x6e }
   1562  1.7  christos 
   1563  1.2  christos #define RT5390_DEF_RF	\
   1564  1.2  christos 	{  1, 0x0f },	\
   1565  1.2  christos 	{  2, 0x80 },	\
   1566  1.2  christos 	{  3, 0x88 },	\
   1567  1.2  christos 	{  5, 0x10 },	\
   1568  1.7  christos 	{  6, 0xa0 },	\
   1569  1.2  christos 	{  7, 0x00 },	\
   1570  1.2  christos 	{ 10, 0x53 },	\
   1571  1.2  christos 	{ 11, 0x4a },	\
   1572  1.2  christos 	{ 12, 0x46 },	\
   1573  1.2  christos 	{ 13, 0x9f },	\
   1574  1.2  christos 	{ 14, 0x00 },	\
   1575  1.2  christos 	{ 15, 0x00 },	\
   1576  1.2  christos 	{ 16, 0x00 },	\
   1577  1.2  christos 	{ 18, 0x03 },	\
   1578  1.2  christos 	{ 19, 0x00 },	\
   1579  1.2  christos 	{ 20, 0x00 },	\
   1580  1.2  christos 	{ 21, 0x00 },	\
   1581  1.5  christos 	{ 22, 0x20 },	\
   1582  1.2  christos 	{ 23, 0x00 },	\
   1583  1.2  christos 	{ 24, 0x00 },	\
   1584  1.7  christos 	{ 25, 0xc0 },	\
   1585  1.2  christos 	{ 26, 0x00 },	\
   1586  1.2  christos 	{ 27, 0x09 },	\
   1587  1.2  christos 	{ 28, 0x00 },	\
   1588  1.2  christos 	{ 29, 0x10 },	\
   1589  1.2  christos 	{ 30, 0x10 },	\
   1590  1.2  christos 	{ 31, 0x80 },	\
   1591  1.2  christos 	{ 32, 0x80 },	\
   1592  1.2  christos 	{ 33, 0x00 },	\
   1593  1.2  christos 	{ 34, 0x07 },	\
   1594  1.2  christos 	{ 35, 0x12 },	\
   1595  1.2  christos 	{ 36, 0x00 },	\
   1596  1.2  christos 	{ 37, 0x08 },	\
   1597  1.2  christos 	{ 38, 0x85 },	\
   1598  1.2  christos 	{ 39, 0x1b },	\
   1599  1.2  christos 	{ 40, 0x0b },	\
   1600  1.2  christos 	{ 41, 0xbb },	\
   1601  1.2  christos 	{ 42, 0xd2 },	\
   1602  1.2  christos 	{ 43, 0x9a },	\
   1603  1.2  christos 	{ 44, 0x0e },	\
   1604  1.2  christos 	{ 45, 0xa2 },	\
   1605  1.7  christos 	{ 46, 0x7b },	\
   1606  1.2  christos 	{ 47, 0x00 },	\
   1607  1.2  christos 	{ 48, 0x10 },	\
   1608  1.2  christos 	{ 49, 0x94 },	\
   1609  1.2  christos 	{ 52, 0x38 },	\
   1610  1.7  christos 	{ 53, 0x84 },	\
   1611  1.2  christos 	{ 54, 0x78 },	\
   1612  1.7  christos 	{ 55, 0x44 },	\
   1613  1.2  christos 	{ 56, 0x22 },	\
   1614  1.2  christos 	{ 57, 0x80 },	\
   1615  1.2  christos 	{ 58, 0x7f },	\
   1616  1.7  christos 	{ 59, 0x8f },	\
   1617  1.2  christos 	{ 60, 0x45 },	\
   1618  1.7  christos 	{ 61, 0xdd },	\
   1619  1.2  christos 	{ 62, 0x00 },	\
   1620  1.2  christos 	{ 63, 0x00 }
   1621  1.2  christos 
   1622  1.2  christos #define RT5392_DEF_RF	\
   1623  1.2  christos 	{  1, 0x17 },	\
   1624  1.2  christos 	{  3, 0x88 },	\
   1625  1.2  christos 	{  5, 0x10 },	\
   1626  1.2  christos 	{  6, 0xe0 },	\
   1627  1.2  christos 	{  7, 0x00 },	\
   1628  1.2  christos 	{ 10, 0x53 },	\
   1629  1.2  christos 	{ 11, 0x4a },	\
   1630  1.2  christos 	{ 12, 0x46 },	\
   1631  1.2  christos 	{ 13, 0x9f },	\
   1632  1.2  christos 	{ 14, 0x00 },	\
   1633  1.2  christos 	{ 15, 0x00 },	\
   1634  1.2  christos 	{ 16, 0x00 },	\
   1635  1.2  christos 	{ 18, 0x03 },	\
   1636  1.2  christos 	{ 19, 0x4d },	\
   1637  1.2  christos 	{ 20, 0x00 },	\
   1638  1.2  christos 	{ 21, 0x8d },	\
   1639  1.5  christos 	{ 22, 0x20 },	\
   1640  1.2  christos 	{ 23, 0x0b },	\
   1641  1.2  christos 	{ 24, 0x44 },	\
   1642  1.2  christos 	{ 25, 0x80 },	\
   1643  1.2  christos 	{ 26, 0x82 },	\
   1644  1.2  christos 	{ 27, 0x09 },	\
   1645  1.2  christos 	{ 28, 0x00 },	\
   1646  1.2  christos 	{ 29, 0x10 },	\
   1647  1.2  christos 	{ 30, 0x10 },	\
   1648  1.2  christos 	{ 31, 0x80 },	\
   1649  1.7  christos 	{ 32, 0x20 },	\
   1650  1.2  christos 	{ 33, 0xc0 },	\
   1651  1.2  christos 	{ 34, 0x07 },	\
   1652  1.2  christos 	{ 35, 0x12 },	\
   1653  1.2  christos 	{ 36, 0x00 },	\
   1654  1.2  christos 	{ 37, 0x08 },	\
   1655  1.2  christos 	{ 38, 0x89 },	\
   1656  1.2  christos 	{ 39, 0x1b },	\
   1657  1.2  christos 	{ 40, 0x0f },	\
   1658  1.2  christos 	{ 41, 0xbb },	\
   1659  1.2  christos 	{ 42, 0xd5 },	\
   1660  1.2  christos 	{ 43, 0x9b },	\
   1661  1.2  christos 	{ 44, 0x0e },	\
   1662  1.2  christos 	{ 45, 0xa2 },	\
   1663  1.2  christos 	{ 46, 0x73 },	\
   1664  1.2  christos 	{ 47, 0x0c },	\
   1665  1.2  christos 	{ 48, 0x10 },	\
   1666  1.2  christos 	{ 49, 0x94 },	\
   1667  1.2  christos 	{ 50, 0x94 },	\
   1668  1.2  christos 	{ 51, 0x3a },	\
   1669  1.2  christos 	{ 52, 0x48 },	\
   1670  1.2  christos 	{ 53, 0x44 },	\
   1671  1.2  christos 	{ 54, 0x38 },	\
   1672  1.2  christos 	{ 55, 0x43 },	\
   1673  1.2  christos 	{ 56, 0xa1 },	\
   1674  1.2  christos 	{ 57, 0x00 },	\
   1675  1.2  christos 	{ 58, 0x39 },	\
   1676  1.2  christos 	{ 59, 0x07 },	\
   1677  1.2  christos 	{ 60, 0x45 },	\
   1678  1.2  christos 	{ 61, 0x91 },	\
   1679  1.2  christos 	{ 62, 0x39 },	\
   1680  1.7  christos 	{ 63, 0x07 }
   1681  1.2  christos 
   1682  1.2  christos #define RT5592_DEF_RF	\
   1683  1.2  christos 	{  1, 0x3f },	\
   1684  1.2  christos 	{  3, 0x08 },	\
   1685  1.2  christos 	{  5, 0x10 },	\
   1686  1.2  christos 	{  6, 0xe4 },	\
   1687  1.2  christos 	{  7, 0x00 },	\
   1688  1.2  christos 	{ 14, 0x00 },	\
   1689  1.2  christos 	{ 15, 0x00 },	\
   1690  1.2  christos 	{ 16, 0x00 },	\
   1691  1.2  christos 	{ 18, 0x03 },	\
   1692  1.2  christos 	{ 19, 0x4d },	\
   1693  1.2  christos 	{ 20, 0x10 },	\
   1694  1.2  christos 	{ 21, 0x8d },	\
   1695  1.2  christos 	{ 26, 0x82 },	\
   1696  1.2  christos 	{ 28, 0x00 },	\
   1697  1.2  christos 	{ 29, 0x10 },	\
   1698  1.2  christos 	{ 33, 0xc0 },	\
   1699  1.2  christos 	{ 34, 0x07 },	\
   1700  1.2  christos 	{ 35, 0x12 },	\
   1701  1.2  christos 	{ 47, 0x0c },	\
   1702  1.2  christos 	{ 53, 0x22 },	\
   1703  1.2  christos 	{ 63, 0x07 }
   1704  1.2  christos 
   1705  1.2  christos #define RT5592_2GHZ_DEF_RF	\
   1706  1.2  christos 	{ 10, 0x90 },		\
   1707  1.2  christos 	{ 11, 0x4a },		\
   1708  1.2  christos 	{ 12, 0x52 },		\
   1709  1.2  christos 	{ 13, 0x42 },		\
   1710  1.2  christos 	{ 22, 0x40 },		\
   1711  1.2  christos 	{ 24, 0x4a },		\
   1712  1.2  christos 	{ 25, 0x80 },		\
   1713  1.2  christos 	{ 27, 0x42 },		\
   1714  1.2  christos 	{ 36, 0x80 },		\
   1715  1.2  christos 	{ 37, 0x08 },		\
   1716  1.2  christos 	{ 38, 0x89 },		\
   1717  1.2  christos 	{ 39, 0x1b },		\
   1718  1.2  christos 	{ 40, 0x0d },		\
   1719  1.2  christos 	{ 41, 0x9b },		\
   1720  1.2  christos 	{ 42, 0xd5 },		\
   1721  1.2  christos 	{ 43, 0x72 },		\
   1722  1.2  christos 	{ 44, 0x0e },		\
   1723  1.2  christos 	{ 45, 0xa2 },		\
   1724  1.2  christos 	{ 46, 0x6b },		\
   1725  1.2  christos 	{ 48, 0x10 },		\
   1726  1.2  christos 	{ 51, 0x3e },		\
   1727  1.2  christos 	{ 52, 0x48 },		\
   1728  1.2  christos 	{ 54, 0x38 },		\
   1729  1.2  christos 	{ 56, 0xa1 },		\
   1730  1.2  christos 	{ 57, 0x00 },		\
   1731  1.2  christos 	{ 58, 0x39 },		\
   1732  1.2  christos 	{ 60, 0x45 },		\
   1733  1.2  christos 	{ 61, 0x91 },		\
   1734  1.2  christos 	{ 62, 0x39 }
   1735  1.2  christos 
   1736  1.2  christos #define RT5592_5GHZ_DEF_RF	\
   1737  1.2  christos 	{ 10, 0x97 },		\
   1738  1.2  christos 	{ 11, 0x40 },		\
   1739  1.2  christos 	{ 25, 0xbf },		\
   1740  1.2  christos 	{ 27, 0x42 },		\
   1741  1.2  christos 	{ 36, 0x00 },		\
   1742  1.2  christos 	{ 37, 0x04 },		\
   1743  1.2  christos 	{ 38, 0x85 },		\
   1744  1.2  christos 	{ 40, 0x42 },		\
   1745  1.2  christos 	{ 41, 0xbb },		\
   1746  1.2  christos 	{ 42, 0xd7 },		\
   1747  1.2  christos 	{ 45, 0x41 },		\
   1748  1.2  christos 	{ 48, 0x00 },		\
   1749  1.2  christos 	{ 57, 0x77 },		\
   1750  1.2  christos 	{ 60, 0x05 },		\
   1751  1.2  christos 	{ 61, 0x01 }
   1752  1.2  christos 
   1753  1.2  christos #define RT5592_CHAN_5GHZ	\
   1754  1.2  christos 	{  36,  64, 12, 0x2e },	\
   1755  1.2  christos 	{ 100, 165, 12, 0x0e },	\
   1756  1.2  christos 	{  36,  64, 13, 0x22 },	\
   1757  1.2  christos 	{ 100, 165, 13, 0x42 },	\
   1758  1.2  christos 	{  36,  64, 22, 0x60 },	\
   1759  1.2  christos 	{ 100, 165, 22, 0x40 },	\
   1760  1.2  christos 	{  36,  64, 23, 0x7f },	\
   1761  1.2  christos 	{ 100, 153, 23, 0x3c },	\
   1762  1.2  christos 	{ 155, 165, 23, 0x38 },	\
   1763  1.2  christos 	{  36,  50, 24, 0x09 },	\
   1764  1.2  christos 	{  52,  64, 24, 0x07 },	\
   1765  1.2  christos 	{ 100, 153, 24, 0x06 },	\
   1766  1.2  christos 	{ 155, 165, 24, 0x05 },	\
   1767  1.2  christos 	{  36,  64, 39, 0x1c },	\
   1768  1.2  christos 	{ 100, 138, 39, 0x1a },	\
   1769  1.2  christos 	{ 140, 165, 39, 0x18 },	\
   1770  1.2  christos 	{  36,  64, 43, 0x5b },	\
   1771  1.2  christos 	{ 100, 138, 43, 0x3b },	\
   1772  1.2  christos 	{ 140, 165, 43, 0x1b },	\
   1773  1.2  christos 	{  36,  64, 44, 0x40 },	\
   1774  1.2  christos 	{ 100, 138, 44, 0x20 },	\
   1775  1.2  christos 	{ 140, 165, 44, 0x10 },	\
   1776  1.2  christos 	{  36,  64, 46, 0x00 },	\
   1777  1.2  christos 	{ 100, 138, 46, 0x18 },	\
   1778  1.2  christos 	{ 140, 165, 46, 0x08 },	\
   1779  1.2  christos 	{  36,  64, 51, 0xfe },	\
   1780  1.2  christos 	{ 100, 124, 51, 0xfc },	\
   1781  1.2  christos 	{ 126, 165, 51, 0xec },	\
   1782  1.2  christos 	{  36,  64, 52, 0x0c },	\
   1783  1.2  christos 	{ 100, 138, 52, 0x06 },	\
   1784  1.2  christos 	{ 140, 165, 52, 0x06 },	\
   1785  1.2  christos 	{  36,  64, 54, 0xf8 },	\
   1786  1.2  christos 	{ 100, 165, 54, 0xeb },	\
   1787  1.2  christos 	{ 36,   50, 55, 0x06 },	\
   1788  1.2  christos 	{ 52,   64, 55, 0x04 },	\
   1789  1.2  christos 	{ 100, 138, 55, 0x01 },	\
   1790  1.2  christos 	{ 140, 165, 55, 0x00 },	\
   1791  1.2  christos 	{  36,  50, 56, 0xd3 },	\
   1792  1.2  christos 	{  52, 128, 56, 0xbb },	\
   1793  1.2  christos 	{ 130, 165, 56, 0xab },	\
   1794  1.2  christos 	{  36,  64, 58, 0x15 },	\
   1795  1.2  christos 	{ 100, 116, 58, 0x1d },	\
   1796  1.2  christos 	{ 118, 165, 58, 0x15 },	\
   1797  1.2  christos 	{  36,  64, 59, 0x7f },	\
   1798  1.2  christos 	{ 100, 138, 59, 0x3f },	\
   1799  1.2  christos 	{ 140, 165, 59, 0x7c },	\
   1800  1.2  christos 	{  36,  64, 62, 0x15 },	\
   1801  1.2  christos 	{ 100, 116, 62, 0x1d },	\
   1802  1.2  christos 	{ 118, 165, 62, 0x15 }
   1803