xref: /freebsd/sys/contrib/dev/iwlwifi/iwl-agn-hw.h (revision bfcc09ddd422c95a1a2e4e794b63ee54c4902398)
1*bfcc09ddSBjoern A. Zeeb /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
2*bfcc09ddSBjoern A. Zeeb /*
3*bfcc09ddSBjoern A. Zeeb  * Copyright (C) 2005-2014 Intel Corporation
4*bfcc09ddSBjoern A. Zeeb  */
5*bfcc09ddSBjoern A. Zeeb /*
6*bfcc09ddSBjoern A. Zeeb  * Please use this file (iwl-agn-hw.h) only for hardware-related definitions.
7*bfcc09ddSBjoern A. Zeeb  */
8*bfcc09ddSBjoern A. Zeeb 
9*bfcc09ddSBjoern A. Zeeb #ifndef __iwl_agn_hw_h__
10*bfcc09ddSBjoern A. Zeeb #define __iwl_agn_hw_h__
11*bfcc09ddSBjoern A. Zeeb 
12*bfcc09ddSBjoern A. Zeeb #define IWLAGN_RTC_INST_LOWER_BOUND		(0x000000)
13*bfcc09ddSBjoern A. Zeeb #define IWLAGN_RTC_INST_UPPER_BOUND		(0x020000)
14*bfcc09ddSBjoern A. Zeeb 
15*bfcc09ddSBjoern A. Zeeb #define IWLAGN_RTC_DATA_LOWER_BOUND		(0x800000)
16*bfcc09ddSBjoern A. Zeeb #define IWLAGN_RTC_DATA_UPPER_BOUND		(0x80C000)
17*bfcc09ddSBjoern A. Zeeb 
18*bfcc09ddSBjoern A. Zeeb #define IWLAGN_RTC_INST_SIZE (IWLAGN_RTC_INST_UPPER_BOUND - \
19*bfcc09ddSBjoern A. Zeeb 				IWLAGN_RTC_INST_LOWER_BOUND)
20*bfcc09ddSBjoern A. Zeeb #define IWLAGN_RTC_DATA_SIZE (IWLAGN_RTC_DATA_UPPER_BOUND - \
21*bfcc09ddSBjoern A. Zeeb 				IWLAGN_RTC_DATA_LOWER_BOUND)
22*bfcc09ddSBjoern A. Zeeb 
23*bfcc09ddSBjoern A. Zeeb #define IWL60_RTC_INST_LOWER_BOUND		(0x000000)
24*bfcc09ddSBjoern A. Zeeb #define IWL60_RTC_INST_UPPER_BOUND		(0x040000)
25*bfcc09ddSBjoern A. Zeeb #define IWL60_RTC_DATA_LOWER_BOUND		(0x800000)
26*bfcc09ddSBjoern A. Zeeb #define IWL60_RTC_DATA_UPPER_BOUND		(0x814000)
27*bfcc09ddSBjoern A. Zeeb #define IWL60_RTC_INST_SIZE \
28*bfcc09ddSBjoern A. Zeeb 	(IWL60_RTC_INST_UPPER_BOUND - IWL60_RTC_INST_LOWER_BOUND)
29*bfcc09ddSBjoern A. Zeeb #define IWL60_RTC_DATA_SIZE \
30*bfcc09ddSBjoern A. Zeeb 	(IWL60_RTC_DATA_UPPER_BOUND - IWL60_RTC_DATA_LOWER_BOUND)
31*bfcc09ddSBjoern A. Zeeb 
32*bfcc09ddSBjoern A. Zeeb /* RSSI to dBm */
33*bfcc09ddSBjoern A. Zeeb #define IWLAGN_RSSI_OFFSET	44
34*bfcc09ddSBjoern A. Zeeb 
35*bfcc09ddSBjoern A. Zeeb #define IWLAGN_DEFAULT_TX_RETRY			15
36*bfcc09ddSBjoern A. Zeeb #define IWLAGN_MGMT_DFAULT_RETRY_LIMIT		3
37*bfcc09ddSBjoern A. Zeeb #define IWLAGN_RTS_DFAULT_RETRY_LIMIT		60
38*bfcc09ddSBjoern A. Zeeb #define IWLAGN_BAR_DFAULT_RETRY_LIMIT		60
39*bfcc09ddSBjoern A. Zeeb #define IWLAGN_LOW_RETRY_LIMIT			7
40*bfcc09ddSBjoern A. Zeeb 
41*bfcc09ddSBjoern A. Zeeb /* Limit range of txpower output target to be between these values */
42*bfcc09ddSBjoern A. Zeeb #define IWLAGN_TX_POWER_TARGET_POWER_MIN	(0)	/* 0 dBm: 1 milliwatt */
43*bfcc09ddSBjoern A. Zeeb #define IWLAGN_TX_POWER_TARGET_POWER_MAX	(16)	/* 16 dBm */
44*bfcc09ddSBjoern A. Zeeb 
45*bfcc09ddSBjoern A. Zeeb /* EEPROM */
46*bfcc09ddSBjoern A. Zeeb #define IWLAGN_EEPROM_IMG_SIZE		2048
47*bfcc09ddSBjoern A. Zeeb 
48*bfcc09ddSBjoern A. Zeeb /* high blocks contain PAPD data */
49*bfcc09ddSBjoern A. Zeeb #define OTP_HIGH_IMAGE_SIZE_6x00        (6 * 512 * sizeof(u16)) /* 6 KB */
50*bfcc09ddSBjoern A. Zeeb #define OTP_HIGH_IMAGE_SIZE_1000        (0x200 * sizeof(u16)) /* 1024 bytes */
51*bfcc09ddSBjoern A. Zeeb #define OTP_MAX_LL_ITEMS_1000		(3)	/* OTP blocks for 1000 */
52*bfcc09ddSBjoern A. Zeeb #define OTP_MAX_LL_ITEMS_6x00		(4)	/* OTP blocks for 6x00 */
53*bfcc09ddSBjoern A. Zeeb #define OTP_MAX_LL_ITEMS_6x50		(7)	/* OTP blocks for 6x50 */
54*bfcc09ddSBjoern A. Zeeb #define OTP_MAX_LL_ITEMS_2x00		(4)	/* OTP blocks for 2x00 */
55*bfcc09ddSBjoern A. Zeeb 
56*bfcc09ddSBjoern A. Zeeb 
57*bfcc09ddSBjoern A. Zeeb #define IWLAGN_NUM_QUEUES		20
58*bfcc09ddSBjoern A. Zeeb 
59*bfcc09ddSBjoern A. Zeeb #endif /* __iwl_agn_hw_h__ */
60