⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iwl-4965-hw.h

📁 linux内核源码
💻 H
📖 第 1 页 / 共 2 页
字号:
/****************************************************************************** * * This file is provided under a dual BSD/GPLv2 license.  When using or * redistributing this file, you may do so under either license. * * GPL LICENSE SUMMARY * * Copyright(c) 2005 - 2007 Intel Corporation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of version 2 of the GNU Geeral Public License as * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, * USA * * The full GNU General Public License is included in this distribution * in the file called LICENSE.GPL. * * Contact Information: * James P. Ketrenos <ipw2100-admin@linux.intel.com> * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 * * BSD LICENSE * * Copyright(c) 2005 - 2007 Intel Corporation. All rights reserved. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * *  * Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. *  * Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in *    the documentation and/or other materials provided with the *    distribution. *  * Neither the name Intel Corporation nor the names of its *    contributors may be used to endorse or promote products derived *    from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * *****************************************************************************/#ifndef __iwl_4965_hw_h__#define __iwl_4965_hw_h__#define IWL_RX_BUF_SIZE (4 * 1024)#define IWL_MAX_BSM_SIZE BSM_SRAM_SIZE#define KDR_RTC_INST_UPPER_BOUND		(0x018000)#define KDR_RTC_DATA_UPPER_BOUND		(0x80A000)#define KDR_RTC_INST_SIZE    (KDR_RTC_INST_UPPER_BOUND - RTC_INST_LOWER_BOUND)#define KDR_RTC_DATA_SIZE    (KDR_RTC_DATA_UPPER_BOUND - RTC_DATA_LOWER_BOUND)#define IWL_MAX_INST_SIZE KDR_RTC_INST_SIZE#define IWL_MAX_DATA_SIZE KDR_RTC_DATA_SIZEstatic inline int iwl_hw_valid_rtc_data_addr(u32 addr){	return (addr >= RTC_DATA_LOWER_BOUND) &&	       (addr < KDR_RTC_DATA_UPPER_BOUND);}/********************* START TXPOWER *****************************************/enum {	HT_IE_EXT_CHANNEL_NONE = 0,	HT_IE_EXT_CHANNEL_ABOVE,	HT_IE_EXT_CHANNEL_INVALID,	HT_IE_EXT_CHANNEL_BELOW,	HT_IE_EXT_CHANNEL_MAX};enum {	CALIB_CH_GROUP_1 = 0,	CALIB_CH_GROUP_2 = 1,	CALIB_CH_GROUP_3 = 2,	CALIB_CH_GROUP_4 = 3,	CALIB_CH_GROUP_5 = 4,	CALIB_CH_GROUP_MAX};/* Temperature calibration offset is 3% 0C in Kelvin */#define TEMPERATURE_CALIB_KELVIN_OFFSET 8#define TEMPERATURE_CALIB_A_VAL 259#define IWL_TX_POWER_TEMPERATURE_MIN  (263)#define IWL_TX_POWER_TEMPERATURE_MAX  (410)#define IWL_TX_POWER_TEMPERATURE_OUT_OF_RANGE(t) \	(((t) < IWL_TX_POWER_TEMPERATURE_MIN) || \	 ((t) > IWL_TX_POWER_TEMPERATURE_MAX))#define IWL_TX_POWER_ILLEGAL_TEMPERATURE (300)#define IWL_TX_POWER_TEMPERATURE_DIFFERENCE (2)#define IWL_TX_POWER_MIMO_REGULATORY_COMPENSATION (6)#define IWL_TX_POWER_TARGET_POWER_MIN       (0)	/* 0 dBm = 1 milliwatt */#define IWL_TX_POWER_TARGET_POWER_MAX      (16)	/* 16 dBm *//* timeout equivalent to 3 minutes */#define IWL_TX_POWER_TIMELIMIT_NOCALIB 1800000000#define IWL_TX_POWER_CCK_COMPENSATION (9)#define MIN_TX_GAIN_INDEX		(0)#define MIN_TX_GAIN_INDEX_52GHZ_EXT	(-9)#define MAX_TX_GAIN_INDEX_52GHZ		(98)#define MIN_TX_GAIN_52GHZ		(98)#define MAX_TX_GAIN_INDEX_24GHZ		(98)#define MIN_TX_GAIN_24GHZ		(98)#define MAX_TX_GAIN			(0)#define MAX_TX_GAIN_52GHZ_EXT		(-9)#define IWL_TX_POWER_DEFAULT_REGULATORY_24   (34)#define IWL_TX_POWER_DEFAULT_REGULATORY_52   (34)#define IWL_TX_POWER_REGULATORY_MIN          (0)#define IWL_TX_POWER_REGULATORY_MAX          (34)#define IWL_TX_POWER_DEFAULT_SATURATION_24   (38)#define IWL_TX_POWER_DEFAULT_SATURATION_52   (38)#define IWL_TX_POWER_SATURATION_MIN          (20)#define IWL_TX_POWER_SATURATION_MAX          (50)/* dv *0.4 = dt; so that 5 degrees temperature diff equals * 12.5 in voltage diff */#define IWL_TX_TEMPERATURE_UPDATE_LIMIT 9#define IWL_INVALID_CHANNEL                 (0xffffffff)#define IWL_TX_POWER_REGITRY_BIT            (2)#define MIN_IWL_TX_POWER_CALIB_DUR          (100)#define IWL_CCK_FROM_OFDM_POWER_DIFF        (-5)#define IWL_CCK_FROM_OFDM_INDEX_DIFF (9)/* Number of entries in the gain table */#define POWER_GAIN_NUM_ENTRIES 78#define TX_POW_MAX_SESSION_NUM 5/*  timeout equivalent to 3 minutes */#define TX_IWL_TIMELIMIT_NOCALIB 1800000000/* Kedron TX_CALIB_STATES */#define IWL_TX_CALIB_STATE_SEND_TX        0x00000001#define IWL_TX_CALIB_WAIT_TX_RESPONSE     0x00000002#define IWL_TX_CALIB_ENABLED              0x00000004#define IWL_TX_CALIB_XVT_ON               0x00000008#define IWL_TX_CALIB_TEMPERATURE_CORRECT  0x00000010#define IWL_TX_CALIB_WORKING_WITH_XVT     0x00000020#define IWL_TX_CALIB_XVT_PERIODICAL       0x00000040#define NUM_IWL_TX_CALIB_SETTINS 5	/* Number of tx correction groups */#define IWL_MIN_POWER_IN_VP_TABLE 1	/* 0.5dBm multiplied by 2 */#define IWL_MAX_POWER_IN_VP_TABLE 40	/* 20dBm - multiplied by 2 (because					 * entries are for each 0.5dBm) */#define IWL_STEP_IN_VP_TABLE 1	/* 0.5dB - multiplied by 2 */#define IWL_NUM_POINTS_IN_VPTABLE \	(1 + IWL_MAX_POWER_IN_VP_TABLE - IWL_MIN_POWER_IN_VP_TABLE)#define MIN_TX_GAIN_INDEX         (0)#define MAX_TX_GAIN_INDEX_52GHZ   (98)#define MIN_TX_GAIN_52GHZ         (98)#define MAX_TX_GAIN_INDEX_24GHZ   (98)#define MIN_TX_GAIN_24GHZ         (98)#define MAX_TX_GAIN               (0)/* First and last channels of all groups */#define CALIB_IWL_TX_ATTEN_GR1_FCH 34#define CALIB_IWL_TX_ATTEN_GR1_LCH 43#define CALIB_IWL_TX_ATTEN_GR2_FCH 44#define CALIB_IWL_TX_ATTEN_GR2_LCH 70#define CALIB_IWL_TX_ATTEN_GR3_FCH 71#define CALIB_IWL_TX_ATTEN_GR3_LCH 124#define CALIB_IWL_TX_ATTEN_GR4_FCH 125#define CALIB_IWL_TX_ATTEN_GR4_LCH 200#define CALIB_IWL_TX_ATTEN_GR5_FCH 1#define CALIB_IWL_TX_ATTEN_GR5_LCH 20union iwl_tx_power_dual_stream {	struct {		u8 radio_tx_gain[2];		u8 dsp_predis_atten[2];	} s;	u32 dw;};/********************* END TXPOWER *****************************************//* HT flags */#define RXON_FLG_CTRL_CHANNEL_LOC_POS		(22)#define RXON_FLG_CTRL_CHANNEL_LOC_HI_MSK	__constant_cpu_to_le32(0x1<<22)#define RXON_FLG_HT_OPERATING_MODE_POS		(23)#define RXON_FLG_HT_PROT_MSK			__constant_cpu_to_le32(0x1<<23)#define RXON_FLG_FAT_PROT_MSK			__constant_cpu_to_le32(0x2<<23)#define RXON_FLG_CHANNEL_MODE_POS		(25)#define RXON_FLG_CHANNEL_MODE_MSK		__constant_cpu_to_le32(0x3<<25)#define RXON_FLG_CHANNEL_MODE_PURE_40_MSK	__constant_cpu_to_le32(0x1<<25)#define RXON_FLG_CHANNEL_MODE_MIXED_MSK		__constant_cpu_to_le32(0x2<<25)#define RXON_RX_CHAIN_DRIVER_FORCE_MSK		__constant_cpu_to_le16(0x1<<0)#define RXON_RX_CHAIN_VALID_MSK			__constant_cpu_to_le16(0x7<<1)#define RXON_RX_CHAIN_VALID_POS			(1)#define RXON_RX_CHAIN_FORCE_SEL_MSK		__constant_cpu_to_le16(0x7<<4)#define RXON_RX_CHAIN_FORCE_SEL_POS		(4)#define RXON_RX_CHAIN_FORCE_MIMO_SEL_MSK	__constant_cpu_to_le16(0x7<<7)#define RXON_RX_CHAIN_FORCE_MIMO_SEL_POS	(7)#define RXON_RX_CHAIN_CNT_MSK			__constant_cpu_to_le16(0x3<<10)#define RXON_RX_CHAIN_CNT_POS			(10)#define RXON_RX_CHAIN_MIMO_CNT_MSK		__constant_cpu_to_le16(0x3<<12)#define RXON_RX_CHAIN_MIMO_CNT_POS		(12)#define RXON_RX_CHAIN_MIMO_FORCE_MSK		__constant_cpu_to_le16(0x1<<14)#define RXON_RX_CHAIN_MIMO_FORCE_POS		(14)#define MCS_DUP_6M_PLCP 0x20/* OFDM HT rate masks *//* ***************************************** */#define R_MCS_6M_MSK 0x1#define R_MCS_12M_MSK 0x2#define R_MCS_18M_MSK 0x4#define R_MCS_24M_MSK 0x8#define R_MCS_36M_MSK 0x10#define R_MCS_48M_MSK 0x20#define R_MCS_54M_MSK 0x40#define R_MCS_60M_MSK 0x80#define R_MCS_12M_DUAL_MSK 0x100#define R_MCS_24M_DUAL_MSK 0x200#define R_MCS_36M_DUAL_MSK 0x400#define R_MCS_48M_DUAL_MSK 0x800#define is_legacy(tbl) (((tbl) == LQ_G) || ((tbl) == LQ_A))#define is_siso(tbl) (((tbl) == LQ_SISO))#define is_mimo(tbl) (((tbl) == LQ_MIMO))#define is_Ht(tbl) (is_siso(tbl) || is_mimo(tbl))#define is_a_band(tbl) (((tbl) == LQ_A))#define is_g_and(tbl) (((tbl) == LQ_G))/* Flow Handler Definitions *//**********************//*     Addresses      *//**********************/#define FH_MEM_LOWER_BOUND                   (0x1000)#define FH_MEM_UPPER_BOUND                   (0x1EF0)#define IWL_FH_REGS_LOWER_BOUND		     (0x1000)#define IWL_FH_REGS_UPPER_BOUND		     (0x2000)#define IWL_FH_KW_MEM_ADDR_REG		     (FH_MEM_LOWER_BOUND + 0x97C)/* CBBC Area - Circular buffers base address cache pointers table */#define FH_MEM_CBBC_LOWER_BOUND              (FH_MEM_LOWER_BOUND + 0x9D0)#define FH_MEM_CBBC_UPPER_BOUND              (FH_MEM_LOWER_BOUND + 0xA10)/* queues 0 - 15 */#define FH_MEM_CBBC_QUEUE(x)  (FH_MEM_CBBC_LOWER_BOUND + (x) * 0x4)/* RSCSR Area */#define FH_MEM_RSCSR_LOWER_BOUND	(FH_MEM_LOWER_BOUND + 0xBC0)#define FH_MEM_RSCSR_UPPER_BOUND	(FH_MEM_LOWER_BOUND + 0xC00)#define FH_MEM_RSCSR_CHNL0		(FH_MEM_RSCSR_LOWER_BOUND)#define FH_RSCSR_CHNL0_STTS_WPTR_REG		(FH_MEM_RSCSR_CHNL0)#define FH_RSCSR_CHNL0_RBDCB_BASE_REG		(FH_MEM_RSCSR_CHNL0 + 0x004)#define FH_RSCSR_CHNL0_RBDCB_WPTR_REG		(FH_MEM_RSCSR_CHNL0 + 0x008)/* RCSR Area - Registers address map */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -