1fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger/****************************************************************************** 2fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger * 3fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved. 4fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger * 5fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger * This program is free software; you can redistribute it and/or modify it 6fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger * under the terms of version 2 of the GNU General Public License as 7fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger * published by the Free Software Foundation. 8fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger * 9fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger * This program is distributed in the hope that it will be useful, but WITHOUT 10fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 12fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger * more details. 13fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger * 14fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger * You should have received a copy of the GNU General Public License along with 15fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger * this program; if not, write to the Free Software Foundation, Inc., 16fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA 17fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger * 18fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger * 19fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger ******************************************************************************/ 20fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger#ifndef __RTW_RF_H_ 21fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger#define __RTW_RF_H_ 22fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger 23fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger#include <rtw_cmd.h> 24fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger 25fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger#define OFDM_PHY 1 26fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger#define MIXED_PHY 2 27fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger#define CCK_PHY 3 28fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger 29fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger#define NumRates (13) 30fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger 31fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger/* slot time for 11g */ 32fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger#define SHORT_SLOT_TIME 9 33fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger#define NON_SHORT_SLOT_TIME 20 34fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger 35fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger#define RTL8711_RF_MAX_SENS 6 36fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger#define RTL8711_RF_DEF_SENS 4 37fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger 38fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger/* We now define the following channels as the max channels in each 39fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger * channel plan. */ 40fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger/* 2G, total 14 chnls */ 41fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger/* {1,2,3,4,5,6,7,8,9,10,11,12,13,14} */ 42fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger#define MAX_CHANNEL_NUM_2G 14 43fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger#define MAX_CHANNEL_NUM 14 /* 2.4 GHz only */ 44fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger 45fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger#define NUM_REGULATORYS 1 46fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger 47fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger/* Country codes */ 48fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger#define USA 0x555320 49fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger#define EUROPE 0x1 /* temp, should be provided later */ 50fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger#define JAPAN 0x2 /* temp, should be provided later */ 51fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger 52fff3340fc0fa032034016662d3d047ae152f1f8dLarry Fingerstruct regulatory_class { 53fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger u32 starting_freq; /* MHz, */ 54fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger u8 channel_set[MAX_CHANNEL_NUM]; 55fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger u8 channel_cck_power[MAX_CHANNEL_NUM]; /* dbm */ 56fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger u8 channel_ofdm_power[MAX_CHANNEL_NUM]; /* dbm */ 57fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger u8 txpower_limit; /* dbm */ 58fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger u8 channel_spacing; /* MHz */ 59fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger u8 modem; 60fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger}; 61fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger 62fff3340fc0fa032034016662d3d047ae152f1f8dLarry Fingerenum capability { 63fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger cESS = 0x0001, 64fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger cIBSS = 0x0002, 65fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger cPollable = 0x0004, 66fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger cPollReq = 0x0008, 67fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger cPrivacy = 0x0010, 68fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger cShortPreamble = 0x0020, 69fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger cPBCC = 0x0040, 70fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger cChannelAgility = 0x0080, 71fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger cSpectrumMgnt = 0x0100, 72fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger cQos = 0x0200, /* For HCCA, use with CF-Pollable 73fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger * and CF-PollReq */ 74fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger cShortSlotTime = 0x0400, 75fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger cAPSD = 0x0800, 76fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger cRM = 0x1000, /* RRM (Radio Request Measurement) */ 77fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger cDSSS_OFDM = 0x2000, 78fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger cDelayedBA = 0x4000, 79fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger cImmediateBA = 0x8000, 80fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger}; 81fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger 82fff3340fc0fa032034016662d3d047ae152f1f8dLarry Fingerenum _REG_PREAMBLE_MODE { 83fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger PREAMBLE_LONG = 1, 84fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger PREAMBLE_AUTO = 2, 85fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger PREAMBLE_SHORT = 3, 86fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger}; 87fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger 88fff3340fc0fa032034016662d3d047ae152f1f8dLarry Fingerenum _RTL8712_RF_MIMO_CONFIG_ { 89fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger RTL8712_RFCONFIG_1T = 0x10, 90fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger RTL8712_RFCONFIG_2T = 0x20, 91fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger RTL8712_RFCONFIG_1R = 0x01, 92fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger RTL8712_RFCONFIG_2R = 0x02, 93fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger RTL8712_RFCONFIG_1T1R = 0x11, 94fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger RTL8712_RFCONFIG_1T2R = 0x12, 95fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger RTL8712_RFCONFIG_TURBO = 0x92, 96fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger RTL8712_RFCONFIG_2T2R = 0x22 97fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger}; 98fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger 99fff3340fc0fa032034016662d3d047ae152f1f8dLarry Fingerenum rf90_radio_path { 100fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger RF90_PATH_A = 0, /* Radio Path A */ 101fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger RF90_PATH_B = 1, /* Radio Path B */ 102fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger RF90_PATH_C = 2, /* Radio Path C */ 103fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger RF90_PATH_D = 3 /* Radio Path D */ 104fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger}; 105fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger 106fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger/* Bandwidth Offset */ 107fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger#define HAL_PRIME_CHNL_OFFSET_DONT_CARE 0 108fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger#define HAL_PRIME_CHNL_OFFSET_LOWER 1 109fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger#define HAL_PRIME_CHNL_OFFSET_UPPER 2 110fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger 111fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger/* Represent Channel Width in HT Capabilities */ 112fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger/* */ 113fff3340fc0fa032034016662d3d047ae152f1f8dLarry Fingerenum ht_channel_width { 114fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger HT_CHANNEL_WIDTH_20 = 0, 115fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger HT_CHANNEL_WIDTH_40 = 1, 116fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger HT_CHANNEL_WIDTH_80 = 2, 117fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger HT_CHANNEL_WIDTH_160 = 3, 118fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger HT_CHANNEL_WIDTH_10 = 4, 119fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger}; 120fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger 121fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger/* */ 122f7bba924ed74d1811345f7be68d3e802339068deMasanari Iida/* Represent Extension Channel Offset in HT Capabilities */ 123fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger/* This is available only in 40Mhz mode. */ 124fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger/* */ 125fff3340fc0fa032034016662d3d047ae152f1f8dLarry Fingerenum ht_extchnl_offset { 126fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger HT_EXTCHNL_OFFSET_NO_EXT = 0, 127fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger HT_EXTCHNL_OFFSET_UPPER = 1, 128fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger HT_EXTCHNL_OFFSET_NO_DEF = 2, 129fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger HT_EXTCHNL_OFFSET_LOWER = 3, 130fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger}; 131fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger 132fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger/* 2007/11/15 MH Define different RF type. */ 133fff3340fc0fa032034016662d3d047ae152f1f8dLarry Fingerenum rt_rf_type_def { 134fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger RF_1T2R = 0, 135fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger RF_2T4R = 1, 136fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger RF_2T2R = 2, 137fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger RF_1T1R = 3, 138fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger RF_2T2R_GREEN = 4, 139fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger RF_819X_MAX_TYPE = 5, 140fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger}; 141fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger 142fff3340fc0fa032034016662d3d047ae152f1f8dLarry Fingeru32 rtw_ch2freq(u32 ch); 143fff3340fc0fa032034016662d3d047ae152f1f8dLarry Fingeru32 rtw_freq2ch(u32 freq); 144fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger 145fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger 146fff3340fc0fa032034016662d3d047ae152f1f8dLarry Finger#endif /* _RTL8711_RF_H_ */ 147