xref: /freebsd/sys/dev/ath/ath_hal/ar9002/ar9280.h (revision 780fb4a2)
1 /*-
2  * SPDX-License-Identifier: ISC
3  *
4  * Copyright (c) 2008-2009 Sam Leffler, Errno Consulting
5  *
6  * Permission to use, copy, modify, and/or distribute this software for any
7  * purpose with or without fee is hereby granted, provided that the above
8  * copyright notice and this permission notice appear in all copies.
9  *
10  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17  *
18  * $FreeBSD$
19  */
20 #ifndef _ATH_AR9280_H_
21 #define _ATH_AR9280_H_
22 
23 #include "ar5416/ar5416.h"
24 
25 /*
26  * This is a chip thing, but it's used here as part of the
27  * ath_hal_9280 struct; so it's convienent to locate the
28  * define here.
29  */
30 #define AR9280_TX_GAIN_TABLE_SIZE               22
31 
32 struct ath_hal_9280 {
33 	struct ath_hal_5416 ah_5416;
34 
35 	HAL_INI_ARRAY	ah_ini_xmodes;
36 	HAL_INI_ARRAY	ah_ini_rxgain;
37 	HAL_INI_ARRAY	ah_ini_txgain;
38 
39 	int PDADCdelta;
40 
41 	uint32_t	originalGain[AR9280_TX_GAIN_TABLE_SIZE];
42 };
43 #define	AH9280(_ah)	((struct ath_hal_9280 *)(_ah))
44 
45 #define	AR9280_DEFAULT_RXCHAINMASK	3
46 #define	AR9285_DEFAULT_RXCHAINMASK	1
47 #define	AR9280_DEFAULT_TXCHAINMASK	1
48 #define	AR9285_DEFAULT_TXCHAINMASK	1
49 
50 #define	AR_PHY_CCA_NOM_VAL_9280_2GHZ		-112
51 #define	AR_PHY_CCA_NOM_VAL_9280_5GHZ		-112
52 #define	AR_PHY_CCA_MIN_GOOD_VAL_9280_2GHZ	-127
53 #define	AR_PHY_CCA_MIN_GOOD_VAL_9280_5GHZ	-122
54 #define	AR_PHY_CCA_MAX_GOOD_VAL_9280_2GHZ	-97
55 #define	AR_PHY_CCA_MAX_GOOD_VAL_9280_5GHZ	-102
56 
57 HAL_BOOL ar9280RfAttach(struct ath_hal *, HAL_STATUS *);
58 
59 struct ath_hal;
60 
61 HAL_BOOL	ar9280SetAntennaSwitch(struct ath_hal *, HAL_ANT_SETTING);
62 void		ar9280SpurMitigate(struct ath_hal *,
63     			const struct ieee80211_channel *);
64 void		ar9280InitPLL(struct ath_hal *ah,
65 			const struct ieee80211_channel *chan);
66 #endif	/* _ATH_AR9280_H_ */
67