1*4882a593Smuzhiyun /****************************************************************************** 2*4882a593Smuzhiyun * 3*4882a593Smuzhiyun * This file is provided under a dual BSD/GPLv2 license. When using or 4*4882a593Smuzhiyun * redistributing this file, you may do so under either license. 5*4882a593Smuzhiyun * 6*4882a593Smuzhiyun * GPL LICENSE SUMMARY 7*4882a593Smuzhiyun * 8*4882a593Smuzhiyun * Copyright(c) 2007 - 2014 Intel Corporation. All rights reserved. 9*4882a593Smuzhiyun * 10*4882a593Smuzhiyun * This program is free software; you can redistribute it and/or modify 11*4882a593Smuzhiyun * it under the terms of version 2 of the GNU General Public License as 12*4882a593Smuzhiyun * published by the Free Software Foundation. 13*4882a593Smuzhiyun * 14*4882a593Smuzhiyun * This program is distributed in the hope that it will be useful, but 15*4882a593Smuzhiyun * WITHOUT ANY WARRANTY; without even the implied warranty of 16*4882a593Smuzhiyun * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17*4882a593Smuzhiyun * General Public License for more details. 18*4882a593Smuzhiyun * 19*4882a593Smuzhiyun * The full GNU General Public License is included in this distribution 20*4882a593Smuzhiyun * in the file called COPYING. 21*4882a593Smuzhiyun * 22*4882a593Smuzhiyun * Contact Information: 23*4882a593Smuzhiyun * Intel Linux Wireless <linuxwifi@intel.com> 24*4882a593Smuzhiyun * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 25*4882a593Smuzhiyun * 26*4882a593Smuzhiyun * BSD LICENSE 27*4882a593Smuzhiyun * 28*4882a593Smuzhiyun * Copyright(c) 2005 - 2014 Intel Corporation. All rights reserved. 29*4882a593Smuzhiyun * All rights reserved. 30*4882a593Smuzhiyun * 31*4882a593Smuzhiyun * Redistribution and use in source and binary forms, with or without 32*4882a593Smuzhiyun * modification, are permitted provided that the following conditions 33*4882a593Smuzhiyun * are met: 34*4882a593Smuzhiyun * 35*4882a593Smuzhiyun * * Redistributions of source code must retain the above copyright 36*4882a593Smuzhiyun * notice, this list of conditions and the following disclaimer. 37*4882a593Smuzhiyun * * Redistributions in binary form must reproduce the above copyright 38*4882a593Smuzhiyun * notice, this list of conditions and the following disclaimer in 39*4882a593Smuzhiyun * the documentation and/or other materials provided with the 40*4882a593Smuzhiyun * distribution. 41*4882a593Smuzhiyun * * Neither the name Intel Corporation nor the names of its 42*4882a593Smuzhiyun * contributors may be used to endorse or promote products derived 43*4882a593Smuzhiyun * from this software without specific prior written permission. 44*4882a593Smuzhiyun * 45*4882a593Smuzhiyun * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 46*4882a593Smuzhiyun * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 47*4882a593Smuzhiyun * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 48*4882a593Smuzhiyun * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 49*4882a593Smuzhiyun * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 50*4882a593Smuzhiyun * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 51*4882a593Smuzhiyun * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 52*4882a593Smuzhiyun * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 53*4882a593Smuzhiyun * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 54*4882a593Smuzhiyun * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 55*4882a593Smuzhiyun * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 56*4882a593Smuzhiyun * 57*4882a593Smuzhiyun *****************************************************************************/ 58*4882a593Smuzhiyun /* 59*4882a593Smuzhiyun * Please use this file (iwl-agn-hw.h) only for hardware-related definitions. 60*4882a593Smuzhiyun */ 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun #ifndef __iwl_agn_hw_h__ 63*4882a593Smuzhiyun #define __iwl_agn_hw_h__ 64*4882a593Smuzhiyun 65*4882a593Smuzhiyun #define IWLAGN_RTC_INST_LOWER_BOUND (0x000000) 66*4882a593Smuzhiyun #define IWLAGN_RTC_INST_UPPER_BOUND (0x020000) 67*4882a593Smuzhiyun 68*4882a593Smuzhiyun #define IWLAGN_RTC_DATA_LOWER_BOUND (0x800000) 69*4882a593Smuzhiyun #define IWLAGN_RTC_DATA_UPPER_BOUND (0x80C000) 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun #define IWLAGN_RTC_INST_SIZE (IWLAGN_RTC_INST_UPPER_BOUND - \ 72*4882a593Smuzhiyun IWLAGN_RTC_INST_LOWER_BOUND) 73*4882a593Smuzhiyun #define IWLAGN_RTC_DATA_SIZE (IWLAGN_RTC_DATA_UPPER_BOUND - \ 74*4882a593Smuzhiyun IWLAGN_RTC_DATA_LOWER_BOUND) 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun #define IWL60_RTC_INST_LOWER_BOUND (0x000000) 77*4882a593Smuzhiyun #define IWL60_RTC_INST_UPPER_BOUND (0x040000) 78*4882a593Smuzhiyun #define IWL60_RTC_DATA_LOWER_BOUND (0x800000) 79*4882a593Smuzhiyun #define IWL60_RTC_DATA_UPPER_BOUND (0x814000) 80*4882a593Smuzhiyun #define IWL60_RTC_INST_SIZE \ 81*4882a593Smuzhiyun (IWL60_RTC_INST_UPPER_BOUND - IWL60_RTC_INST_LOWER_BOUND) 82*4882a593Smuzhiyun #define IWL60_RTC_DATA_SIZE \ 83*4882a593Smuzhiyun (IWL60_RTC_DATA_UPPER_BOUND - IWL60_RTC_DATA_LOWER_BOUND) 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun /* RSSI to dBm */ 86*4882a593Smuzhiyun #define IWLAGN_RSSI_OFFSET 44 87*4882a593Smuzhiyun 88*4882a593Smuzhiyun #define IWLAGN_DEFAULT_TX_RETRY 15 89*4882a593Smuzhiyun #define IWLAGN_MGMT_DFAULT_RETRY_LIMIT 3 90*4882a593Smuzhiyun #define IWLAGN_RTS_DFAULT_RETRY_LIMIT 60 91*4882a593Smuzhiyun #define IWLAGN_BAR_DFAULT_RETRY_LIMIT 60 92*4882a593Smuzhiyun #define IWLAGN_LOW_RETRY_LIMIT 7 93*4882a593Smuzhiyun 94*4882a593Smuzhiyun /* Limit range of txpower output target to be between these values */ 95*4882a593Smuzhiyun #define IWLAGN_TX_POWER_TARGET_POWER_MIN (0) /* 0 dBm: 1 milliwatt */ 96*4882a593Smuzhiyun #define IWLAGN_TX_POWER_TARGET_POWER_MAX (16) /* 16 dBm */ 97*4882a593Smuzhiyun 98*4882a593Smuzhiyun /* EEPROM */ 99*4882a593Smuzhiyun #define IWLAGN_EEPROM_IMG_SIZE 2048 100*4882a593Smuzhiyun 101*4882a593Smuzhiyun /* high blocks contain PAPD data */ 102*4882a593Smuzhiyun #define OTP_HIGH_IMAGE_SIZE_6x00 (6 * 512 * sizeof(u16)) /* 6 KB */ 103*4882a593Smuzhiyun #define OTP_HIGH_IMAGE_SIZE_1000 (0x200 * sizeof(u16)) /* 1024 bytes */ 104*4882a593Smuzhiyun #define OTP_MAX_LL_ITEMS_1000 (3) /* OTP blocks for 1000 */ 105*4882a593Smuzhiyun #define OTP_MAX_LL_ITEMS_6x00 (4) /* OTP blocks for 6x00 */ 106*4882a593Smuzhiyun #define OTP_MAX_LL_ITEMS_6x50 (7) /* OTP blocks for 6x50 */ 107*4882a593Smuzhiyun #define OTP_MAX_LL_ITEMS_2x00 (4) /* OTP blocks for 2x00 */ 108*4882a593Smuzhiyun 109*4882a593Smuzhiyun 110*4882a593Smuzhiyun #define IWLAGN_NUM_QUEUES 20 111*4882a593Smuzhiyun 112*4882a593Smuzhiyun #endif /* __iwl_agn_hw_h__ */ 113