2444 lines · c
1// SPDX-License-Identifier: GPL-2.0-or-later2/*3 4 Broadcom B43 wireless driver5 IEEE 802.11a/g LP-PHY and radio device data tables6 7 Copyright (c) 2009 Michael Buesch <m@bues.ch>8 Copyright (c) 2009 Gábor Stefanik <netrolller.3d@gmail.com>9 10 11*/12 13#include "b43.h"14#include "tables_lpphy.h"15#include "phy_common.h"16#include "phy_lp.h"17 18 19/* Entry of the 2062/2063 radio init table */20struct b206x_init_tab_entry {21 u16 offset;22 u16 value_a;23 u16 value_g;24 u8 flags;25};26#define B206X_FLAG_A 0x01 /* Flag: Init in A mode */27#define B206X_FLAG_G 0x02 /* Flag: Init in G mode */28 29static const struct b206x_init_tab_entry b2062_init_tab[] = {30 /* { .offset = B2062_N_COMM1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */31 /* { .offset = 0x0001, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */32 /* { .offset = B2062_N_COMM2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */33 /* { .offset = B2062_N_COMM3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */34 { .offset = B2062_N_COMM4, .value_a = 0x0001, .value_g = 0x0000, .flags = B206X_FLAG_A | B206X_FLAG_G, },35 /* { .offset = B2062_N_COMM5, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */36 /* { .offset = B2062_N_COMM6, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */37 /* { .offset = B2062_N_COMM7, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */38 /* { .offset = B2062_N_COMM8, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */39 /* { .offset = B2062_N_COMM9, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */40 /* { .offset = B2062_N_COMM10, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */41 /* { .offset = B2062_N_COMM11, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */42 /* { .offset = B2062_N_COMM12, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */43 /* { .offset = B2062_N_COMM13, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */44 /* { .offset = B2062_N_COMM14, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */45 /* { .offset = B2062_N_COMM15, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */46 /* { .offset = B2062_N_PDN_CTL0, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */47 { .offset = B2062_N_PDN_CTL1, .value_a = 0x0000, .value_g = 0x00CA, .flags = B206X_FLAG_G, },48 /* { .offset = B2062_N_PDN_CTL2, .value_a = 0x0018, .value_g = 0x0018, .flags = 0, }, */49 { .offset = B2062_N_PDN_CTL3, .value_a = 0x0000, .value_g = 0x0000, .flags = B206X_FLAG_A | B206X_FLAG_G, },50 { .offset = B2062_N_PDN_CTL4, .value_a = 0x0015, .value_g = 0x002A, .flags = B206X_FLAG_A | B206X_FLAG_G, },51 /* { .offset = B2062_N_GEN_CTL0, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */52 /* { .offset = B2062_N_IQ_CALIB, .value_a = 0x0001, .value_g = 0x0001, .flags = 0, }, */53 { .offset = B2062_N_LGENC, .value_a = 0x00DB, .value_g = 0x00FF, .flags = B206X_FLAG_A, },54 /* { .offset = B2062_N_LGENA_LPF, .value_a = 0x0001, .value_g = 0x0001, .flags = 0, }, */55 /* { .offset = B2062_N_LGENA_BIAS0, .value_a = 0x0041, .value_g = 0x0041, .flags = 0, }, */56 /* { .offset = B2062_N_LGNEA_BIAS1, .value_a = 0x0002, .value_g = 0x0002, .flags = 0, }, */57 /* { .offset = B2062_N_LGENA_CTL0, .value_a = 0x0032, .value_g = 0x0032, .flags = 0, }, */58 /* { .offset = B2062_N_LGENA_CTL1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */59 /* { .offset = B2062_N_LGENA_CTL2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */60 { .offset = B2062_N_LGENA_TUNE0, .value_a = 0x00DD, .value_g = 0x0000, .flags = B206X_FLAG_A | B206X_FLAG_G, },61 /* { .offset = B2062_N_LGENA_TUNE1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */62 { .offset = B2062_N_LGENA_TUNE2, .value_a = 0x00DD, .value_g = 0x0000, .flags = B206X_FLAG_A | B206X_FLAG_G, },63 { .offset = B2062_N_LGENA_TUNE3, .value_a = 0x0077, .value_g = 0x00B5, .flags = B206X_FLAG_A | B206X_FLAG_G, },64 { .offset = B2062_N_LGENA_CTL3, .value_a = 0x0000, .value_g = 0x00FF, .flags = B206X_FLAG_A | B206X_FLAG_G, },65 /* { .offset = B2062_N_LGENA_CTL4, .value_a = 0x001F, .value_g = 0x001F, .flags = 0, }, */66 /* { .offset = B2062_N_LGENA_CTL5, .value_a = 0x0032, .value_g = 0x0032, .flags = 0, }, */67 /* { .offset = B2062_N_LGENA_CTL6, .value_a = 0x0032, .value_g = 0x0032, .flags = 0, }, */68 { .offset = B2062_N_LGENA_CTL7, .value_a = 0x0033, .value_g = 0x0033, .flags = B206X_FLAG_A | B206X_FLAG_G, },69 /* { .offset = B2062_N_RXA_CTL0, .value_a = 0x0009, .value_g = 0x0009, .flags = 0, }, */70 { .offset = B2062_N_RXA_CTL1, .value_a = 0x0000, .value_g = 0x0000, .flags = B206X_FLAG_G, },71 /* { .offset = B2062_N_RXA_CTL2, .value_a = 0x0018, .value_g = 0x0018, .flags = 0, }, */72 /* { .offset = B2062_N_RXA_CTL3, .value_a = 0x0027, .value_g = 0x0027, .flags = 0, }, */73 /* { .offset = B2062_N_RXA_CTL4, .value_a = 0x0028, .value_g = 0x0028, .flags = 0, }, */74 /* { .offset = B2062_N_RXA_CTL5, .value_a = 0x0007, .value_g = 0x0007, .flags = 0, }, */75 /* { .offset = B2062_N_RXA_CTL6, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */76 /* { .offset = B2062_N_RXA_CTL7, .value_a = 0x0008, .value_g = 0x0008, .flags = 0, }, */77 { .offset = B2062_N_RXBB_CTL0, .value_a = 0x0082, .value_g = 0x0080, .flags = B206X_FLAG_A | B206X_FLAG_G, },78 /* { .offset = B2062_N_RXBB_CTL1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */79 /* { .offset = B2062_N_RXBB_CTL2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */80 /* { .offset = B2062_N_RXBB_GAIN0, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */81 { .offset = B2062_N_RXBB_GAIN1, .value_a = 0x0004, .value_g = 0x0004, .flags = B206X_FLAG_A | B206X_FLAG_G, },82 { .offset = B2062_N_RXBB_GAIN2, .value_a = 0x0000, .value_g = 0x0000, .flags = B206X_FLAG_A | B206X_FLAG_G, },83 /* { .offset = B2062_N_RXBB_GAIN3, .value_a = 0x0011, .value_g = 0x0011, .flags = 0, }, */84 /* { .offset = B2062_N_RXBB_RSSI0, .value_a = 0x0043, .value_g = 0x0043, .flags = 0, }, */85 /* { .offset = B2062_N_RXBB_RSSI1, .value_a = 0x0033, .value_g = 0x0033, .flags = 0, }, */86 /* { .offset = B2062_N_RXBB_CALIB0, .value_a = 0x0010, .value_g = 0x0010, .flags = 0, }, */87 /* { .offset = B2062_N_RXBB_CALIB1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */88 /* { .offset = B2062_N_RXBB_CALIB2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */89 /* { .offset = B2062_N_RXBB_BIAS0, .value_a = 0x0006, .value_g = 0x0006, .flags = 0, }, */90 /* { .offset = B2062_N_RXBB_BIAS1, .value_a = 0x002A, .value_g = 0x002A, .flags = 0, }, */91 /* { .offset = B2062_N_RXBB_BIAS2, .value_a = 0x00AA, .value_g = 0x00AA, .flags = 0, }, */92 /* { .offset = B2062_N_RXBB_BIAS3, .value_a = 0x0021, .value_g = 0x0021, .flags = 0, }, */93 /* { .offset = B2062_N_RXBB_BIAS4, .value_a = 0x00AA, .value_g = 0x00AA, .flags = 0, }, */94 /* { .offset = B2062_N_RXBB_BIAS5, .value_a = 0x0022, .value_g = 0x0022, .flags = 0, }, */95 /* { .offset = B2062_N_RXBB_RSSI2, .value_a = 0x0001, .value_g = 0x0001, .flags = 0, }, */96 /* { .offset = B2062_N_RXBB_RSSI3, .value_a = 0x0055, .value_g = 0x0055, .flags = 0, }, */97 /* { .offset = B2062_N_RXBB_RSSI4, .value_a = 0x0001, .value_g = 0x0001, .flags = 0, }, */98 /* { .offset = B2062_N_RXBB_RSSI5, .value_a = 0x0055, .value_g = 0x0055, .flags = 0, }, */99 /* { .offset = B2062_N_TX_CTL0, .value_a = 0x0001, .value_g = 0x0001, .flags = 0, }, */100 /* { .offset = B2062_N_TX_CTL1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */101 /* { .offset = B2062_N_TX_CTL2, .value_a = 0x0084, .value_g = 0x0084, .flags = 0, }, */102 /* { .offset = B2062_N_TX_CTL3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */103 { .offset = B2062_N_TX_CTL4, .value_a = 0x0003, .value_g = 0x0003, .flags = B206X_FLAG_A | B206X_FLAG_G, },104 { .offset = B2062_N_TX_CTL5, .value_a = 0x0002, .value_g = 0x0002, .flags = B206X_FLAG_A | B206X_FLAG_G, },105 /* { .offset = B2062_N_TX_CTL6, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */106 /* { .offset = B2062_N_TX_CTL7, .value_a = 0x0058, .value_g = 0x0058, .flags = 0, }, */107 /* { .offset = B2062_N_TX_CTL8, .value_a = 0x0082, .value_g = 0x0082, .flags = 0, }, */108 /* { .offset = B2062_N_TX_CTL9, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */109 /* { .offset = B2062_N_TX_CTL_A, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */110 /* { .offset = B2062_N_TX_GC2G, .value_a = 0x00FF, .value_g = 0x00FF, .flags = 0, }, */111 /* { .offset = B2062_N_TX_GC5G, .value_a = 0x00FF, .value_g = 0x00FF, .flags = 0, }, */112 { .offset = B2062_N_TX_TUNE, .value_a = 0x0088, .value_g = 0x001B, .flags = B206X_FLAG_A | B206X_FLAG_G, },113 /* { .offset = B2062_N_TX_PAD, .value_a = 0x0088, .value_g = 0x0088, .flags = 0, }, */114 /* { .offset = B2062_N_TX_PGA, .value_a = 0x0088, .value_g = 0x0088, .flags = 0, }, */115 /* { .offset = B2062_N_TX_PADAUX, .value_a = 0x0033, .value_g = 0x0033, .flags = 0, }, */116 /* { .offset = B2062_N_TX_PGAAUX, .value_a = 0x0033, .value_g = 0x0033, .flags = 0, }, */117 /* { .offset = B2062_N_TSSI_CTL0, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */118 /* { .offset = B2062_N_TSSI_CTL1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */119 /* { .offset = B2062_N_TSSI_CTL2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */120 /* { .offset = B2062_N_IQ_CALIB_CTL0, .value_a = 0x0033, .value_g = 0x0033, .flags = 0, }, */121 /* { .offset = B2062_N_IQ_CALIB_CTL1, .value_a = 0x0055, .value_g = 0x0055, .flags = 0, }, */122 /* { .offset = B2062_N_IQ_CALIB_CTL2, .value_a = 0x0032, .value_g = 0x0032, .flags = 0, }, */123 /* { .offset = B2062_N_CALIB_TS, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */124 /* { .offset = B2062_N_CALIB_CTL0, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */125 /* { .offset = B2062_N_CALIB_CTL1, .value_a = 0x0015, .value_g = 0x0015, .flags = 0, }, */126 /* { .offset = B2062_N_CALIB_CTL2, .value_a = 0x000F, .value_g = 0x000F, .flags = 0, }, */127 /* { .offset = B2062_N_CALIB_CTL3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */128 /* { .offset = B2062_N_CALIB_CTL4, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */129 /* { .offset = B2062_N_CALIB_DBG0, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */130 /* { .offset = B2062_N_CALIB_DBG1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */131 /* { .offset = B2062_N_CALIB_DBG2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */132 /* { .offset = B2062_N_CALIB_DBG3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */133 /* { .offset = B2062_N_PSENSE_CTL0, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */134 /* { .offset = B2062_N_PSENSE_CTL1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */135 /* { .offset = B2062_N_PSENSE_CTL2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */136 /* { .offset = B2062_N_TEST_BUF0, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */137 /* { .offset = B2062_S_COMM1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */138 /* { .offset = B2062_S_RADIO_ID_CODE, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */139 /* { .offset = B2062_S_COMM2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */140 /* { .offset = B2062_S_COMM3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */141 { .offset = B2062_S_COMM4, .value_a = 0x0001, .value_g = 0x0000, .flags = B206X_FLAG_A | B206X_FLAG_G, },142 /* { .offset = B2062_S_COMM5, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */143 /* { .offset = B2062_S_COMM6, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */144 /* { .offset = B2062_S_COMM7, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */145 /* { .offset = B2062_S_COMM8, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */146 /* { .offset = B2062_S_COMM9, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */147 /* { .offset = B2062_S_COMM10, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */148 /* { .offset = B2062_S_COMM11, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */149 /* { .offset = B2062_S_COMM12, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */150 /* { .offset = B2062_S_COMM13, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */151 /* { .offset = B2062_S_COMM14, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */152 /* { .offset = B2062_S_COMM15, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */153 { .offset = B2062_S_PDS_CTL0, .value_a = 0x00FF, .value_g = 0x00FF, .flags = B206X_FLAG_A | B206X_FLAG_G, },154 /* { .offset = B2062_S_PDS_CTL1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */155 /* { .offset = B2062_S_PDS_CTL2, .value_a = 0x008E, .value_g = 0x008E, .flags = 0, }, */156 /* { .offset = B2062_S_PDS_CTL3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */157 /* { .offset = B2062_S_BG_CTL0, .value_a = 0x0006, .value_g = 0x0006, .flags = 0, }, */158 /* { .offset = B2062_S_BG_CTL1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */159 /* { .offset = B2062_S_BG_CTL2, .value_a = 0x0011, .value_g = 0x0011, .flags = 0, }, */160 { .offset = B2062_S_LGENG_CTL0, .value_a = 0x00F8, .value_g = 0x00D8, .flags = B206X_FLAG_A | B206X_FLAG_G, },161 { .offset = B2062_S_LGENG_CTL1, .value_a = 0x003C, .value_g = 0x0024, .flags = B206X_FLAG_A | B206X_FLAG_G, },162 /* { .offset = B2062_S_LGENG_CTL2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */163 /* { .offset = B2062_S_LGENG_CTL3, .value_a = 0x0041, .value_g = 0x0041, .flags = 0, }, */164 /* { .offset = B2062_S_LGENG_CTL4, .value_a = 0x0002, .value_g = 0x0002, .flags = 0, }, */165 /* { .offset = B2062_S_LGENG_CTL5, .value_a = 0x0033, .value_g = 0x0033, .flags = 0, }, */166 /* { .offset = B2062_S_LGENG_CTL6, .value_a = 0x0022, .value_g = 0x0022, .flags = 0, }, */167 /* { .offset = B2062_S_LGENG_CTL7, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */168 { .offset = B2062_S_LGENG_CTL8, .value_a = 0x0088, .value_g = 0x0080, .flags = B206X_FLAG_A | B206X_FLAG_G, },169 /* { .offset = B2062_S_LGENG_CTL9, .value_a = 0x0088, .value_g = 0x0088, .flags = 0, }, */170 { .offset = B2062_S_LGENG_CTL10, .value_a = 0x0088, .value_g = 0x0080, .flags = B206X_FLAG_A | B206X_FLAG_G, },171 /* { .offset = B2062_S_LGENG_CTL11, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */172 /* { .offset = B2062_S_REFPLL_CTL0, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */173 /* { .offset = B2062_S_REFPLL_CTL1, .value_a = 0x0007, .value_g = 0x0007, .flags = 0, }, */174 /* { .offset = B2062_S_REFPLL_CTL2, .value_a = 0x00AF, .value_g = 0x00AF, .flags = 0, }, */175 /* { .offset = B2062_S_REFPLL_CTL3, .value_a = 0x0012, .value_g = 0x0012, .flags = 0, }, */176 /* { .offset = B2062_S_REFPLL_CTL4, .value_a = 0x000B, .value_g = 0x000B, .flags = 0, }, */177 /* { .offset = B2062_S_REFPLL_CTL5, .value_a = 0x005F, .value_g = 0x005F, .flags = 0, }, */178 /* { .offset = B2062_S_REFPLL_CTL6, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */179 /* { .offset = B2062_S_REFPLL_CTL7, .value_a = 0x0040, .value_g = 0x0040, .flags = 0, }, */180 /* { .offset = B2062_S_REFPLL_CTL8, .value_a = 0x0052, .value_g = 0x0052, .flags = 0, }, */181 /* { .offset = B2062_S_REFPLL_CTL9, .value_a = 0x0026, .value_g = 0x0026, .flags = 0, }, */182 /* { .offset = B2062_S_REFPLL_CTL10, .value_a = 0x0003, .value_g = 0x0003, .flags = 0, }, */183 /* { .offset = B2062_S_REFPLL_CTL11, .value_a = 0x0036, .value_g = 0x0036, .flags = 0, }, */184 /* { .offset = B2062_S_REFPLL_CTL12, .value_a = 0x0057, .value_g = 0x0057, .flags = 0, }, */185 /* { .offset = B2062_S_REFPLL_CTL13, .value_a = 0x0011, .value_g = 0x0011, .flags = 0, }, */186 /* { .offset = B2062_S_REFPLL_CTL14, .value_a = 0x0075, .value_g = 0x0075, .flags = 0, }, */187 /* { .offset = B2062_S_REFPLL_CTL15, .value_a = 0x00B4, .value_g = 0x00B4, .flags = 0, }, */188 /* { .offset = B2062_S_REFPLL_CTL16, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */189 { .offset = B2062_S_RFPLL_CTL0, .value_a = 0x0098, .value_g = 0x0098, .flags = B206X_FLAG_A | B206X_FLAG_G, },190 { .offset = B2062_S_RFPLL_CTL1, .value_a = 0x0010, .value_g = 0x0010, .flags = B206X_FLAG_A | B206X_FLAG_G, },191 /* { .offset = B2062_S_RFPLL_CTL2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */192 /* { .offset = B2062_S_RFPLL_CTL3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */193 /* { .offset = B2062_S_RFPLL_CTL4, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */194 { .offset = B2062_S_RFPLL_CTL5, .value_a = 0x0043, .value_g = 0x0043, .flags = B206X_FLAG_A | B206X_FLAG_G, },195 { .offset = B2062_S_RFPLL_CTL6, .value_a = 0x0047, .value_g = 0x0047, .flags = B206X_FLAG_A | B206X_FLAG_G, },196 { .offset = B2062_S_RFPLL_CTL7, .value_a = 0x000C, .value_g = 0x000C, .flags = B206X_FLAG_A | B206X_FLAG_G, },197 { .offset = B2062_S_RFPLL_CTL8, .value_a = 0x0011, .value_g = 0x0011, .flags = B206X_FLAG_A | B206X_FLAG_G, },198 { .offset = B2062_S_RFPLL_CTL9, .value_a = 0x0011, .value_g = 0x0011, .flags = B206X_FLAG_A | B206X_FLAG_G, },199 { .offset = B2062_S_RFPLL_CTL10, .value_a = 0x000E, .value_g = 0x000E, .flags = B206X_FLAG_A | B206X_FLAG_G, },200 { .offset = B2062_S_RFPLL_CTL11, .value_a = 0x0008, .value_g = 0x0008, .flags = B206X_FLAG_A | B206X_FLAG_G, },201 { .offset = B2062_S_RFPLL_CTL12, .value_a = 0x0033, .value_g = 0x0033, .flags = B206X_FLAG_A | B206X_FLAG_G, },202 { .offset = B2062_S_RFPLL_CTL13, .value_a = 0x000A, .value_g = 0x000A, .flags = B206X_FLAG_A | B206X_FLAG_G, },203 { .offset = B2062_S_RFPLL_CTL14, .value_a = 0x0006, .value_g = 0x0006, .flags = B206X_FLAG_A | B206X_FLAG_G, },204 /* { .offset = B2062_S_RFPLL_CTL15, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */205 /* { .offset = B2062_S_RFPLL_CTL16, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */206 /* { .offset = B2062_S_RFPLL_CTL17, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */207 { .offset = B2062_S_RFPLL_CTL18, .value_a = 0x003E, .value_g = 0x003E, .flags = B206X_FLAG_A | B206X_FLAG_G, },208 { .offset = B2062_S_RFPLL_CTL19, .value_a = 0x0013, .value_g = 0x0013, .flags = B206X_FLAG_A | B206X_FLAG_G, },209 /* { .offset = B2062_S_RFPLL_CTL20, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */210 { .offset = B2062_S_RFPLL_CTL21, .value_a = 0x0062, .value_g = 0x0062, .flags = B206X_FLAG_A | B206X_FLAG_G, },211 { .offset = B2062_S_RFPLL_CTL22, .value_a = 0x0007, .value_g = 0x0007, .flags = B206X_FLAG_A | B206X_FLAG_G, },212 { .offset = B2062_S_RFPLL_CTL23, .value_a = 0x0016, .value_g = 0x0016, .flags = B206X_FLAG_A | B206X_FLAG_G, },213 { .offset = B2062_S_RFPLL_CTL24, .value_a = 0x005C, .value_g = 0x005C, .flags = B206X_FLAG_A | B206X_FLAG_G, },214 { .offset = B2062_S_RFPLL_CTL25, .value_a = 0x0095, .value_g = 0x0095, .flags = B206X_FLAG_A | B206X_FLAG_G, },215 /* { .offset = B2062_S_RFPLL_CTL26, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */216 /* { .offset = B2062_S_RFPLL_CTL27, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */217 /* { .offset = B2062_S_RFPLL_CTL28, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */218 /* { .offset = B2062_S_RFPLL_CTL29, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */219 { .offset = B2062_S_RFPLL_CTL30, .value_a = 0x00A0, .value_g = 0x00A0, .flags = B206X_FLAG_A | B206X_FLAG_G, },220 { .offset = B2062_S_RFPLL_CTL31, .value_a = 0x0004, .value_g = 0x0004, .flags = B206X_FLAG_A | B206X_FLAG_G, },221 /* { .offset = B2062_S_RFPLL_CTL32, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */222 { .offset = B2062_S_RFPLL_CTL33, .value_a = 0x00CC, .value_g = 0x00CC, .flags = B206X_FLAG_A | B206X_FLAG_G, },223 { .offset = B2062_S_RFPLL_CTL34, .value_a = 0x0007, .value_g = 0x0007, .flags = B206X_FLAG_A | B206X_FLAG_G, },224 /* { .offset = B2062_S_RXG_CNT0, .value_a = 0x0010, .value_g = 0x0010, .flags = 0, }, */225 /* { .offset = B2062_S_RXG_CNT1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */226 /* { .offset = B2062_S_RXG_CNT2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */227 /* { .offset = B2062_S_RXG_CNT3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */228 /* { .offset = B2062_S_RXG_CNT4, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */229 /* { .offset = B2062_S_RXG_CNT5, .value_a = 0x0055, .value_g = 0x0055, .flags = 0, }, */230 /* { .offset = B2062_S_RXG_CNT6, .value_a = 0x0055, .value_g = 0x0055, .flags = 0, }, */231 /* { .offset = B2062_S_RXG_CNT7, .value_a = 0x0005, .value_g = 0x0005, .flags = 0, }, */232 { .offset = B2062_S_RXG_CNT8, .value_a = 0x000F, .value_g = 0x000F, .flags = B206X_FLAG_A, },233 /* { .offset = B2062_S_RXG_CNT9, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */234 /* { .offset = B2062_S_RXG_CNT10, .value_a = 0x0055, .value_g = 0x0055, .flags = 0, }, */235 /* { .offset = B2062_S_RXG_CNT11, .value_a = 0x0066, .value_g = 0x0066, .flags = 0, }, */236 /* { .offset = B2062_S_RXG_CNT12, .value_a = 0x0055, .value_g = 0x0055, .flags = 0, }, */237 /* { .offset = B2062_S_RXG_CNT13, .value_a = 0x0044, .value_g = 0x0044, .flags = 0, }, */238 /* { .offset = B2062_S_RXG_CNT14, .value_a = 0x00A0, .value_g = 0x00A0, .flags = 0, }, */239 /* { .offset = B2062_S_RXG_CNT15, .value_a = 0x0004, .value_g = 0x0004, .flags = 0, }, */240 /* { .offset = B2062_S_RXG_CNT16, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */241 /* { .offset = B2062_S_RXG_CNT17, .value_a = 0x0055, .value_g = 0x0055, .flags = 0, }, */242};243 244static const struct b206x_init_tab_entry b2063_init_tab[] = {245 { .offset = B2063_COMM1, .value_a = 0x0000, .value_g = 0x0000, .flags = B206X_FLAG_G, },246 /* { .offset = B2063_COMM2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */247 /* { .offset = B2063_COMM3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */248 /* { .offset = B2063_COMM4, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */249 /* { .offset = B2063_COMM5, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */250 /* { .offset = B2063_COMM6, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */251 /* { .offset = B2063_COMM7, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */252 /* { .offset = B2063_COMM8, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */253 /* { .offset = B2063_COMM9, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */254 { .offset = B2063_COMM10, .value_a = 0x0001, .value_g = 0x0000, .flags = B206X_FLAG_A, },255 /* { .offset = B2063_COMM11, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */256 /* { .offset = B2063_COMM12, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */257 /* { .offset = B2063_COMM13, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */258 /* { .offset = B2063_COMM14, .value_a = 0x0006, .value_g = 0x0006, .flags = 0, }, */259 /* { .offset = B2063_COMM15, .value_a = 0x000f, .value_g = 0x000f, .flags = 0, }, */260 { .offset = B2063_COMM16, .value_a = 0x0000, .value_g = 0x0000, .flags = B206X_FLAG_G, },261 { .offset = B2063_COMM17, .value_a = 0x0000, .value_g = 0x0000, .flags = B206X_FLAG_G, },262 { .offset = B2063_COMM18, .value_a = 0x0000, .value_g = 0x0000, .flags = B206X_FLAG_G, },263 { .offset = B2063_COMM19, .value_a = 0x0000, .value_g = 0x0000, .flags = B206X_FLAG_G, },264 { .offset = B2063_COMM20, .value_a = 0x0000, .value_g = 0x0000, .flags = B206X_FLAG_G, },265 { .offset = B2063_COMM21, .value_a = 0x0000, .value_g = 0x0000, .flags = B206X_FLAG_G, },266 { .offset = B2063_COMM22, .value_a = 0x0000, .value_g = 0x0000, .flags = B206X_FLAG_G, },267 { .offset = B2063_COMM23, .value_a = 0x0000, .value_g = 0x0000, .flags = B206X_FLAG_G, },268 { .offset = B2063_COMM24, .value_a = 0x0000, .value_g = 0x0000, .flags = B206X_FLAG_G, },269 /* { .offset = B2063_PWR_SWITCH_CTL, .value_a = 0x007f, .value_g = 0x007f, .flags = 0, }, */270 /* { .offset = B2063_PLL_SP1, .value_a = 0x003f, .value_g = 0x003f, .flags = 0, }, */271 /* { .offset = B2063_PLL_SP2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */272 { .offset = B2063_LOGEN_SP1, .value_a = 0x00e8, .value_g = 0x00d4, .flags = B206X_FLAG_A | B206X_FLAG_G, },273 { .offset = B2063_LOGEN_SP2, .value_a = 0x00a7, .value_g = 0x0053, .flags = B206X_FLAG_A | B206X_FLAG_G, },274 /* { .offset = B2063_LOGEN_SP3, .value_a = 0x00ff, .value_g = 0x00ff, .flags = 0, }, */275 { .offset = B2063_LOGEN_SP4, .value_a = 0x00f0, .value_g = 0x000f, .flags = B206X_FLAG_A | B206X_FLAG_G, },276 /* { .offset = B2063_LOGEN_SP5, .value_a = 0x0001, .value_g = 0x0001, .flags = 0, }, */277 { .offset = B2063_G_RX_SP1, .value_a = 0x001f, .value_g = 0x005e, .flags = B206X_FLAG_G, },278 { .offset = B2063_G_RX_SP2, .value_a = 0x007f, .value_g = 0x007e, .flags = B206X_FLAG_G, },279 { .offset = B2063_G_RX_SP3, .value_a = 0x0030, .value_g = 0x00f0, .flags = B206X_FLAG_G, },280 /* { .offset = B2063_G_RX_SP4, .value_a = 0x0035, .value_g = 0x0035, .flags = 0, }, */281 /* { .offset = B2063_G_RX_SP5, .value_a = 0x003f, .value_g = 0x003f, .flags = 0, }, */282 /* { .offset = B2063_G_RX_SP6, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */283 { .offset = B2063_G_RX_SP7, .value_a = 0x007f, .value_g = 0x007f, .flags = B206X_FLAG_A | B206X_FLAG_G, },284 /* { .offset = B2063_G_RX_SP8, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */285 /* { .offset = B2063_G_RX_SP9, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */286 { .offset = B2063_G_RX_SP10, .value_a = 0x000c, .value_g = 0x000c, .flags = B206X_FLAG_A | B206X_FLAG_G, },287 /* { .offset = B2063_G_RX_SP11, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */288 { .offset = B2063_A_RX_SP1, .value_a = 0x003c, .value_g = 0x003f, .flags = B206X_FLAG_A, },289 { .offset = B2063_A_RX_SP2, .value_a = 0x00fc, .value_g = 0x00fe, .flags = B206X_FLAG_A, },290 /* { .offset = B2063_A_RX_SP3, .value_a = 0x00ff, .value_g = 0x00ff, .flags = 0, }, */291 /* { .offset = B2063_A_RX_SP4, .value_a = 0x00ff, .value_g = 0x00ff, .flags = 0, }, */292 /* { .offset = B2063_A_RX_SP5, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */293 /* { .offset = B2063_A_RX_SP6, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */294 { .offset = B2063_A_RX_SP7, .value_a = 0x0008, .value_g = 0x0008, .flags = B206X_FLAG_A | B206X_FLAG_G, },295 /* { .offset = B2063_RX_BB_SP1, .value_a = 0x000f, .value_g = 0x000f, .flags = 0, }, */296 /* { .offset = B2063_RX_BB_SP2, .value_a = 0x0022, .value_g = 0x0022, .flags = 0, }, */297 /* { .offset = B2063_RX_BB_SP3, .value_a = 0x00a8, .value_g = 0x00a8, .flags = 0, }, */298 { .offset = B2063_RX_BB_SP4, .value_a = 0x0060, .value_g = 0x0060, .flags = B206X_FLAG_A | B206X_FLAG_G, },299 /* { .offset = B2063_RX_BB_SP5, .value_a = 0x0011, .value_g = 0x0011, .flags = 0, }, */300 /* { .offset = B2063_RX_BB_SP6, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */301 /* { .offset = B2063_RX_BB_SP7, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */302 { .offset = B2063_RX_BB_SP8, .value_a = 0x0030, .value_g = 0x0030, .flags = B206X_FLAG_A | B206X_FLAG_G, },303 /* { .offset = B2063_TX_RF_SP1, .value_a = 0x0001, .value_g = 0x0001, .flags = 0, }, */304 /* { .offset = B2063_TX_RF_SP2, .value_a = 0x0003, .value_g = 0x0003, .flags = 0, }, */305 { .offset = B2063_TX_RF_SP3, .value_a = 0x000c, .value_g = 0x000b, .flags = B206X_FLAG_A | B206X_FLAG_G, },306 { .offset = B2063_TX_RF_SP4, .value_a = 0x0010, .value_g = 0x000f, .flags = B206X_FLAG_A | B206X_FLAG_G, },307 /* { .offset = B2063_TX_RF_SP5, .value_a = 0x000f, .value_g = 0x000f, .flags = 0, }, */308 /* { .offset = B2063_TX_RF_SP6, .value_a = 0x0080, .value_g = 0x0080, .flags = 0, }, */309 /* { .offset = B2063_TX_RF_SP7, .value_a = 0x0068, .value_g = 0x0068, .flags = 0, }, */310 /* { .offset = B2063_TX_RF_SP8, .value_a = 0x0068, .value_g = 0x0068, .flags = 0, }, */311 /* { .offset = B2063_TX_RF_SP9, .value_a = 0x0080, .value_g = 0x0080, .flags = 0, }, */312 /* { .offset = B2063_TX_RF_SP10, .value_a = 0x00ff, .value_g = 0x00ff, .flags = 0, }, */313 /* { .offset = B2063_TX_RF_SP11, .value_a = 0x0003, .value_g = 0x0003, .flags = 0, }, */314 /* { .offset = B2063_TX_RF_SP12, .value_a = 0x0038, .value_g = 0x0038, .flags = 0, }, */315 /* { .offset = B2063_TX_RF_SP13, .value_a = 0x00ff, .value_g = 0x00ff, .flags = 0, }, */316 /* { .offset = B2063_TX_RF_SP14, .value_a = 0x0038, .value_g = 0x0038, .flags = 0, }, */317 /* { .offset = B2063_TX_RF_SP15, .value_a = 0x00c0, .value_g = 0x00c0, .flags = 0, }, */318 /* { .offset = B2063_TX_RF_SP16, .value_a = 0x00ff, .value_g = 0x00ff, .flags = 0, }, */319 /* { .offset = B2063_TX_RF_SP17, .value_a = 0x00ff, .value_g = 0x00ff, .flags = 0, }, */320 { .offset = B2063_PA_SP1, .value_a = 0x003d, .value_g = 0x00fd, .flags = B206X_FLAG_A | B206X_FLAG_G, },321 /* { .offset = B2063_PA_SP2, .value_a = 0x000c, .value_g = 0x000c, .flags = 0, }, */322 /* { .offset = B2063_PA_SP3, .value_a = 0x0096, .value_g = 0x0096, .flags = 0, }, */323 /* { .offset = B2063_PA_SP4, .value_a = 0x005a, .value_g = 0x005a, .flags = 0, }, */324 /* { .offset = B2063_PA_SP5, .value_a = 0x007f, .value_g = 0x007f, .flags = 0, }, */325 /* { .offset = B2063_PA_SP6, .value_a = 0x007f, .value_g = 0x007f, .flags = 0, }, */326 /* { .offset = B2063_PA_SP7, .value_a = 0x0033, .value_g = 0x0033, .flags = 0, }, */327 { .offset = B2063_TX_BB_SP1, .value_a = 0x0002, .value_g = 0x0002, .flags = B206X_FLAG_A | B206X_FLAG_G, },328 /* { .offset = B2063_TX_BB_SP2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */329 /* { .offset = B2063_TX_BB_SP3, .value_a = 0x0030, .value_g = 0x0030, .flags = 0, }, */330 /* { .offset = B2063_REG_SP1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */331 { .offset = B2063_BANDGAP_CTL1, .value_a = 0x0056, .value_g = 0x0056, .flags = B206X_FLAG_A | B206X_FLAG_G, },332 /* { .offset = B2063_BANDGAP_CTL2, .value_a = 0x0006, .value_g = 0x0006, .flags = 0, }, */333 /* { .offset = B2063_LPO_CTL1, .value_a = 0x000e, .value_g = 0x000e, .flags = 0, }, */334 /* { .offset = B2063_RC_CALIB_CTL1, .value_a = 0x007e, .value_g = 0x007e, .flags = 0, }, */335 /* { .offset = B2063_RC_CALIB_CTL2, .value_a = 0x0015, .value_g = 0x0015, .flags = 0, }, */336 /* { .offset = B2063_RC_CALIB_CTL3, .value_a = 0x000f, .value_g = 0x000f, .flags = 0, }, */337 /* { .offset = B2063_RC_CALIB_CTL4, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */338 /* { .offset = B2063_RC_CALIB_CTL5, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */339 /* { .offset = B2063_RC_CALIB_CTL6, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */340 /* { .offset = B2063_RC_CALIB_CTL7, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */341 /* { .offset = B2063_RC_CALIB_CTL8, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */342 /* { .offset = B2063_RC_CALIB_CTL9, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */343 /* { .offset = B2063_RC_CALIB_CTL10, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */344 /* { .offset = B2063_PLL_JTAG_CALNRST, .value_a = 0x0004, .value_g = 0x0004, .flags = 0, }, */345 /* { .offset = B2063_PLL_JTAG_IN_PLL1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */346 /* { .offset = B2063_PLL_JTAG_IN_PLL2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */347 /* { .offset = B2063_PLL_JTAG_PLL_CP1, .value_a = 0x00cf, .value_g = 0x00cf, .flags = 0, }, */348 /* { .offset = B2063_PLL_JTAG_PLL_CP2, .value_a = 0x0059, .value_g = 0x0059, .flags = 0, }, */349 /* { .offset = B2063_PLL_JTAG_PLL_CP3, .value_a = 0x0007, .value_g = 0x0007, .flags = 0, }, */350 /* { .offset = B2063_PLL_JTAG_PLL_CP4, .value_a = 0x0042, .value_g = 0x0042, .flags = 0, }, */351 /* { .offset = B2063_PLL_JTAG_PLL_CTL1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */352 /* { .offset = B2063_PLL_JTAG_PLL_LF1, .value_a = 0x00db, .value_g = 0x00db, .flags = 0, }, */353 /* { .offset = B2063_PLL_JTAG_PLL_LF2, .value_a = 0x0094, .value_g = 0x0094, .flags = 0, }, */354 /* { .offset = B2063_PLL_JTAG_PLL_LF3, .value_a = 0x0028, .value_g = 0x0028, .flags = 0, }, */355 /* { .offset = B2063_PLL_JTAG_PLL_LF4, .value_a = 0x0063, .value_g = 0x0063, .flags = 0, }, */356 /* { .offset = B2063_PLL_JTAG_PLL_SG1, .value_a = 0x0007, .value_g = 0x0007, .flags = 0, }, */357 /* { .offset = B2063_PLL_JTAG_PLL_SG2, .value_a = 0x00d3, .value_g = 0x00d3, .flags = 0, }, */358 /* { .offset = B2063_PLL_JTAG_PLL_SG3, .value_a = 0x00b1, .value_g = 0x00b1, .flags = 0, }, */359 /* { .offset = B2063_PLL_JTAG_PLL_SG4, .value_a = 0x003b, .value_g = 0x003b, .flags = 0, }, */360 /* { .offset = B2063_PLL_JTAG_PLL_SG5, .value_a = 0x0006, .value_g = 0x0006, .flags = 0, }, */361 /* { .offset = B2063_PLL_JTAG_PLL_VCO1, .value_a = 0x0058, .value_g = 0x0058, .flags = 0, }, */362 { .offset = B2063_PLL_JTAG_PLL_VCO2, .value_a = 0x00f7, .value_g = 0x00f7, .flags = B206X_FLAG_A | B206X_FLAG_G, },363 /* { .offset = B2063_PLL_JTAG_PLL_VCO_CALIB1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */364 /* { .offset = B2063_PLL_JTAG_PLL_VCO_CALIB2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */365 /* { .offset = B2063_PLL_JTAG_PLL_VCO_CALIB3, .value_a = 0x0002, .value_g = 0x0002, .flags = 0, }, */366 /* { .offset = B2063_PLL_JTAG_PLL_VCO_CALIB4, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */367 /* { .offset = B2063_PLL_JTAG_PLL_VCO_CALIB5, .value_a = 0x0009, .value_g = 0x0009, .flags = 0, }, */368 /* { .offset = B2063_PLL_JTAG_PLL_VCO_CALIB6, .value_a = 0x0005, .value_g = 0x0005, .flags = 0, }, */369 /* { .offset = B2063_PLL_JTAG_PLL_VCO_CALIB7, .value_a = 0x0016, .value_g = 0x0016, .flags = 0, }, */370 /* { .offset = B2063_PLL_JTAG_PLL_VCO_CALIB8, .value_a = 0x006b, .value_g = 0x006b, .flags = 0, }, */371 /* { .offset = B2063_PLL_JTAG_PLL_VCO_CALIB9, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */372 /* { .offset = B2063_PLL_JTAG_PLL_VCO_CALIB10, .value_a = 0x00b3, .value_g = 0x00b3, .flags = 0, }, */373 /* { .offset = B2063_PLL_JTAG_PLL_XTAL_12, .value_a = 0x0004, .value_g = 0x0004, .flags = 0, }, */374 /* { .offset = B2063_PLL_JTAG_PLL_XTAL3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */375 /* { .offset = B2063_LOGEN_ACL1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */376 /* { .offset = B2063_LOGEN_ACL2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */377 /* { .offset = B2063_LOGEN_ACL3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */378 /* { .offset = B2063_LOGEN_ACL4, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */379 /* { .offset = B2063_LOGEN_ACL5, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */380 /* { .offset = B2063_LO_CALIB_INPUTS, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */381 /* { .offset = B2063_LO_CALIB_CTL1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */382 /* { .offset = B2063_LO_CALIB_CTL2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */383 /* { .offset = B2063_LO_CALIB_CTL3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */384 /* { .offset = B2063_LO_CALIB_WAITCNT, .value_a = 0x0002, .value_g = 0x0002, .flags = 0, }, */385 /* { .offset = B2063_LO_CALIB_OVR1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */386 /* { .offset = B2063_LO_CALIB_OVR2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */387 /* { .offset = B2063_LO_CALIB_OVAL1, .value_a = 0x0066, .value_g = 0x0066, .flags = 0, }, */388 /* { .offset = B2063_LO_CALIB_OVAL2, .value_a = 0x0066, .value_g = 0x0066, .flags = 0, }, */389 /* { .offset = B2063_LO_CALIB_OVAL3, .value_a = 0x0066, .value_g = 0x0066, .flags = 0, }, */390 /* { .offset = B2063_LO_CALIB_OVAL4, .value_a = 0x0066, .value_g = 0x0066, .flags = 0, }, */391 /* { .offset = B2063_LO_CALIB_OVAL5, .value_a = 0x0066, .value_g = 0x0066, .flags = 0, }, */392 /* { .offset = B2063_LO_CALIB_OVAL6, .value_a = 0x0066, .value_g = 0x0066, .flags = 0, }, */393 /* { .offset = B2063_LO_CALIB_OVAL7, .value_a = 0x0066, .value_g = 0x0066, .flags = 0, }, */394 /* { .offset = B2063_LO_CALIB_CALVLD1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */395 /* { .offset = B2063_LO_CALIB_CALVLD2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */396 /* { .offset = B2063_LO_CALIB_CVAL1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */397 /* { .offset = B2063_LO_CALIB_CVAL2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */398 /* { .offset = B2063_LO_CALIB_CVAL3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */399 /* { .offset = B2063_LO_CALIB_CVAL4, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */400 /* { .offset = B2063_LO_CALIB_CVAL5, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */401 /* { .offset = B2063_LO_CALIB_CVAL6, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */402 /* { .offset = B2063_LO_CALIB_CVAL7, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */403 /* { .offset = B2063_LOGEN_CALIB_EN, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */404 /* { .offset = B2063_LOGEN_PEAKDET1, .value_a = 0x00ff, .value_g = 0x00ff, .flags = 0, }, */405 /* { .offset = B2063_LOGEN_RCCR1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */406 /* { .offset = B2063_LOGEN_VCOBUF1, .value_a = 0x0060, .value_g = 0x0060, .flags = 0, }, */407 /* { .offset = B2063_LOGEN_MIXER1, .value_a = 0x0066, .value_g = 0x0066, .flags = 0, }, */408 /* { .offset = B2063_LOGEN_MIXER2, .value_a = 0x000c, .value_g = 0x000c, .flags = 0, }, */409 /* { .offset = B2063_LOGEN_BUF1, .value_a = 0x0066, .value_g = 0x0066, .flags = 0, }, */410 /* { .offset = B2063_LOGEN_BUF2, .value_a = 0x000c, .value_g = 0x000c, .flags = 0, }, */411 /* { .offset = B2063_LOGEN_DIV1, .value_a = 0x0001, .value_g = 0x0001, .flags = 0, }, */412 /* { .offset = B2063_LOGEN_DIV2, .value_a = 0x0066, .value_g = 0x0066, .flags = 0, }, */413 /* { .offset = B2063_LOGEN_DIV3, .value_a = 0x0066, .value_g = 0x0066, .flags = 0, }, */414 /* { .offset = B2063_LOGEN_CBUFRX1, .value_a = 0x0066, .value_g = 0x0066, .flags = 0, }, */415 /* { .offset = B2063_LOGEN_CBUFRX2, .value_a = 0x0066, .value_g = 0x0066, .flags = 0, }, */416 /* { .offset = B2063_LOGEN_CBUFTX1, .value_a = 0x0066, .value_g = 0x0066, .flags = 0, }, */417 /* { .offset = B2063_LOGEN_CBUFTX2, .value_a = 0x0066, .value_g = 0x0066, .flags = 0, }, */418 /* { .offset = B2063_LOGEN_IDAC1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */419 /* { .offset = B2063_LOGEN_SPARE1, .value_a = 0x0001, .value_g = 0x0001, .flags = 0, }, */420 /* { .offset = B2063_LOGEN_SPARE2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */421 /* { .offset = B2063_LOGEN_SPARE3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */422 /* { .offset = B2063_G_RX_1ST1, .value_a = 0x0033, .value_g = 0x0033, .flags = 0, }, */423 /* { .offset = B2063_G_RX_1ST2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */424 /* { .offset = B2063_G_RX_1ST3, .value_a = 0x0005, .value_g = 0x0005, .flags = 0, }, */425 /* { .offset = B2063_G_RX_2ND1, .value_a = 0x0030, .value_g = 0x0030, .flags = 0, }, */426 /* { .offset = B2063_G_RX_2ND2, .value_a = 0x0055, .value_g = 0x0055, .flags = 0, }, */427 /* { .offset = B2063_G_RX_2ND3, .value_a = 0x0033, .value_g = 0x0033, .flags = 0, }, */428 /* { .offset = B2063_G_RX_2ND4, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */429 /* { .offset = B2063_G_RX_2ND5, .value_a = 0x0033, .value_g = 0x0033, .flags = 0, }, */430 /* { .offset = B2063_G_RX_2ND6, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */431 /* { .offset = B2063_G_RX_2ND7, .value_a = 0x0035, .value_g = 0x0035, .flags = 0, }, */432 /* { .offset = B2063_G_RX_2ND8, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */433 /* { .offset = B2063_G_RX_PS1, .value_a = 0x0033, .value_g = 0x0033, .flags = 0, }, */434 /* { .offset = B2063_G_RX_PS2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */435 /* { .offset = B2063_G_RX_PS3, .value_a = 0x0033, .value_g = 0x0033, .flags = 0, }, */436 /* { .offset = B2063_G_RX_PS4, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */437 /* { .offset = B2063_G_RX_PS5, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */438 /* { .offset = B2063_G_RX_MIX1, .value_a = 0x0044, .value_g = 0x0044, .flags = 0, }, */439 /* { .offset = B2063_G_RX_MIX2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */440 { .offset = B2063_G_RX_MIX3, .value_a = 0x0071, .value_g = 0x0071, .flags = B206X_FLAG_A | B206X_FLAG_G, },441 { .offset = B2063_G_RX_MIX4, .value_a = 0x0071, .value_g = 0x0071, .flags = B206X_FLAG_A | B206X_FLAG_G, },442 /* { .offset = B2063_G_RX_MIX5, .value_a = 0x0003, .value_g = 0x0003, .flags = 0, }, */443 /* { .offset = B2063_G_RX_MIX6, .value_a = 0x0088, .value_g = 0x0088, .flags = 0, }, */444 /* { .offset = B2063_G_RX_MIX7, .value_a = 0x0044, .value_g = 0x0044, .flags = 0, }, */445 /* { .offset = B2063_G_RX_MIX8, .value_a = 0x0001, .value_g = 0x0001, .flags = 0, }, */446 /* { .offset = B2063_G_RX_PDET1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */447 /* { .offset = B2063_G_RX_SPARES1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */448 /* { .offset = B2063_G_RX_SPARES2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */449 /* { .offset = B2063_G_RX_SPARES3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */450 /* { .offset = B2063_A_RX_1ST1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */451 { .offset = B2063_A_RX_1ST2, .value_a = 0x00f0, .value_g = 0x0030, .flags = B206X_FLAG_A, },452 /* { .offset = B2063_A_RX_1ST3, .value_a = 0x0005, .value_g = 0x0005, .flags = 0, }, */453 /* { .offset = B2063_A_RX_1ST4, .value_a = 0x0033, .value_g = 0x0033, .flags = 0, }, */454 /* { .offset = B2063_A_RX_1ST5, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */455 /* { .offset = B2063_A_RX_2ND1, .value_a = 0x0005, .value_g = 0x0005, .flags = 0, }, */456 /* { .offset = B2063_A_RX_2ND2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */457 /* { .offset = B2063_A_RX_2ND3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */458 /* { .offset = B2063_A_RX_2ND4, .value_a = 0x0005, .value_g = 0x0005, .flags = 0, }, */459 /* { .offset = B2063_A_RX_2ND5, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */460 /* { .offset = B2063_A_RX_2ND6, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */461 /* { .offset = B2063_A_RX_2ND7, .value_a = 0x0005, .value_g = 0x0005, .flags = 0, }, */462 /* { .offset = B2063_A_RX_PS1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */463 /* { .offset = B2063_A_RX_PS2, .value_a = 0x0033, .value_g = 0x0033, .flags = 0, }, */464 /* { .offset = B2063_A_RX_PS3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */465 /* { .offset = B2063_A_RX_PS4, .value_a = 0x0033, .value_g = 0x0033, .flags = 0, }, */466 /* { .offset = B2063_A_RX_PS5, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */467 { .offset = B2063_A_RX_PS6, .value_a = 0x0077, .value_g = 0x0077, .flags = B206X_FLAG_A | B206X_FLAG_G, },468 /* { .offset = B2063_A_RX_MIX1, .value_a = 0x0088, .value_g = 0x0088, .flags = 0, }, */469 /* { .offset = B2063_A_RX_MIX2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */470 /* { .offset = B2063_A_RX_MIX3, .value_a = 0x0044, .value_g = 0x0044, .flags = 0, }, */471 { .offset = B2063_A_RX_MIX4, .value_a = 0x0003, .value_g = 0x0003, .flags = B206X_FLAG_A | B206X_FLAG_G, },472 { .offset = B2063_A_RX_MIX5, .value_a = 0x000f, .value_g = 0x000f, .flags = B206X_FLAG_A | B206X_FLAG_G, },473 { .offset = B2063_A_RX_MIX6, .value_a = 0x000f, .value_g = 0x000f, .flags = B206X_FLAG_A | B206X_FLAG_G, },474 /* { .offset = B2063_A_RX_MIX7, .value_a = 0x0044, .value_g = 0x0044, .flags = 0, }, */475 /* { .offset = B2063_A_RX_MIX8, .value_a = 0x0001, .value_g = 0x0001, .flags = 0, }, */476 /* { .offset = B2063_A_RX_PWRDET1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */477 /* { .offset = B2063_A_RX_SPARE1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */478 /* { .offset = B2063_A_RX_SPARE2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */479 /* { .offset = B2063_A_RX_SPARE3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */480 { .offset = B2063_RX_TIA_CTL1, .value_a = 0x0077, .value_g = 0x0077, .flags = B206X_FLAG_A | B206X_FLAG_G, },481 /* { .offset = B2063_RX_TIA_CTL2, .value_a = 0x0058, .value_g = 0x0058, .flags = 0, }, */482 { .offset = B2063_RX_TIA_CTL3, .value_a = 0x0077, .value_g = 0x0077, .flags = B206X_FLAG_A | B206X_FLAG_G, },483 /* { .offset = B2063_RX_TIA_CTL4, .value_a = 0x0058, .value_g = 0x0058, .flags = 0, }, */484 /* { .offset = B2063_RX_TIA_CTL5, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */485 /* { .offset = B2063_RX_TIA_CTL6, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */486 /* { .offset = B2063_RX_BB_CTL1, .value_a = 0x0074, .value_g = 0x0074, .flags = 0, }, */487 { .offset = B2063_RX_BB_CTL2, .value_a = 0x0004, .value_g = 0x0004, .flags = B206X_FLAG_A | B206X_FLAG_G, },488 /* { .offset = B2063_RX_BB_CTL3, .value_a = 0x00a2, .value_g = 0x00a2, .flags = 0, }, */489 /* { .offset = B2063_RX_BB_CTL4, .value_a = 0x00aa, .value_g = 0x00aa, .flags = 0, }, */490 /* { .offset = B2063_RX_BB_CTL5, .value_a = 0x0024, .value_g = 0x0024, .flags = 0, }, */491 /* { .offset = B2063_RX_BB_CTL6, .value_a = 0x00a9, .value_g = 0x00a9, .flags = 0, }, */492 /* { .offset = B2063_RX_BB_CTL7, .value_a = 0x0028, .value_g = 0x0028, .flags = 0, }, */493 /* { .offset = B2063_RX_BB_CTL8, .value_a = 0x0010, .value_g = 0x0010, .flags = 0, }, */494 /* { .offset = B2063_RX_BB_CTL9, .value_a = 0x0055, .value_g = 0x0055, .flags = 0, }, */495 /* { .offset = B2063_TX_RF_CTL1, .value_a = 0x0080, .value_g = 0x0080, .flags = 0, }, */496 /* { .offset = B2063_TX_RF_IDAC_LO_RF_I, .value_a = 0x0088, .value_g = 0x0088, .flags = 0, }, */497 /* { .offset = B2063_TX_RF_IDAC_LO_RF_Q, .value_a = 0x0088, .value_g = 0x0088, .flags = 0, }, */498 /* { .offset = B2063_TX_RF_IDAC_LO_BB_I, .value_a = 0x0088, .value_g = 0x0088, .flags = 0, }, */499 /* { .offset = B2063_TX_RF_IDAC_LO_BB_Q, .value_a = 0x0088, .value_g = 0x0088, .flags = 0, }, */500 /* { .offset = B2063_TX_RF_CTL2, .value_a = 0x0080, .value_g = 0x0080, .flags = 0, }, */501 /* { .offset = B2063_TX_RF_CTL3, .value_a = 0x0038, .value_g = 0x0038, .flags = 0, }, */502 /* { .offset = B2063_TX_RF_CTL4, .value_a = 0x00b8, .value_g = 0x00b8, .flags = 0, }, */503 /* { .offset = B2063_TX_RF_CTL5, .value_a = 0x0080, .value_g = 0x0080, .flags = 0, }, */504 /* { .offset = B2063_TX_RF_CTL6, .value_a = 0x0038, .value_g = 0x0038, .flags = 0, }, */505 /* { .offset = B2063_TX_RF_CTL7, .value_a = 0x0078, .value_g = 0x0078, .flags = 0, }, */506 /* { .offset = B2063_TX_RF_CTL8, .value_a = 0x00c0, .value_g = 0x00c0, .flags = 0, }, */507 /* { .offset = B2063_TX_RF_CTL9, .value_a = 0x0003, .value_g = 0x0003, .flags = 0, }, */508 /* { .offset = B2063_TX_RF_CTL10, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */509 /* { .offset = B2063_TX_RF_CTL14, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */510 /* { .offset = B2063_TX_RF_CTL15, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */511 { .offset = B2063_PA_CTL1, .value_a = 0x0000, .value_g = 0x0004, .flags = B206X_FLAG_A, },512 /* { .offset = B2063_PA_CTL2, .value_a = 0x000c, .value_g = 0x000c, .flags = 0, }, */513 /* { .offset = B2063_PA_CTL3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */514 /* { .offset = B2063_PA_CTL4, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */515 /* { .offset = B2063_PA_CTL5, .value_a = 0x0096, .value_g = 0x0096, .flags = 0, }, */516 /* { .offset = B2063_PA_CTL6, .value_a = 0x0077, .value_g = 0x0077, .flags = 0, }, */517 /* { .offset = B2063_PA_CTL7, .value_a = 0x005a, .value_g = 0x005a, .flags = 0, }, */518 /* { .offset = B2063_PA_CTL8, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */519 /* { .offset = B2063_PA_CTL9, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */520 /* { .offset = B2063_PA_CTL10, .value_a = 0x0021, .value_g = 0x0021, .flags = 0, }, */521 /* { .offset = B2063_PA_CTL11, .value_a = 0x0070, .value_g = 0x0070, .flags = 0, }, */522 /* { .offset = B2063_PA_CTL12, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */523 /* { .offset = B2063_PA_CTL13, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */524 /* { .offset = B2063_TX_BB_CTL1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */525 /* { .offset = B2063_TX_BB_CTL2, .value_a = 0x00b3, .value_g = 0x00b3, .flags = 0, }, */526 /* { .offset = B2063_TX_BB_CTL3, .value_a = 0x0055, .value_g = 0x0055, .flags = 0, }, */527 /* { .offset = B2063_TX_BB_CTL4, .value_a = 0x000b, .value_g = 0x000b, .flags = 0, }, */528 /* { .offset = B2063_GPIO_CTL1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */529 { .offset = B2063_VREG_CTL1, .value_a = 0x0003, .value_g = 0x0003, .flags = B206X_FLAG_A | B206X_FLAG_G, },530 /* { .offset = B2063_AMUX_CTL1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */531 /* { .offset = B2063_IQ_CALIB_GVAR, .value_a = 0x00b3, .value_g = 0x00b3, .flags = 0, }, */532 /* { .offset = B2063_IQ_CALIB_CTL1, .value_a = 0x0055, .value_g = 0x0055, .flags = 0, }, */533 /* { .offset = B2063_IQ_CALIB_CTL2, .value_a = 0x0030, .value_g = 0x0030, .flags = 0, }, */534 /* { .offset = B2063_TEMPSENSE_CTL1, .value_a = 0x0046, .value_g = 0x0046, .flags = 0, }, */535 /* { .offset = B2063_TEMPSENSE_CTL2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */536 /* { .offset = B2063_TX_RX_LOOPBACK1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */537 /* { .offset = B2063_TX_RX_LOOPBACK2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */538 /* { .offset = B2063_EXT_TSSI_CTL1, .value_a = 0x0021, .value_g = 0x0021, .flags = 0, }, */539 /* { .offset = B2063_EXT_TSSI_CTL2, .value_a = 0x0023, .value_g = 0x0023, .flags = 0, }, */540 /* { .offset = B2063_AFE_CTL , .value_a = 0x0002, .value_g = 0x0002, .flags = 0, }, */541};542 543void b2062_upload_init_table(struct b43_wldev *dev)544{545 const struct b206x_init_tab_entry *e;546 unsigned int i;547 548 for (i = 0; i < ARRAY_SIZE(b2062_init_tab); i++) {549 e = &b2062_init_tab[i];550 if (b43_current_band(dev->wl) == NL80211_BAND_2GHZ) {551 if (!(e->flags & B206X_FLAG_G))552 continue;553 b43_radio_write(dev, e->offset, e->value_g);554 } else {555 if (!(e->flags & B206X_FLAG_A))556 continue;557 b43_radio_write(dev, e->offset, e->value_a);558 }559 }560}561 562void b2063_upload_init_table(struct b43_wldev *dev)563{564 const struct b206x_init_tab_entry *e;565 unsigned int i;566 567 for (i = 0; i < ARRAY_SIZE(b2063_init_tab); i++) {568 e = &b2063_init_tab[i];569 if (b43_current_band(dev->wl) == NL80211_BAND_2GHZ) {570 if (!(e->flags & B206X_FLAG_G))571 continue;572 b43_radio_write(dev, e->offset, e->value_g);573 } else {574 if (!(e->flags & B206X_FLAG_A))575 continue;576 b43_radio_write(dev, e->offset, e->value_a);577 }578 }579}580 581u32 b43_lptab_read(struct b43_wldev *dev, u32 offset)582{583 u32 type, value;584 585 type = offset & B43_LPTAB_TYPEMASK;586 offset &= ~B43_LPTAB_TYPEMASK;587 B43_WARN_ON(offset > 0xFFFF);588 589 switch (type) {590 case B43_LPTAB_8BIT:591 b43_phy_write(dev, B43_LPPHY_TABLE_ADDR, offset);592 value = b43_phy_read(dev, B43_LPPHY_TABLEDATALO) & 0xFF;593 break;594 case B43_LPTAB_16BIT:595 b43_phy_write(dev, B43_LPPHY_TABLE_ADDR, offset);596 value = b43_phy_read(dev, B43_LPPHY_TABLEDATALO);597 break;598 case B43_LPTAB_32BIT:599 b43_phy_write(dev, B43_LPPHY_TABLE_ADDR, offset);600 value = b43_phy_read(dev, B43_LPPHY_TABLEDATAHI);601 value <<= 16;602 value |= b43_phy_read(dev, B43_LPPHY_TABLEDATALO);603 break;604 default:605 B43_WARN_ON(1);606 value = 0;607 }608 609 return value;610}611 612void b43_lptab_read_bulk(struct b43_wldev *dev, u32 offset,613 unsigned int nr_elements, void *_data)614{615 u32 type;616 u8 *data = _data;617 unsigned int i;618 619 type = offset & B43_LPTAB_TYPEMASK;620 offset &= ~B43_LPTAB_TYPEMASK;621 B43_WARN_ON(offset > 0xFFFF);622 623 b43_phy_write(dev, B43_LPPHY_TABLE_ADDR, offset);624 625 for (i = 0; i < nr_elements; i++) {626 switch (type) {627 case B43_LPTAB_8BIT:628 *data = b43_phy_read(dev, B43_LPPHY_TABLEDATALO) & 0xFF;629 data++;630 break;631 case B43_LPTAB_16BIT:632 *((u16 *)data) = b43_phy_read(dev, B43_LPPHY_TABLEDATALO);633 data += 2;634 break;635 case B43_LPTAB_32BIT:636 *((u32 *)data) = b43_phy_read(dev, B43_LPPHY_TABLEDATAHI);637 *((u32 *)data) <<= 16;638 *((u32 *)data) |= b43_phy_read(dev, B43_LPPHY_TABLEDATALO);639 data += 4;640 break;641 default:642 B43_WARN_ON(1);643 }644 }645}646 647void b43_lptab_write(struct b43_wldev *dev, u32 offset, u32 value)648{649 u32 type;650 651 type = offset & B43_LPTAB_TYPEMASK;652 offset &= ~B43_LPTAB_TYPEMASK;653 B43_WARN_ON(offset > 0xFFFF);654 655 switch (type) {656 case B43_LPTAB_8BIT:657 B43_WARN_ON(value & ~0xFF);658 b43_phy_write(dev, B43_LPPHY_TABLE_ADDR, offset);659 b43_phy_write(dev, B43_LPPHY_TABLEDATALO, value);660 break;661 case B43_LPTAB_16BIT:662 B43_WARN_ON(value & ~0xFFFF);663 b43_phy_write(dev, B43_LPPHY_TABLE_ADDR, offset);664 b43_phy_write(dev, B43_LPPHY_TABLEDATALO, value);665 break;666 case B43_LPTAB_32BIT:667 b43_phy_write(dev, B43_LPPHY_TABLE_ADDR, offset);668 b43_phy_write(dev, B43_LPPHY_TABLEDATAHI, value >> 16);669 b43_phy_write(dev, B43_LPPHY_TABLEDATALO, value);670 break;671 default:672 B43_WARN_ON(1);673 }674}675 676void b43_lptab_write_bulk(struct b43_wldev *dev, u32 offset,677 unsigned int nr_elements, const void *_data)678{679 u32 type, value;680 const u8 *data = _data;681 unsigned int i;682 683 type = offset & B43_LPTAB_TYPEMASK;684 offset &= ~B43_LPTAB_TYPEMASK;685 B43_WARN_ON(offset > 0xFFFF);686 687 b43_phy_write(dev, B43_LPPHY_TABLE_ADDR, offset);688 689 for (i = 0; i < nr_elements; i++) {690 switch (type) {691 case B43_LPTAB_8BIT:692 value = *data;693 data++;694 B43_WARN_ON(value & ~0xFF);695 b43_phy_write(dev, B43_LPPHY_TABLEDATALO, value);696 break;697 case B43_LPTAB_16BIT:698 value = *((u16 *)data);699 data += 2;700 B43_WARN_ON(value & ~0xFFFF);701 b43_phy_write(dev, B43_LPPHY_TABLEDATALO, value);702 break;703 case B43_LPTAB_32BIT:704 value = *((u32 *)data);705 data += 4;706 b43_phy_write(dev, B43_LPPHY_TABLEDATAHI, value >> 16);707 b43_phy_write(dev, B43_LPPHY_TABLEDATALO, value);708 break;709 default:710 B43_WARN_ON(1);711 }712 }713}714 715static const u8 lpphy_min_sig_sq_table[] = {716 0xde, 0xdc, 0xda, 0xd8, 0xd6, 0xd4, 0xd2, 0xcf, 0xcd,717 0xca, 0xc7, 0xc4, 0xc1, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe,718 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0x00,719 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe,720 0xbe, 0xbe, 0xbe, 0xbe, 0xc1, 0xc4, 0xc7, 0xca, 0xcd,721 0xcf, 0xd2, 0xd4, 0xd6, 0xd8, 0xda, 0xdc, 0xde,722};723 724static const u16 lpphy_rev01_noise_scale_table[] = {725 0xa4a4, 0xa4a4, 0xa4a4, 0xa4a4, 0xa4a4, 0xa4a4, 0xa4a4, 0xa4a4, 0xa4a4,726 0xa4a4, 0xa4a4, 0xa4a4, 0xa4a4, 0xa400, 0xa4a4, 0xa4a4, 0xa4a4, 0xa4a4,727 0xa4a4, 0xa4a4, 0xa4a4, 0xa4a4, 0xa4a4, 0xa4a4, 0xa4a4, 0xa4a4, 0x00a4,728 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4c00, 0x2d36,729 0x0000, 0x0000, 0x4c00, 0x2d36,730};731 732static const u16 lpphy_rev2plus_noise_scale_table[] = {733 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4,734 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4,735 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x0000,736 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4,737 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4,738 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4,739 0x00a4,740};741 742static const u16 lpphy_crs_gain_nft_table[] = {743 0x0366, 0x036a, 0x036f, 0x0364, 0x0367, 0x036d, 0x0374, 0x037f, 0x036f,744 0x037b, 0x038a, 0x0378, 0x0367, 0x036d, 0x0375, 0x0381, 0x0374, 0x0381,745 0x0392, 0x03a9, 0x03c4, 0x03e1, 0x0001, 0x001f, 0x0040, 0x005e, 0x007f,746 0x009e, 0x00bd, 0x00dd, 0x00fd, 0x011d, 0x013d,747};748 749static const u16 lpphy_rev01_filter_control_table[] = {750 0xa0fc, 0x10fc, 0x10db, 0x20b7, 0xff93, 0x10bf, 0x109b, 0x2077, 0xff53,751 0x0127,752};753 754static const u32 lpphy_rev2plus_filter_control_table[] = {755 0x000141fc, 0x000021fc, 0x000021b7, 0x0000416f, 0x0001ff27, 0x0000217f,756 0x00002137, 0x000040ef, 0x0001fea7, 0x0000024f,757};758 759static const u32 lpphy_rev01_ps_control_table[] = {760 0x00010000, 0x000000a0, 0x00040000, 0x00000048, 0x08080101, 0x00000080,761 0x08080101, 0x00000040, 0x08080101, 0x000000c0, 0x08a81501, 0x000000c0,762 0x0fe8fd01, 0x000000c0, 0x08300105, 0x000000c0, 0x08080201, 0x000000c0,763 0x08280205, 0x000000c0, 0xe80802fe, 0x000000c7, 0x28080206, 0x000000c0,764 0x08080202, 0x000000c0, 0x0ba87602, 0x000000c0, 0x1068013d, 0x000000c0,765 0x10280105, 0x000000c0, 0x08880102, 0x000000c0, 0x08280106, 0x000000c0,766 0xe80801fd, 0x000000c7, 0xa8080115, 0x000000c0,767};768 769static const u32 lpphy_rev2plus_ps_control_table[] = {770 0x00e38e08, 0x00e08e38, 0x00000000, 0x00000000, 0x00000000, 0x00002080,771 0x00006180, 0x00003002, 0x00000040, 0x00002042, 0x00180047, 0x00080043,772 0x00000041, 0x000020c1, 0x00046006, 0x00042002, 0x00040000, 0x00002003,773 0x00180006, 0x00080002,774};775 776static const u8 lpphy_pll_fraction_table[] = {777 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x80,778 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,779};780 781static const u16 lpphy_iqlo_cal_table[] = {782 0x0200, 0x0300, 0x0400, 0x0600, 0x0800, 0x0b00, 0x1000, 0x1001, 0x1002,783 0x1003, 0x1004, 0x1005, 0x1006, 0x1007, 0x1707, 0x2007, 0x2d07, 0x4007,784 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,785 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0200, 0x0300, 0x0400, 0x0600,786 0x0800, 0x0b00, 0x1000, 0x1001, 0x1002, 0x1003, 0x1004, 0x1005, 0x1006,787 0x1007, 0x1707, 0x2007, 0x2d07, 0x4007, 0x0000, 0x0000, 0x0000, 0x0000,788 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,789 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,790 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,791 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4000, 0x0000, 0x0000,792 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,793 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,794};795 796static const u16 lpphy_rev0_ofdm_cck_gain_table[] = {797 0x0001, 0x0001, 0x0001, 0x0001, 0x1001, 0x2001, 0x3001, 0x4001, 0x5001,798 0x6001, 0x7001, 0x7011, 0x7021, 0x2035, 0x2045, 0x2055, 0x2065, 0x2075,799 0x006d, 0x007d, 0x014d, 0x015d, 0x115d, 0x035d, 0x135d, 0x055d, 0x155d,800 0x0d5d, 0x1d5d, 0x2d5d, 0x555d, 0x655d, 0x755d,801};802 803static const u16 lpphy_rev1_ofdm_cck_gain_table[] = {804 0x5000, 0x6000, 0x7000, 0x0001, 0x1001, 0x2001, 0x3001, 0x4001, 0x5001,805 0x6001, 0x7001, 0x7011, 0x7021, 0x2035, 0x2045, 0x2055, 0x2065, 0x2075,806 0x006d, 0x007d, 0x014d, 0x015d, 0x115d, 0x035d, 0x135d, 0x055d, 0x155d,807 0x0d5d, 0x1d5d, 0x2d5d, 0x555d, 0x655d, 0x755d,808};809 810static const u16 lpphy_gain_delta_table[] = {811 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,812};813 814static const u32 lpphy_tx_power_control_table[] = {815 0x00000050, 0x0000004f, 0x0000004e, 0x0000004d, 0x0000004c, 0x0000004b,816 0x0000004a, 0x00000049, 0x00000048, 0x00000047, 0x00000046, 0x00000045,817 0x00000044, 0x00000043, 0x00000042, 0x00000041, 0x00000040, 0x0000003f,818 0x0000003e, 0x0000003d, 0x0000003c, 0x0000003b, 0x0000003a, 0x00000039,819 0x00000038, 0x00000037, 0x00000036, 0x00000035, 0x00000034, 0x00000033,820 0x00000032, 0x00000031, 0x00000030, 0x0000002f, 0x0000002e, 0x0000002d,821 0x0000002c, 0x0000002b, 0x0000002a, 0x00000029, 0x00000028, 0x00000027,822 0x00000026, 0x00000025, 0x00000024, 0x00000023, 0x00000022, 0x00000021,823 0x00000020, 0x0000001f, 0x0000001e, 0x0000001d, 0x0000001c, 0x0000001b,824 0x0000001a, 0x00000019, 0x00000018, 0x00000017, 0x00000016, 0x00000015,825 0x00000014, 0x00000013, 0x00000012, 0x00000011, 0x00000000, 0x00000000,826 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,827 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,828 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,829 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,830 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,831 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,832 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,833 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,834 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,835 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,836 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,837 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,838 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,839 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,840 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,841 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,842 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,843 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,844 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,845 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,846 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,847 0x000075a0, 0x000075a0, 0x000075a1, 0x000075a1, 0x000075a2, 0x000075a2,848 0x000075a3, 0x000075a3, 0x000074b0, 0x000074b0, 0x000074b1, 0x000074b1,849 0x000074b2, 0x000074b2, 0x000074b3, 0x000074b3, 0x00006d20, 0x00006d20,850 0x00006d21, 0x00006d21, 0x00006d22, 0x00006d22, 0x00006d23, 0x00006d23,851 0x00004660, 0x00004660, 0x00004661, 0x00004661, 0x00004662, 0x00004662,852 0x00004663, 0x00004663, 0x00003e60, 0x00003e60, 0x00003e61, 0x00003e61,853 0x00003e62, 0x00003e62, 0x00003e63, 0x00003e63, 0x00003660, 0x00003660,854 0x00003661, 0x00003661, 0x00003662, 0x00003662, 0x00003663, 0x00003663,855 0x00002e60, 0x00002e60, 0x00002e61, 0x00002e61, 0x00002e62, 0x00002e62,856 0x00002e63, 0x00002e63, 0x00002660, 0x00002660, 0x00002661, 0x00002661,857 0x00002662, 0x00002662, 0x00002663, 0x00002663, 0x000025e0, 0x000025e0,858 0x000025e1, 0x000025e1, 0x000025e2, 0x000025e2, 0x000025e3, 0x000025e3,859 0x00001de0, 0x00001de0, 0x00001de1, 0x00001de1, 0x00001de2, 0x00001de2,860 0x00001de3, 0x00001de3, 0x00001d60, 0x00001d60, 0x00001d61, 0x00001d61,861 0x00001d62, 0x00001d62, 0x00001d63, 0x00001d63, 0x00001560, 0x00001560,862 0x00001561, 0x00001561, 0x00001562, 0x00001562, 0x00001563, 0x00001563,863 0x00000d60, 0x00000d60, 0x00000d61, 0x00000d61, 0x00000d62, 0x00000d62,864 0x00000d63, 0x00000d63, 0x00000ce0, 0x00000ce0, 0x00000ce1, 0x00000ce1,865 0x00000ce2, 0x00000ce2, 0x00000ce3, 0x00000ce3, 0x00000e10, 0x00000e10,866 0x00000e11, 0x00000e11, 0x00000e12, 0x00000e12, 0x00000e13, 0x00000e13,867 0x00000bf0, 0x00000bf0, 0x00000bf1, 0x00000bf1, 0x00000bf2, 0x00000bf2,868 0x00000bf3, 0x00000bf3, 0x04200000, 0x04000000, 0x04200000, 0x04000000,869 0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,870 0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,871 0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,872 0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,873 0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,874 0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,875 0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,876 0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,877 0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,878 0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,879 0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,880 0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,881 0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,882 0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,883 0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,884 0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,885 0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,886 0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,887 0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,888 0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,889 0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x000000ff, 0x000002fc,890 0x0000fa08, 0x00000305, 0x00000206, 0x00000304, 0x0000fb04, 0x0000fcff,891 0x000005fb, 0x0000fd01, 0x00000401, 0x00000006, 0x0000ff03, 0x000007fc,892 0x0000fc08, 0x00000203, 0x0000fffb, 0x00000600, 0x0000fa01, 0x0000fc03,893 0x0000fe06, 0x0000fe00, 0x00000102, 0x000007fd, 0x000004fb, 0x000006ff,894 0x000004fd, 0x0000fdfa, 0x000007fb, 0x0000fdfa, 0x0000fa06, 0x00000500,895 0x0000f902, 0x000007fa, 0x0000fafa, 0x00000500, 0x000007fa, 0x00000700,896 0x00000305, 0x000004ff, 0x00000801, 0x00000503, 0x000005f9, 0x00000404,897 0x0000fb08, 0x000005fd, 0x00000501, 0x00000405, 0x0000fb03, 0x000007fc,898 0x00000403, 0x00000303, 0x00000402, 0x0000faff, 0x0000fe05, 0x000005fd,899 0x0000fe01, 0x000007fa, 0x00000202, 0x00000504, 0x00000102, 0x000008fe,900 0x0000fa04, 0x0000fafc, 0x0000fe08, 0x000000f9, 0x000002fa, 0x000003fe,901 0x00000304, 0x000004f9, 0x00000100, 0x0000fd06, 0x000008fc, 0x00000701,902 0x00000504, 0x0000fdfe, 0x0000fdfc, 0x000003fe, 0x00000704, 0x000002fc,903 0x000004f9, 0x0000fdfd, 0x0000fa07, 0x00000205, 0x000003fd, 0x000005fb,904 0x000004f9, 0x00000804, 0x0000fc06, 0x0000fcf9, 0x00000100, 0x0000fe05,905 0x00000408, 0x0000fb02, 0x00000304, 0x000006fe, 0x000004fa, 0x00000305,906 0x000008fc, 0x00000102, 0x000001fd, 0x000004fc, 0x0000fe03, 0x00000701,907 0x000001fb, 0x000001f9, 0x00000206, 0x000006fd, 0x00000508, 0x00000700,908 0x00000304, 0x000005fe, 0x000005ff, 0x0000fa04, 0x00000303, 0x0000fefb,909 0x000007f9, 0x0000fefc, 0x000004fd, 0x000005fc, 0x0000fffd, 0x0000fc08,910 0x0000fbf9, 0x0000fd07, 0x000008fb, 0x0000fe02, 0x000006fb, 0x00000702,911};912 913static const u32 lpphy_gain_idx_table[] = {914 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,915 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,916 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,917 0x10000001, 0x00000000, 0x20000082, 0x00000000, 0x40000104, 0x00000000,918 0x60004207, 0x00000001, 0x7000838a, 0x00000001, 0xd021050d, 0x00000001,919 0xe041c683, 0x00000001, 0x50828805, 0x00000000, 0x80e34288, 0x00000000,920 0xb144040b, 0x00000000, 0xe1a6058e, 0x00000000, 0x12064711, 0x00000001,921 0xb0a18612, 0x00000010, 0xe1024794, 0x00000010, 0x11630915, 0x00000011,922 0x31c3ca1b, 0x00000011, 0xc1848a9c, 0x00000018, 0xf1e50da0, 0x00000018,923 0x22468e21, 0x00000019, 0x4286d023, 0x00000019, 0xa347d0a4, 0x00000019,924 0xb36811a6, 0x00000019, 0xf3e89227, 0x00000019, 0x0408d329, 0x0000001a,925 0x244953aa, 0x0000001a, 0x346994ab, 0x0000001a, 0x54aa152c, 0x0000001a,926 0x64ca55ad, 0x0000001a, 0x00000000, 0x00000000, 0x00000000, 0x00000000,927 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,928 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,929 0x00000000, 0x00000000, 0x10000001, 0x00000000, 0x20000082, 0x00000000,930 0x40000104, 0x00000000, 0x60004207, 0x00000001, 0x7000838a, 0x00000001,931 0xd021050d, 0x00000001, 0xe041c683, 0x00000001, 0x50828805, 0x00000000,932 0x80e34288, 0x00000000, 0xb144040b, 0x00000000, 0xe1a6058e, 0x00000000,933 0x12064711, 0x00000001, 0xb0a18612, 0x00000010, 0xe1024794, 0x00000010,934 0x11630915, 0x00000011, 0x31c3ca1b, 0x00000011, 0xc1848a9c, 0x00000018,935 0xf1e50da0, 0x00000018, 0x22468e21, 0x00000019, 0x4286d023, 0x00000019,936 0xa347d0a4, 0x00000019, 0xb36811a6, 0x00000019, 0xf3e89227, 0x00000019,937 0x0408d329, 0x0000001a, 0x244953aa, 0x0000001a, 0x346994ab, 0x0000001a,938 0x54aa152c, 0x0000001a, 0x64ca55ad, 0x0000001a,939};940 941static const u16 lpphy_aux_gain_idx_table[] = {942 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,943 0x0001, 0x0002, 0x0004, 0x0016, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,944 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0002, 0x0004, 0x0016,945};946 947static const u32 lpphy_gain_value_table[] = {948 0x00000008, 0x0000000e, 0x00000014, 0x0000001a, 0x000000fb, 0x00000004,949 0x00000008, 0x0000000d, 0x00000001, 0x00000004, 0x00000007, 0x0000000a,950 0x0000000d, 0x00000010, 0x00000012, 0x00000015, 0x00000000, 0x00000006,951 0x0000000c, 0x00000000, 0x00000000, 0x00000000, 0x00000012, 0x00000000,952 0x00000000, 0x00000000, 0x00000018, 0x00000000, 0x00000000, 0x00000000,953 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,954 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,955 0x0000001e, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,956 0x00000000, 0x00000003, 0x00000006, 0x00000009, 0x0000000c, 0x0000000f,957 0x00000012, 0x00000015, 0x00000018, 0x0000001b, 0x0000001e, 0x00000000,958 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000009, 0x000000f1,959 0x00000000, 0x00000000,960};961 962static const u16 lpphy_gain_table[] = {963 0x0000, 0x0400, 0x0800, 0x0802, 0x0804, 0x0806, 0x0807, 0x0808, 0x080a,964 0x080b, 0x080c, 0x080e, 0x080f, 0x0810, 0x0812, 0x0813, 0x0814, 0x0816,965 0x0817, 0x081a, 0x081b, 0x081f, 0x0820, 0x0824, 0x0830, 0x0834, 0x0837,966 0x083b, 0x083f, 0x0840, 0x0844, 0x0857, 0x085b, 0x085f, 0x08d7, 0x08db,967 0x08df, 0x0957, 0x095b, 0x095f, 0x0b57, 0x0b5b, 0x0b5f, 0x0f5f, 0x135f,968 0x175f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,969 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,970 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,971 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,972 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,973 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,974};975 976static const u32 lpphy_a0_gain_idx_table[] = {977 0x001111e0, 0x00652051, 0x00606055, 0x005b005a, 0x00555060, 0x00511065,978 0x004c806b, 0x0047d072, 0x00444078, 0x00400080, 0x003ca087, 0x0039408f,979 0x0035e098, 0x0032e0a1, 0x003030aa, 0x002d80b4, 0x002ae0bf, 0x002880ca,980 0x002640d6, 0x002410e3, 0x002220f0, 0x002020ff, 0x001e510e, 0x001ca11e,981 0x001b012f, 0x00199140, 0x00182153, 0x0016c168, 0x0015817d, 0x00145193,982 0x001321ab, 0x001211c5, 0x001111e0, 0x001021fc, 0x000f321a, 0x000e523a,983 0x000d925c, 0x000cd27f, 0x000c12a5, 0x000b62cd, 0x000ac2f8, 0x000a2325,984 0x00099355, 0x00091387, 0x000883bd, 0x000813f5, 0x0007a432, 0x00073471,985 0x0006c4b5, 0x000664fc, 0x00061547, 0x0005b598, 0x000565ec, 0x00051646,986 0x0004d6a5, 0x0004870a, 0x00044775, 0x000407e6, 0x0003d85e, 0x000398dd,987 0x00036963, 0x000339f2, 0x00030a89, 0x0002db28,988};989 990static const u16 lpphy_a0_aux_gain_idx_table[] = {991 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,992 0x0000, 0x0000, 0x0002, 0x0014, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,993 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0002, 0x0014,994};995 996static const u32 lpphy_a0_gain_value_table[] = {997 0x00000008, 0x0000000e, 0x00000014, 0x0000001a, 0x000000fb, 0x00000004,998 0x00000008, 0x0000000d, 0x00000001, 0x00000004, 0x00000007, 0x0000000a,999 0x0000000d, 0x00000010, 0x00000012, 0x00000015, 0x00000000, 0x00000006,1000 0x0000000c, 0x00000000, 0x00000000, 0x00000000, 0x00000012, 0x00000000,1001 0x00000000, 0x00000000, 0x00000018, 0x00000000, 0x00000000, 0x00000000,1002 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,1003 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,1004 0x0000001e, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,1005 0x00000000, 0x00000003, 0x00000006, 0x00000009, 0x0000000c, 0x0000000f,1006 0x00000012, 0x00000015, 0x00000018, 0x0000001b, 0x0000001e, 0x00000000,1007 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000000f, 0x000000f7,1008 0x00000000, 0x00000000,1009};1010 1011static const u16 lpphy_a0_gain_table[] = {1012 0x0000, 0x0002, 0x0004, 0x0006, 0x0007, 0x0008, 0x000a, 0x000b, 0x000c,1013 0x000e, 0x000f, 0x0010, 0x0012, 0x0013, 0x0014, 0x0016, 0x0017, 0x001a,1014 0x001b, 0x001f, 0x0020, 0x0024, 0x0030, 0x0034, 0x0037, 0x003b, 0x003f,1015 0x0040, 0x0044, 0x0057, 0x005b, 0x005f, 0x00d7, 0x00db, 0x00df, 0x0157,1016 0x015b, 0x015f, 0x0357, 0x035b, 0x035f, 0x075f, 0x0b5f, 0x0f5f, 0x0000,1017 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,1018 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,1019 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,1020 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,1021 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,1022 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,1023};1024 1025static const u16 lpphy_sw_control_table[] = {1026 0x0128, 0x0128, 0x0009, 0x0009, 0x0028, 0x0028, 0x0028, 0x0028, 0x0128,1027 0x0128, 0x0009, 0x0009, 0x0028, 0x0028, 0x0028, 0x0028, 0x0009, 0x0009,1028 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0018, 0x0018, 0x0018,1029 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0128, 0x0128, 0x0009, 0x0009,1030 0x0028, 0x0028, 0x0028, 0x0028, 0x0128, 0x0128, 0x0009, 0x0009, 0x0028,1031 0x0028, 0x0028, 0x0028, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009,1032 0x0009, 0x0009, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018,1033 0x0018,1034};1035 1036static const u8 lpphy_hf_table[] = {1037 0x4b, 0x36, 0x24, 0x18, 0x49, 0x34, 0x23, 0x17, 0x48,1038 0x33, 0x23, 0x17, 0x48, 0x33, 0x23, 0x17,1039};1040 1041static const u32 lpphy_papd_eps_table[] = {1042 0x00000000, 0x00013ffc, 0x0001dff3, 0x0001bff0, 0x00023fe9, 0x00021fdf,1043 0x00028fdf, 0x00033fd2, 0x00039fcb, 0x00043fc7, 0x0004efc2, 0x00055fb5,1044 0x0005cfb0, 0x00063fa8, 0x00068fa3, 0x00071f98, 0x0007ef92, 0x00084f8b,1045 0x0008df82, 0x00097f77, 0x0009df69, 0x000a3f62, 0x000adf57, 0x000b6f4c,1046 0x000bff41, 0x000c9f39, 0x000cff30, 0x000dbf27, 0x000e4f1e, 0x000edf16,1047 0x000f7f13, 0x00102f11, 0x00110f10, 0x0011df11, 0x0012ef15, 0x00143f1c,1048 0x00158f27, 0x00172f35, 0x00193f47, 0x001baf5f, 0x001e6f7e, 0x0021cfa4,1049 0x0025bfd2, 0x002a2008, 0x002fb047, 0x00360090, 0x003d40e0, 0x0045c135,1050 0x004fb189, 0x005ae1d7, 0x0067221d, 0x0075025a, 0x007ff291, 0x007ff2bf,1051 0x007ff2e3, 0x007ff2ff, 0x007ff315, 0x007ff329, 0x007ff33f, 0x007ff356,1052 0x007ff36e, 0x007ff39c, 0x007ff441, 0x007ff506,1053};1054 1055static const u32 lpphy_papd_mult_table[] = {1056 0x001111e0, 0x00652051, 0x00606055, 0x005b005a, 0x00555060, 0x00511065,1057 0x004c806b, 0x0047d072, 0x00444078, 0x00400080, 0x003ca087, 0x0039408f,1058 0x0035e098, 0x0032e0a1, 0x003030aa, 0x002d80b4, 0x002ae0bf, 0x002880ca,1059 0x002640d6, 0x002410e3, 0x002220f0, 0x002020ff, 0x001e510e, 0x001ca11e,1060 0x001b012f, 0x00199140, 0x00182153, 0x0016c168, 0x0015817d, 0x00145193,1061 0x001321ab, 0x001211c5, 0x001111e0, 0x001021fc, 0x000f321a, 0x000e523a,1062 0x000d925c, 0x000cd27f, 0x000c12a5, 0x000b62cd, 0x000ac2f8, 0x000a2325,1063 0x00099355, 0x00091387, 0x000883bd, 0x000813f5, 0x0007a432, 0x00073471,1064 0x0006c4b5, 0x000664fc, 0x00061547, 0x0005b598, 0x000565ec, 0x00051646,1065 0x0004d6a5, 0x0004870a, 0x00044775, 0x000407e6, 0x0003d85e, 0x000398dd,1066 0x00036963, 0x000339f2, 0x00030a89, 0x0002db28,1067};1068 1069static const struct lpphy_tx_gain_table_entry lpphy_rev0_nopa_tx_gain_table[] = {1070 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 152, },1071 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 147, },1072 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 143, },1073 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 139, },1074 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 135, },1075 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 131, },1076 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 128, },1077 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 124, },1078 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 121, },1079 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 117, },1080 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 114, },1081 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 111, },1082 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 107, },1083 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 104, },1084 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 101, },1085 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 99, },1086 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 96, },1087 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 93, },1088 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 90, },1089 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 88, },1090 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 85, },1091 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 83, },1092 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 81, },1093 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 78, },1094 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 76, },1095 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 74, },1096 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 72, },1097 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 70, },1098 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 68, },1099 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 66, },1100 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 64, },1101 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 62, },1102 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 60, },1103 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 59, },1104 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 57, },1105 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 72, },1106 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 70, },1107 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 68, },1108 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 66, },1109 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 64, },1110 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 62, },1111 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 60, },1112 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 59, },1113 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 57, },1114 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 71, },1115 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 69, },1116 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 67, },1117 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 65, },1118 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 63, },1119 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 62, },1120 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 60, },1121 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 58, },1122 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 57, },1123 { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 70, },1124 { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 68, },1125 { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 66, },1126 { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 65, },1127 { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 63, },1128 { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 61, },1129 { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 59, },1130 { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 58, },1131 { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 71, },1132 { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 69, },1133 { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 67, },1134 { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 65, },1135 { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 63, },1136 { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 61, },1137 { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 60, },1138 { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 58, },1139 { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 56, },1140 { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 70, },1141 { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 68, },1142 { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 66, },1143 { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 64, },1144 { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 62, },1145 { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 60, },1146 { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 59, },1147 { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 72, },1148 { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 70, },1149 { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 68, },1150 { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 66, },1151 { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 64, },1152 { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 62, },1153 { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 60, },1154 { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 59, },1155 { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 72, },1156 { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 70, },1157 { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 68, },1158 { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 66, },1159 { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 64, },1160 { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 63, },1161 { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 61, },1162 { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 59, },1163 { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 57, },1164 { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 72, },1165 { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 70, },1166 { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 68, },1167 { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 66, },1168 { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 64, },1169 { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 62, },1170 { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 60, },1171 { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 59, },1172 { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 72, },1173 { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 70, },1174 { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 68, },1175 { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 66, },1176 { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 64, },1177 { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 62, },1178 { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 61, },1179 { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 59, },1180 { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 73, },1181 { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 71, },1182 { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 69, },1183 { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 67, },1184 { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 65, },1185 { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 63, },1186 { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 61, },1187 { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 59, },1188 { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 72, },1189 { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 70, },1190 { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 68, },1191 { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 66, },1192 { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 65, },1193 { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 63, },1194 { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 61, },1195 { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 59, },1196 { .gm = 7, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 73, },1197 { .gm = 7, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 71, },1198};1199 1200static const struct lpphy_tx_gain_table_entry lpphy_rev0_2ghz_tx_gain_table[] = {1201 { .gm = 4, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 64, },1202 { .gm = 4, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 62, },1203 { .gm = 4, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 60, },1204 { .gm = 4, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 59, },1205 { .gm = 4, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 72, },1206 { .gm = 4, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 70, },1207 { .gm = 4, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 68, },1208 { .gm = 4, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 66, },1209 { .gm = 4, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 64, },1210 { .gm = 4, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 62, },1211 { .gm = 4, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 60, },1212 { .gm = 4, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 59, },1213 { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 72, },1214 { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 70, },1215 { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 68, },1216 { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 66, },1217 { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 64, },1218 { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 63, },1219 { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 61, },1220 { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 59, },1221 { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 57, },1222 { .gm = 4, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 72, },1223 { .gm = 4, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 70, },1224 { .gm = 4, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 68, },1225 { .gm = 4, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 66, },1226 { .gm = 4, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 64, },1227 { .gm = 4, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 62, },1228 { .gm = 4, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 60, },1229 { .gm = 4, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 59, },1230 { .gm = 4, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 72, },1231 { .gm = 4, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 70, },1232 { .gm = 4, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 68, },1233 { .gm = 4, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 66, },1234 { .gm = 4, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 64, },1235 { .gm = 4, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 62, },1236 { .gm = 4, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 61, },1237 { .gm = 4, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 59, },1238 { .gm = 4, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 73, },1239 { .gm = 4, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 71, },1240 { .gm = 4, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 69, },1241 { .gm = 4, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 67, },1242 { .gm = 4, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 65, },1243 { .gm = 4, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 63, },1244 { .gm = 4, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 61, },1245 { .gm = 4, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 59, },1246 { .gm = 4, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 72, },1247 { .gm = 4, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 70, },1248 { .gm = 4, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 68, },1249 { .gm = 4, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 66, },1250 { .gm = 4, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 65, },1251 { .gm = 4, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 63, },1252 { .gm = 4, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 61, },1253 { .gm = 4, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 59, },1254 { .gm = 4, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 73, },1255 { .gm = 4, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 71, },1256 { .gm = 4, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 69, },1257 { .gm = 4, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 67, },1258 { .gm = 4, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 65, },1259 { .gm = 4, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 63, },1260 { .gm = 4, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 61, },1261 { .gm = 4, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 60, },1262 { .gm = 4, .pga = 10, .pad = 6, .dac = 0, .bb_mult = 72, },1263 { .gm = 4, .pga = 10, .pad = 6, .dac = 0, .bb_mult = 70, },1264 { .gm = 4, .pga = 10, .pad = 6, .dac = 0, .bb_mult = 68, },1265 { .gm = 4, .pga = 10, .pad = 6, .dac = 0, .bb_mult = 66, },1266 { .gm = 4, .pga = 10, .pad = 6, .dac = 0, .bb_mult = 64, },1267 { .gm = 4, .pga = 10, .pad = 6, .dac = 0, .bb_mult = 62, },1268 { .gm = 4, .pga = 10, .pad = 6, .dac = 0, .bb_mult = 60, },1269 { .gm = 4, .pga = 10, .pad = 6, .dac = 0, .bb_mult = 59, },1270 { .gm = 4, .pga = 10, .pad = 5, .dac = 0, .bb_mult = 72, },1271 { .gm = 4, .pga = 10, .pad = 5, .dac = 0, .bb_mult = 70, },1272 { .gm = 4, .pga = 10, .pad = 5, .dac = 0, .bb_mult = 68, },1273 { .gm = 4, .pga = 10, .pad = 5, .dac = 0, .bb_mult = 66, },1274 { .gm = 4, .pga = 10, .pad = 5, .dac = 0, .bb_mult = 64, },1275 { .gm = 4, .pga = 10, .pad = 5, .dac = 0, .bb_mult = 62, },1276 { .gm = 4, .pga = 10, .pad = 5, .dac = 0, .bb_mult = 60, },1277 { .gm = 4, .pga = 10, .pad = 5, .dac = 0, .bb_mult = 59, },1278 { .gm = 4, .pga = 9, .pad = 5, .dac = 0, .bb_mult = 70, },1279 { .gm = 4, .pga = 9, .pad = 5, .dac = 0, .bb_mult = 68, },1280 { .gm = 4, .pga = 9, .pad = 5, .dac = 0, .bb_mult = 66, },1281 { .gm = 4, .pga = 9, .pad = 5, .dac = 0, .bb_mult = 64, },1282 { .gm = 4, .pga = 9, .pad = 5, .dac = 0, .bb_mult = 63, },1283 { .gm = 4, .pga = 9, .pad = 5, .dac = 0, .bb_mult = 61, },1284 { .gm = 4, .pga = 9, .pad = 5, .dac = 0, .bb_mult = 59, },1285 { .gm = 4, .pga = 9, .pad = 4, .dac = 0, .bb_mult = 71, },1286 { .gm = 4, .pga = 9, .pad = 4, .dac = 0, .bb_mult = 69, },1287 { .gm = 4, .pga = 9, .pad = 4, .dac = 0, .bb_mult = 67, },1288 { .gm = 4, .pga = 9, .pad = 4, .dac = 0, .bb_mult = 65, },1289 { .gm = 4, .pga = 9, .pad = 4, .dac = 0, .bb_mult = 63, },1290 { .gm = 4, .pga = 9, .pad = 4, .dac = 0, .bb_mult = 62, },1291 { .gm = 4, .pga = 9, .pad = 4, .dac = 0, .bb_mult = 60, },1292 { .gm = 4, .pga = 9, .pad = 4, .dac = 0, .bb_mult = 58, },1293 { .gm = 4, .pga = 8, .pad = 4, .dac = 0, .bb_mult = 70, },1294 { .gm = 4, .pga = 8, .pad = 4, .dac = 0, .bb_mult = 68, },1295 { .gm = 4, .pga = 8, .pad = 4, .dac = 0, .bb_mult = 66, },1296 { .gm = 4, .pga = 8, .pad = 4, .dac = 0, .bb_mult = 65, },1297 { .gm = 4, .pga = 8, .pad = 4, .dac = 0, .bb_mult = 63, },1298 { .gm = 4, .pga = 8, .pad = 4, .dac = 0, .bb_mult = 61, },1299 { .gm = 4, .pga = 8, .pad = 4, .dac = 0, .bb_mult = 59, },1300 { .gm = 4, .pga = 7, .pad = 4, .dac = 0, .bb_mult = 68, },1301 { .gm = 4, .pga = 7, .pad = 4, .dac = 0, .bb_mult = 66, },1302 { .gm = 4, .pga = 7, .pad = 4, .dac = 0, .bb_mult = 64, },1303 { .gm = 4, .pga = 7, .pad = 4, .dac = 0, .bb_mult = 62, },1304 { .gm = 4, .pga = 7, .pad = 4, .dac = 0, .bb_mult = 61, },1305 { .gm = 4, .pga = 7, .pad = 4, .dac = 0, .bb_mult = 59, },1306 { .gm = 4, .pga = 7, .pad = 3, .dac = 0, .bb_mult = 67, },1307 { .gm = 4, .pga = 7, .pad = 3, .dac = 0, .bb_mult = 65, },1308 { .gm = 4, .pga = 7, .pad = 3, .dac = 0, .bb_mult = 63, },1309 { .gm = 4, .pga = 7, .pad = 3, .dac = 0, .bb_mult = 62, },1310 { .gm = 4, .pga = 7, .pad = 3, .dac = 0, .bb_mult = 60, },1311 { .gm = 4, .pga = 6, .pad = 3, .dac = 0, .bb_mult = 65, },1312 { .gm = 4, .pga = 6, .pad = 3, .dac = 0, .bb_mult = 63, },1313 { .gm = 4, .pga = 6, .pad = 3, .dac = 0, .bb_mult = 61, },1314 { .gm = 4, .pga = 6, .pad = 3, .dac = 0, .bb_mult = 60, },1315 { .gm = 4, .pga = 6, .pad = 3, .dac = 0, .bb_mult = 58, },1316 { .gm = 4, .pga = 5, .pad = 3, .dac = 0, .bb_mult = 68, },1317 { .gm = 4, .pga = 5, .pad = 3, .dac = 0, .bb_mult = 66, },1318 { .gm = 4, .pga = 5, .pad = 3, .dac = 0, .bb_mult = 64, },1319 { .gm = 4, .pga = 5, .pad = 3, .dac = 0, .bb_mult = 62, },1320 { .gm = 4, .pga = 5, .pad = 3, .dac = 0, .bb_mult = 60, },1321 { .gm = 4, .pga = 5, .pad = 3, .dac = 0, .bb_mult = 59, },1322 { .gm = 4, .pga = 5, .pad = 3, .dac = 0, .bb_mult = 57, },1323 { .gm = 4, .pga = 4, .pad = 2, .dac = 0, .bb_mult = 83, },1324 { .gm = 4, .pga = 4, .pad = 2, .dac = 0, .bb_mult = 81, },1325 { .gm = 4, .pga = 4, .pad = 2, .dac = 0, .bb_mult = 78, },1326 { .gm = 4, .pga = 4, .pad = 2, .dac = 0, .bb_mult = 76, },1327 { .gm = 4, .pga = 4, .pad = 2, .dac = 0, .bb_mult = 74, },1328 { .gm = 4, .pga = 4, .pad = 2, .dac = 0, .bb_mult = 72, },1329};1330 1331static const struct lpphy_tx_gain_table_entry lpphy_rev0_5ghz_tx_gain_table[] = {1332 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 99, },1333 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 96, },1334 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 93, },1335 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 90, },1336 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 88, },1337 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 85, },1338 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 83, },1339 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 81, },1340 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 78, },1341 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 76, },1342 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 74, },1343 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 72, },1344 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 70, },1345 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 68, },1346 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 66, },1347 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 64, },1348 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 62, },1349 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 60, },1350 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 59, },1351 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 57, },1352 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 55, },1353 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 72, },1354 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 70, },1355 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 68, },1356 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 66, },1357 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 64, },1358 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 62, },1359 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 60, },1360 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 58, },1361 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 56, },1362 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 55, },1363 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 71, },1364 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 69, },1365 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 67, },1366 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 65, },1367 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 63, },1368 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 62, },1369 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 60, },1370 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 58, },1371 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 56, },1372 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 72, },1373 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 70, },1374 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 68, },1375 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 66, },1376 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 64, },1377 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 62, },1378 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 60, },1379 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 59, },1380 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 57, },1381 { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 73, },1382 { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 71, },1383 { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 69, },1384 { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 67, },1385 { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 65, },1386 { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 63, },1387 { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 61, },1388 { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 60, },1389 { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 58, },1390 { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 71, },1391 { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 69, },1392 { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 67, },1393 { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 65, },1394 { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 63, },1395 { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 61, },1396 { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 60, },1397 { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 58, },1398 { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 70, },1399 { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 68, },1400 { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 66, },1401 { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 64, },1402 { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 62, },1403 { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 61, },1404 { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 59, },1405 { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 57, },1406 { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 56, },1407 { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 68, },1408 { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 66, },1409 { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 65, },1410 { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 63, },1411 { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 61, },1412 { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 59, },1413 { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 58, },1414 { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 70, },1415 { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 68, },1416 { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 66, },1417 { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 64, },1418 { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 63, },1419 { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 61, },1420 { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 59, },1421 { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 57, },1422 { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 70, },1423 { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 68, },1424 { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 66, },1425 { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 64, },1426 { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 62, },1427 { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 60, },1428 { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 59, },1429 { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 57, },1430 { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 70, },1431 { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 68, },1432 { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 66, },1433 { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 64, },1434 { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 62, },1435 { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 61, },1436 { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 59, },1437 { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 57, },1438 { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 70, },1439 { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 68, },1440 { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 66, },1441 { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 64, },1442 { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 62, },1443 { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 61, },1444 { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 59, },1445 { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 57, },1446 { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 70, },1447 { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 68, },1448 { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 66, },1449 { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 64, },1450 { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 62, },1451 { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 61, },1452 { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 59, },1453 { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 57, },1454 { .gm = 7, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 69, },1455 { .gm = 7, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 67, },1456 { .gm = 7, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 65, },1457 { .gm = 7, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 63, },1458 { .gm = 7, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 62, },1459 { .gm = 7, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 60, },1460};1461 1462static const struct lpphy_tx_gain_table_entry lpphy_rev1_nopa_tx_gain_table[] = {1463 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 152, },1464 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 147, },1465 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 143, },1466 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 139, },1467 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 135, },1468 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 131, },1469 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 128, },1470 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 124, },1471 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 121, },1472 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 117, },1473 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 114, },1474 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 111, },1475 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 107, },1476 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 104, },1477 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 101, },1478 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 99, },1479 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 96, },1480 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 93, },1481 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 90, },1482 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 88, },1483 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 85, },1484 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 83, },1485 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 81, },1486 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 78, },1487 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 76, },1488 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 74, },1489 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 72, },1490 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 70, },1491 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 68, },1492 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 66, },1493 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 64, },1494 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 62, },1495 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 60, },1496 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 59, },1497 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 57, },1498 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 72, },1499 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 70, },1500 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 68, },1501 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 66, },1502 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 64, },1503 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 62, },1504 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 60, },1505 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 59, },1506 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 57, },1507 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 72, },1508 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 70, },1509 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 68, },1510 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 66, },1511 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 64, },1512 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 62, },1513 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 60, },1514 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 59, },1515 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 57, },1516 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 71, },1517 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 69, },1518 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 67, },1519 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 65, },1520 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 63, },1521 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 62, },1522 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 60, },1523 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 58, },1524 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 57, },1525 { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 70, },1526 { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 68, },1527 { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 66, },1528 { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 65, },1529 { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 63, },1530 { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 61, },1531 { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 59, },1532 { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 58, },1533 { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 71, },1534 { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 69, },1535 { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 67, },1536 { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 65, },1537 { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 63, },1538 { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 61, },1539 { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 60, },1540 { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 58, },1541 { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 56, },1542 { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 70, },1543 { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 68, },1544 { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 66, },1545 { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 64, },1546 { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 62, },1547 { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 60, },1548 { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 59, },1549 { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 72, },1550 { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 70, },1551 { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 68, },1552 { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 66, },1553 { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 64, },1554 { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 62, },1555 { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 60, },1556 { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 59, },1557 { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 72, },1558 { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 70, },1559 { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 68, },1560 { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 66, },1561 { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 64, },1562 { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 63, },1563 { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 61, },1564 { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 59, },1565 { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 57, },1566 { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 72, },1567 { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 70, },1568 { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 68, },1569 { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 66, },1570 { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 64, },1571 { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 62, },1572 { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 60, },1573 { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 59, },1574 { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 72, },1575 { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 70, },1576 { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 68, },1577 { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 66, },1578 { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 64, },1579 { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 62, },1580 { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 61, },1581 { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 59, },1582 { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 73, },1583 { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 71, },1584 { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 69, },1585 { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 67, },1586 { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 65, },1587 { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 63, },1588 { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 61, },1589 { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 59, },1590 { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 72, },1591 { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 70, },1592 { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 68, },1593 { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 66, },1594 { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 65, },1595 { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 63, },1596 { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 61, },1597 { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 59, },1598 { .gm = 7, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 73, },1599 { .gm = 7, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 71, },1600};1601 1602static const struct lpphy_tx_gain_table_entry lpphy_rev1_2ghz_tx_gain_table[] = {1603 { .gm = 4, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 90, },1604 { .gm = 4, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 88, },1605 { .gm = 4, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 85, },1606 { .gm = 4, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 83, },1607 { .gm = 4, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 81, },1608 { .gm = 4, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 78, },1609 { .gm = 4, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 76, },1610 { .gm = 4, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 74, },1611 { .gm = 4, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 72, },1612 { .gm = 4, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 70, },1613 { .gm = 4, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 68, },1614 { .gm = 4, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 66, },1615 { .gm = 4, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 64, },1616 { .gm = 4, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 62, },1617 { .gm = 4, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 60, },1618 { .gm = 4, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 59, },1619 { .gm = 4, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 72, },1620 { .gm = 4, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 70, },1621 { .gm = 4, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 68, },1622 { .gm = 4, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 66, },1623 { .gm = 4, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 64, },1624 { .gm = 4, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 62, },1625 { .gm = 4, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 60, },1626 { .gm = 4, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 59, },1627 { .gm = 4, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 72, },1628 { .gm = 4, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 70, },1629 { .gm = 4, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 68, },1630 { .gm = 4, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 66, },1631 { .gm = 4, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 64, },1632 { .gm = 4, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 62, },1633 { .gm = 4, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 60, },1634 { .gm = 4, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 59, },1635 { .gm = 4, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 72, },1636 { .gm = 4, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 70, },1637 { .gm = 4, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 68, },1638 { .gm = 4, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 66, },1639 { .gm = 4, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 64, },1640 { .gm = 4, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 62, },1641 { .gm = 4, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 60, },1642 { .gm = 4, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 59, },1643 { .gm = 4, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 72, },1644 { .gm = 4, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 70, },1645 { .gm = 4, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 68, },1646 { .gm = 4, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 66, },1647 { .gm = 4, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 64, },1648 { .gm = 4, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 62, },1649 { .gm = 4, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 60, },1650 { .gm = 4, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 59, },1651 { .gm = 4, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 72, },1652 { .gm = 4, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 70, },1653 { .gm = 4, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 68, },1654 { .gm = 4, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 66, },1655 { .gm = 4, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 64, },1656 { .gm = 4, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 62, },1657 { .gm = 4, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 60, },1658 { .gm = 4, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 59, },1659 { .gm = 4, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 72, },1660 { .gm = 4, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 70, },1661 { .gm = 4, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 68, },1662 { .gm = 4, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 66, },1663 { .gm = 4, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 64, },1664 { .gm = 4, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 62, },1665 { .gm = 4, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 60, },1666 { .gm = 4, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 59, },1667 { .gm = 4, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 72, },1668 { .gm = 4, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 70, },1669 { .gm = 4, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 68, },1670 { .gm = 4, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 66, },1671 { .gm = 4, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 64, },1672 { .gm = 4, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 62, },1673 { .gm = 4, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 60, },1674 { .gm = 4, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 59, },1675 { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 72, },1676 { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 70, },1677 { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 68, },1678 { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 66, },1679 { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 64, },1680 { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 63, },1681 { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 61, },1682 { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 59, },1683 { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 57, },1684 { .gm = 4, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 72, },1685 { .gm = 4, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 70, },1686 { .gm = 4, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 68, },1687 { .gm = 4, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 66, },1688 { .gm = 4, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 64, },1689 { .gm = 4, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 62, },1690 { .gm = 4, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 60, },1691 { .gm = 4, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 59, },1692 { .gm = 4, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 72, },1693 { .gm = 4, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 70, },1694 { .gm = 4, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 68, },1695 { .gm = 4, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 66, },1696 { .gm = 4, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 64, },1697 { .gm = 4, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 62, },1698 { .gm = 4, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 61, },1699 { .gm = 4, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 59, },1700 { .gm = 4, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 73, },1701 { .gm = 4, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 71, },1702 { .gm = 4, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 69, },1703 { .gm = 4, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 67, },1704 { .gm = 4, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 65, },1705 { .gm = 4, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 63, },1706 { .gm = 4, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 61, },1707 { .gm = 4, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 59, },1708 { .gm = 4, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 72, },1709 { .gm = 4, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 70, },1710 { .gm = 4, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 68, },1711 { .gm = 4, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 66, },1712 { .gm = 4, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 65, },1713 { .gm = 4, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 63, },1714 { .gm = 4, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 61, },1715 { .gm = 4, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 59, },1716 { .gm = 4, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 73, },1717 { .gm = 4, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 71, },1718 { .gm = 4, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 69, },1719 { .gm = 4, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 67, },1720 { .gm = 4, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 65, },1721 { .gm = 4, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 63, },1722 { .gm = 4, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 61, },1723 { .gm = 4, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 60, },1724 { .gm = 4, .pga = 10, .pad = 6, .dac = 0, .bb_mult = 72, },1725 { .gm = 4, .pga = 10, .pad = 6, .dac = 0, .bb_mult = 70, },1726 { .gm = 4, .pga = 10, .pad = 6, .dac = 0, .bb_mult = 68, },1727 { .gm = 4, .pga = 10, .pad = 6, .dac = 0, .bb_mult = 66, },1728 { .gm = 4, .pga = 10, .pad = 6, .dac = 0, .bb_mult = 64, },1729 { .gm = 4, .pga = 10, .pad = 6, .dac = 0, .bb_mult = 62, },1730 { .gm = 4, .pga = 10, .pad = 6, .dac = 0, .bb_mult = 60, },1731};1732 1733static const struct lpphy_tx_gain_table_entry lpphy_rev1_5ghz_tx_gain_table[] = {1734 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 99, },1735 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 96, },1736 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 93, },1737 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 90, },1738 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 88, },1739 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 85, },1740 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 83, },1741 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 81, },1742 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 78, },1743 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 76, },1744 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 74, },1745 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 72, },1746 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 70, },1747 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 68, },1748 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 66, },1749 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 64, },1750 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 62, },1751 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 60, },1752 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 59, },1753 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 57, },1754 { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 55, },1755 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 72, },1756 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 70, },1757 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 68, },1758 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 66, },1759 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 64, },1760 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 62, },1761 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 60, },1762 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 58, },1763 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 56, },1764 { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 55, },1765 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 71, },1766 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 69, },1767 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 67, },1768 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 65, },1769 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 63, },1770 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 62, },1771 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 60, },1772 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 58, },1773 { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 56, },1774 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 72, },1775 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 70, },1776 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 68, },1777 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 66, },1778 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 64, },1779 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 62, },1780 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 60, },1781 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 59, },1782 { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 57, },1783 { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 73, },1784 { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 71, },1785 { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 69, },1786 { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 67, },1787 { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 65, },1788 { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 63, },1789 { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 61, },1790 { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 60, },1791 { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 58, },1792 { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 71, },1793 { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 69, },1794 { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 67, },1795 { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 65, },1796 { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 63, },1797 { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 61, },1798 { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 60, },1799 { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 58, },1800 { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 70, },1801 { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 68, },1802 { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 66, },1803 { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 64, },1804 { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 62, },1805 { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 61, },1806 { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 59, },1807 { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 57, },1808 { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 56, },1809 { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 68, },1810 { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 66, },1811 { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 65, },1812 { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 63, },1813 { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 61, },1814 { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 59, },1815 { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 58, },1816 { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 70, },1817 { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 68, },1818 { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 66, },1819 { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 64, },1820 { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 63, },1821 { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 61, },1822 { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 59, },1823 { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 57, },1824 { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 70, },1825 { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 68, },1826 { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 66, },1827 { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 64, },1828 { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 62, },1829 { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 60, },1830 { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 59, },1831 { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 57, },1832 { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 70, },1833 { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 68, },1834 { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 66, },1835 { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 64, },1836 { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 62, },1837 { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 61, },1838 { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 59, },1839 { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 57, },1840 { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 70, },1841 { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 68, },1842 { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 66, },1843 { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 64, },1844 { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 62, },1845 { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 61, },1846 { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 59, },1847 { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 57, },1848 { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 70, },1849 { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 68, },1850 { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 66, },1851 { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 64, },1852 { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 62, },1853 { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 61, },1854 { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 59, },1855 { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 57, },1856 { .gm = 7, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 69, },1857 { .gm = 7, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 67, },1858 { .gm = 7, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 65, },1859 { .gm = 7, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 63, },1860 { .gm = 7, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 62, },1861 { .gm = 7, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 60, },1862};1863 1864static const struct lpphy_tx_gain_table_entry lpphy_rev2_nopa_tx_gain_table[] = {1865 { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 152, },1866 { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 147, },1867 { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 143, },1868 { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 139, },1869 { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 135, },1870 { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 131, },1871 { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 128, },1872 { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 124, },1873 { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 121, },1874 { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 117, },1875 { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 114, },1876 { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 111, },1877 { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 107, },1878 { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 104, },1879 { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 101, },1880 { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 99, },1881 { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 96, },1882 { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 93, },1883 { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 90, },1884 { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 88, },1885 { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 85, },1886 { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 83, },1887 { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 81, },1888 { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 78, },1889 { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 76, },1890 { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 74, },1891 { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 72, },1892 { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 70, },1893 { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 68, },1894 { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 66, },1895 { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 64, },1896 { .gm = 255, .pga = 255, .pad = 197, .dac = 0, .bb_mult = 64, },1897 { .gm = 255, .pga = 255, .pad = 192, .dac = 0, .bb_mult = 64, },1898 { .gm = 255, .pga = 255, .pad = 186, .dac = 0, .bb_mult = 64, },1899 { .gm = 255, .pga = 255, .pad = 181, .dac = 0, .bb_mult = 64, },1900 { .gm = 255, .pga = 255, .pad = 176, .dac = 0, .bb_mult = 64, },1901 { .gm = 255, .pga = 255, .pad = 171, .dac = 0, .bb_mult = 64, },1902 { .gm = 255, .pga = 255, .pad = 166, .dac = 0, .bb_mult = 64, },1903 { .gm = 255, .pga = 255, .pad = 161, .dac = 0, .bb_mult = 64, },1904 { .gm = 255, .pga = 255, .pad = 157, .dac = 0, .bb_mult = 64, },1905 { .gm = 255, .pga = 255, .pad = 152, .dac = 0, .bb_mult = 64, },1906 { .gm = 255, .pga = 255, .pad = 148, .dac = 0, .bb_mult = 64, },1907 { .gm = 255, .pga = 255, .pad = 144, .dac = 0, .bb_mult = 64, },1908 { .gm = 255, .pga = 255, .pad = 140, .dac = 0, .bb_mult = 64, },1909 { .gm = 255, .pga = 255, .pad = 136, .dac = 0, .bb_mult = 64, },1910 { .gm = 255, .pga = 255, .pad = 132, .dac = 0, .bb_mult = 64, },1911 { .gm = 255, .pga = 255, .pad = 128, .dac = 0, .bb_mult = 64, },1912 { .gm = 255, .pga = 255, .pad = 124, .dac = 0, .bb_mult = 64, },1913 { .gm = 255, .pga = 255, .pad = 121, .dac = 0, .bb_mult = 64, },1914 { .gm = 255, .pga = 255, .pad = 117, .dac = 0, .bb_mult = 64, },1915 { .gm = 255, .pga = 255, .pad = 114, .dac = 0, .bb_mult = 64, },1916 { .gm = 255, .pga = 255, .pad = 111, .dac = 0, .bb_mult = 64, },1917 { .gm = 255, .pga = 255, .pad = 108, .dac = 0, .bb_mult = 64, },1918 { .gm = 255, .pga = 255, .pad = 105, .dac = 0, .bb_mult = 64, },1919 { .gm = 255, .pga = 255, .pad = 102, .dac = 0, .bb_mult = 64, },1920 { .gm = 255, .pga = 255, .pad = 99, .dac = 0, .bb_mult = 64, },1921 { .gm = 255, .pga = 255, .pad = 96, .dac = 0, .bb_mult = 64, },1922 { .gm = 255, .pga = 255, .pad = 93, .dac = 0, .bb_mult = 64, },1923 { .gm = 255, .pga = 255, .pad = 91, .dac = 0, .bb_mult = 64, },1924 { .gm = 255, .pga = 255, .pad = 88, .dac = 0, .bb_mult = 64, },1925 { .gm = 255, .pga = 255, .pad = 86, .dac = 0, .bb_mult = 64, },1926 { .gm = 255, .pga = 255, .pad = 83, .dac = 0, .bb_mult = 64, },1927 { .gm = 255, .pga = 255, .pad = 81, .dac = 0, .bb_mult = 64, },1928 { .gm = 255, .pga = 255, .pad = 79, .dac = 0, .bb_mult = 64, },1929 { .gm = 255, .pga = 255, .pad = 76, .dac = 0, .bb_mult = 64, },1930 { .gm = 255, .pga = 255, .pad = 74, .dac = 0, .bb_mult = 64, },1931 { .gm = 255, .pga = 255, .pad = 72, .dac = 0, .bb_mult = 64, },1932 { .gm = 255, .pga = 255, .pad = 70, .dac = 0, .bb_mult = 64, },1933 { .gm = 255, .pga = 255, .pad = 68, .dac = 0, .bb_mult = 64, },1934 { .gm = 255, .pga = 255, .pad = 66, .dac = 0, .bb_mult = 64, },1935 { .gm = 255, .pga = 255, .pad = 64, .dac = 0, .bb_mult = 64, },1936 { .gm = 255, .pga = 248, .pad = 64, .dac = 0, .bb_mult = 64, },1937 { .gm = 255, .pga = 248, .pad = 62, .dac = 0, .bb_mult = 64, },1938 { .gm = 255, .pga = 241, .pad = 62, .dac = 0, .bb_mult = 64, },1939 { .gm = 255, .pga = 241, .pad = 60, .dac = 0, .bb_mult = 64, },1940 { .gm = 255, .pga = 234, .pad = 60, .dac = 0, .bb_mult = 64, },1941 { .gm = 255, .pga = 234, .pad = 59, .dac = 0, .bb_mult = 64, },1942 { .gm = 255, .pga = 227, .pad = 59, .dac = 0, .bb_mult = 64, },1943 { .gm = 255, .pga = 227, .pad = 57, .dac = 0, .bb_mult = 64, },1944 { .gm = 255, .pga = 221, .pad = 57, .dac = 0, .bb_mult = 64, },1945 { .gm = 255, .pga = 221, .pad = 55, .dac = 0, .bb_mult = 64, },1946 { .gm = 255, .pga = 215, .pad = 55, .dac = 0, .bb_mult = 64, },1947 { .gm = 255, .pga = 215, .pad = 54, .dac = 0, .bb_mult = 64, },1948 { .gm = 255, .pga = 208, .pad = 54, .dac = 0, .bb_mult = 64, },1949 { .gm = 255, .pga = 208, .pad = 52, .dac = 0, .bb_mult = 64, },1950 { .gm = 255, .pga = 203, .pad = 52, .dac = 0, .bb_mult = 64, },1951 { .gm = 255, .pga = 203, .pad = 51, .dac = 0, .bb_mult = 64, },1952 { .gm = 255, .pga = 197, .pad = 51, .dac = 0, .bb_mult = 64, },1953 { .gm = 255, .pga = 197, .pad = 49, .dac = 0, .bb_mult = 64, },1954 { .gm = 255, .pga = 191, .pad = 49, .dac = 0, .bb_mult = 64, },1955 { .gm = 255, .pga = 191, .pad = 48, .dac = 0, .bb_mult = 64, },1956 { .gm = 255, .pga = 186, .pad = 48, .dac = 0, .bb_mult = 64, },1957 { .gm = 255, .pga = 186, .pad = 47, .dac = 0, .bb_mult = 64, },1958 { .gm = 255, .pga = 181, .pad = 47, .dac = 0, .bb_mult = 64, },1959 { .gm = 255, .pga = 181, .pad = 45, .dac = 0, .bb_mult = 64, },1960 { .gm = 255, .pga = 175, .pad = 45, .dac = 0, .bb_mult = 64, },1961 { .gm = 255, .pga = 175, .pad = 44, .dac = 0, .bb_mult = 64, },1962 { .gm = 255, .pga = 170, .pad = 44, .dac = 0, .bb_mult = 64, },1963 { .gm = 255, .pga = 170, .pad = 43, .dac = 0, .bb_mult = 64, },1964 { .gm = 255, .pga = 166, .pad = 43, .dac = 0, .bb_mult = 64, },1965 { .gm = 255, .pga = 166, .pad = 42, .dac = 0, .bb_mult = 64, },1966 { .gm = 255, .pga = 161, .pad = 42, .dac = 0, .bb_mult = 64, },1967 { .gm = 255, .pga = 161, .pad = 40, .dac = 0, .bb_mult = 64, },1968 { .gm = 255, .pga = 156, .pad = 40, .dac = 0, .bb_mult = 64, },1969 { .gm = 255, .pga = 156, .pad = 39, .dac = 0, .bb_mult = 64, },1970 { .gm = 255, .pga = 152, .pad = 39, .dac = 0, .bb_mult = 64, },1971 { .gm = 255, .pga = 152, .pad = 38, .dac = 0, .bb_mult = 64, },1972 { .gm = 255, .pga = 148, .pad = 38, .dac = 0, .bb_mult = 64, },1973 { .gm = 255, .pga = 148, .pad = 37, .dac = 0, .bb_mult = 64, },1974 { .gm = 255, .pga = 143, .pad = 37, .dac = 0, .bb_mult = 64, },1975 { .gm = 255, .pga = 143, .pad = 36, .dac = 0, .bb_mult = 64, },1976 { .gm = 255, .pga = 139, .pad = 36, .dac = 0, .bb_mult = 64, },1977 { .gm = 255, .pga = 139, .pad = 35, .dac = 0, .bb_mult = 64, },1978 { .gm = 255, .pga = 135, .pad = 35, .dac = 0, .bb_mult = 64, },1979 { .gm = 255, .pga = 135, .pad = 34, .dac = 0, .bb_mult = 64, },1980 { .gm = 255, .pga = 132, .pad = 34, .dac = 0, .bb_mult = 64, },1981 { .gm = 255, .pga = 132, .pad = 33, .dac = 0, .bb_mult = 64, },1982 { .gm = 255, .pga = 128, .pad = 33, .dac = 0, .bb_mult = 64, },1983 { .gm = 255, .pga = 128, .pad = 32, .dac = 0, .bb_mult = 64, },1984 { .gm = 255, .pga = 124, .pad = 32, .dac = 0, .bb_mult = 64, },1985 { .gm = 255, .pga = 124, .pad = 31, .dac = 0, .bb_mult = 64, },1986 { .gm = 255, .pga = 121, .pad = 31, .dac = 0, .bb_mult = 64, },1987 { .gm = 255, .pga = 121, .pad = 30, .dac = 0, .bb_mult = 64, },1988 { .gm = 255, .pga = 117, .pad = 30, .dac = 0, .bb_mult = 64, },1989 { .gm = 255, .pga = 117, .pad = 29, .dac = 0, .bb_mult = 64, },1990 { .gm = 255, .pga = 114, .pad = 29, .dac = 0, .bb_mult = 64, },1991 { .gm = 255, .pga = 114, .pad = 29, .dac = 0, .bb_mult = 64, },1992 { .gm = 255, .pga = 111, .pad = 29, .dac = 0, .bb_mult = 64, },1993};1994 1995static const struct lpphy_tx_gain_table_entry lpphy_rev2_2ghz_tx_gain_table[] = {1996 { .gm = 7, .pga = 99, .pad = 255, .dac = 0, .bb_mult = 64, },1997 { .gm = 7, .pga = 96, .pad = 255, .dac = 0, .bb_mult = 64, },1998 { .gm = 7, .pga = 93, .pad = 255, .dac = 0, .bb_mult = 64, },1999 { .gm = 7, .pga = 90, .pad = 255, .dac = 0, .bb_mult = 64, },2000 { .gm = 7, .pga = 88, .pad = 255, .dac = 0, .bb_mult = 64, },2001 { .gm = 7, .pga = 85, .pad = 255, .dac = 0, .bb_mult = 64, },2002 { .gm = 7, .pga = 83, .pad = 255, .dac = 0, .bb_mult = 64, },2003 { .gm = 7, .pga = 81, .pad = 255, .dac = 0, .bb_mult = 64, },2004 { .gm = 7, .pga = 78, .pad = 255, .dac = 0, .bb_mult = 64, },2005 { .gm = 7, .pga = 76, .pad = 255, .dac = 0, .bb_mult = 64, },2006 { .gm = 7, .pga = 74, .pad = 255, .dac = 0, .bb_mult = 64, },2007 { .gm = 7, .pga = 72, .pad = 255, .dac = 0, .bb_mult = 64, },2008 { .gm = 7, .pga = 70, .pad = 255, .dac = 0, .bb_mult = 64, },2009 { .gm = 7, .pga = 68, .pad = 255, .dac = 0, .bb_mult = 64, },2010 { .gm = 7, .pga = 66, .pad = 255, .dac = 0, .bb_mult = 64, },2011 { .gm = 7, .pga = 64, .pad = 255, .dac = 0, .bb_mult = 64, },2012 { .gm = 7, .pga = 64, .pad = 255, .dac = 0, .bb_mult = 64, },2013 { .gm = 7, .pga = 62, .pad = 255, .dac = 0, .bb_mult = 64, },2014 { .gm = 7, .pga = 62, .pad = 248, .dac = 0, .bb_mult = 64, },2015 { .gm = 7, .pga = 60, .pad = 248, .dac = 0, .bb_mult = 64, },2016 { .gm = 7, .pga = 60, .pad = 241, .dac = 0, .bb_mult = 64, },2017 { .gm = 7, .pga = 59, .pad = 241, .dac = 0, .bb_mult = 64, },2018 { .gm = 7, .pga = 59, .pad = 234, .dac = 0, .bb_mult = 64, },2019 { .gm = 7, .pga = 57, .pad = 234, .dac = 0, .bb_mult = 64, },2020 { .gm = 7, .pga = 57, .pad = 227, .dac = 0, .bb_mult = 64, },2021 { .gm = 7, .pga = 55, .pad = 227, .dac = 0, .bb_mult = 64, },2022 { .gm = 7, .pga = 55, .pad = 221, .dac = 0, .bb_mult = 64, },2023 { .gm = 7, .pga = 54, .pad = 221, .dac = 0, .bb_mult = 64, },2024 { .gm = 7, .pga = 54, .pad = 215, .dac = 0, .bb_mult = 64, },2025 { .gm = 7, .pga = 52, .pad = 215, .dac = 0, .bb_mult = 64, },2026 { .gm = 7, .pga = 52, .pad = 208, .dac = 0, .bb_mult = 64, },2027 { .gm = 7, .pga = 51, .pad = 208, .dac = 0, .bb_mult = 64, },2028 { .gm = 7, .pga = 51, .pad = 203, .dac = 0, .bb_mult = 64, },2029 { .gm = 7, .pga = 49, .pad = 203, .dac = 0, .bb_mult = 64, },2030 { .gm = 7, .pga = 49, .pad = 197, .dac = 0, .bb_mult = 64, },2031 { .gm = 7, .pga = 48, .pad = 197, .dac = 0, .bb_mult = 64, },2032 { .gm = 7, .pga = 48, .pad = 191, .dac = 0, .bb_mult = 64, },2033 { .gm = 7, .pga = 47, .pad = 191, .dac = 0, .bb_mult = 64, },2034 { .gm = 7, .pga = 47, .pad = 186, .dac = 0, .bb_mult = 64, },2035 { .gm = 7, .pga = 45, .pad = 186, .dac = 0, .bb_mult = 64, },2036 { .gm = 7, .pga = 45, .pad = 181, .dac = 0, .bb_mult = 64, },2037 { .gm = 7, .pga = 44, .pad = 181, .dac = 0, .bb_mult = 64, },2038 { .gm = 7, .pga = 44, .pad = 175, .dac = 0, .bb_mult = 64, },2039 { .gm = 7, .pga = 43, .pad = 175, .dac = 0, .bb_mult = 64, },2040 { .gm = 7, .pga = 43, .pad = 170, .dac = 0, .bb_mult = 64, },2041 { .gm = 7, .pga = 42, .pad = 170, .dac = 0, .bb_mult = 64, },2042 { .gm = 7, .pga = 42, .pad = 166, .dac = 0, .bb_mult = 64, },2043 { .gm = 7, .pga = 40, .pad = 166, .dac = 0, .bb_mult = 64, },2044 { .gm = 7, .pga = 40, .pad = 161, .dac = 0, .bb_mult = 64, },2045 { .gm = 7, .pga = 39, .pad = 161, .dac = 0, .bb_mult = 64, },2046 { .gm = 7, .pga = 39, .pad = 156, .dac = 0, .bb_mult = 64, },2047 { .gm = 7, .pga = 38, .pad = 156, .dac = 0, .bb_mult = 64, },2048 { .gm = 7, .pga = 38, .pad = 152, .dac = 0, .bb_mult = 64, },2049 { .gm = 7, .pga = 37, .pad = 152, .dac = 0, .bb_mult = 64, },2050 { .gm = 7, .pga = 37, .pad = 148, .dac = 0, .bb_mult = 64, },2051 { .gm = 7, .pga = 36, .pad = 148, .dac = 0, .bb_mult = 64, },2052 { .gm = 7, .pga = 36, .pad = 143, .dac = 0, .bb_mult = 64, },2053 { .gm = 7, .pga = 35, .pad = 143, .dac = 0, .bb_mult = 64, },2054 { .gm = 7, .pga = 35, .pad = 139, .dac = 0, .bb_mult = 64, },2055 { .gm = 7, .pga = 34, .pad = 139, .dac = 0, .bb_mult = 64, },2056 { .gm = 7, .pga = 34, .pad = 135, .dac = 0, .bb_mult = 64, },2057 { .gm = 7, .pga = 33, .pad = 135, .dac = 0, .bb_mult = 64, },2058 { .gm = 7, .pga = 33, .pad = 132, .dac = 0, .bb_mult = 64, },2059 { .gm = 7, .pga = 32, .pad = 132, .dac = 0, .bb_mult = 64, },2060 { .gm = 7, .pga = 32, .pad = 128, .dac = 0, .bb_mult = 64, },2061 { .gm = 7, .pga = 31, .pad = 128, .dac = 0, .bb_mult = 64, },2062 { .gm = 7, .pga = 31, .pad = 124, .dac = 0, .bb_mult = 64, },2063 { .gm = 7, .pga = 30, .pad = 124, .dac = 0, .bb_mult = 64, },2064 { .gm = 7, .pga = 30, .pad = 121, .dac = 0, .bb_mult = 64, },2065 { .gm = 7, .pga = 29, .pad = 121, .dac = 0, .bb_mult = 64, },2066 { .gm = 7, .pga = 29, .pad = 117, .dac = 0, .bb_mult = 64, },2067 { .gm = 7, .pga = 29, .pad = 117, .dac = 0, .bb_mult = 64, },2068 { .gm = 7, .pga = 29, .pad = 114, .dac = 0, .bb_mult = 64, },2069 { .gm = 7, .pga = 28, .pad = 114, .dac = 0, .bb_mult = 64, },2070 { .gm = 7, .pga = 28, .pad = 111, .dac = 0, .bb_mult = 64, },2071 { .gm = 7, .pga = 27, .pad = 111, .dac = 0, .bb_mult = 64, },2072 { .gm = 7, .pga = 27, .pad = 108, .dac = 0, .bb_mult = 64, },2073 { .gm = 7, .pga = 26, .pad = 108, .dac = 0, .bb_mult = 64, },2074 { .gm = 7, .pga = 26, .pad = 104, .dac = 0, .bb_mult = 64, },2075 { .gm = 7, .pga = 25, .pad = 104, .dac = 0, .bb_mult = 64, },2076 { .gm = 7, .pga = 25, .pad = 102, .dac = 0, .bb_mult = 64, },2077 { .gm = 7, .pga = 25, .pad = 102, .dac = 0, .bb_mult = 64, },2078 { .gm = 7, .pga = 25, .pad = 99, .dac = 0, .bb_mult = 64, },2079 { .gm = 7, .pga = 24, .pad = 99, .dac = 0, .bb_mult = 64, },2080 { .gm = 7, .pga = 24, .pad = 96, .dac = 0, .bb_mult = 64, },2081 { .gm = 7, .pga = 23, .pad = 96, .dac = 0, .bb_mult = 64, },2082 { .gm = 7, .pga = 23, .pad = 93, .dac = 0, .bb_mult = 64, },2083 { .gm = 7, .pga = 23, .pad = 93, .dac = 0, .bb_mult = 64, },2084 { .gm = 7, .pga = 23, .pad = 90, .dac = 0, .bb_mult = 64, },2085 { .gm = 7, .pga = 22, .pad = 90, .dac = 0, .bb_mult = 64, },2086 { .gm = 7, .pga = 22, .pad = 88, .dac = 0, .bb_mult = 64, },2087 { .gm = 7, .pga = 21, .pad = 88, .dac = 0, .bb_mult = 64, },2088 { .gm = 7, .pga = 21, .pad = 85, .dac = 0, .bb_mult = 64, },2089 { .gm = 7, .pga = 21, .pad = 85, .dac = 0, .bb_mult = 64, },2090 { .gm = 7, .pga = 21, .pad = 83, .dac = 0, .bb_mult = 64, },2091 { .gm = 7, .pga = 20, .pad = 83, .dac = 0, .bb_mult = 64, },2092 { .gm = 7, .pga = 20, .pad = 81, .dac = 0, .bb_mult = 64, },2093 { .gm = 7, .pga = 20, .pad = 81, .dac = 0, .bb_mult = 64, },2094 { .gm = 7, .pga = 20, .pad = 78, .dac = 0, .bb_mult = 64, },2095 { .gm = 7, .pga = 19, .pad = 78, .dac = 0, .bb_mult = 64, },2096 { .gm = 7, .pga = 19, .pad = 76, .dac = 0, .bb_mult = 64, },2097 { .gm = 7, .pga = 19, .pad = 76, .dac = 0, .bb_mult = 64, },2098 { .gm = 7, .pga = 19, .pad = 74, .dac = 0, .bb_mult = 64, },2099 { .gm = 7, .pga = 18, .pad = 74, .dac = 0, .bb_mult = 64, },2100 { .gm = 7, .pga = 18, .pad = 72, .dac = 0, .bb_mult = 64, },2101 { .gm = 7, .pga = 18, .pad = 72, .dac = 0, .bb_mult = 64, },2102 { .gm = 7, .pga = 18, .pad = 70, .dac = 0, .bb_mult = 64, },2103 { .gm = 7, .pga = 17, .pad = 70, .dac = 0, .bb_mult = 64, },2104 { .gm = 7, .pga = 17, .pad = 68, .dac = 0, .bb_mult = 64, },2105 { .gm = 7, .pga = 17, .pad = 68, .dac = 0, .bb_mult = 64, },2106 { .gm = 7, .pga = 17, .pad = 66, .dac = 0, .bb_mult = 64, },2107 { .gm = 7, .pga = 16, .pad = 66, .dac = 0, .bb_mult = 64, },2108 { .gm = 7, .pga = 16, .pad = 64, .dac = 0, .bb_mult = 64, },2109 { .gm = 7, .pga = 16, .pad = 64, .dac = 0, .bb_mult = 64, },2110 { .gm = 7, .pga = 16, .pad = 62, .dac = 0, .bb_mult = 64, },2111 { .gm = 7, .pga = 15, .pad = 62, .dac = 0, .bb_mult = 64, },2112 { .gm = 7, .pga = 15, .pad = 60, .dac = 0, .bb_mult = 64, },2113 { .gm = 7, .pga = 15, .pad = 60, .dac = 0, .bb_mult = 64, },2114 { .gm = 7, .pga = 15, .pad = 59, .dac = 0, .bb_mult = 64, },2115 { .gm = 7, .pga = 14, .pad = 59, .dac = 0, .bb_mult = 64, },2116 { .gm = 7, .pga = 14, .pad = 57, .dac = 0, .bb_mult = 64, },2117 { .gm = 7, .pga = 14, .pad = 57, .dac = 0, .bb_mult = 64, },2118 { .gm = 7, .pga = 14, .pad = 55, .dac = 0, .bb_mult = 64, },2119 { .gm = 7, .pga = 14, .pad = 55, .dac = 0, .bb_mult = 64, },2120 { .gm = 7, .pga = 14, .pad = 54, .dac = 0, .bb_mult = 64, },2121 { .gm = 7, .pga = 13, .pad = 54, .dac = 0, .bb_mult = 64, },2122 { .gm = 7, .pga = 13, .pad = 52, .dac = 0, .bb_mult = 64, },2123 { .gm = 7, .pga = 13, .pad = 52, .dac = 0, .bb_mult = 64, },2124};2125 2126static const struct lpphy_tx_gain_table_entry lpphy_rev2_5ghz_tx_gain_table[] = {2127 { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 152, },2128 { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 147, },2129 { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 143, },2130 { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 139, },2131 { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 135, },2132 { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 131, },2133 { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 128, },2134 { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 124, },2135 { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 121, },2136 { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 117, },2137 { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 114, },2138 { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 111, },2139 { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 107, },2140 { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 104, },2141 { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 101, },2142 { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 99, },2143 { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 96, },2144 { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 93, },2145 { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 90, },2146 { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 88, },2147 { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 85, },2148 { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 83, },2149 { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 81, },2150 { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 78, },2151 { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 76, },2152 { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 74, },2153 { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 72, },2154 { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 70, },2155 { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 68, },2156 { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 66, },2157 { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 64, },2158 { .gm = 255, .pga = 255, .pad = 248, .dac = 0, .bb_mult = 64, },2159 { .gm = 255, .pga = 255, .pad = 241, .dac = 0, .bb_mult = 64, },2160 { .gm = 255, .pga = 255, .pad = 234, .dac = 0, .bb_mult = 64, },2161 { .gm = 255, .pga = 255, .pad = 227, .dac = 0, .bb_mult = 64, },2162 { .gm = 255, .pga = 255, .pad = 221, .dac = 0, .bb_mult = 64, },2163 { .gm = 255, .pga = 255, .pad = 215, .dac = 0, .bb_mult = 64, },2164 { .gm = 255, .pga = 255, .pad = 208, .dac = 0, .bb_mult = 64, },2165 { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 64, },2166 { .gm = 255, .pga = 255, .pad = 197, .dac = 0, .bb_mult = 64, },2167 { .gm = 255, .pga = 255, .pad = 191, .dac = 0, .bb_mult = 64, },2168 { .gm = 255, .pga = 255, .pad = 186, .dac = 0, .bb_mult = 64, },2169 { .gm = 255, .pga = 255, .pad = 181, .dac = 0, .bb_mult = 64, },2170 { .gm = 255, .pga = 255, .pad = 175, .dac = 0, .bb_mult = 64, },2171 { .gm = 255, .pga = 255, .pad = 170, .dac = 0, .bb_mult = 64, },2172 { .gm = 255, .pga = 255, .pad = 166, .dac = 0, .bb_mult = 64, },2173 { .gm = 255, .pga = 255, .pad = 161, .dac = 0, .bb_mult = 64, },2174 { .gm = 255, .pga = 255, .pad = 156, .dac = 0, .bb_mult = 64, },2175 { .gm = 255, .pga = 255, .pad = 152, .dac = 0, .bb_mult = 64, },2176 { .gm = 255, .pga = 255, .pad = 148, .dac = 0, .bb_mult = 64, },2177 { .gm = 255, .pga = 255, .pad = 143, .dac = 0, .bb_mult = 64, },2178 { .gm = 255, .pga = 255, .pad = 139, .dac = 0, .bb_mult = 64, },2179 { .gm = 255, .pga = 255, .pad = 135, .dac = 0, .bb_mult = 64, },2180 { .gm = 255, .pga = 255, .pad = 132, .dac = 0, .bb_mult = 64, },2181 { .gm = 255, .pga = 255, .pad = 128, .dac = 0, .bb_mult = 64, },2182 { .gm = 255, .pga = 255, .pad = 124, .dac = 0, .bb_mult = 64, },2183 { .gm = 255, .pga = 255, .pad = 121, .dac = 0, .bb_mult = 64, },2184 { .gm = 255, .pga = 255, .pad = 117, .dac = 0, .bb_mult = 64, },2185 { .gm = 255, .pga = 255, .pad = 114, .dac = 0, .bb_mult = 64, },2186 { .gm = 255, .pga = 255, .pad = 111, .dac = 0, .bb_mult = 64, },2187 { .gm = 255, .pga = 255, .pad = 108, .dac = 0, .bb_mult = 64, },2188 { .gm = 255, .pga = 255, .pad = 104, .dac = 0, .bb_mult = 64, },2189 { .gm = 255, .pga = 255, .pad = 102, .dac = 0, .bb_mult = 64, },2190 { .gm = 255, .pga = 255, .pad = 99, .dac = 0, .bb_mult = 64, },2191 { .gm = 255, .pga = 255, .pad = 96, .dac = 0, .bb_mult = 64, },2192 { .gm = 255, .pga = 255, .pad = 93, .dac = 0, .bb_mult = 64, },2193 { .gm = 255, .pga = 255, .pad = 90, .dac = 0, .bb_mult = 64, },2194 { .gm = 255, .pga = 255, .pad = 88, .dac = 0, .bb_mult = 64, },2195 { .gm = 255, .pga = 255, .pad = 85, .dac = 0, .bb_mult = 64, },2196 { .gm = 255, .pga = 255, .pad = 83, .dac = 0, .bb_mult = 64, },2197 { .gm = 255, .pga = 255, .pad = 81, .dac = 0, .bb_mult = 64, },2198 { .gm = 255, .pga = 255, .pad = 78, .dac = 0, .bb_mult = 64, },2199 { .gm = 255, .pga = 255, .pad = 76, .dac = 0, .bb_mult = 64, },2200 { .gm = 255, .pga = 255, .pad = 74, .dac = 0, .bb_mult = 64, },2201 { .gm = 255, .pga = 255, .pad = 72, .dac = 0, .bb_mult = 64, },2202 { .gm = 255, .pga = 255, .pad = 70, .dac = 0, .bb_mult = 64, },2203 { .gm = 255, .pga = 255, .pad = 68, .dac = 0, .bb_mult = 64, },2204 { .gm = 255, .pga = 255, .pad = 66, .dac = 0, .bb_mult = 64, },2205 { .gm = 255, .pga = 255, .pad = 64, .dac = 0, .bb_mult = 64, },2206 { .gm = 255, .pga = 255, .pad = 64, .dac = 0, .bb_mult = 64, },2207 { .gm = 255, .pga = 255, .pad = 62, .dac = 0, .bb_mult = 64, },2208 { .gm = 255, .pga = 248, .pad = 62, .dac = 0, .bb_mult = 64, },2209 { .gm = 255, .pga = 248, .pad = 60, .dac = 0, .bb_mult = 64, },2210 { .gm = 255, .pga = 241, .pad = 60, .dac = 0, .bb_mult = 64, },2211 { .gm = 255, .pga = 241, .pad = 59, .dac = 0, .bb_mult = 64, },2212 { .gm = 255, .pga = 234, .pad = 59, .dac = 0, .bb_mult = 64, },2213 { .gm = 255, .pga = 234, .pad = 57, .dac = 0, .bb_mult = 64, },2214 { .gm = 255, .pga = 227, .pad = 57, .dac = 0, .bb_mult = 64, },2215 { .gm = 255, .pga = 227, .pad = 55, .dac = 0, .bb_mult = 64, },2216 { .gm = 255, .pga = 221, .pad = 55, .dac = 0, .bb_mult = 64, },2217 { .gm = 255, .pga = 221, .pad = 54, .dac = 0, .bb_mult = 64, },2218 { .gm = 255, .pga = 215, .pad = 54, .dac = 0, .bb_mult = 64, },2219 { .gm = 255, .pga = 215, .pad = 52, .dac = 0, .bb_mult = 64, },2220 { .gm = 255, .pga = 208, .pad = 52, .dac = 0, .bb_mult = 64, },2221 { .gm = 255, .pga = 208, .pad = 51, .dac = 0, .bb_mult = 64, },2222 { .gm = 255, .pga = 203, .pad = 51, .dac = 0, .bb_mult = 64, },2223 { .gm = 255, .pga = 203, .pad = 49, .dac = 0, .bb_mult = 64, },2224 { .gm = 255, .pga = 197, .pad = 49, .dac = 0, .bb_mult = 64, },2225 { .gm = 255, .pga = 197, .pad = 48, .dac = 0, .bb_mult = 64, },2226 { .gm = 255, .pga = 191, .pad = 48, .dac = 0, .bb_mult = 64, },2227 { .gm = 255, .pga = 191, .pad = 47, .dac = 0, .bb_mult = 64, },2228 { .gm = 255, .pga = 186, .pad = 47, .dac = 0, .bb_mult = 64, },2229 { .gm = 255, .pga = 186, .pad = 45, .dac = 0, .bb_mult = 64, },2230 { .gm = 255, .pga = 181, .pad = 45, .dac = 0, .bb_mult = 64, },2231 { .gm = 255, .pga = 181, .pad = 44, .dac = 0, .bb_mult = 64, },2232 { .gm = 255, .pga = 175, .pad = 44, .dac = 0, .bb_mult = 64, },2233 { .gm = 255, .pga = 175, .pad = 43, .dac = 0, .bb_mult = 64, },2234 { .gm = 255, .pga = 170, .pad = 43, .dac = 0, .bb_mult = 64, },2235 { .gm = 255, .pga = 170, .pad = 42, .dac = 0, .bb_mult = 64, },2236 { .gm = 255, .pga = 166, .pad = 42, .dac = 0, .bb_mult = 64, },2237 { .gm = 255, .pga = 166, .pad = 40, .dac = 0, .bb_mult = 64, },2238 { .gm = 255, .pga = 161, .pad = 40, .dac = 0, .bb_mult = 64, },2239 { .gm = 255, .pga = 161, .pad = 39, .dac = 0, .bb_mult = 64, },2240 { .gm = 255, .pga = 156, .pad = 39, .dac = 0, .bb_mult = 64, },2241 { .gm = 255, .pga = 156, .pad = 38, .dac = 0, .bb_mult = 64, },2242 { .gm = 255, .pga = 152, .pad = 38, .dac = 0, .bb_mult = 64, },2243 { .gm = 255, .pga = 152, .pad = 37, .dac = 0, .bb_mult = 64, },2244 { .gm = 255, .pga = 148, .pad = 37, .dac = 0, .bb_mult = 64, },2245 { .gm = 255, .pga = 148, .pad = 36, .dac = 0, .bb_mult = 64, },2246 { .gm = 255, .pga = 143, .pad = 36, .dac = 0, .bb_mult = 64, },2247 { .gm = 255, .pga = 143, .pad = 35, .dac = 0, .bb_mult = 64, },2248 { .gm = 255, .pga = 139, .pad = 35, .dac = 0, .bb_mult = 64, },2249 { .gm = 255, .pga = 139, .pad = 34, .dac = 0, .bb_mult = 64, },2250 { .gm = 255, .pga = 135, .pad = 34, .dac = 0, .bb_mult = 64, },2251 { .gm = 255, .pga = 135, .pad = 33, .dac = 0, .bb_mult = 64, },2252 { .gm = 255, .pga = 132, .pad = 33, .dac = 0, .bb_mult = 64, },2253 { .gm = 255, .pga = 132, .pad = 32, .dac = 0, .bb_mult = 64, },2254 { .gm = 255, .pga = 128, .pad = 32, .dac = 0, .bb_mult = 64, },2255};2256 2257void lpphy_rev0_1_table_init(struct b43_wldev *dev)2258{2259 B43_WARN_ON(dev->phy.rev >= 2);2260 2261 b43_lptab_write_bulk(dev, B43_LPTAB8(2, 0),2262 ARRAY_SIZE(lpphy_min_sig_sq_table), lpphy_min_sig_sq_table);2263 b43_lptab_write_bulk(dev, B43_LPTAB16(1, 0),2264 ARRAY_SIZE(lpphy_rev01_noise_scale_table), lpphy_rev01_noise_scale_table);2265 b43_lptab_write_bulk(dev, B43_LPTAB16(14, 0),2266 ARRAY_SIZE(lpphy_crs_gain_nft_table), lpphy_crs_gain_nft_table);2267 b43_lptab_write_bulk(dev, B43_LPTAB16(8, 0),2268 ARRAY_SIZE(lpphy_rev01_filter_control_table), lpphy_rev01_filter_control_table);2269 b43_lptab_write_bulk(dev, B43_LPTAB32(9, 0),2270 ARRAY_SIZE(lpphy_rev01_ps_control_table), lpphy_rev01_ps_control_table);2271 b43_lptab_write_bulk(dev, B43_LPTAB8(6, 0),2272 ARRAY_SIZE(lpphy_pll_fraction_table), lpphy_pll_fraction_table);2273 b43_lptab_write_bulk(dev, B43_LPTAB16(0, 0),2274 ARRAY_SIZE(lpphy_iqlo_cal_table), lpphy_iqlo_cal_table);2275 if (dev->phy.rev == 0) {2276 b43_lptab_write_bulk(dev, B43_LPTAB16(13, 0),2277 ARRAY_SIZE(lpphy_rev0_ofdm_cck_gain_table), lpphy_rev0_ofdm_cck_gain_table);2278 b43_lptab_write_bulk(dev, B43_LPTAB16(12, 0),2279 ARRAY_SIZE(lpphy_rev0_ofdm_cck_gain_table), lpphy_rev0_ofdm_cck_gain_table);2280 } else {2281 b43_lptab_write_bulk(dev, B43_LPTAB16(13, 0),2282 ARRAY_SIZE(lpphy_rev1_ofdm_cck_gain_table), lpphy_rev1_ofdm_cck_gain_table);2283 b43_lptab_write_bulk(dev, B43_LPTAB16(12, 0),2284 ARRAY_SIZE(lpphy_rev1_ofdm_cck_gain_table), lpphy_rev1_ofdm_cck_gain_table);2285}2286 b43_lptab_write_bulk(dev, B43_LPTAB16(15, 0),2287 ARRAY_SIZE(lpphy_gain_delta_table), lpphy_gain_delta_table);2288 b43_lptab_write_bulk(dev, B43_LPTAB32(10, 0),2289 ARRAY_SIZE(lpphy_tx_power_control_table), lpphy_tx_power_control_table);2290}2291 2292void lpphy_rev2plus_table_init(struct b43_wldev *dev)2293{2294 int i;2295 2296 B43_WARN_ON(dev->phy.rev < 2);2297 2298 for (i = 0; i < 704; i++)2299 b43_lptab_write(dev, B43_LPTAB32(7, i), 0);2300 2301 b43_lptab_write_bulk(dev, B43_LPTAB8(2, 0),2302 ARRAY_SIZE(lpphy_min_sig_sq_table), lpphy_min_sig_sq_table);2303 b43_lptab_write_bulk(dev, B43_LPTAB16(1, 0),2304 ARRAY_SIZE(lpphy_rev2plus_noise_scale_table), lpphy_rev2plus_noise_scale_table);2305 b43_lptab_write_bulk(dev, B43_LPTAB32(11, 0),2306 ARRAY_SIZE(lpphy_rev2plus_filter_control_table), lpphy_rev2plus_filter_control_table);2307 b43_lptab_write_bulk(dev, B43_LPTAB32(12, 0),2308 ARRAY_SIZE(lpphy_rev2plus_ps_control_table), lpphy_rev2plus_ps_control_table);2309 b43_lptab_write_bulk(dev, B43_LPTAB32(13, 0),2310 ARRAY_SIZE(lpphy_gain_idx_table), lpphy_gain_idx_table);2311 b43_lptab_write_bulk(dev, B43_LPTAB16(14, 0),2312 ARRAY_SIZE(lpphy_aux_gain_idx_table), lpphy_aux_gain_idx_table);2313 b43_lptab_write_bulk(dev, B43_LPTAB16(15, 0),2314 ARRAY_SIZE(lpphy_sw_control_table), lpphy_sw_control_table);2315 b43_lptab_write_bulk(dev, B43_LPTAB8(16, 0),2316 ARRAY_SIZE(lpphy_hf_table), lpphy_hf_table);2317 b43_lptab_write_bulk(dev, B43_LPTAB32(17, 0),2318 ARRAY_SIZE(lpphy_gain_value_table), lpphy_gain_value_table);2319 b43_lptab_write_bulk(dev, B43_LPTAB16(18, 0),2320 ARRAY_SIZE(lpphy_gain_table), lpphy_gain_table);2321 b43_lptab_write_bulk(dev, B43_LPTAB8(6, 0),2322 ARRAY_SIZE(lpphy_pll_fraction_table), lpphy_pll_fraction_table);2323 b43_lptab_write_bulk(dev, B43_LPTAB16(0, 0),2324 ARRAY_SIZE(lpphy_iqlo_cal_table), lpphy_iqlo_cal_table);2325 b43_lptab_write_bulk(dev, B43_LPTAB32(9, 0),2326 ARRAY_SIZE(lpphy_papd_eps_table), lpphy_papd_eps_table);2327 b43_lptab_write_bulk(dev, B43_LPTAB32(10, 0),2328 ARRAY_SIZE(lpphy_papd_mult_table), lpphy_papd_mult_table);2329 2330 if ((dev->dev->chip_id == 0x4325) && (dev->dev->chip_rev == 0)) {2331 b43_lptab_write_bulk(dev, B43_LPTAB32(13, 0),2332 ARRAY_SIZE(lpphy_a0_gain_idx_table), lpphy_a0_gain_idx_table);2333 b43_lptab_write_bulk(dev, B43_LPTAB16(14, 0),2334 ARRAY_SIZE(lpphy_a0_aux_gain_idx_table), lpphy_a0_aux_gain_idx_table);2335 b43_lptab_write_bulk(dev, B43_LPTAB32(17, 0),2336 ARRAY_SIZE(lpphy_a0_gain_value_table), lpphy_a0_gain_value_table);2337 b43_lptab_write_bulk(dev, B43_LPTAB16(18, 0),2338 ARRAY_SIZE(lpphy_a0_gain_table), lpphy_a0_gain_table);2339 }2340}2341 2342static void lpphy_rev0_1_write_gain_table(struct b43_wldev *dev, int offset,2343 struct lpphy_tx_gain_table_entry data)2344{2345 u32 tmp;2346 2347 B43_WARN_ON(dev->phy.rev >= 2);2348 2349 tmp = data.pad << 11;2350 tmp |= data.pga << 7;2351 tmp |= data.gm << 4;2352 tmp |= data.dac;2353 b43_lptab_write(dev, B43_LPTAB32(10, 0xC0 + offset), tmp);2354 tmp = data.bb_mult << 20;2355 b43_lptab_write(dev, B43_LPTAB32(10, 0x140 + offset), tmp);2356}2357 2358static void lpphy_rev2plus_write_gain_table(struct b43_wldev *dev, int offset,2359 struct lpphy_tx_gain_table_entry data)2360{2361 u32 tmp;2362 2363 B43_WARN_ON(dev->phy.rev < 2);2364 2365 tmp = data.pad << 16;2366 tmp |= data.pga << 8;2367 tmp |= data.gm;2368 if (dev->phy.rev >= 3) {2369 if (b43_current_band(dev->wl) == NL80211_BAND_5GHZ)2370 tmp |= 0x10 << 24;2371 else2372 tmp |= 0x70 << 24;2373 } else {2374 if (b43_current_band(dev->wl) == NL80211_BAND_5GHZ)2375 tmp |= 0x14 << 24;2376 else2377 tmp |= 0x7F << 24;2378 }2379 b43_lptab_write(dev, B43_LPTAB32(7, 0xC0 + offset), tmp);2380 tmp = data.bb_mult << 20;2381 tmp |= data.dac << 28;2382 b43_lptab_write(dev, B43_LPTAB32(7, 0x140 + offset), tmp);2383}2384 2385void lpphy_write_gain_table(struct b43_wldev *dev, int offset,2386 struct lpphy_tx_gain_table_entry data)2387{2388 if (dev->phy.rev >= 2)2389 lpphy_rev2plus_write_gain_table(dev, offset, data);2390 else2391 lpphy_rev0_1_write_gain_table(dev, offset, data);2392}2393 2394void lpphy_write_gain_table_bulk(struct b43_wldev *dev, int offset, int count,2395 const struct lpphy_tx_gain_table_entry *table)2396{2397 int i;2398 2399 for (i = offset; i < count; i++)2400 lpphy_write_gain_table(dev, i, table[i]);2401}2402 2403void lpphy_init_tx_gain_table(struct b43_wldev *dev)2404{2405 struct ssb_sprom *sprom = dev->dev->bus_sprom;2406 2407 switch (dev->phy.rev) {2408 case 0:2409 if ((sprom->boardflags_hi & B43_BFH_NOPA) ||2410 (sprom->boardflags_lo & B43_BFL_HGPA))2411 lpphy_write_gain_table_bulk(dev, 0, 128,2412 lpphy_rev0_nopa_tx_gain_table);2413 else if (b43_current_band(dev->wl) == NL80211_BAND_2GHZ)2414 lpphy_write_gain_table_bulk(dev, 0, 128,2415 lpphy_rev0_2ghz_tx_gain_table);2416 else2417 lpphy_write_gain_table_bulk(dev, 0, 128,2418 lpphy_rev0_5ghz_tx_gain_table);2419 break;2420 case 1:2421 if ((sprom->boardflags_hi & B43_BFH_NOPA) ||2422 (sprom->boardflags_lo & B43_BFL_HGPA))2423 lpphy_write_gain_table_bulk(dev, 0, 128,2424 lpphy_rev1_nopa_tx_gain_table);2425 else if (b43_current_band(dev->wl) == NL80211_BAND_2GHZ)2426 lpphy_write_gain_table_bulk(dev, 0, 128,2427 lpphy_rev1_2ghz_tx_gain_table);2428 else2429 lpphy_write_gain_table_bulk(dev, 0, 128,2430 lpphy_rev1_5ghz_tx_gain_table);2431 break;2432 default:2433 if (sprom->boardflags_hi & B43_BFH_NOPA)2434 lpphy_write_gain_table_bulk(dev, 0, 128,2435 lpphy_rev2_nopa_tx_gain_table);2436 else if (b43_current_band(dev->wl) == NL80211_BAND_2GHZ)2437 lpphy_write_gain_table_bulk(dev, 0, 128,2438 lpphy_rev2_2ghz_tx_gain_table);2439 else2440 lpphy_write_gain_table_bulk(dev, 0, 128,2441 lpphy_rev2_5ghz_tx_gain_table);2442 }2443}2444