1 1.2 martin /* $NetBSD: rtwn_data.h,v 1.2 2022/09/26 19:04:49 martin Exp $ */ 2 1.1 thorpej /* $OpenBSD: r92creg.h,v 1.16 2017/09/22 13:41:56 kevlo Exp $ */ 3 1.1 thorpej 4 1.1 thorpej /*- 5 1.1 thorpej * Copyright (c) 2010 Damien Bergamini <damien.bergamini (at) free.fr> 6 1.1 thorpej * Copyright (c) 2015 Stefan Sperling <stsp (at) openbsd.org> 7 1.1 thorpej * Copyright (c) 2016 Nathanial Sloss <nathanialsloss (at) yahoo.com.au> 8 1.1 thorpej * 9 1.1 thorpej * Permission to use, copy, modify, and distribute this software for any 10 1.1 thorpej * purpose with or without fee is hereby granted, provided that the above 11 1.1 thorpej * copyright notice and this permission notice appear in all copies. 12 1.1 thorpej * 13 1.1 thorpej * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 14 1.1 thorpej * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 15 1.1 thorpej * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 16 1.1 thorpej * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 17 1.1 thorpej * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 18 1.1 thorpej * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 19 1.1 thorpej * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 20 1.1 thorpej */ 21 1.1 thorpej 22 1.1 thorpej #ifndef _DEV_IC_RTWN_DATA_H_ 23 1.1 thorpej #define _DEV_IC_RTWN_DATA_H_ 24 1.1 thorpej 25 1.1 thorpej /* 26 1.1 thorpej * MAC initialization values. 27 1.1 thorpej */ 28 1.1 thorpej static const struct { 29 1.1 thorpej uint16_t reg; 30 1.1 thorpej uint8_t val; 31 1.1 thorpej } rtl8192ce_mac[] = { 32 1.1 thorpej { 0x420, 0x80 }, { 0x423, 0x00 }, { 0x430, 0x00 }, { 0x431, 0x00 }, 33 1.1 thorpej { 0x432, 0x00 }, { 0x433, 0x01 }, { 0x434, 0x04 }, { 0x435, 0x05 }, 34 1.1 thorpej { 0x436, 0x06 }, { 0x437, 0x07 }, { 0x438, 0x00 }, { 0x439, 0x00 }, 35 1.1 thorpej { 0x43a, 0x00 }, { 0x43b, 0x01 }, { 0x43c, 0x04 }, { 0x43d, 0x05 }, 36 1.1 thorpej { 0x43e, 0x06 }, { 0x43f, 0x07 }, { 0x440, 0x5d }, { 0x441, 0x01 }, 37 1.1 thorpej { 0x442, 0x00 }, { 0x444, 0x15 }, { 0x445, 0xf0 }, { 0x446, 0x0f }, 38 1.1 thorpej { 0x447, 0x00 }, { 0x458, 0x41 }, { 0x459, 0xa8 }, { 0x45a, 0x72 }, 39 1.1 thorpej { 0x45b, 0xb9 }, { 0x460, 0x88 }, { 0x461, 0x88 }, { 0x462, 0x06 }, 40 1.1 thorpej { 0x463, 0x03 }, { 0x4c8, 0x04 }, { 0x4c9, 0x08 }, { 0x4cc, 0x02 }, 41 1.1 thorpej { 0x4cd, 0x28 }, { 0x4ce, 0x01 }, { 0x500, 0x26 }, { 0x501, 0xa2 }, 42 1.1 thorpej { 0x502, 0x2f }, { 0x503, 0x00 }, { 0x504, 0x28 }, { 0x505, 0xa3 }, 43 1.1 thorpej { 0x506, 0x5e }, { 0x507, 0x00 }, { 0x508, 0x2b }, { 0x509, 0xa4 }, 44 1.1 thorpej { 0x50a, 0x5e }, { 0x50b, 0x00 }, { 0x50c, 0x4f }, { 0x50d, 0xa4 }, 45 1.1 thorpej { 0x50e, 0x00 }, { 0x50f, 0x00 }, { 0x512, 0x1c }, { 0x514, 0x0a }, 46 1.1 thorpej { 0x515, 0x10 }, { 0x516, 0x0a }, { 0x517, 0x10 }, { 0x51a, 0x16 }, 47 1.1 thorpej { 0x524, 0x0f }, { 0x525, 0x4f }, { 0x546, 0x20 }, { 0x547, 0x00 }, 48 1.1 thorpej { 0x559, 0x02 }, { 0x55a, 0x02 }, { 0x55d, 0xff }, { 0x605, 0x30 }, 49 1.1 thorpej { 0x608, 0x0e }, { 0x609, 0x2a }, { 0x652, 0x20 }, { 0x63c, 0x0a }, 50 1.1 thorpej { 0x63d, 0x0e }, { 0x700, 0x21 }, { 0x701, 0x43 }, { 0x702, 0x65 }, 51 1.1 thorpej { 0x703, 0x87 }, { 0x708, 0x21 }, { 0x709, 0x43 }, { 0x70a, 0x65 }, 52 1.1 thorpej { 0x70b, 0x87 } 53 1.1 thorpej }, rtl8192eu_mac[] = { 54 1.1 thorpej { 0x011, 0xeb }, { 0x012, 0x07 }, { 0x014, 0x75 }, { 0x303, 0xa7 }, 55 1.1 thorpej { 0x428, 0x0a }, { 0x429, 0x10 }, { 0x430, 0x00 }, { 0x431, 0x00 }, 56 1.1 thorpej { 0x432, 0x00 }, { 0x433, 0x01 }, { 0x434, 0x04 }, { 0x435, 0x05 }, 57 1.1 thorpej { 0x436, 0x07 }, { 0x437, 0x08 }, { 0x43c, 0x04 }, { 0x43d, 0x05 }, 58 1.1 thorpej { 0x43e, 0x07 }, { 0x43f, 0x08 }, { 0x440, 0x5d }, { 0x441, 0x01 }, 59 1.1 thorpej { 0x442, 0x00 }, { 0x444, 0x10 }, { 0x445, 0x00 }, { 0x446, 0x00 }, 60 1.1 thorpej { 0x447, 0x00 }, { 0x448, 0x00 }, { 0x449, 0xf0 }, { 0x44a, 0x0f }, 61 1.1 thorpej { 0x44b, 0x3e }, { 0x44c, 0x10 }, { 0x44d, 0x00 }, { 0x44e, 0x00 }, 62 1.1 thorpej { 0x44f, 0x00 }, { 0x450, 0x00 }, { 0x451, 0xf0 }, { 0x452, 0x0f }, 63 1.1 thorpej { 0x453, 0x00 }, { 0x456, 0x5e }, { 0x460, 0x66 }, { 0x461, 0x66 }, 64 1.1 thorpej { 0x4c8, 0xff }, { 0x4c9, 0x08 }, { 0x4cc, 0xff }, { 0x4cd, 0xff }, 65 1.1 thorpej { 0x4ce, 0x01 }, { 0x500, 0x26 }, { 0x501, 0xa2 }, { 0x502, 0x2f }, 66 1.1 thorpej { 0x503, 0x00 }, { 0x504, 0x28 }, { 0x505, 0xa3 }, { 0x506, 0x5e }, 67 1.1 thorpej { 0x507, 0x00 }, { 0x508, 0x2b }, { 0x509, 0xa4 }, { 0x50a, 0x5e }, 68 1.1 thorpej { 0x50b, 0x00 }, { 0x50c, 0x4f }, { 0x50d, 0xa4 }, { 0x50e, 0x00 }, 69 1.1 thorpej { 0x50f, 0x00 }, { 0x512, 0x1c }, { 0x514, 0x0a }, { 0x516, 0x0a }, 70 1.1 thorpej { 0x525, 0x4f }, { 0x540, 0x12 }, { 0x541, 0x64 }, { 0x550, 0x10 }, 71 1.1 thorpej { 0x551, 0x10 }, { 0x559, 0x02 }, { 0x55c, 0x50 }, { 0x55d, 0xff }, 72 1.1 thorpej { 0x605, 0x30 }, { 0x608, 0x0e }, { 0x609, 0x2a }, { 0x620, 0xff }, 73 1.1 thorpej { 0x621, 0xff }, { 0x622, 0xff }, { 0x623, 0xff }, { 0x624, 0xff }, 74 1.1 thorpej { 0x625, 0xff }, { 0x626, 0xff }, { 0x627, 0xff }, { 0x638, 0x50 }, 75 1.1 thorpej { 0x63c, 0x0a }, { 0x63d, 0x0a }, { 0x63e, 0x0e }, { 0x63f, 0x0e }, 76 1.1 thorpej { 0x640, 0x40 }, { 0x642, 0x40 }, { 0x643, 0x00 }, { 0x652, 0xc8 }, 77 1.1 thorpej { 0x66e, 0x05 }, { 0x700, 0x21 }, { 0x701, 0x43 }, { 0x702, 0x65 }, 78 1.1 thorpej { 0x703, 0x87 }, { 0x708, 0x21 }, { 0x709, 0x43 }, { 0x70a, 0x65 }, 79 1.1 thorpej { 0x70b, 0x87 }, 80 1.1 thorpej }, rtl8188eu_mac[] = { 81 1.1 thorpej { 0x026, 0x41 }, { 0x027, 0x35 }, { 0x040, 0x00 }, { 0x428, 0x0a }, 82 1.1 thorpej { 0x429, 0x10 }, { 0x430, 0x00 }, { 0x431, 0x01 }, { 0x432, 0x02 }, 83 1.1 thorpej { 0x433, 0x04 }, { 0x434, 0x05 }, { 0x435, 0x06 }, { 0x436, 0x07 }, 84 1.1 thorpej { 0x437, 0x08 }, { 0x438, 0x00 }, { 0x439, 0x00 }, { 0x43a, 0x01 }, 85 1.1 thorpej { 0x43b, 0x02 }, { 0x43c, 0x04 }, { 0x43d, 0x05 }, { 0x43e, 0x06 }, 86 1.1 thorpej { 0x43f, 0x07 }, { 0x440, 0x5d }, { 0x441, 0x01 }, { 0x442, 0x00 }, 87 1.1 thorpej { 0x444, 0x15 }, { 0x445, 0xf0 }, { 0x446, 0x0f }, { 0x447, 0x00 }, 88 1.1 thorpej { 0x458, 0x41 }, { 0x459, 0xa8 }, { 0x45a, 0x72 }, { 0x45b, 0xb9 }, 89 1.1 thorpej { 0x460, 0x66 }, { 0x461, 0x66 }, { 0x480, 0x08 }, { 0x4c8, 0xff }, 90 1.1 thorpej { 0x4c9, 0x08 }, { 0x4cc, 0xff }, { 0x4cd, 0xff }, { 0x4ce, 0x01 }, 91 1.1 thorpej { 0x4d3, 0x01 }, { 0x500, 0x26 }, { 0x501, 0xa2 }, { 0x502, 0x2f }, 92 1.1 thorpej { 0x503, 0x00 }, { 0x504, 0x28 }, { 0x505, 0xa3 }, { 0x506, 0x5e }, 93 1.1 thorpej { 0x507, 0x00 }, { 0x508, 0x2b }, { 0x509, 0xa4 }, { 0x50a, 0x5e }, 94 1.1 thorpej { 0x50b, 0x00 }, { 0x50c, 0x4f }, { 0x50d, 0xa4 }, { 0x50e, 0x00 }, 95 1.1 thorpej { 0x50f, 0x00 }, { 0x512, 0x1c }, { 0x514, 0x0a }, { 0x516, 0x0a }, 96 1.1 thorpej { 0x525, 0x4f }, { 0x550, 0x10 }, { 0x551, 0x10 }, { 0x559, 0x02 }, 97 1.1 thorpej { 0x55d, 0xff }, { 0x605, 0x30 }, { 0x608, 0x0e }, { 0x609, 0x2a }, 98 1.1 thorpej { 0x620, 0xff }, { 0x621, 0xff }, { 0x622, 0xff }, { 0x623, 0xff }, 99 1.1 thorpej { 0x624, 0xff }, { 0x625, 0xff }, { 0x626, 0xff }, { 0x627, 0xff }, 100 1.1 thorpej { 0x652, 0x20 }, { 0x63c, 0x0a }, { 0x63d, 0x0a }, { 0x63e, 0x0e }, 101 1.1 thorpej { 0x63f, 0x0e }, { 0x640, 0x40 }, { 0x66e, 0x05 }, { 0x700, 0x21 }, 102 1.1 thorpej { 0x701, 0x43 }, { 0x702, 0x65 }, { 0x703, 0x87 }, { 0x708, 0x21 }, 103 1.1 thorpej { 0x709, 0x43 }, { 0x70a, 0x65 }, { 0x70b, 0x87 } 104 1.1 thorpej }, rtl8192cu_mac[] = { 105 1.1 thorpej { 0x420, 0x80 }, { 0x423, 0x00 }, { 0x430, 0x00 }, { 0x431, 0x00 }, 106 1.1 thorpej { 0x432, 0x00 }, { 0x433, 0x01 }, { 0x434, 0x04 }, { 0x435, 0x05 }, 107 1.1 thorpej { 0x436, 0x06 }, { 0x437, 0x07 }, { 0x438, 0x00 }, { 0x439, 0x00 }, 108 1.1 thorpej { 0x43a, 0x00 }, { 0x43b, 0x01 }, { 0x43c, 0x04 }, { 0x43d, 0x05 }, 109 1.1 thorpej { 0x43e, 0x06 }, { 0x43f, 0x07 }, { 0x440, 0x5d }, { 0x441, 0x01 }, 110 1.1 thorpej { 0x442, 0x00 }, { 0x444, 0x15 }, { 0x445, 0xf0 }, { 0x446, 0x0f }, 111 1.1 thorpej { 0x447, 0x00 }, { 0x458, 0x41 }, { 0x459, 0xa8 }, { 0x45a, 0x72 }, 112 1.1 thorpej { 0x45b, 0xb9 }, { 0x460, 0x66 }, { 0x461, 0x66 }, { 0x462, 0x08 }, 113 1.1 thorpej { 0x463, 0x03 }, { 0x4c8, 0xff }, { 0x4c9, 0x08 }, { 0x4cc, 0xff }, 114 1.1 thorpej { 0x4cd, 0xff }, { 0x4ce, 0x01 }, { 0x500, 0x26 }, { 0x501, 0xa2 }, 115 1.1 thorpej { 0x502, 0x2f }, { 0x503, 0x00 }, { 0x504, 0x28 }, { 0x505, 0xa3 }, 116 1.1 thorpej { 0x506, 0x5e }, { 0x507, 0x00 }, { 0x508, 0x2b }, { 0x509, 0xa4 }, 117 1.1 thorpej { 0x50a, 0x5e }, { 0x50b, 0x00 }, { 0x50c, 0x4f }, { 0x50d, 0xa4 }, 118 1.1 thorpej { 0x50e, 0x00 }, { 0x50f, 0x00 }, { 0x512, 0x1c }, { 0x514, 0x0a }, 119 1.1 thorpej { 0x515, 0x10 }, { 0x516, 0x0a }, { 0x517, 0x10 }, { 0x51a, 0x16 }, 120 1.1 thorpej { 0x524, 0x0f }, { 0x525, 0x4f }, { 0x546, 0x40 }, { 0x547, 0x00 }, 121 1.1 thorpej { 0x550, 0x10 }, { 0x551, 0x10 }, { 0x559, 0x02 }, { 0x55a, 0x02 }, 122 1.1 thorpej { 0x55d, 0xff }, { 0x605, 0x30 }, { 0x608, 0x0e }, { 0x609, 0x2a }, 123 1.1 thorpej { 0x652, 0x20 }, { 0x63c, 0x0a }, { 0x63d, 0x0e }, { 0x63e, 0x0a }, 124 1.1 thorpej { 0x63f, 0x0e }, { 0x66e, 0x05 }, { 0x700, 0x21 }, { 0x701, 0x43 }, 125 1.1 thorpej { 0x702, 0x65 }, { 0x703, 0x87 }, { 0x708, 0x21 }, { 0x709, 0x43 }, 126 1.1 thorpej { 0x70a, 0x65 }, { 0x70b, 0x87 } 127 1.1 thorpej }; 128 1.1 thorpej 129 1.1 thorpej /* 130 1.1 thorpej * Baseband initialization values. 131 1.1 thorpej */ 132 1.1 thorpej struct rtwn_bb_prog { 133 1.1 thorpej int count; 134 1.1 thorpej const uint16_t *regs; 135 1.1 thorpej const uint32_t *vals; 136 1.1 thorpej int agccount; 137 1.1 thorpej const uint32_t *agcvals; 138 1.1 thorpej }; 139 1.1 thorpej 140 1.1 thorpej /* 141 1.1 thorpej * RTL8192CU and RTL8192CE-VAU. 142 1.1 thorpej */ 143 1.1 thorpej static const uint16_t rtl8192ce_bb_regs[] = { 144 1.1 thorpej 0x024, 0x028, 0x800, 0x804, 0x808, 0x80c, 0x810, 0x814, 0x818, 145 1.1 thorpej 0x81c, 0x820, 0x824, 0x828, 0x82c, 0x830, 0x834, 0x838, 0x83c, 146 1.1 thorpej 0x840, 0x844, 0x848, 0x84c, 0x850, 0x854, 0x858, 0x85c, 0x860, 147 1.1 thorpej 0x864, 0x868, 0x86c, 0x870, 0x874, 0x878, 0x87c, 0x880, 0x884, 148 1.1 thorpej 0x888, 0x88c, 0x890, 0x894, 0x898, 0x89c, 0x900, 0x904, 0x908, 149 1.1 thorpej 0x90c, 0xa00, 0xa04, 0xa08, 0xa0c, 0xa10, 0xa14, 0xa18, 0xa1c, 150 1.1 thorpej 0xa20, 0xa24, 0xa28, 0xa2c, 0xa70, 0xa74, 0xc00, 0xc04, 0xc08, 151 1.1 thorpej 0xc0c, 0xc10, 0xc14, 0xc18, 0xc1c, 0xc20, 0xc24, 0xc28, 0xc2c, 152 1.1 thorpej 0xc30, 0xc34, 0xc38, 0xc3c, 0xc40, 0xc44, 0xc48, 0xc4c, 0xc50, 153 1.1 thorpej 0xc54, 0xc58, 0xc5c, 0xc60, 0xc64, 0xc68, 0xc6c, 0xc70, 0xc74, 154 1.1 thorpej 0xc78, 0xc7c, 0xc80, 0xc84, 0xc88, 0xc8c, 0xc90, 0xc94, 0xc98, 155 1.1 thorpej 0xc9c, 0xca0, 0xca4, 0xca8, 0xcac, 0xcb0, 0xcb4, 0xcb8, 0xcbc, 156 1.1 thorpej 0xcc0, 0xcc4, 0xcc8, 0xccc, 0xcd0, 0xcd4, 0xcd8, 0xcdc, 0xce0, 157 1.1 thorpej 0xce4, 0xce8, 0xcec, 0xd00, 0xd04, 0xd08, 0xd0c, 0xd10, 0xd14, 158 1.1 thorpej 0xd18, 0xd2c, 0xd30, 0xd34, 0xd38, 0xd3c, 0xd40, 0xd44, 0xd48, 159 1.1 thorpej 0xd4c, 0xd50, 0xd54, 0xd58, 0xd5c, 0xd60, 0xd64, 0xd68, 0xd6c, 160 1.1 thorpej 0xd70, 0xd74, 0xd78, 0xe00, 0xe04, 0xe08, 0xe10, 0xe14, 0xe18, 161 1.1 thorpej 0xe1c, 0xe28, 0xe30, 0xe34, 0xe38, 0xe3c, 0xe40, 0xe44, 0xe48, 162 1.1 thorpej 0xe4c, 0xe50, 0xe54, 0xe58, 0xe5c, 0xe60, 0xe68, 0xe6c, 0xe70, 163 1.1 thorpej 0xe74, 0xe78, 0xe7c, 0xe80, 0xe84, 0xe88, 0xe8c, 0xed0, 0xed4, 164 1.1 thorpej 0xed8, 0xedc, 0xee0, 0xeec, 0xf14, 0xf4c, 0xf00 165 1.1 thorpej }; 166 1.1 thorpej 167 1.1 thorpej static const uint32_t rtl8192ce_bb_vals[] = { 168 1.1 thorpej 0x0011800d, 0x00ffdb83, 0x80040002, 0x00000003, 0x0000fc00, 169 1.1 thorpej 0x0000000a, 0x10005388, 0x020c3d10, 0x02200385, 0x00000000, 170 1.1 thorpej 0x01000100, 0x00390004, 0x01000100, 0x00390004, 0x27272727, 171 1.1 thorpej 0x27272727, 0x27272727, 0x27272727, 0x00010000, 0x00010000, 172 1.1 thorpej 0x27272727, 0x27272727, 0x00000000, 0x00000000, 0x569a569a, 173 1.1 thorpej 0x0c1b25a4, 0x66e60230, 0x061f0130, 0x27272727, 0x2b2b2b27, 174 1.1 thorpej 0x07000700, 0x22184000, 0x08080808, 0x00000000, 0xc0083070, 175 1.1 thorpej 0x000004d5, 0x00000000, 0xcc0000c0, 0x00000800, 0xfffffffe, 176 1.1 thorpej 0x40302010, 0x00706050, 0x00000000, 0x00000023, 0x00000000, 177 1.1 thorpej 0x81121313, 0x00d047c8, 0x80ff000c, 0x8c838300, 0x2e68120f, 178 1.1 thorpej 0x9500bb78, 0x11144028, 0x00881117, 0x89140f00, 0x1a1b0000, 179 1.1 thorpej 0x090e1317, 0x00000204, 0x00d30000, 0x101fbf00, 0x00000007, 180 1.1 thorpej 0x48071d40, 0x03a05633, 0x000000e4, 0x6c6c6c6c, 0x08800000, 181 1.1 thorpej 0x40000100, 0x08800000, 0x40000100, 0x00000000, 0x00000000, 182 1.1 thorpej 0x00000000, 0x00000000, 0x69e9ac44, 0x469652cf, 0x49795994, 183 1.1 thorpej 0x0a97971c, 0x1f7c403f, 0x000100b7, 0xec020107, 0x007f037f, 184 1.1 thorpej 0x6954341e, 0x43bc0094, 0x6954341e, 0x433c0094, 0x00000000, 185 1.1 thorpej 0x5116848b, 0x47c00bff, 0x00000036, 0x2c7f000d, 0x018610db, 186 1.1 thorpej 0x0000001f, 0x00b91612, 0x40000100, 0x20f60000, 0x40000100, 187 1.1 thorpej 0x20200000, 0x00121820, 0x00000000, 0x00121820, 0x00007f7f, 188 1.1 thorpej 0x00000000, 0x00000080, 0x00000000, 0x00000000, 0x00000000, 189 1.1 thorpej 0x00000000, 0x00000000, 0x28000000, 0x00000000, 0x00000000, 190 1.1 thorpej 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x64b22427, 191 1.1 thorpej 0x00766932, 0x00222222, 0x00000000, 0x37644302, 0x2f97d40c, 192 1.1 thorpej 0x00080740, 0x00020403, 0x0000907f, 0x20010201, 0xa0633333, 193 1.1 thorpej 0x3333bc43, 0x7a8f5b6b, 0xcc979975, 0x00000000, 0x80608000, 194 1.1 thorpej 0x00000000, 0x00027293, 0x00000000, 0x00000000, 0x00000000, 195 1.1 thorpej 0x00000000, 0x6437140a, 0x00000000, 0x00000000, 0x30032064, 196 1.1 thorpej 0x4653de68, 0x04518a3c, 0x00002101, 0x2a201c16, 0x1812362e, 197 1.1 thorpej 0x322c2220, 0x000e3c24, 0x2a2a2a2a, 0x2a2a2a2a, 0x03902a2a, 198 1.1 thorpej 0x2a2a2a2a, 0x2a2a2a2a, 0x2a2a2a2a, 0x2a2a2a2a, 0x00000000, 199 1.1 thorpej 0x1000dc1f, 0x10008c1f, 0x02140102, 0x681604c2, 0x01007c00, 200 1.1 thorpej 0x01004800, 0xfb000000, 0x000028d1, 0x1000dc1f, 0x10008c1f, 201 1.1 thorpej 0x02140102, 0x28160d05, 0x00000010, 0x001b25a4, 0x63db25a4, 202 1.1 thorpej 0x63db25a4, 0x0c1b25a4, 0x0c1b25a4, 0x0c1b25a4, 0x0c1b25a4, 203 1.1 thorpej 0x63db25a4, 0x0c1b25a4, 0x63db25a4, 0x63db25a4, 0x63db25a4, 204 1.1 thorpej 0x63db25a4, 0x001b25a4, 0x001b25a4, 0x6fdb25a4, 0x00000003, 205 1.1 thorpej 0x00000000, 0x00000300 206 1.1 thorpej }; 207 1.1 thorpej 208 1.1 thorpej static const uint32_t rtl8192ce_bb_vals_2t[] = { 209 1.1 thorpej 0x0011800f, 0x00ffdb83, 0x80040002, 0x00000003, 0x0000fc00, 210 1.1 thorpej 0x0000000a, 0x10005388, 0x020c3d10, 0x02200385, 0x00000000, 211 1.1 thorpej 0x01000100, 0x00390004, 0x01000100, 0x00390004, 0x27272727, 212 1.1 thorpej 0x27272727, 0x27272727, 0x27272727, 0x00010000, 0x00010000, 213 1.1 thorpej 0x27272727, 0x27272727, 0x00000000, 0x00000000, 0x569a569a, 214 1.1 thorpej 0x0c1b25a4, 0x66e60230, 0x061f0130, 0x27272727, 0x2b2b2b27, 215 1.1 thorpej 0x07000700, 0x22184000, 0x08080808, 0x00000000, 0xc0083070, 216 1.1 thorpej 0x000004d5, 0x00000000, 0xcc0000c0, 0x00000800, 0xfffffffe, 217 1.1 thorpej 0x40302010, 0x00706050, 0x00000000, 0x00000023, 0x00000000, 218 1.1 thorpej 0x81121313, 0x00d047c8, 0x80ff000c, 0x8c838300, 0x2e68120f, 219 1.1 thorpej 0x9500bb78, 0x11144028, 0x00881117, 0x89140f00, 0x1a1b0000, 220 1.1 thorpej 0x090e1317, 0x00000204, 0x00d30000, 0x101fbf00, 0x00000007, 221 1.1 thorpej 0x48071d40, 0x03a05633, 0x000000e4, 0x6c6c6c6c, 0x08800000, 222 1.1 thorpej 0x40000100, 0x08800000, 0x40000100, 0x00000000, 0x00000000, 223 1.1 thorpej 0x00000000, 0x00000000, 0x69e9ac44, 0x469652cf, 0x49795994, 224 1.1 thorpej 0x0a97971c, 0x1f7c403f, 0x000100b7, 0xec020107, 0x007f037f, 225 1.1 thorpej 0x69543420, 0x43bc0094, 0x69543420, 0x433c0094, 0x00000000, 226 1.1 thorpej 0x5116848b, 0x47c00bff, 0x00000036, 0x2c7f000d, 0x018610db, 227 1.1 thorpej 0x0000001f, 0x00b91612, 0x40000100, 0x20f60000, 0x40000100, 228 1.1 thorpej 0x20200000, 0x00121820, 0x00000000, 0x00121820, 0x00007f7f, 229 1.1 thorpej 0x00000000, 0x00000080, 0x00000000, 0x00000000, 0x00000000, 230 1.1 thorpej 0x00000000, 0x00000000, 0x28000000, 0x00000000, 0x00000000, 231 1.1 thorpej 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x64b22427, 232 1.1 thorpej 0x00766932, 0x00222222, 0x00000000, 0x37644302, 0x2f97d40c, 233 1.1 thorpej 0x00080740, 0x00020403, 0x0000907f, 0x20010201, 0xa0633333, 234 1.1 thorpej 0x3333bc43, 0x7a8f5b6b, 0xcc979975, 0x00000000, 0x80608000, 235 1.1 thorpej 0x00000000, 0x00027293, 0x00000000, 0x00000000, 0x00000000, 236 1.1 thorpej 0x00000000, 0x6437140a, 0x00000000, 0x00000000, 0x30032064, 237 1.1 thorpej 0x4653de68, 0x04518a3c, 0x00002101, 0x2a201c16, 0x1812362e, 238 1.1 thorpej 0x322c2220, 0x000e3c24, 0x2a2a2a2a, 0x2a2a2a2a, 0x03902a2a, 239 1.1 thorpej 0x2a2a2a2a, 0x2a2a2a2a, 0x2a2a2a2a, 0x2a2a2a2a, 0x00000000, 240 1.1 thorpej 0x1000dc1f, 0x10008c1f, 0x02140102, 0x681604c2, 0x01007c00, 241 1.1 thorpej 0x01004800, 0xfb000000, 0x000028d1, 0x1000dc1f, 0x10008c1f, 242 1.1 thorpej 0x02140102, 0x28160d05, 0x00000010, 0x001b25a4, 0x63db25a4, 243 1.1 thorpej 0x63db25a4, 0x0c1b25a4, 0x0c1b25a4, 0x0c1b25a4, 0x0c1b25a4, 244 1.1 thorpej 0x63db25a4, 0x0c1b25a4, 0x63db25a4, 0x63db25a4, 0x63db25a4, 245 1.1 thorpej 0x63db25a4, 0x001b25a4, 0x001b25a4, 0x6fdb25a4, 0x00000003, 246 1.1 thorpej 0x00000000, 0x00000300 247 1.1 thorpej }; 248 1.1 thorpej 249 1.1 thorpej static const uint32_t rtl8192ce_bb_vals_1t[] = { 250 1.1 thorpej 0x0011800f, 0x00ffdb83, 0x80040000, 0x00000001, 0x0000fc00, 251 1.1 thorpej 0x0000000a, 0x10005388, 0x020c3d10, 0x02200385, 0x00000000, 252 1.1 thorpej 0x01000100, 0x00390004, 0x00000000, 0x00000000, 0x00000000, 253 1.1 thorpej 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0x00000000, 254 1.1 thorpej 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x569a569a, 255 1.1 thorpej 0x001b25a4, 0x66e60230, 0x061f0130, 0x00000000, 0x32323200, 256 1.1 thorpej 0x07000700, 0x22004000, 0x00000808, 0x00000000, 0xc0083070, 257 1.1 thorpej 0x000004d5, 0x00000000, 0xccc000c0, 0x00000800, 0xfffffffe, 258 1.1 thorpej 0x40302010, 0x00706050, 0x00000000, 0x00000023, 0x00000000, 259 1.1 thorpej 0x81121111, 0x00d047c8, 0x80ff000c, 0x8c838300, 0x2e68120f, 260 1.1 thorpej 0x9500bb78, 0x11144028, 0x00881117, 0x89140f00, 0x1a1b0000, 261 1.1 thorpej 0x090e1317, 0x00000204, 0x00d30000, 0x101fbf00, 0x00000007, 262 1.1 thorpej 0x48071d40, 0x03a05611, 0x000000e4, 0x6c6c6c6c, 0x08800000, 263 1.1 thorpej 0x40000100, 0x08800000, 0x40000100, 0x00000000, 0x00000000, 264 1.1 thorpej 0x00000000, 0x00000000, 0x69e9ac44, 0x469652cf, 0x49795994, 265 1.1 thorpej 0x0a97971c, 0x1f7c403f, 0x000100b7, 0xec020107, 0x007f037f, 266 1.1 thorpej 0x69543420, 0x43bc0094, 0x69543420, 0x433c0094, 0x00000000, 267 1.1 thorpej 0x5116848b, 0x47c00bff, 0x00000036, 0x2c7f000d, 0x018610db, 268 1.1 thorpej 0x0000001f, 0x00b91612, 0x40000100, 0x20f60000, 0x40000100, 269 1.1 thorpej 0x20200000, 0x00121820, 0x00000000, 0x00121820, 0x00007f7f, 270 1.1 thorpej 0x00000000, 0x00000080, 0x00000000, 0x00000000, 0x00000000, 271 1.1 thorpej 0x00000000, 0x00000000, 0x28000000, 0x00000000, 0x00000000, 272 1.1 thorpej 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x64b22427, 273 1.1 thorpej 0x00766932, 0x00222222, 0x00000000, 0x37644302, 0x2f97d40c, 274 1.1 thorpej 0x00080740, 0x00020401, 0x0000907f, 0x20010201, 0xa0633333, 275 1.1 thorpej 0x3333bc43, 0x7a8f5b6b, 0xcc979975, 0x00000000, 0x80608000, 276 1.1 thorpej 0x00000000, 0x00027293, 0x00000000, 0x00000000, 0x00000000, 277 1.1 thorpej 0x00000000, 0x6437140a, 0x00000000, 0x00000000, 0x30032064, 278 1.1 thorpej 0x4653de68, 0x04518a3c, 0x00002101, 0x2a201c16, 0x1812362e, 279 1.1 thorpej 0x322c2220, 0x000e3c24, 0x2a2a2a2a, 0x2a2a2a2a, 0x03902a2a, 280 1.1 thorpej 0x2a2a2a2a, 0x2a2a2a2a, 0x2a2a2a2a, 0x2a2a2a2a, 0x00000000, 281 1.1 thorpej 0x1000dc1f, 0x10008c1f, 0x02140102, 0x681604c2, 0x01007c00, 282 1.1 thorpej 0x01004800, 0xfb000000, 0x000028d1, 0x1000dc1f, 0x10008c1f, 283 1.1 thorpej 0x02140102, 0x28160d05, 0x00000010, 0x001b25a4, 0x631b25a0, 284 1.1 thorpej 0x631b25a0, 0x081b25a0, 0x081b25a0, 0x081b25a0, 0x081b25a0, 285 1.1 thorpej 0x631b25a0, 0x081b25a0, 0x631b25a0, 0x631b25a0, 0x631b25a0, 286 1.1 thorpej 0x631b25a0, 0x001b25a0, 0x001b25a0, 0x6b1b25a0, 0x00000003, 287 1.1 thorpej 0x00000000, 0x00000300, 288 1.1 thorpej }; 289 1.1 thorpej 290 1.1 thorpej static const uint32_t rtl8192ce_agc_vals[] = { 291 1.1 thorpej 0x7b000001, 0x7b010001, 0x7b020001, 0x7b030001, 0x7b040001, 292 1.1 thorpej 0x7b050001, 0x7a060001, 0x79070001, 0x78080001, 0x77090001, 293 1.1 thorpej 0x760a0001, 0x750b0001, 0x740c0001, 0x730d0001, 0x720e0001, 294 1.1 thorpej 0x710f0001, 0x70100001, 0x6f110001, 0x6e120001, 0x6d130001, 295 1.1 thorpej 0x6c140001, 0x6b150001, 0x6a160001, 0x69170001, 0x68180001, 296 1.1 thorpej 0x67190001, 0x661a0001, 0x651b0001, 0x641c0001, 0x631d0001, 297 1.1 thorpej 0x621e0001, 0x611f0001, 0x60200001, 0x49210001, 0x48220001, 298 1.1 thorpej 0x47230001, 0x46240001, 0x45250001, 0x44260001, 0x43270001, 299 1.1 thorpej 0x42280001, 0x41290001, 0x402a0001, 0x262b0001, 0x252c0001, 300 1.1 thorpej 0x242d0001, 0x232e0001, 0x222f0001, 0x21300001, 0x20310001, 301 1.1 thorpej 0x06320001, 0x05330001, 0x04340001, 0x03350001, 0x02360001, 302 1.1 thorpej 0x01370001, 0x00380001, 0x00390001, 0x003a0001, 0x003b0001, 303 1.1 thorpej 0x003c0001, 0x003d0001, 0x003e0001, 0x003f0001, 0x7b400001, 304 1.1 thorpej 0x7b410001, 0x7b420001, 0x7b430001, 0x7b440001, 0x7b450001, 305 1.1 thorpej 0x7a460001, 0x79470001, 0x78480001, 0x77490001, 0x764a0001, 306 1.1 thorpej 0x754b0001, 0x744c0001, 0x734d0001, 0x724e0001, 0x714f0001, 307 1.1 thorpej 0x70500001, 0x6f510001, 0x6e520001, 0x6d530001, 0x6c540001, 308 1.1 thorpej 0x6b550001, 0x6a560001, 0x69570001, 0x68580001, 0x67590001, 309 1.1 thorpej 0x665a0001, 0x655b0001, 0x645c0001, 0x635d0001, 0x625e0001, 310 1.1 thorpej 0x615f0001, 0x60600001, 0x49610001, 0x48620001, 0x47630001, 311 1.1 thorpej 0x46640001, 0x45650001, 0x44660001, 0x43670001, 0x42680001, 312 1.1 thorpej 0x41690001, 0x406a0001, 0x266b0001, 0x256c0001, 0x246d0001, 313 1.1 thorpej 0x236e0001, 0x226f0001, 0x21700001, 0x20710001, 0x06720001, 314 1.1 thorpej 0x05730001, 0x04740001, 0x03750001, 0x02760001, 0x01770001, 315 1.1 thorpej 0x00780001, 0x00790001, 0x007a0001, 0x007b0001, 0x007c0001, 316 1.1 thorpej 0x007d0001, 0x007e0001, 0x007f0001, 0x3800001e, 0x3801001e, 317 1.1 thorpej 0x3802001e, 0x3803001e, 0x3804001e, 0x3805001e, 0x3806001e, 318 1.1 thorpej 0x3807001e, 0x3808001e, 0x3c09001e, 0x3e0a001e, 0x400b001e, 319 1.1 thorpej 0x440c001e, 0x480d001e, 0x4c0e001e, 0x500f001e, 0x5210001e, 320 1.1 thorpej 0x5611001e, 0x5a12001e, 0x5e13001e, 0x6014001e, 0x6015001e, 321 1.1 thorpej 0x6016001e, 0x6217001e, 0x6218001e, 0x6219001e, 0x621a001e, 322 1.1 thorpej 0x621b001e, 0x621c001e, 0x621d001e, 0x621e001e, 0x621f001e 323 1.1 thorpej }; 324 1.1 thorpej 325 1.1 thorpej static const struct rtwn_bb_prog rtl8192ce_bb_prog = { 326 1.1 thorpej __arraycount(rtl8192ce_bb_regs), 327 1.1 thorpej rtl8192ce_bb_regs, 328 1.1 thorpej rtl8192ce_bb_vals, 329 1.1 thorpej __arraycount(rtl8192ce_agc_vals), 330 1.1 thorpej rtl8192ce_agc_vals 331 1.1 thorpej }; 332 1.1 thorpej 333 1.1 thorpej static const struct rtwn_bb_prog rtl8192ce_bb_prog_2t = { 334 1.1 thorpej __arraycount(rtl8192ce_bb_regs), 335 1.1 thorpej rtl8192ce_bb_regs, 336 1.1 thorpej rtl8192ce_bb_vals_2t, 337 1.1 thorpej __arraycount(rtl8192ce_agc_vals), 338 1.1 thorpej rtl8192ce_agc_vals 339 1.1 thorpej }; 340 1.1 thorpej 341 1.1 thorpej static const struct rtwn_bb_prog rtl8192ce_bb_prog_1t = { 342 1.1 thorpej __arraycount(rtl8192ce_bb_regs), 343 1.1 thorpej rtl8192ce_bb_regs, 344 1.1 thorpej rtl8192ce_bb_vals_1t, 345 1.1 thorpej __arraycount(rtl8192ce_agc_vals), 346 1.1 thorpej rtl8192ce_agc_vals 347 1.1 thorpej }; 348 1.1 thorpej 349 1.1 thorpej /* 350 1.1 thorpej * RTL8188CU. 351 1.1 thorpej */ 352 1.1 thorpej static const uint32_t rtl8192cu_bb_vals[] = { 353 1.1 thorpej 0x0011800d, 0x00ffdb83, 0x80040002, 0x00000003, 0x0000fc00, 354 1.1 thorpej 0x0000000a, 0x10005388, 0x020c3d10, 0x02200385, 0x00000000, 355 1.1 thorpej 0x01000100, 0x00390004, 0x01000100, 0x00390004, 0x27272727, 356 1.1 thorpej 0x27272727, 0x27272727, 0x27272727, 0x00010000, 0x00010000, 357 1.1 thorpej 0x27272727, 0x27272727, 0x00000000, 0x00000000, 0x569a569a, 358 1.1 thorpej 0x0c1b25a4, 0x66e60230, 0x061f0130, 0x27272727, 0x2b2b2b27, 359 1.1 thorpej 0x07000700, 0x22184000, 0x08080808, 0x00000000, 0xc0083070, 360 1.1 thorpej 0x000004d5, 0x00000000, 0xcc0000c0, 0x00000800, 0xfffffffe, 361 1.1 thorpej 0x40302010, 0x00706050, 0x00000000, 0x00000023, 0x00000000, 362 1.1 thorpej 0x81121313, 0x00d047c8, 0x80ff000c, 0x8c838300, 0x2e68120f, 363 1.1 thorpej 0x9500bb78, 0x11144028, 0x00881117, 0x89140f00, 0x1a1b0000, 364 1.1 thorpej 0x090e1317, 0x00000204, 0x00d30000, 0x101fbf00, 0x00000007, 365 1.1 thorpej 0x48071d40, 0x03a05633, 0x000000e4, 0x6c6c6c6c, 0x08800000, 366 1.1 thorpej 0x40000100, 0x08800000, 0x40000100, 0x00000000, 0x00000000, 367 1.1 thorpej 0x00000000, 0x00000000, 0x69e9ac44, 0x469652cf, 0x49795994, 368 1.1 thorpej 0x0a97971c, 0x1f7c403f, 0x000100b7, 0xec020107, 0x007f037f, 369 1.1 thorpej 0x6954341e, 0x43bc0094, 0x6954341e, 0x433c0094, 0x00000000, 370 1.1 thorpej 0x5116848b, 0x47c00bff, 0x00000036, 0x2c7f000d, 0x0186115b, 371 1.1 thorpej 0x0000001f, 0x00b99612, 0x40000100, 0x20f60000, 0x40000100, 372 1.1 thorpej 0x20200000, 0x00121820, 0x00000000, 0x00121820, 0x00007f7f, 373 1.1 thorpej 0x00000000, 0x00000080, 0x00000000, 0x00000000, 0x00000000, 374 1.1 thorpej 0x00000000, 0x00000000, 0x28000000, 0x00000000, 0x00000000, 375 1.1 thorpej 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x64b22427, 376 1.1 thorpej 0x00766932, 0x00222222, 0x00000000, 0x37644302, 0x2f97d40c, 377 1.1 thorpej 0x00080740, 0x00020403, 0x0000907f, 0x20010201, 0xa0633333, 378 1.1 thorpej 0x3333bc43, 0x7a8f5b6b, 0xcc979975, 0x00000000, 0x80608000, 379 1.1 thorpej 0x00000000, 0x00027293, 0x00000000, 0x00000000, 0x00000000, 380 1.1 thorpej 0x00000000, 0x6437140a, 0x00000000, 0x00000000, 0x30032064, 381 1.1 thorpej 0x4653de68, 0x04518a3c, 0x00002101, 0x2a201c16, 0x1812362e, 382 1.1 thorpej 0x322c2220, 0x000e3c24, 0x2a2a2a2a, 0x2a2a2a2a, 0x03902a2a, 383 1.1 thorpej 0x2a2a2a2a, 0x2a2a2a2a, 0x2a2a2a2a, 0x2a2a2a2a, 0x00000000, 384 1.1 thorpej 0x1000dc1f, 0x10008c1f, 0x02140102, 0x681604c2, 0x01007c00, 385 1.1 thorpej 0x01004800, 0xfb000000, 0x000028d1, 0x1000dc1f, 0x10008c1f, 386 1.1 thorpej 0x02140102, 0x28160d05, 0x00000010, 0x001b25a4, 0x63db25a4, 387 1.1 thorpej 0x63db25a4, 0x0c1b25a4, 0x0c1b25a4, 0x0c1b25a4, 0x0c1b25a4, 388 1.1 thorpej 0x63db25a4, 0x0c1b25a4, 0x63db25a4, 0x63db25a4, 0x63db25a4, 389 1.1 thorpej 0x63db25a4, 0x001b25a4, 0x001b25a4, 0x6fdb25a4, 0x00000003, 390 1.1 thorpej 0x00000000, 0x00000300 391 1.1 thorpej }; 392 1.1 thorpej 393 1.1 thorpej static const struct rtwn_bb_prog rtl8192cu_bb_prog = { 394 1.1 thorpej __arraycount(rtl8192ce_bb_regs), 395 1.1 thorpej rtl8192ce_bb_regs, 396 1.1 thorpej rtl8192cu_bb_vals, 397 1.1 thorpej __arraycount(rtl8192ce_agc_vals), 398 1.1 thorpej rtl8192ce_agc_vals 399 1.1 thorpej }; 400 1.1 thorpej 401 1.1 thorpej /* 402 1.1 thorpej * RTL8188CE-VAU. 403 1.1 thorpej */ 404 1.1 thorpej static const uint32_t rtl8188ce_bb_vals[] = { 405 1.1 thorpej 0x0011800d, 0x00ffdb83, 0x80040000, 0x00000001, 0x0000fc00, 406 1.1 thorpej 0x0000000a, 0x10005388, 0x020c3d10, 0x02200385, 0x00000000, 407 1.1 thorpej 0x01000100, 0x00390004, 0x00000000, 0x00000000, 0x00000000, 408 1.1 thorpej 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0x00000000, 409 1.1 thorpej 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x569a569a, 410 1.1 thorpej 0x001b25a4, 0x66e60230, 0x061f0130, 0x00000000, 0x32323200, 411 1.1 thorpej 0x07000700, 0x22004000, 0x00000808, 0x00000000, 0xc0083070, 412 1.1 thorpej 0x000004d5, 0x00000000, 0xccc000c0, 0x00000800, 0xfffffffe, 413 1.1 thorpej 0x40302010, 0x00706050, 0x00000000, 0x00000023, 0x00000000, 414 1.1 thorpej 0x81121111, 0x00d047c8, 0x80ff000c, 0x8c838300, 0x2e68120f, 415 1.1 thorpej 0x9500bb78, 0x11144028, 0x00881117, 0x89140f00, 0x1a1b0000, 416 1.1 thorpej 0x090e1317, 0x00000204, 0x00d30000, 0x101fbf00, 0x00000007, 417 1.1 thorpej 0x48071d40, 0x03a05611, 0x000000e4, 0x6c6c6c6c, 0x08800000, 418 1.1 thorpej 0x40000100, 0x08800000, 0x40000100, 0x00000000, 0x00000000, 419 1.1 thorpej 0x00000000, 0x00000000, 0x69e9ac44, 0x469652cf, 0x49795994, 420 1.1 thorpej 0x0a97971c, 0x1f7c403f, 0x000100b7, 0xec020107, 0x007f037f, 421 1.1 thorpej 0x6954341e, 0x43bc0094, 0x6954341e, 0x433c0094, 0x00000000, 422 1.1 thorpej 0x5116848b, 0x47c00bff, 0x00000036, 0x2c7f000d, 0x018610db, 423 1.1 thorpej 0x0000001f, 0x00b91612, 0x40000100, 0x20f60000, 0x40000100, 424 1.1 thorpej 0x20200000, 0x00121820, 0x00000000, 0x00121820, 0x00007f7f, 425 1.1 thorpej 0x00000000, 0x00000080, 0x00000000, 0x00000000, 0x00000000, 426 1.1 thorpej 0x00000000, 0x00000000, 0x28000000, 0x00000000, 0x00000000, 427 1.1 thorpej 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x64b22427, 428 1.1 thorpej 0x00766932, 0x00222222, 0x00000000, 0x37644302, 0x2f97d40c, 429 1.1 thorpej 0x00080740, 0x00020401, 0x0000907f, 0x20010201, 0xa0633333, 430 1.1 thorpej 0x3333bc43, 0x7a8f5b6b, 0xcc979975, 0x00000000, 0x80608000, 431 1.1 thorpej 0x00000000, 0x00027293, 0x00000000, 0x00000000, 0x00000000, 432 1.1 thorpej 0x00000000, 0x6437140a, 0x00000000, 0x00000000, 0x30032064, 433 1.1 thorpej 0x4653de68, 0x04518a3c, 0x00002101, 0x2a201c16, 0x1812362e, 434 1.1 thorpej 0x322c2220, 0x000e3c24, 0x2a2a2a2a, 0x2a2a2a2a, 0x03902a2a, 435 1.1 thorpej 0x2a2a2a2a, 0x2a2a2a2a, 0x2a2a2a2a, 0x2a2a2a2a, 0x00000000, 436 1.1 thorpej 0x1000dc1f, 0x10008c1f, 0x02140102, 0x681604c2, 0x01007c00, 437 1.1 thorpej 0x01004800, 0xfb000000, 0x000028d1, 0x1000dc1f, 0x10008c1f, 438 1.1 thorpej 0x02140102, 0x28160d05, 0x00000008, 0x001b25a4, 0x631b25a0, 439 1.1 thorpej 0x631b25a0, 0x081b25a0, 0x081b25a0, 0x081b25a0, 0x081b25a0, 440 1.1 thorpej 0x631b25a0, 0x081b25a0, 0x631b25a0, 0x631b25a0, 0x631b25a0, 441 1.1 thorpej 0x631b25a0, 0x001b25a0, 0x001b25a0, 0x6b1b25a0, 0x00000003, 442 1.1 thorpej 0x00000000, 0x00000300 443 1.1 thorpej }; 444 1.1 thorpej 445 1.1 thorpej static const uint32_t rtl8188ce_agc_vals[] = { 446 1.1 thorpej 0x7b000001, 0x7b010001, 0x7b020001, 0x7b030001, 0x7b040001, 447 1.1 thorpej 0x7b050001, 0x7a060001, 0x79070001, 0x78080001, 0x77090001, 448 1.1 thorpej 0x760a0001, 0x750b0001, 0x740c0001, 0x730d0001, 0x720e0001, 449 1.1 thorpej 0x710f0001, 0x70100001, 0x6f110001, 0x6e120001, 0x6d130001, 450 1.1 thorpej 0x6c140001, 0x6b150001, 0x6a160001, 0x69170001, 0x68180001, 451 1.1 thorpej 0x67190001, 0x661a0001, 0x651b0001, 0x641c0001, 0x631d0001, 452 1.1 thorpej 0x621e0001, 0x611f0001, 0x60200001, 0x49210001, 0x48220001, 453 1.1 thorpej 0x47230001, 0x46240001, 0x45250001, 0x44260001, 0x43270001, 454 1.1 thorpej 0x42280001, 0x41290001, 0x402a0001, 0x262b0001, 0x252c0001, 455 1.1 thorpej 0x242d0001, 0x232e0001, 0x222f0001, 0x21300001, 0x20310001, 456 1.1 thorpej 0x06320001, 0x05330001, 0x04340001, 0x03350001, 0x02360001, 457 1.1 thorpej 0x01370001, 0x00380001, 0x00390001, 0x003a0001, 0x003b0001, 458 1.1 thorpej 0x003c0001, 0x003d0001, 0x003e0001, 0x003f0001, 0x7b400001, 459 1.1 thorpej 0x7b410001, 0x7b420001, 0x7b430001, 0x7b440001, 0x7b450001, 460 1.1 thorpej 0x7a460001, 0x79470001, 0x78480001, 0x77490001, 0x764a0001, 461 1.1 thorpej 0x754b0001, 0x744c0001, 0x734d0001, 0x724e0001, 0x714f0001, 462 1.1 thorpej 0x70500001, 0x6f510001, 0x6e520001, 0x6d530001, 0x6c540001, 463 1.1 thorpej 0x6b550001, 0x6a560001, 0x69570001, 0x68580001, 0x67590001, 464 1.1 thorpej 0x665a0001, 0x655b0001, 0x645c0001, 0x635d0001, 0x625e0001, 465 1.1 thorpej 0x615f0001, 0x60600001, 0x49610001, 0x48620001, 0x47630001, 466 1.1 thorpej 0x46640001, 0x45650001, 0x44660001, 0x43670001, 0x42680001, 467 1.1 thorpej 0x41690001, 0x406a0001, 0x266b0001, 0x256c0001, 0x246d0001, 468 1.1 thorpej 0x236e0001, 0x226f0001, 0x21700001, 0x20710001, 0x06720001, 469 1.1 thorpej 0x05730001, 0x04740001, 0x03750001, 0x02760001, 0x01770001, 470 1.1 thorpej 0x00780001, 0x00790001, 0x007a0001, 0x007b0001, 0x007c0001, 471 1.1 thorpej 0x007d0001, 0x007e0001, 0x007f0001, 0x3800001e, 0x3801001e, 472 1.1 thorpej 0x3802001e, 0x3803001e, 0x3804001e, 0x3805001e, 0x3806001e, 473 1.1 thorpej 0x3807001e, 0x3808001e, 0x3c09001e, 0x3e0a001e, 0x400b001e, 474 1.1 thorpej 0x440c001e, 0x480d001e, 0x4c0e001e, 0x500f001e, 0x5210001e, 475 1.1 thorpej 0x5611001e, 0x5a12001e, 0x5e13001e, 0x6014001e, 0x6015001e, 476 1.1 thorpej 0x6016001e, 0x6217001e, 0x6218001e, 0x6219001e, 0x621a001e, 477 1.1 thorpej 0x621b001e, 0x621c001e, 0x621d001e, 0x621e001e, 0x621f001e 478 1.1 thorpej }; 479 1.1 thorpej 480 1.1 thorpej static const struct rtwn_bb_prog rtl8188ce_bb_prog = { 481 1.1 thorpej __arraycount(rtl8192ce_bb_regs), 482 1.1 thorpej rtl8192ce_bb_regs, 483 1.1 thorpej rtl8188ce_bb_vals, 484 1.1 thorpej __arraycount(rtl8188ce_agc_vals), 485 1.1 thorpej rtl8188ce_agc_vals 486 1.1 thorpej }; 487 1.1 thorpej 488 1.1 thorpej static const uint32_t rtl8188cu_bb_vals[] = { 489 1.1 thorpej 0x0011800d, 0x00ffdb83, 0x80040000, 0x00000001, 0x0000fc00, 490 1.1 thorpej 0x0000000a, 0x10005388, 0x020c3d10, 0x02200385, 0x00000000, 491 1.1 thorpej 0x01000100, 0x00390004, 0x00000000, 0x00000000, 0x00000000, 492 1.1 thorpej 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0x00000000, 493 1.1 thorpej 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x569a569a, 494 1.1 thorpej 0x001b25a4, 0x66e60230, 0x061f0130, 0x00000000, 0x32323200, 495 1.1 thorpej 0x07000700, 0x22004000, 0x00000808, 0x00000000, 0xc0083070, 496 1.1 thorpej 0x000004d5, 0x00000000, 0xccc000c0, 0x00000800, 0xfffffffe, 497 1.1 thorpej 0x40302010, 0x00706050, 0x00000000, 0x00000023, 0x00000000, 498 1.1 thorpej 0x81121111, 0x00d047c8, 0x80ff000c, 0x8c838300, 0x2e68120f, 499 1.1 thorpej 0x9500bb78, 0x11144028, 0x00881117, 0x89140f00, 0x1a1b0000, 500 1.1 thorpej 0x090e1317, 0x00000204, 0x00d30000, 0x101fbf00, 0x00000007, 501 1.1 thorpej 0x48071d40, 0x03a05611, 0x000000e4, 0x6c6c6c6c, 0x08800000, 502 1.1 thorpej 0x40000100, 0x08800000, 0x40000100, 0x00000000, 0x00000000, 503 1.1 thorpej 0x00000000, 0x00000000, 0x69e9ac44, 0x469652cf, 0x49795994, 504 1.1 thorpej 0x0a97971c, 0x1f7c403f, 0x000100b7, 0xec020107, 0x007f037f, 505 1.1 thorpej 0x6954341e, 0x43bc0094, 0x6954341e, 0x433c0094, 0x00000000, 506 1.1 thorpej 0x5116848b, 0x47c00bff, 0x00000036, 0x2c7f000d, 0x018610db, 507 1.1 thorpej 0x0000001f, 0x00b91612, 0x40000100, 0x20f60000, 0x40000100, 508 1.1 thorpej 0x20200000, 0x00121820, 0x00000000, 0x00121820, 0x00007f7f, 509 1.1 thorpej 0x00000000, 0x00000080, 0x00000000, 0x00000000, 0x00000000, 510 1.1 thorpej 0x00000000, 0x00000000, 0x28000000, 0x00000000, 0x00000000, 511 1.1 thorpej 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x64b22427, 512 1.1 thorpej 0x00766932, 0x00222222, 0x00000000, 0x37644302, 0x2f97d40c, 513 1.1 thorpej 0x00080740, 0x00020401, 0x0000907f, 0x20010201, 0xa0633333, 514 1.1 thorpej 0x3333bc43, 0x7a8f5b6b, 0xcc979975, 0x00000000, 0x80608000, 515 1.1 thorpej 0x00000000, 0x00027293, 0x00000000, 0x00000000, 0x00000000, 516 1.1 thorpej 0x00000000, 0x6437140a, 0x00000000, 0x00000000, 0x30032064, 517 1.1 thorpej 0x4653de68, 0x04518a3c, 0x00002101, 0x2a201c16, 0x1812362e, 518 1.1 thorpej 0x322c2220, 0x000e3c24, 0x2a2a2a2a, 0x2a2a2a2a, 0x03902a2a, 519 1.1 thorpej 0x2a2a2a2a, 0x2a2a2a2a, 0x2a2a2a2a, 0x2a2a2a2a, 0x00000000, 520 1.1 thorpej 0x1000dc1f, 0x10008c1f, 0x02140102, 0x681604c2, 0x01007c00, 521 1.1 thorpej 0x01004800, 0xfb000000, 0x000028d1, 0x1000dc1f, 0x10008c1f, 522 1.1 thorpej 0x02140102, 0x28160d05, 0x00000008, 0x001b25a4, 0x631b25a0, 523 1.1 thorpej 0x631b25a0, 0x081b25a0, 0x081b25a0, 0x081b25a0, 0x081b25a0, 524 1.1 thorpej 0x631b25a0, 0x081b25a0, 0x631b25a0, 0x631b25a0, 0x631b25a0, 525 1.1 thorpej 0x631b25a0, 0x001b25a0, 0x001b25a0, 0x6b1b25a0, 0x00000003, 526 1.1 thorpej 0x00000000, 0x00000300 527 1.1 thorpej }; 528 1.1 thorpej 529 1.1 thorpej static const struct rtwn_bb_prog rtl8188cu_bb_prog = { 530 1.1 thorpej __arraycount(rtl8192ce_bb_regs), 531 1.1 thorpej rtl8192ce_bb_regs, 532 1.1 thorpej rtl8188cu_bb_vals, 533 1.1 thorpej __arraycount(rtl8188ce_agc_vals), 534 1.1 thorpej rtl8188ce_agc_vals 535 1.1 thorpej }; 536 1.1 thorpej 537 1.1 thorpej /* 538 1.1 thorpej * RTL8188EU. 539 1.1 thorpej */ 540 1.1 thorpej static const uint16_t rtl8188eu_bb_regs[] = { 541 1.1 thorpej 0x800, 0x804, 0x808, 0x80c, 0x810, 0x814, 0x818, 0x81c, 542 1.1 thorpej 0x820, 0x824, 0x828, 0x82c, 0x830, 0x834, 0x838, 0x83c, 543 1.1 thorpej 0x840, 0x844, 0x848, 0x84c, 0x850, 0x854, 0x858, 0x85c, 544 1.1 thorpej 0x860, 0x864, 0x868, 0x86c, 0x870, 0x874, 0x878, 0x87c, 545 1.1 thorpej 0x880, 0x884, 0x888, 0x88c, 0x890, 0x894, 0x898, 0x89c, 546 1.1 thorpej 0x900, 0x904, 0x908, 0x90c, 0x910, 0x914, 0xa00, 0xa04, 547 1.1 thorpej 0xa08, 0xa0c, 0xa10, 0xa14, 0xa18, 0xa1c, 0xa20, 0xa24, 548 1.1 thorpej 0xa28, 0xa2c, 0xa70, 0xa74, 0xa78, 0xa7c, 0xa80, 0xb2c, 549 1.1 thorpej 0xc00, 0xc04, 0xc08, 0xc0c, 0xc10, 0xc14, 0xc18, 0xc1c, 550 1.1 thorpej 0xc20, 0xc24, 0xc28, 0xc2c, 0xc30, 0xc34, 0xc38, 0xc3c, 551 1.1 thorpej 0xc40, 0xc44, 0xc48, 0xc4c, 0xc50, 0xc54, 0xc58, 0xc5c, 552 1.1 thorpej 0xc60, 0xc64, 0xc68, 0xc6c, 0xc70, 0xc74, 0xc78, 0xc7c, 553 1.1 thorpej 0xc80, 0xc84, 0xc88, 0xc8c, 0xc90, 0xc94, 0xc98, 0xc9c, 554 1.1 thorpej 0xca0, 0xca4, 0xca8, 0xcac, 0xcb0, 0xcb4, 0xcb8, 0xcbc, 555 1.1 thorpej 0xcc0, 0xcc4, 0xcc8, 0xccc, 0xcd0, 0xcd4, 0xcd8, 0xcdc, 556 1.1 thorpej 0xce0, 0xce4, 0xce8, 0xcec, 0xd00, 0xd04, 0xd08, 0xd0c, 557 1.1 thorpej 0xd10, 0xd14, 0xd18, 0xd2c, 0xd30, 0xd34, 0xd38, 0xd3c, 558 1.1 thorpej 0xd40, 0xd44, 0xd48, 0xd4c, 0xd50, 0xd54, 0xd58, 0xd5c, 559 1.1 thorpej 0xd60, 0xd64, 0xd68, 0xd6c, 0xd70, 0xd74, 0xd78, 0xe00, 560 1.1 thorpej 0xe04, 0xe08, 0xe10, 0xe14, 0xe18, 0xe1c, 0xe28, 0xe30, 561 1.1 thorpej 0xe34, 0xe38, 0xe3c, 0xe40, 0xe44, 0xe48, 0xe4c, 0xe50, 562 1.1 thorpej 0xe54, 0xe58, 0xe5c, 0xe60, 0xe68, 0xe6c, 0xe70, 0xe74, 563 1.1 thorpej 0xe78, 0xe7c, 0xe80, 0xe84, 0xe88, 0xe8c, 0xed0, 0xed4, 564 1.1 thorpej 0xed8, 0xedc, 0xee0, 0xee8, 0xeec, 0xf14, 0xf4c, 0xf00 565 1.1 thorpej }; 566 1.1 thorpej 567 1.1 thorpej static const uint32_t rtl8188eu_bb_vals[] = { 568 1.1 thorpej 0x80040000, 0x00000003, 0x0000fc00, 0x0000000a, 0x10001331, 569 1.1 thorpej 0x020c3d10, 0x02200385, 0x00000000, 0x01000100, 0x00390204, 570 1.1 thorpej 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 571 1.1 thorpej 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 572 1.1 thorpej 0x00000000, 0x00000000, 0x569a11a9, 0x01000014, 0x66f60110, 573 1.1 thorpej 0x061f0649, 0x00000000, 0x27272700, 0x07000760, 0x25004000, 574 1.1 thorpej 0x00000808, 0x00000000, 0xb0000c1c, 0x00000001, 0x00000000, 575 1.1 thorpej 0xccc000c0, 0x00000800, 0xfffffffe, 0x40302010, 0x00706050, 576 1.1 thorpej 0x00000000, 0x00000023, 0x00000000, 0x81121111, 0x00000002, 577 1.1 thorpej 0x00000201, 0x00d047c8, 0x80ff000c, 0x8c838300, 0x2e7f120f, 578 1.1 thorpej 0x9500bb78, 0x1114d028, 0x00881117, 0x89140f00, 0x1a1b0000, 579 1.1 thorpej 0x090e1317, 0x00000204, 0x00d30000, 0x101fbf00, 0x00000007, 580 1.1 thorpej 0x00000900, 0x225b0606, 0x218075b1, 0x80000000, 0x48071d40, 581 1.1 thorpej 0x03a05611, 0x000000e4, 0x6c6c6c6c, 0x08800000, 0x40000100, 582 1.1 thorpej 0x08800000, 0x40000100, 0x00000000, 0x00000000, 0x00000000, 583 1.1 thorpej 0x00000000, 0x69e9ac47, 0x469652af, 0x49795994, 0x0a97971c, 584 1.1 thorpej 0x1f7c403f, 0x000100b7, 0xec020107, 0x007f037f, 0x69553420, 585 1.1 thorpej 0x43bc0094, 0x00013169, 0x00250492, 0x00000000, 0x7112848b, 586 1.1 thorpej 0x47c00bff, 0x00000036, 0x2c7f000d, 0x020610db, 0x0000001f, 587 1.1 thorpej 0x00b91612, 0x390000e4, 0x20f60000, 0x40000100, 0x20200000, 588 1.1 thorpej 0x00091521, 0x00000000, 0x00121820, 0x00007f7f, 0x00000000, 589 1.1 thorpej 0x000300a0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 590 1.1 thorpej 0x00000000, 0x28000000, 0x00000000, 0x00000000, 0x00000000, 591 1.1 thorpej 0x00000000, 0x00000000, 0x00000000, 0x64b22427, 0x00766932, 592 1.1 thorpej 0x00222222, 0x00000000, 0x37644302, 0x2f97d40c, 0x00000740, 593 1.1 thorpej 0x00020401, 0x0000907f, 0x20010201, 0xa0633333, 0x3333bc43, 594 1.1 thorpej 0x7a8f5b6f, 0xcc979975, 0x00000000, 0x80608000, 0x00000000, 595 1.1 thorpej 0x00127353, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 596 1.1 thorpej 0x6437140a, 0x00000000, 0x00000282, 0x30032064, 0x4653de68, 597 1.1 thorpej 0x04518a3c, 0x00002101, 0x2a201c16, 0x1812362e, 0x322c2220, 598 1.1 thorpej 0x000e3c24, 0x2d2d2d2d, 0x2d2d2d2d, 0x0390272d, 0x2d2d2d2d, 599 1.1 thorpej 0x2d2d2d2d, 0x2d2d2d2d, 0x2d2d2d2d, 0x00000000, 0x1000dc1f, 600 1.1 thorpej 0x10008c1f, 0x02140102, 0x681604c2, 0x01007c00, 0x01004800, 601 1.1 thorpej 0xfb000000, 0x000028d1, 0x1000dc1f, 0x10008c1f, 0x02140102, 602 1.1 thorpej 0x28160d05, 0x00000008, 0x001b25a4, 0x00c00014, 0x00c00014, 603 1.1 thorpej 0x01000014, 0x01000014, 0x01000014, 0x01000014, 0x00c00014, 604 1.1 thorpej 0x01000014, 0x00c00014, 0x00c00014, 0x00c00014, 0x00c00014, 605 1.1 thorpej 0x00000014, 0x00000014, 0x21555448, 0x01c00014, 0x00000003, 606 1.1 thorpej 0x00000000, 0x00000300 607 1.1 thorpej }; 608 1.1 thorpej 609 1.1 thorpej static const uint32_t rtl8188eu_agc_vals[] = { 610 1.1 thorpej 0xfb000001, 0xfb010001, 0xfb020001, 0xfb030001, 0xfb040001, 611 1.1 thorpej 0xfb050001, 0xfa060001, 0xf9070001, 0xf8080001, 0xf7090001, 612 1.1 thorpej 0xf60a0001, 0xf50b0001, 0xf40c0001, 0xf30d0001, 0xf20e0001, 613 1.1 thorpej 0xf10f0001, 0xf0100001, 0xef110001, 0xee120001, 0xed130001, 614 1.1 thorpej 0xec140001, 0xeb150001, 0xea160001, 0xe9170001, 0xe8180001, 615 1.1 thorpej 0xe7190001, 0xe61a0001, 0xe51b0001, 0xe41c0001, 0xe31d0001, 616 1.1 thorpej 0xe21e0001, 0xe11f0001, 0x8a200001, 0x89210001, 0x88220001, 617 1.1 thorpej 0x87230001, 0x86240001, 0x85250001, 0x84260001, 0x83270001, 618 1.1 thorpej 0x82280001, 0x6b290001, 0x6a2a0001, 0x692b0001, 0x682c0001, 619 1.1 thorpej 0x672d0001, 0x662e0001, 0x652f0001, 0x64300001, 0x63310001, 620 1.1 thorpej 0x62320001, 0x61330001, 0x46340001, 0x45350001, 0x44360001, 621 1.1 thorpej 0x43370001, 0x42380001, 0x41390001, 0x403a0001, 0x403b0001, 622 1.1 thorpej 0x403c0001, 0x403d0001, 0x403e0001, 0x403f0001, 0xfb400001, 623 1.1 thorpej 0xfb410001, 0xfb420001, 0xfb430001, 0xfb440001, 0xfb450001, 624 1.1 thorpej 0xfb460001, 0xfb470001, 0xfb480001, 0xfa490001, 0xf94a0001, 625 1.1 thorpej 0xf84B0001, 0xf74c0001, 0xf64d0001, 0xf54e0001, 0xf44f0001, 626 1.1 thorpej 0xf3500001, 0xf2510001, 0xf1520001, 0xf0530001, 0xef540001, 627 1.1 thorpej 0xee550001, 0xed560001, 0xec570001, 0xeb580001, 0xea590001, 628 1.1 thorpej 0xe95a0001, 0xe85b0001, 0xe75c0001, 0xe65d0001, 0xe55e0001, 629 1.1 thorpej 0xe45f0001, 0xe3600001, 0xe2610001, 0xc3620001, 0xc2630001, 630 1.1 thorpej 0xc1640001, 0x8b650001, 0x8a660001, 0x89670001, 0x88680001, 631 1.1 thorpej 0x87690001, 0x866a0001, 0x856b0001, 0x846c0001, 0x676d0001, 632 1.1 thorpej 0x666e0001, 0x656f0001, 0x64700001, 0x63710001, 0x62720001, 633 1.1 thorpej 0x61730001, 0x60740001, 0x46750001, 0x45760001, 0x44770001, 634 1.1 thorpej 0x43780001, 0x42790001, 0x417a0001, 0x407b0001, 0x407c0001, 635 1.1 thorpej 0x407d0001, 0x407e0001, 0x407f0001 636 1.1 thorpej }; 637 1.1 thorpej 638 1.1 thorpej static const struct rtwn_bb_prog rtl8188eu_bb_prog = { 639 1.1 thorpej __arraycount(rtl8188eu_bb_regs), 640 1.1 thorpej rtl8188eu_bb_regs, 641 1.1 thorpej rtl8188eu_bb_vals, 642 1.1 thorpej __arraycount(rtl8188eu_agc_vals), 643 1.1 thorpej rtl8188eu_agc_vals 644 1.1 thorpej }; 645 1.1 thorpej 646 1.1 thorpej /* 647 1.1 thorpej * RTL819E. 648 1.1 thorpej */ 649 1.1 thorpej static const uint16_t rtl8192eu_bb_regs[] = { 650 1.1 thorpej 0x800, 0x804, 0x808, 0x80c, 0x810, 0x814, 0x818, 0x81c, 651 1.1 thorpej 0x820, 0x824, 0x828, 0x82c, 0x830, 0x834, 0x838, 0x83c, 652 1.1 thorpej 0x840, 0x844, 0x848, 0x84c, 0x850, 0x854, 0x858, 0x85c, 653 1.1 thorpej 0x860, 0x864, 0x868, 0x86c, 0x870, 0x874, 0x878, 0x87c, 654 1.1 thorpej 0x880, 0x884, 0x888, 0x88c, 0x890, 0x894, 0x898, 0x900, 655 1.1 thorpej 0x904, 0x908, 0x90c, 0x910, 0x914, 0x918, 0x91c, 0x924, 656 1.1 thorpej 0x928, 0x92c, 0x930, 0x934, 0x938, 0x93c, 0x940, 0x944, 657 1.1 thorpej 0x94c, 0xa00, 0xa04, 0xa08, 0xa0c, 0xa10, 0xa14, 0xa18, 658 1.1 thorpej 0xa1c, 0xa20, 0xa24, 0xa28, 0xa2c, 0xa70, 0xa74, 0xa78, 659 1.1 thorpej 0xa7c, 0xa80, 0xb38, 0xc00, 0xc04, 0xc08, 0xc0c, 0xc10, 660 1.1 thorpej 0xc14, 0xc18, 0xc1c, 0xc20, 0xc24, 0xc28, 0xc2c, 0xc30, 661 1.1 thorpej 0xc34, 0xc38, 0xc3c, 0xc40, 0xc44, 0xc48, 0xc4c, 0xc50, 662 1.1 thorpej 0xc54, 0xc58, 0xc5c, 0xc60, 0xc64, 0xc68, 0xc6c, 0xc70, 663 1.1 thorpej 0xc74, 0xc78, 0xc7c, 0xc80, 0xc84, 0xc88, 0xc8c, 0xc90, 664 1.1 thorpej 0xc94, 0xc98, 0xc9c, 0xca0, 0xca4, 0xca8, 0xcac, 0xcb0, 665 1.1 thorpej 0xcb4, 0xcb8, 0xcbc, 0xcc0, 0xcc4, 0xcc8, 0xccc, 0xcd0, 666 1.1 thorpej 0xcd4, 0xcd8, 0xcdc, 0xce0, 0xce4, 0xce8, 0xcec, 0xd00, 667 1.1 thorpej 0xd04, 0xd08, 0xd0c, 0xd10, 0xd14, 0xd18, 0xd1c, 0xd2c, 668 1.1 thorpej 0xd30, 0xd34, 0xd38, 0xd3c, 0xd40, 0xd44, 0xd48, 0xd4c, 669 1.1 thorpej 0xd50, 0xd54, 0xd58, 0xd5c, 0xd60, 0xd64, 0xd68, 0xd6c, 670 1.1 thorpej 0xd70, 0xd74, 0xd78, 0xd80, 0xd84, 0xd88, 0xe00, 0xe04, 671 1.1 thorpej 0xe08, 0xe10, 0xe14, 0xe18, 0xe1c, 0xe28, 0xe30, 0xe34, 672 1.1 thorpej 0xe38, 0xe3c, 0xe40, 0xe44, 0xe48, 0xe4c, 0xe50, 0xe54, 673 1.1 thorpej 0xe58, 0xe5c, 0xe60, 0xe68, 0xe6c, 0xe70, 0xe74, 0xe78, 674 1.1 thorpej 0xe7c, 0xe80, 0xe84, 0xe88, 0xe8c, 0xed0, 0xed4, 0xed8, 675 1.1 thorpej 0xedc, 0xee0, 0xeec, 0xee4, 0xee8, 0xf14, 0xf4c, 0xf00, 676 1.1 thorpej }; 677 1.1 thorpej 678 1.1 thorpej static const uint32_t rtl8192eu_bb_vals[] = { 679 1.1 thorpej 0x80040000, 0x00000003, 0x0000fc00, 0x0000000a, 0x10001331, 680 1.1 thorpej 0x020c3d10, 0x02220385, 0x00000000, 0x01000100, 0x00390204, 681 1.1 thorpej 0x01000100, 0x00390204, 0x32323232, 0x30303030, 0x30303030, 682 1.1 thorpej 0x30303030, 0x00010000, 0x00010000, 0x28282828, 0x28282828, 683 1.1 thorpej 0x00000000, 0x00000000, 0x009a009a, 0x01000014, 0x66f60000, 684 1.1 thorpej 0x061f0000, 0x30303030, 0x30303030, 0x00000000, 0x55004200, 685 1.1 thorpej 0x08080808, 0x00000000, 0xb0000c1c, 0x00000001, 0x00000000, 686 1.1 thorpej 0xcc0000c0, 0x00000800, 0xfffffffe, 0x40302010, 0x00000000, 687 1.1 thorpej 0x00000023, 0x00000000, 0x81121313, 0x806c0001, 0x00000001, 688 1.1 thorpej 0x00000000, 0x00010000, 0x00000001, 0x00000000, 0x00000000, 689 1.1 thorpej 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 690 1.1 thorpej 0x00000000, 0x00000008, 0x00d0c7c8, 0x81ff000c, 0x8c838300, 691 1.1 thorpej 0x2e68120f, 0x95009b78, 0x1114d028, 0x00881117, 0x89140f00, 692 1.1 thorpej 0x1a1b0000, 0x090e1317, 0x00000204, 0x00d30000, 0x101fff00, 693 1.1 thorpej 0x00000007, 0x00000900, 0x225b0606, 0x218075b1, 0x00000000, 694 1.1 thorpej 0x48071d40, 0x03a05633, 0x000000e4, 0x6c6c6c6c, 0x08800000, 695 1.1 thorpej 0x40000100, 0x08800000, 0x40000100, 0x00000000, 0x00000000, 696 1.1 thorpej 0x00000000, 0x00000000, 0x69e9ac47, 0x469652af, 0x49795994, 697 1.1 thorpej 0x0a97971c, 0x1f7c403f, 0x000100b7, 0xec020107, 0x007f037f, 698 1.1 thorpej 0x00340020, 0x0080801f, 0x00000020, 0x00248492, 0x00000000, 699 1.1 thorpej 0x7112848b, 0x47c00bff, 0x00000036, 0x00000600, 0x02013169, 700 1.1 thorpej 0x0000001f, 0x00b91612, 0x40000100, 0x21f60000, 0x40000100, 701 1.1 thorpej 0xa0e40000, 0x00121820, 0x00000000, 0x00121820, 0x00007f7f, 702 1.1 thorpej 0x00000000, 0x000300a0, 0x00000000, 0x00000000, 0x00000000, 703 1.1 thorpej 0x00000000, 0x00000000, 0x28000000, 0x00000000, 0x00000000, 704 1.1 thorpej 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x64b22427, 705 1.1 thorpej 0x00766932, 0x00222222, 0x00040000, 0x77644302, 0x2f97d40c, 706 1.1 thorpej 0x00080740, 0x00020403, 0x0000907f, 0x20010201, 0xa0633333, 707 1.1 thorpej 0x3333bc43, 0x7a8f5b6b, 0x0000007f, 0xcc979975, 0x00000000, 708 1.1 thorpej 0x80608000, 0x00000000, 0x00127353, 0x00000000, 0x00000000, 709 1.1 thorpej 0x00000000, 0x00000000, 0x6437140a, 0x00000000, 0x00000282, 710 1.1 thorpej 0x30032064, 0x4653de68, 0x04518a3c, 0x00002101, 0x2a201c16, 711 1.1 thorpej 0x1812362e, 0x322c2220, 0x000e3c24, 0x01081008, 0x00000800, 712 1.1 thorpej 0xf0b50000, 0x30303030, 0x30303030, 0x03903030, 0x30303030, 713 1.1 thorpej 0x30303030, 0x30303030, 0x30303030, 0x00000000, 0x1000dc1f, 714 1.1 thorpej 0x10008c1f, 0x02140102, 0x681604c2, 0x01007c00, 0x01004800, 715 1.1 thorpej 0xfb000000, 0x000028d1, 0x1000dc1f, 0x10008c1f, 0x02140102, 716 1.1 thorpej 0x28160d05, 0x00000008, 0x0fc05656, 0x03c09696, 0x03c09696, 717 1.1 thorpej 0x0c005656, 0x0c005656, 0x0c005656, 0x0c005656, 0x03c09696, 718 1.1 thorpej 0x0c005656, 0x03c09696, 0x03c09696, 0x03c09696, 0x03c09696, 719 1.1 thorpej 0x0000d6d6, 0x0000d6d6, 0x0fc01616, 0xb0000c1c, 0x00000001, 720 1.1 thorpej 0x00000003, 0x00000000, 0x00000300, 721 1.1 thorpej }; 722 1.1 thorpej 723 1.1 thorpej static const uint32_t rtl8192eu_agc_vals[] = { 724 1.1 thorpej 0xfb000001, 0xfb010001, 0xfb020001, 0xfb030001, 0xfb040001, 725 1.1 thorpej 0xfb050001, 0xfa060001, 0xf9070001, 0xf8080001, 0xf7090001, 726 1.1 thorpej 0xf60a0001, 0xf50b0001, 0xf40c0001, 0xf30d0001, 0xf20e0001, 727 1.1 thorpej 0xf10f0001, 0xf0100001, 0xef110001, 0xee120001, 0xed130001, 728 1.1 thorpej 0xec140001, 0xeb150001, 0xea160001, 0xe9170001, 0xe8180001, 729 1.1 thorpej 0xe7190001, 0xc81a0001, 0xc71b0001, 0xc61c0001, 0x071d0001, 730 1.1 thorpej 0x061e0001, 0x051f0001, 0x04200001, 0x03210001, 0xaa220001, 731 1.1 thorpej 0xa9230001, 0xa8240001, 0xa7250001, 0xa6260001, 0x85270001, 732 1.1 thorpej 0x84280001, 0x83290001, 0x252a0001, 0x242b0001, 0x232c0001, 733 1.1 thorpej 0x222d0001, 0x672e0001, 0x662f0001, 0x65300001, 0x64310001, 734 1.1 thorpej 0x63320001, 0x62330001, 0x61340001, 0x45350001, 0x44360001, 735 1.1 thorpej 0x43370001, 0x42380001, 0x41390001, 0x403a0001, 0x403b0001, 736 1.1 thorpej 0x403c0001, 0x403d0001, 0x403e0001, 0x403f0001, 0xfb400001, 737 1.1 thorpej 0xfb410001, 0xfb420001, 0xfb430001, 0xfb440001, 0xfb450001, 738 1.1 thorpej 0xfa460001, 0xf9470001, 0xf8480001, 0xf7490001, 0xf64a0001, 739 1.1 thorpej 0xf54b0001, 0xf44c0001, 0xf34d0001, 0xf24e0001, 0xf14f0001, 740 1.1 thorpej 0xf0500001, 0xef510001, 0xee520001, 0xed530001, 0xec540001, 741 1.1 thorpej 0xeb550001, 0xea560001, 0xe9570001, 0xe8580001, 0xe7590001, 742 1.1 thorpej 0xe65a0001, 0xe55b0001, 0xe45c0001, 0xe35d0001, 0xe25e0001, 743 1.1 thorpej 0xe15f0001, 0x8a600001, 0x89610001, 0x88620001, 0x87630001, 744 1.1 thorpej 0x86640001, 0x85650001, 0x84660001, 0x83670001, 0x82680001, 745 1.1 thorpej 0x6b690001, 0x6a6a0001, 0x696b0001, 0x686c0001, 0x676d0001, 746 1.1 thorpej 0x666e0001, 0x656f0001, 0x64700001, 0x63710001, 0x62720001, 747 1.1 thorpej 0x61730001, 0x49740001, 0x48750001, 0x47760001, 0x46770001, 748 1.1 thorpej 0x45780001, 0x44790001, 0x437a0001, 0x427b0001, 0x417c0001, 749 1.1 thorpej 0x407d0001, 0x407e0001, 0x407f0001, 750 1.1 thorpej }; 751 1.1 thorpej 752 1.1 thorpej static const struct rtwn_bb_prog rtl8192eu_bb_prog = { 753 1.1 thorpej __arraycount(rtl8192eu_bb_regs), 754 1.1 thorpej rtl8192eu_bb_regs, 755 1.1 thorpej rtl8192eu_bb_vals, 756 1.1 thorpej __arraycount(rtl8192eu_agc_vals), 757 1.1 thorpej rtl8192eu_agc_vals 758 1.1 thorpej }; 759 1.1 thorpej 760 1.1 thorpej /* 761 1.1 thorpej * RTL8188RU. 762 1.1 thorpej */ 763 1.1 thorpej static const uint16_t rtl8188ru_bb_regs[] = { 764 1.1 thorpej 0x024, 0x028, 0x040, 0x800, 0x804, 0x808, 0x80c, 0x810, 0x814, 765 1.1 thorpej 0x818, 0x81c, 0x820, 0x824, 0x828, 0x82c, 0x830, 0x834, 0x838, 766 1.1 thorpej 0x83c, 0x840, 0x844, 0x848, 0x84c, 0x850, 0x854, 0x858, 0x85c, 767 1.1 thorpej 0x860, 0x864, 0x868, 0x86c, 0x870, 0x874, 0x878, 0x87c, 0x880, 768 1.1 thorpej 0x884, 0x888, 0x88c, 0x890, 0x894, 0x898, 0x89c, 0x900, 0x904, 769 1.1 thorpej 0x908, 0x90c, 0xa00, 0xa04, 0xa08, 0xa0c, 0xa10, 0xa14, 0xa18, 770 1.1 thorpej 0xa1c, 0xa20, 0xa24, 0xa28, 0xa2c, 0xa70, 0xa74, 0xc00, 0xc04, 771 1.1 thorpej 0xc08, 0xc0c, 0xc10, 0xc14, 0xc18, 0xc1c, 0xc20, 0xc24, 0xc28, 772 1.1 thorpej 0xc2c, 0xc30, 0xc34, 0xc38, 0xc3c, 0xc40, 0xc44, 0xc48, 0xc4c, 773 1.1 thorpej 0xc50, 0xc54, 0xc58, 0xc5c, 0xc60, 0xc64, 0xc68, 0xc6c, 0xc70, 774 1.1 thorpej 0xc74, 0xc78, 0xc7c, 0xc80, 0xc84, 0xc88, 0xc8c, 0xc90, 0xc94, 775 1.1 thorpej 0xc98, 0xc9c, 0xca0, 0xca4, 0xca8, 0xcac, 0xcb0, 0xcb4, 0xcb8, 776 1.1 thorpej 0xcbc, 0xcc0, 0xcc4, 0xcc8, 0xccc, 0xcd0, 0xcd4, 0xcd8, 0xcdc, 777 1.1 thorpej 0xce0, 0xce4, 0xce8, 0xcec, 0xd00, 0xd04, 0xd08, 0xd0c, 0xd10, 778 1.1 thorpej 0xd14, 0xd18, 0xd2c, 0xd30, 0xd34, 0xd38, 0xd3c, 0xd40, 0xd44, 779 1.1 thorpej 0xd48, 0xd4c, 0xd50, 0xd54, 0xd58, 0xd5c, 0xd60, 0xd64, 0xd68, 780 1.1 thorpej 0xd6c, 0xd70, 0xd74, 0xd78, 0xe00, 0xe04, 0xe08, 0xe10, 0xe14, 781 1.1 thorpej 0xe18, 0xe1c, 0xe28, 0xe30, 0xe34, 0xe38, 0xe3c, 0xe40, 0xe44, 782 1.1 thorpej 0xe48, 0xe4c, 0xe50, 0xe54, 0xe58, 0xe5c, 0xe60, 0xe68, 0xe6c, 783 1.1 thorpej 0xe70, 0xe74, 0xe78, 0xe7c, 0xe80, 0xe84, 0xe88, 0xe8c, 0xed0, 784 1.1 thorpej 0xed4, 0xed8, 0xedc, 0xee0, 0xeec, 0xee8, 0xf14, 0xf4c, 0xf00 785 1.1 thorpej }; 786 1.1 thorpej 787 1.1 thorpej static const uint32_t rtl8188ru_bb_vals[] = { 788 1.1 thorpej 0x0011800d, 0x00ffdb83, 0x000c0004, 0x80040000, 0x00000001, 789 1.1 thorpej 0x0000fc00, 0x0000000a, 0x10005388, 0x020c3d10, 0x02200385, 790 1.1 thorpej 0x00000000, 0x01000100, 0x00390204, 0x00000000, 0x00000000, 791 1.1 thorpej 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 792 1.1 thorpej 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 793 1.1 thorpej 0x569a569a, 0x001b25a4, 0x66e60230, 0x061f0130, 0x00000000, 794 1.1 thorpej 0x32323200, 0x03000300, 0x22004000, 0x00000808, 0x00ffc3f1, 795 1.1 thorpej 0xc0083070, 0x000004d5, 0x00000000, 0xccc000c0, 0x00000800, 796 1.1 thorpej 0xfffffffe, 0x40302010, 0x00706050, 0x00000000, 0x00000023, 797 1.1 thorpej 0x00000000, 0x81121111, 0x00d047c8, 0x80ff000c, 0x8c838300, 798 1.1 thorpej 0x2e68120f, 0x9500bb78, 0x11144028, 0x00881117, 0x89140f00, 799 1.1 thorpej 0x15160000, 0x070b0f12, 0x00000104, 0x00d30000, 0x101fbf00, 800 1.1 thorpej 0x00000007, 0x48071d40, 0x03a05611, 0x000000e4, 0x6c6c6c6c, 801 1.1 thorpej 0x08800000, 0x40000100, 0x08800000, 0x40000100, 0x00000000, 802 1.1 thorpej 0x00000000, 0x00000000, 0x00000000, 0x69e9ac44, 0x469652cf, 803 1.1 thorpej 0x49795994, 0x0a97971c, 0x1f7c403f, 0x000100b7, 0xec020107, 804 1.1 thorpej 0x007f037f, 0x6954342e, 0x43bc0094, 0x6954342f, 0x433c0094, 805 1.1 thorpej 0x00000000, 0x5116848b, 0x47c00bff, 0x00000036, 0x2c56000d, 806 1.1 thorpej 0x018610db, 0x0000001f, 0x00b91612, 0x24000090, 0x20f60000, 807 1.1 thorpej 0x24000090, 0x20200000, 0x00121820, 0x00000000, 0x00121820, 808 1.1 thorpej 0x00007f7f, 0x00000000, 0x00000080, 0x00000000, 0x00000000, 809 1.1 thorpej 0x00000000, 0x00000000, 0x00000000, 0x28000000, 0x00000000, 810 1.1 thorpej 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 811 1.1 thorpej 0x64b22427, 0x00766932, 0x00222222, 0x00000000, 0x37644302, 812 1.1 thorpej 0x2f97d40c, 0x00080740, 0x00020401, 0x0000907f, 0x20010201, 813 1.1 thorpej 0xa0633333, 0x3333bc43, 0x7a8f5b6b, 0xcc979975, 0x00000000, 814 1.1 thorpej 0x80608000, 0x00000000, 0x00027293, 0x00000000, 0x00000000, 815 1.1 thorpej 0x00000000, 0x00000000, 0x6437140a, 0x00000000, 0x00000000, 816 1.1 thorpej 0x30032064, 0x4653de68, 0x04518a3c, 0x00002101, 0x2a201c16, 817 1.1 thorpej 0x1812362e, 0x322c2220, 0x000e3c24, 0x2a2a2a2a, 0x2a2a2a2a, 818 1.1 thorpej 0x03902a2a, 0x2a2a2a2a, 0x2a2a2a2a, 0x2a2a2a2a, 0x2a2a2a2a, 819 1.1 thorpej 0x00000000, 0x1000dc1f, 0x10008c1f, 0x02140102, 0x681604c2, 820 1.1 thorpej 0x01007c00, 0x01004800, 0xfb000000, 0x000028d1, 0x1000dc1f, 821 1.1 thorpej 0x10008c1f, 0x02140102, 0x28160d05, 0x00000010, 0x001b25a4, 822 1.1 thorpej 0x631b25a0, 0x631b25a0, 0x081b25a0, 0x081b25a0, 0x081b25a0, 823 1.1 thorpej 0x081b25a0, 0x631b25a0, 0x081b25a0, 0x631b25a0, 0x631b25a0, 824 1.1 thorpej 0x631b25a0, 0x631b25a0, 0x001b25a0, 0x001b25a0, 0x6b1b25a0, 825 1.1 thorpej 0x31555448, 0x00000003, 0x00000000, 0x00000300 826 1.1 thorpej }; 827 1.1 thorpej 828 1.1 thorpej static const uint32_t rtl8188ru_agc_vals[] = { 829 1.1 thorpej 0x7b000001, 0x7b010001, 0x7b020001, 0x7b030001, 0x7b040001, 830 1.1 thorpej 0x7b050001, 0x7b060001, 0x7b070001, 0x7b080001, 0x7a090001, 831 1.1 thorpej 0x790a0001, 0x780b0001, 0x770c0001, 0x760d0001, 0x750e0001, 832 1.1 thorpej 0x740f0001, 0x73100001, 0x72110001, 0x71120001, 0x70130001, 833 1.1 thorpej 0x6f140001, 0x6e150001, 0x6d160001, 0x6c170001, 0x6b180001, 834 1.1 thorpej 0x6a190001, 0x691a0001, 0x681b0001, 0x671c0001, 0x661d0001, 835 1.1 thorpej 0x651e0001, 0x641f0001, 0x63200001, 0x62210001, 0x61220001, 836 1.1 thorpej 0x60230001, 0x46240001, 0x45250001, 0x44260001, 0x43270001, 837 1.1 thorpej 0x42280001, 0x41290001, 0x402a0001, 0x262b0001, 0x252c0001, 838 1.1 thorpej 0x242d0001, 0x232e0001, 0x222f0001, 0x21300001, 0x20310001, 839 1.1 thorpej 0x06320001, 0x05330001, 0x04340001, 0x03350001, 0x02360001, 840 1.1 thorpej 0x01370001, 0x00380001, 0x00390001, 0x003a0001, 0x003b0001, 841 1.1 thorpej 0x003c0001, 0x003d0001, 0x003e0001, 0x003f0001, 0x7b400001, 842 1.1 thorpej 0x7b410001, 0x7b420001, 0x7b430001, 0x7b440001, 0x7b450001, 843 1.1 thorpej 0x7b460001, 0x7b470001, 0x7b480001, 0x7a490001, 0x794a0001, 844 1.1 thorpej 0x784b0001, 0x774c0001, 0x764d0001, 0x754e0001, 0x744f0001, 845 1.1 thorpej 0x73500001, 0x72510001, 0x71520001, 0x70530001, 0x6f540001, 846 1.1 thorpej 0x6e550001, 0x6d560001, 0x6c570001, 0x6b580001, 0x6a590001, 847 1.1 thorpej 0x695a0001, 0x685b0001, 0x675c0001, 0x665d0001, 0x655e0001, 848 1.1 thorpej 0x645f0001, 0x63600001, 0x62610001, 0x61620001, 0x60630001, 849 1.1 thorpej 0x46640001, 0x45650001, 0x44660001, 0x43670001, 0x42680001, 850 1.1 thorpej 0x41690001, 0x406a0001, 0x266b0001, 0x256c0001, 0x246d0001, 851 1.1 thorpej 0x236e0001, 0x226f0001, 0x21700001, 0x20710001, 0x06720001, 852 1.1 thorpej 0x05730001, 0x04740001, 0x03750001, 0x02760001, 0x01770001, 853 1.1 thorpej 0x00780001, 0x00790001, 0x007a0001, 0x007b0001, 0x007c0001, 854 1.1 thorpej 0x007d0001, 0x007e0001, 0x007f0001, 0x3800001e, 0x3801001e, 855 1.1 thorpej 0x3802001e, 0x3803001e, 0x3804001e, 0x3805001e, 0x3806001e, 856 1.1 thorpej 0x3807001e, 0x3808001e, 0x3c09001e, 0x3e0a001e, 0x400b001e, 857 1.1 thorpej 0x440c001e, 0x480d001e, 0x4c0e001e, 0x500f001e, 0x5210001e, 858 1.1 thorpej 0x5611001e, 0x5a12001e, 0x5e13001e, 0x6014001e, 0x6015001e, 859 1.1 thorpej 0x6016001e, 0x6217001e, 0x6218001e, 0x6219001e, 0x621a001e, 860 1.1 thorpej 0x621b001e, 0x621c001e, 0x621d001e, 0x621e001e, 0x621f001e 861 1.1 thorpej }; 862 1.1 thorpej 863 1.1 thorpej static const struct rtwn_bb_prog rtl8188ru_bb_prog = { 864 1.1 thorpej __arraycount(rtl8188ru_bb_regs), 865 1.1 thorpej rtl8188ru_bb_regs, 866 1.1 thorpej rtl8188ru_bb_vals, 867 1.1 thorpej __arraycount(rtl8188ru_agc_vals), 868 1.1 thorpej rtl8188ru_agc_vals 869 1.1 thorpej }; 870 1.1 thorpej 871 1.1 thorpej /* 872 1.1 thorpej * RF initialization values. 873 1.1 thorpej */ 874 1.1 thorpej struct rtwn_rf_prog { 875 1.1 thorpej int count; 876 1.1 thorpej const uint8_t *regs; 877 1.1 thorpej const uint32_t *vals; 878 1.1 thorpej }; 879 1.1 thorpej 880 1.1 thorpej /* 881 1.1 thorpej * RTL8192CU and RTL8192CE-VAU. 882 1.1 thorpej */ 883 1.1 thorpej static const uint8_t rtl8192ce_rf1_regs[] = { 884 1.1 thorpej 0x00, 0x01, 0x02, 0x03, 0x04, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 885 1.1 thorpej 0x0f, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 886 1.1 thorpej 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2a, 0x2b, 887 1.1 thorpej 0x2a, 0x2b, 0x2b, 0x2c, 0x2a, 0x2b, 0x2b, 0x2c, 0x2a, 0x2b, 0x2b, 888 1.1 thorpej 0x2c, 0x2a, 0x2b, 0x2b, 0x2c, 0x2a, 0x2b, 0x2b, 0x2c, 0x2a, 0x2b, 889 1.1 thorpej 0x2b, 0x2c, 0x2a, 0x2b, 0x2b, 0x2c, 0x2a, 0x2b, 0x2b, 0x2c, 0x2a, 890 1.1 thorpej 0x2b, 0x2b, 0x2c, 0x2a, 0x2b, 0x2b, 0x2c, 0x2a, 0x2b, 0x2b, 0x2c, 891 1.1 thorpej 0x2a, 0x2b, 0x2b, 0x2c, 0x2a, 0x2b, 0x2b, 0x2c, 0x2a, 0x2b, 0x2b, 892 1.1 thorpej 0x2c, 0x2a, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 893 1.1 thorpej 0x11, 0x10, 0x11, 0x10, 0x11, 0x12, 0x12, 0x12, 0x12, 0x13, 0x13, 894 1.1 thorpej 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x14, 0x14, 895 1.1 thorpej 0x14, 0x14, 0x15, 0x15, 0x15, 0x15, 0x16, 0x16, 0x16, 0x16, 0x00, 896 1.1 thorpej 0x18, 0xfe, 0xfe, 0x1f, 0xfe, 0xfe, 0x1e, 0x1f, 0x00 897 1.1 thorpej }; 898 1.1 thorpej 899 1.1 thorpej static const uint32_t rtl8192ce_rf1_vals[] = { 900 1.1 thorpej 0x30159, 0x31284, 0x98000, 0x18c63, 0x210e7, 0x2044f, 0x1adb1, 901 1.1 thorpej 0x54867, 0x8992e, 0x0e52c, 0x39ce7, 0x00451, 0x00000, 0x10255, 902 1.1 thorpej 0x60a00, 0xfc378, 0xa1250, 0x4445f, 0x80001, 0x0b614, 0x6c000, 903 1.1 thorpej 0x00000, 0x01558, 0x00060, 0x00483, 0x4f000, 0xec7d9, 0x577c0, 904 1.1 thorpej 0x04783, 0x00001, 0x21334, 0x00000, 0x00054, 0x00001, 0x00808, 905 1.1 thorpej 0x53333, 0x0000c, 0x00002, 0x00808, 0x5b333, 0x0000d, 0x00003, 906 1.1 thorpej 0x00808, 0x63333, 0x0000d, 0x00004, 0x00808, 0x6b333, 0x0000d, 907 1.1 thorpej 0x00005, 0x00808, 0x73333, 0x0000d, 0x00006, 0x00709, 0x5b333, 908 1.1 thorpej 0x0000d, 0x00007, 0x00709, 0x63333, 0x0000d, 0x00008, 0x0060a, 909 1.1 thorpej 0x4b333, 0x0000d, 0x00009, 0x0060a, 0x53333, 0x0000d, 0x0000a, 910 1.1 thorpej 0x0060a, 0x5b333, 0x0000d, 0x0000b, 0x0060a, 0x63333, 0x0000d, 911 1.1 thorpej 0x0000c, 0x0060a, 0x6b333, 0x0000d, 0x0000d, 0x0060a, 0x73333, 912 1.1 thorpej 0x0000d, 0x0000e, 0x0050b, 0x66666, 0x0001a, 0xe0000, 0x4000f, 913 1.1 thorpej 0xe31fc, 0x6000f, 0xff9f8, 0x2000f, 0x203f9, 0x3000f, 0xff500, 914 1.1 thorpej 0x00000, 0x00000, 0x8000f, 0x3f100, 0x9000f, 0x23100, 0x32000, 915 1.1 thorpej 0x71000, 0xb0000, 0xfc000, 0x287af, 0x244b7, 0x204ab, 0x1c49f, 916 1.1 thorpej 0x18493, 0x14297, 0x10295, 0x0c298, 0x0819c, 0x040a8, 0x0001c, 917 1.1 thorpej 0x1944c, 0x59444, 0x9944c, 0xd9444, 0x0f424, 0x4f424, 0x8f424, 918 1.1 thorpej 0xcf424, 0xe0330, 0xa0330, 0x60330, 0x20330, 0x10159, 0x0f401, 919 1.1 thorpej 0x00000, 0x00000, 0x80003, 0x00000, 0x00000, 0x44457, 0x80000, 920 1.1 thorpej 0x30159 921 1.1 thorpej }; 922 1.1 thorpej 923 1.1 thorpej static const uint8_t rtl8192ce_rf2_regs[] = { 924 1.1 thorpej 0x00, 0x01, 0x02, 0x03, 0x04, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 925 1.1 thorpej 0x0f, 0x12, 0x12, 0x12, 0x12, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 926 1.1 thorpej 0x13, 0x13, 0x13, 0x13, 0x13, 0x14, 0x14, 0x14, 0x14, 0x15, 0x15, 927 1.1 thorpej 0x15, 0x15, 0x16, 0x16, 0x16, 0x16 928 1.1 thorpej }; 929 1.1 thorpej 930 1.1 thorpej static const uint32_t rtl8192ce_rf2_vals[] = { 931 1.1 thorpej 0x30159, 0x31284, 0x98000, 0x18c63, 0x210e7, 0x2044f, 0x1adb1, 932 1.1 thorpej 0x54867, 0x8992e, 0x0e52c, 0x39ce7, 0x00451, 0x32000, 0x71000, 933 1.1 thorpej 0xb0000, 0xfc000, 0x287af, 0x244b7, 0x204ab, 0x1c49f, 0x18493, 934 1.1 thorpej 0x14297, 0x10295, 0x0c298, 0x0819c, 0x040a8, 0x0001c, 0x1944c, 935 1.1 thorpej 0x59444, 0x9944c, 0xd9444, 0x0f424, 0x4f424, 0x8f424, 0xcf424, 936 1.1 thorpej 0xe0330, 0xa0330, 0x60330, 0x20330 937 1.1 thorpej }; 938 1.1 thorpej 939 1.1 thorpej static const struct rtwn_rf_prog rtl8192ce_rf_prog[] = { 940 1.1 thorpej { 941 1.1 thorpej __arraycount(rtl8192ce_rf1_regs), 942 1.1 thorpej rtl8192ce_rf1_regs, 943 1.1 thorpej rtl8192ce_rf1_vals 944 1.1 thorpej }, 945 1.1 thorpej { 946 1.1 thorpej __arraycount(rtl8192ce_rf2_regs), 947 1.1 thorpej rtl8192ce_rf2_regs, 948 1.1 thorpej rtl8192ce_rf2_vals 949 1.1 thorpej } 950 1.1 thorpej }; 951 1.1 thorpej 952 1.1 thorpej /* 953 1.1 thorpej * RTL8188CE-VAU. 954 1.1 thorpej */ 955 1.1 thorpej static const uint32_t rtl8188ce_rf_vals[] = { 956 1.1 thorpej 0x30159, 0x31284, 0x98000, 0x18c63, 0x210e7, 0x2044f, 0x1adb1, 957 1.1 thorpej 0x54867, 0x8992e, 0x0e52c, 0x39ce7, 0x00451, 0x00000, 0x10255, 958 1.1 thorpej 0x60a00, 0xfc378, 0xa1250, 0x4445f, 0x80001, 0x0b614, 0x6c000, 959 1.1 thorpej 0x00000, 0x01558, 0x00060, 0x00483, 0x4f200, 0xec7d9, 0x577c0, 960 1.1 thorpej 0x04783, 0x00001, 0x21334, 0x00000, 0x00054, 0x00001, 0x00808, 961 1.1 thorpej 0x53333, 0x0000c, 0x00002, 0x00808, 0x5b333, 0x0000d, 0x00003, 962 1.1 thorpej 0x00808, 0x63333, 0x0000d, 0x00004, 0x00808, 0x6b333, 0x0000d, 963 1.1 thorpej 0x00005, 0x00808, 0x73333, 0x0000d, 0x00006, 0x00709, 0x5b333, 964 1.1 thorpej 0x0000d, 0x00007, 0x00709, 0x63333, 0x0000d, 0x00008, 0x0060a, 965 1.1 thorpej 0x4b333, 0x0000d, 0x00009, 0x0060a, 0x53333, 0x0000d, 0x0000a, 966 1.1 thorpej 0x0060a, 0x5b333, 0x0000d, 0x0000b, 0x0060a, 0x63333, 0x0000d, 967 1.1 thorpej 0x0000c, 0x0060a, 0x6b333, 0x0000d, 0x0000d, 0x0060a, 0x73333, 968 1.1 thorpej 0x0000d, 0x0000e, 0x0050b, 0x66666, 0x0001a, 0xe0000, 0x4000f, 969 1.1 thorpej 0xe31fc, 0x6000f, 0xff9f8, 0x2000f, 0x203f9, 0x3000f, 0xff500, 970 1.1 thorpej 0x00000, 0x00000, 0x8000f, 0x3f100, 0x9000f, 0x23100, 0x32000, 971 1.1 thorpej 0x71000, 0xb0000, 0xfc000, 0x287b3, 0x244b7, 0x204ab, 0x1c49f, 972 1.1 thorpej 0x18493, 0x1429b, 0x10299, 0x0c29c, 0x081a0, 0x040ac, 0x00020, 973 1.1 thorpej 0x1944c, 0x59444, 0x9944c, 0xd9444, 0x0f424, 0x4f424, 0x8f424, 974 1.1 thorpej 0xcf424, 0xe0330, 0xa0330, 0x60330, 0x20330, 0x10159, 0x0f401, 975 1.1 thorpej 0x00000, 0x00000, 0x80003, 0x00000, 0x00000, 0x44457, 0x80000, 976 1.1 thorpej 0x30159 977 1.1 thorpej }; 978 1.1 thorpej 979 1.1 thorpej static const struct rtwn_rf_prog rtl8188ce_rf_prog[] = { 980 1.1 thorpej { 981 1.1 thorpej __arraycount(rtl8192ce_rf1_regs), 982 1.1 thorpej rtl8192ce_rf1_regs, 983 1.1 thorpej rtl8188ce_rf_vals 984 1.1 thorpej } 985 1.1 thorpej }; 986 1.1 thorpej 987 1.1 thorpej 988 1.1 thorpej /* 989 1.1 thorpej * RTL8188CU. 990 1.1 thorpej */ 991 1.1 thorpej static const uint32_t rtl8188cu_rf_vals[] = { 992 1.1 thorpej 0x30159, 0x31284, 0x98000, 0x18c63, 0x210e7, 0x2044f, 0x1adb1, 993 1.1 thorpej 0x54867, 0x8992e, 0x0e52c, 0x39ce7, 0x00451, 0x00000, 0x10255, 994 1.1 thorpej 0x60a00, 0xfc378, 0xa1250, 0x4445f, 0x80001, 0x0b614, 0x6c000, 995 1.1 thorpej 0x00000, 0x01558, 0x00060, 0x00483, 0x4f000, 0xec7d9, 0x577c0, 996 1.1 thorpej 0x04783, 0x00001, 0x21334, 0x00000, 0x00054, 0x00001, 0x00808, 997 1.1 thorpej 0x53333, 0x0000c, 0x00002, 0x00808, 0x5b333, 0x0000d, 0x00003, 998 1.1 thorpej 0x00808, 0x63333, 0x0000d, 0x00004, 0x00808, 0x6b333, 0x0000d, 999 1.1 thorpej 0x00005, 0x00808, 0x73333, 0x0000d, 0x00006, 0x00709, 0x5b333, 1000 1.1 thorpej 0x0000d, 0x00007, 0x00709, 0x63333, 0x0000d, 0x00008, 0x0060a, 1001 1.1 thorpej 0x4b333, 0x0000d, 0x00009, 0x0060a, 0x53333, 0x0000d, 0x0000a, 1002 1.1 thorpej 0x0060a, 0x5b333, 0x0000d, 0x0000b, 0x0060a, 0x63333, 0x0000d, 1003 1.1 thorpej 0x0000c, 0x0060a, 0x6b333, 0x0000d, 0x0000d, 0x0060a, 0x73333, 1004 1.1 thorpej 0x0000d, 0x0000e, 0x0050b, 0x66666, 0x0001a, 0xe0000, 0x4000f, 1005 1.1 thorpej 0xe31fc, 0x6000f, 0xff9f8, 0x2000f, 0x203f9, 0x3000f, 0xff500, 1006 1.1 thorpej 0x00000, 0x00000, 0x8000f, 0x3f100, 0x9000f, 0x23100, 0x32000, 1007 1.1 thorpej 0x71000, 0xb0000, 0xfc000, 0x287b3, 0x244b7, 0x204ab, 0x1c49f, 1008 1.1 thorpej 0x18493, 0x1429b, 0x10299, 0x0c29c, 0x081a0, 0x040ac, 0x00020, 1009 1.1 thorpej 0x1944c, 0x59444, 0x9944c, 0xd9444, 0x0f405, 0x4f405, 0x8f405, 1010 1.1 thorpej 0xcf405, 0xe0330, 0xa0330, 0x60330, 0x20330, 0x10159, 0x0f401, 1011 1.1 thorpej 0x00000, 0x00000, 0x80003, 0x00000, 0x00000, 0x44457, 0x80000, 1012 1.1 thorpej 0x30159 1013 1.1 thorpej }; 1014 1.1 thorpej 1015 1.1 thorpej static const struct rtwn_rf_prog rtl8188cu_rf_prog[] = { 1016 1.1 thorpej { 1017 1.1 thorpej __arraycount(rtl8192ce_rf1_regs), 1018 1.1 thorpej rtl8192ce_rf1_regs, 1019 1.1 thorpej rtl8188cu_rf_vals 1020 1.1 thorpej } 1021 1.1 thorpej }; 1022 1.1 thorpej 1023 1.1 thorpej /* 1024 1.1 thorpej * RTL8192EU. 1025 1.1 thorpej */ 1026 1.1 thorpej static const uint8_t rtl8192eu_rf_regs[] = { 1027 1.1 thorpej 0x7f, 0x81, 0x00, 0x08, 0x18, 0x19, 0x1b, 0x1e, 0x1f, 0x2f, 1028 1.1 thorpej 0x3f, 0x42, 0x57, 0x58, 0x67, 0x83, 0xb0, 0xb1, 0xb2, 0xb4, 1029 1.1 thorpej 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbf, 0xc2, 0xc3, 1030 1.1 thorpej 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xdf, 0xef, 0x51, 1031 1.1 thorpej 0x52, 0x53, 0x56, 0x35, 0x35, 0x35, 0x36, 0x36, 0x36, 0x36, 1032 1.1 thorpej 0x18, 0x5a, 0x19, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 1033 1.1 thorpej 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 1034 1.1 thorpej 0x34, 0x34, 0x34, 0x34, 0x34, 0x00, 0x84, 0x86, 0x87, 0x8e, 1035 1.1 thorpej 0x8f, 0xef, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 1036 1.1 thorpej 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 1037 1.1 thorpej 0xef, 0xfe, 0x18, 0xfe, 0xfe, 0xfe, 0xfe, 0x1e, 0x1f, 0x00, 1038 1.1 thorpej }; 1039 1.1 thorpej 1040 1.1 thorpej static const uint32_t rtl8192eu_rf_vals[] = { 1041 1.1 thorpej 0x00082, 0x3fc00, 0x30000, 0x08400, 0x00407, 0x00012, 0x00064, 1042 1.1 thorpej 0x80009, 0x00880, 0x1a060, 0x00000, 0x060c0, 0xd0000, 0xbe180, 1043 1.1 thorpej 0x01552, 0x00000, 0xff9f1, 0x55418, 0x8cc00, 0x43083, 0x08166, 1044 1.1 thorpej 0x0803e, 0x1c69f, 0x0407f, 0x80001, 0x40001, 0x00400, 0xc0000, 1045 1.1 thorpej 0x02400, 0x00009, 0x40c91, 0x99999, 0x000a3, 0x88820, 0x76c06, 1046 1.1 thorpej 0x00000, 0x80000, 0x00180, 0x001a0, 0x69545, 0x7e45e, 0x00071, 1047 1.1 thorpej 0x51ff3, 0x000a8, 0x001e2, 0x002a8, 0x01c24, 0x09c24, 0x11c24, 1048 1.1 thorpej 0x19c24, 0x00c07, 0x48000, 0x739d0, 0x0a093, 0x0908f, 0x0808c, 1049 1.1 thorpej 0x0704d, 0x0604a, 0x05047, 0x0400a, 0x03007, 0x02004, 0x01001, 1050 1.1 thorpej 0x00000, 0x0add7, 0x09dd4, 0x08dd1, 0x07dce, 0x06dcb, 0x05dc8, 1051 1.1 thorpej 0x04dc5, 0x034cc, 0x0244f, 0x0144c, 0x00014, 0x30159, 0x68180, 1052 1.1 thorpej 0x0014e, 0x48e00, 0x65540, 0x88000, 0x020a0, 0xf07b0, 0xf02b0, 1053 1.1 thorpej 0xef7b0, 0xd4fb0, 0xcf060, 0xb0090, 0xa0080, 0x90080, 0x8f780, 1054 1.1 thorpej 0x787b0, 0x78730, 0x60fb0, 0x5ffa0, 0x40620, 0x37090, 0x20080, 1055 1.1 thorpej 0x1f060, 0x0ffb0, 0x000a0, 0x00000, 0x0fc07, 0x00000, 0x00000, 1056 1.1 thorpej 0x00000, 0x00000, 0x00001, 0x80000, 0x33e70, 1057 1.1 thorpej }; 1058 1.1 thorpej 1059 1.1 thorpej static const uint8_t rtl8192eu_rf2_regs[] = { 1060 1.1 thorpej 0x7f, 0x81, 0x00, 0x08, 0x18, 0x19, 0x1b, 0x1e, 0x1f, 0x2f, 1061 1.1 thorpej 0x3f, 0x42, 0x57, 0x58, 0x67, 0x7f, 0x81, 0x83, 0xdf, 0xef, 1062 1.1 thorpej 0x51, 0x52, 0x53, 0x56, 0x35, 0x35, 0x35, 0x36, 0x36, 0x36, 1063 1.1 thorpej 0x36, 0x18, 0x5a, 0x19, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 1064 1.1 thorpej 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 1065 1.1 thorpej 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x00, 0x84, 0x86, 0x87, 1066 1.1 thorpej 0x8e, 0x8f, 0xef, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 1067 1.1 thorpej 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 1068 1.1 thorpej 0x3b, 0xef, 0x00, 0xfe, 0xfe, 0xfe, 0xfe, 0x1e, 0x1f, 0x00, 1069 1.1 thorpej }; 1070 1.1 thorpej 1071 1.1 thorpej static const uint32_t rtl8192eu_rf2_vals[] = { 1072 1.1 thorpej 0x00082, 0x3fc00, 0x30000, 0x08400, 0x00407, 0x00012, 0x00064, 1073 1.1 thorpej 0x80009, 0x00880, 0x1a060, 0x00000, 0x060c0, 0xd0000, 0xbe180, 1074 1.1 thorpej 0x01552, 0x00082, 0x3f000, 0x00000, 0x00180, 0x001a0, 0x69545, 1075 1.1 thorpej 0x7e42e, 0x00071, 0x51ff3, 0x000a8, 0x001e0, 0x002a8, 0x01ca8, 1076 1.1 thorpej 0x09c24, 0x11c24, 0x19c24, 0x00c07, 0x48000, 0x739d0, 0x0a093, 1077 1.1 thorpej 0x0908f, 0x0808c, 0x0704d, 0x0604a, 0x05047, 0x0400a, 0x03007, 1078 1.1 thorpej 0x02004, 0x01001, 0x00000, 0x0add7, 0x09dd4, 0x08dd1, 0x07dce, 1079 1.1 thorpej 0x06dcb, 0x05dc8, 0x04dc5, 0x034cc, 0x0244f, 0x0144c, 0x00014, 1080 1.1 thorpej 0x30159, 0x68180, 0x000ce, 0x48a00, 0x65540, 0x88000, 0x020a0, 1081 1.1 thorpej 0xf07b0, 0xf02b0, 0xef7b0, 0xd4fb0, 0xcf060, 0xb0090, 0xa0080, 1082 1.1 thorpej 0x90080, 0x8f780, 0x787b0, 0x78730, 0x60fb0, 0x5ffa0, 0x40620, 1083 1.1 thorpej 0x37090, 0x20080, 0x1f060, 0x0ffb0, 0x000a0, 0x10159, 0x00000, 1084 1.1 thorpej 0x00000, 0x00000, 0x00000, 0x00001, 0x80000, 0x33e70, 1085 1.1 thorpej }; 1086 1.1 thorpej 1087 1.1 thorpej static const struct rtwn_rf_prog rtl8192eu_rf_prog[] = { 1088 1.1 thorpej { 1089 1.1 thorpej __arraycount(rtl8192eu_rf_regs), 1090 1.1 thorpej rtl8192eu_rf_regs, 1091 1.1 thorpej rtl8192eu_rf_vals 1092 1.1 thorpej }, 1093 1.1 thorpej { 1094 1.1 thorpej __arraycount(rtl8192eu_rf2_regs), 1095 1.1 thorpej rtl8192eu_rf2_regs, 1096 1.1 thorpej rtl8192eu_rf2_vals 1097 1.1 thorpej } 1098 1.1 thorpej }; 1099 1.1 thorpej 1100 1.1 thorpej /* 1101 1.1 thorpej * RTL8188EU. 1102 1.1 thorpej */ 1103 1.1 thorpej static const uint8_t rtl8188eu_rf_regs[] = { 1104 1.1 thorpej 0x00, 0x08, 0x18, 0x19, 0x1e, 0x1f, 0x2f, 0x3f, 0x42, 0x57, 1105 1.1 thorpej 0x58, 0x67, 0x83, 0xb0, 0xb1, 0xb2, 0xb4, 0xb6, 0xb7, 0xb8, 1106 1.1 thorpej 0xb9, 0xba, 0xbb, 0xbf, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 1107 1.1 thorpej 0xc8, 0xc9, 0xca, 0xdf, 0xef, 0x51, 0x52, 0x53, 0x56, 1108 1.1 thorpej 0x35, 0x35, 0x35, 0x36, 0x36, 0x36, 0x36, 0xb6, 0x18, 0x5a, 1109 1.1 thorpej 0x19, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 1110 1.1 thorpej 0x34, 0x34, 0x00, 0x84, 0x86, 0x87, 0x8e, 0x8f, 0xef, 0x3b, 1111 1.1 thorpej 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 1112 1.1 thorpej 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0xef, 0x00, 0x18, 0xfe, 0xfe, 1113 1.1 thorpej 0x1f, 0xfe, 0xfe, 0x1e, 0x1f, 0x00 1114 1.1 thorpej }; 1115 1.1 thorpej 1116 1.1 thorpej static const uint32_t rtl8188eu_rf_vals[] = { 1117 1.1 thorpej 0x30000, 0x84000, 0x00407, 0x00012, 0x80009, 0x00880, 0x1a060, 1118 1.1 thorpej 0x00000, 0x060c0, 0xd0000, 0xbe180, 0x01552, 0x00000, 0xff8fc, 1119 1.1 thorpej 0x54400, 0xccc19, 0x43003, 0x4953e, 0x1c718, 0x060ff, 0x80001, 1120 1.1 thorpej 0x40000, 0x00400, 0xc0000, 0x02400, 0x00009, 0x40c91, 0x99999, 1121 1.1 thorpej 0x000a3, 0x88820, 0x76c06, 0x00000, 0x80000, 0x00180, 0x001a0, 1122 1.1 thorpej 0x6b27d, 0x7e49d, 0x00073, 0x51ff3, 0x00086, 0x00186, 1123 1.1 thorpej 0x00286, 0x01c25, 0x09c25, 0x11c25, 0x19c25, 0x48538, 0x00c07, 1124 1.1 thorpej 0x4bd00, 0x739d0, 0x0adf3, 0x09df0, 0x08ded, 0x07dea, 0x06de7, 1125 1.1 thorpej 0x054ee, 0x044eb, 0x034e8, 0x0246b, 0x01468, 0x0006d, 0x30159, 1126 1.1 thorpej 0x68200, 0x000ce, 0x48a00, 0x65540, 0x88000, 0x020a0, 0xf02b0, 1127 1.1 thorpej 0xef7b0, 0xd4fb0, 0xcf060, 0xb0090, 0xa0080, 0x90080, 0x8f780, 1128 1.1 thorpej 0x722b0, 0x6f7b0, 0x54fb0, 0x4f060, 0x30090, 0x20080, 0x10080, 1129 1.1 thorpej 0x0f780, 0x000a0, 0x10159, 0x0f407, 0x00000, 0x00000, 0x80003, 1130 1.1 thorpej 0x00000, 0x00000, 0x00001, 0x80000, 0x33e60 1131 1.1 thorpej }; 1132 1.1 thorpej 1133 1.1 thorpej static const struct rtwn_rf_prog rtl8188eu_rf_prog[] = { 1134 1.1 thorpej { 1135 1.1 thorpej __arraycount(rtl8188eu_rf_regs), 1136 1.1 thorpej rtl8188eu_rf_regs, 1137 1.1 thorpej rtl8188eu_rf_vals 1138 1.1 thorpej } 1139 1.1 thorpej }; 1140 1.1 thorpej 1141 1.1 thorpej /* 1142 1.1 thorpej * RTL8188RU. 1143 1.1 thorpej */ 1144 1.1 thorpej static const uint32_t rtl8188ru_rf_vals[] = { 1145 1.1 thorpej 0x30159, 0x31284, 0x98000, 0x18c63, 0x210e7, 0x2044f, 0x1adb0, 1146 1.1 thorpej 0x54867, 0x8992e, 0x0e529, 0x39ce7, 0x00451, 0x00000, 0x00255, 1147 1.1 thorpej 0x60a00, 0xfc378, 0xa1250, 0x4445f, 0x80001, 0x0b614, 0x6c000, 1148 1.1 thorpej 0x0083c, 0x01558, 0x00060, 0x00483, 0x4f000, 0xec7d9, 0x977c0, 1149 1.1 thorpej 0x04783, 0x00001, 0x21334, 0x00000, 0x00054, 0x00001, 0x00808, 1150 1.1 thorpej 0x53333, 0x0000c, 0x00002, 0x00808, 0x5b333, 0x0000d, 0x00003, 1151 1.1 thorpej 0x00808, 0x63333, 0x0000d, 0x00004, 0x00808, 0x6b333, 0x0000d, 1152 1.1 thorpej 0x00005, 0x00808, 0x73333, 0x0000d, 0x00006, 0x00709, 0x5b333, 1153 1.1 thorpej 0x0000d, 0x00007, 0x00709, 0x63333, 0x0000d, 0x00008, 0x0060a, 1154 1.1 thorpej 0x4b333, 0x0000d, 0x00009, 0x0060a, 0x53333, 0x0000d, 0x0000a, 1155 1.1 thorpej 0x0060a, 0x5b333, 0x0000d, 0x0000b, 0x0060a, 0x63333, 0x0000d, 1156 1.1 thorpej 0x0000c, 0x0060a, 0x6b333, 0x0000d, 0x0000d, 0x0060a, 0x73333, 1157 1.1 thorpej 0x0000d, 0x0000e, 0x0050b, 0x66666, 0x0001a, 0xe0000, 0x4000f, 1158 1.1 thorpej 0xe31fc, 0x6000f, 0xff9f8, 0x2000f, 0x203f9, 0x3000f, 0xff500, 1159 1.1 thorpej 0x00000, 0x00000, 0x8000f, 0x3f100, 0x9000f, 0x23100, 0xd8000, 1160 1.1 thorpej 0x90000, 0x51000, 0x12000, 0x28fb4, 0x24fa8, 0x207a4, 0x1c798, 1161 1.1 thorpej 0x183a4, 0x14398, 0x101a4, 0x0c198, 0x080a4, 0x04098, 0x00014, 1162 1.1 thorpej 0x1944c, 0x59444, 0x9944c, 0xd9444, 0x0f405, 0x4f405, 0x8f405, 1163 1.1 thorpej 0xcf405, 0xe0330, 0xa0330, 0x60330, 0x20330, 0x10159, 0x0f401, 1164 1.1 thorpej 0x00000, 0x00000, 0x80003, 0x00000, 0x00000, 0x44457, 0x80000, 1165 1.1 thorpej 0x30159 1166 1.1 thorpej }; 1167 1.1 thorpej 1168 1.1 thorpej static const struct rtwn_rf_prog rtl8188ru_rf_prog[] = { 1169 1.1 thorpej { 1170 1.1 thorpej __arraycount(rtl8192ce_rf1_regs), 1171 1.1 thorpej rtl8192ce_rf1_regs, 1172 1.1 thorpej rtl8188ru_rf_vals 1173 1.1 thorpej } 1174 1.1 thorpej }; 1175 1.1 thorpej 1176 1.1 thorpej struct rtwn_txpwr { 1177 1.1 thorpej uint8_t pwr[3][28]; 1178 1.1 thorpej }; 1179 1.1 thorpej 1180 1.1 thorpej struct rtwn_r88e_txpwr { 1181 1.1 thorpej uint8_t pwr[6][28]; 1182 1.1 thorpej }; 1183 1.1 thorpej 1184 1.1 thorpej /* 1185 1.1 thorpej * Per RF chain/group/rate Tx gain values. 1186 1.1 thorpej */ 1187 1.1 thorpej static const struct rtwn_txpwr rtl8192cu_txagc[] = { 1188 1.1 thorpej { { /* Chain 0. */ 1189 1.1 thorpej { /* Group 0. */ 1190 1.1 thorpej 0x00, 0x00, 0x00, 0x00, /* CCK1~11. */ 1191 1.1 thorpej 0x0c, 0x0c, 0x0c, 0x0a, 0x08, 0x06, 0x04, 0x02, /* OFDM6~54. */ 1192 1.1 thorpej 0x0e, 0x0d, 0x0c, 0x0a, 0x08, 0x06, 0x04, 0x02, /* MCS0~7. */ 1193 1.1 thorpej 0x0e, 0x0d, 0x0c, 0x0a, 0x08, 0x06, 0x04, 0x02 /* MCS8~15. */ 1194 1.1 thorpej }, 1195 1.1 thorpej { /* Group 1. */ 1196 1.1 thorpej 0x00, 0x00, 0x00, 0x00, /* CCK1~11. */ 1197 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* OFDM6~54. */ 1198 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* MCS0~7. */ 1199 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* MCS8~15. */ 1200 1.1 thorpej }, 1201 1.1 thorpej { /* Group 2. */ 1202 1.1 thorpej 0x00, 0x00, 0x00, 0x00, /* CCK1~11. */ 1203 1.1 thorpej 0x04, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x00, /* OFDM6~54. */ 1204 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* MCS0~7. */ 1205 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* MCS8~15. */ 1206 1.1 thorpej } 1207 1.1 thorpej } }, 1208 1.1 thorpej { { /* Chain 1. */ 1209 1.1 thorpej { /* Group 0. */ 1210 1.1 thorpej 0x00, 0x00, 0x00, 0x00, /* CCK1~11. */ 1211 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* OFDM6~54. */ 1212 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* MCS0~7. */ 1213 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* MCS8~15. */ 1214 1.1 thorpej }, 1215 1.1 thorpej { /* Group 1. */ 1216 1.1 thorpej 0x00, 0x00, 0x00, 0x00, /* CCK1~11. */ 1217 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* OFDM6~54. */ 1218 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* MCS0~7. */ 1219 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* MCS8~15. */ 1220 1.1 thorpej }, 1221 1.1 thorpej { /* Group 2. */ 1222 1.1 thorpej 0x00, 0x00, 0x00, 0x00, /* CCK1~11. */ 1223 1.1 thorpej 0x04, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x00, /* OFDM6~54. */ 1224 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* MCS0~7. */ 1225 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* MCS8~15. */ 1226 1.1 thorpej } 1227 1.1 thorpej } } 1228 1.1 thorpej }; 1229 1.1 thorpej 1230 1.1 thorpej static const struct rtwn_txpwr rtl8188ru_txagc[] = { 1231 1.1 thorpej { { /* Chain 0. */ 1232 1.1 thorpej { /* Group 0. */ 1233 1.1 thorpej 0x00, 0x00, 0x00, 0x00, /* CCK1~11. */ 1234 1.1 thorpej 0x08, 0x08, 0x08, 0x06, 0x06, 0x04, 0x04, 0x00, /* OFDM6~54. */ 1235 1.1 thorpej 0x08, 0x06, 0x06, 0x04, 0x04, 0x02, 0x02, 0x00, /* MCS0~7. */ 1236 1.1 thorpej 0x08, 0x06, 0x06, 0x04, 0x04, 0x02, 0x02, 0x00 /* MCS8~15. */ 1237 1.1 thorpej }, 1238 1.1 thorpej { /* Group 1. */ 1239 1.1 thorpej 0x00, 0x00, 0x00, 0x00, /* CCK1~11. */ 1240 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* OFDM6~54. */ 1241 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* MCS0~7. */ 1242 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* MCS8~15. */ 1243 1.1 thorpej }, 1244 1.1 thorpej { /* Group 2. */ 1245 1.1 thorpej 0x00, 0x00, 0x00, 0x00, /* CCK1~11. */ 1246 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* OFDM6~54. */ 1247 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* MCS0~7. */ 1248 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* MCS8~15. */ 1249 1.1 thorpej } 1250 1.1 thorpej } } 1251 1.1 thorpej }; 1252 1.1 thorpej 1253 1.1 thorpej static const struct rtwn_r88e_txpwr rtl8188eu_txagc[] = { 1254 1.1 thorpej { { /* Chain 0. */ 1255 1.1 thorpej { /* Group 0. */ 1256 1.1 thorpej 0x00, 0x00, 0x00, 0x00, /* CCK1~11. */ 1257 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* OFDM6~54. */ 1258 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* MCS0~7. */ 1259 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* MCS8~15. */ 1260 1.1 thorpej }, 1261 1.1 thorpej { /* Group 1. */ 1262 1.1 thorpej 0x00, 0x00, 0x00, 0x00, /* CCK1~11. */ 1263 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* OFDM6~54. */ 1264 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* MCS0~7. */ 1265 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* MCS8~15. */ 1266 1.1 thorpej }, 1267 1.1 thorpej { /* Group 2. */ 1268 1.1 thorpej 0x00, 0x00, 0x00, 0x00, /* CCK1~11. */ 1269 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* OFDM6~54. */ 1270 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* MCS0~7. */ 1271 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* MCS8~15. */ 1272 1.1 thorpej }, 1273 1.1 thorpej { /* Group 3. */ 1274 1.1 thorpej 0x00, 0x00, 0x00, 0x00, /* CCK1~11. */ 1275 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* OFDM6~54. */ 1276 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* MCS0~7. */ 1277 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* MCS8~15. */ 1278 1.1 thorpej }, 1279 1.1 thorpej { /* Group 4. */ 1280 1.1 thorpej 0x00, 0x00, 0x00, 0x00, /* CCK1~11. */ 1281 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* OFDM6~54. */ 1282 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* MCS0~7. */ 1283 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* MCS8~15. */ 1284 1.1 thorpej }, 1285 1.1 thorpej { /* Group 5. */ 1286 1.1 thorpej 0x00, 0x00, 0x00, 0x00, /* CCK1~11. */ 1287 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* OFDM6~54. */ 1288 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* MCS0~7. */ 1289 1.1 thorpej 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* MCS8~15. */ 1290 1.1 thorpej } 1291 1.2 martin } }, 1292 1.2 martin { { /* Chain 1. */ 1293 1.2 martin { /* Group 0. */ 1294 1.2 martin 0x00, 0x00, 0x00, 0x00, /* CCK1~11. */ 1295 1.2 martin 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* OFDM6~54. */ 1296 1.2 martin 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* MCS0~7. */ 1297 1.2 martin 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* MCS8~15. */ 1298 1.2 martin }, 1299 1.2 martin { /* Group 1. */ 1300 1.2 martin 0x00, 0x00, 0x00, 0x00, /* CCK1~11. */ 1301 1.2 martin 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* OFDM6~54. */ 1302 1.2 martin 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* MCS0~7. */ 1303 1.2 martin 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* MCS8~15. */ 1304 1.2 martin }, 1305 1.2 martin { /* Group 2. */ 1306 1.2 martin 0x00, 0x00, 0x00, 0x00, /* CCK1~11. */ 1307 1.2 martin 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* OFDM6~54. */ 1308 1.2 martin 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* MCS0~7. */ 1309 1.2 martin 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* MCS8~15. */ 1310 1.2 martin }, 1311 1.2 martin { /* Group 3. */ 1312 1.2 martin 0x00, 0x00, 0x00, 0x00, /* CCK1~11. */ 1313 1.2 martin 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* OFDM6~54. */ 1314 1.2 martin 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* MCS0~7. */ 1315 1.2 martin 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* MCS8~15. */ 1316 1.2 martin }, 1317 1.2 martin { /* Group 4. */ 1318 1.2 martin 0x00, 0x00, 0x00, 0x00, /* CCK1~11. */ 1319 1.2 martin 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* OFDM6~54. */ 1320 1.2 martin 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* MCS0~7. */ 1321 1.2 martin 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* MCS8~15. */ 1322 1.2 martin }, 1323 1.2 martin { /* Group 5. */ 1324 1.2 martin 0x00, 0x00, 0x00, 0x00, /* CCK1~11. */ 1325 1.2 martin 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* OFDM6~54. */ 1326 1.2 martin 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* MCS0~7. */ 1327 1.2 martin 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* MCS8~15. */ 1328 1.2 martin } 1329 1.1 thorpej } } 1330 1.1 thorpej }; 1331 1.1 thorpej 1332 1.1 thorpej #endif /* _DEV_IC_RTWN_DATA_H_ */ 1333