1189747Ssam/*
2189747Ssam * Copyright (c) 2008-2009 Sam Leffler, Errno Consulting
3189747Ssam *
4189747Ssam * Permission to use, copy, modify, and/or distribute this software for any
5189747Ssam * purpose with or without fee is hereby granted, provided that the above
6189747Ssam * copyright notice and this permission notice appear in all copies.
7189747Ssam *
8189747Ssam * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9189747Ssam * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10189747Ssam * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11189747Ssam * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12189747Ssam * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13189747Ssam * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14189747Ssam * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15189747Ssam *
16189747Ssam * $FreeBSD$
17189747Ssam */
18189747Ssam#ifndef _ATH_AR9280_H_
19189747Ssam#define _ATH_AR9280_H_
20189747Ssam
21189747Ssam#include "ar5416/ar5416.h"
22189747Ssam
23219393Sadrian/*
24219393Sadrian * This is a chip thing, but it's used here as part of the
25219393Sadrian * ath_hal_9280 struct; so it's convienent to locate the
26219393Sadrian * define here.
27219393Sadrian */
28219393Sadrian#define AR9280_TX_GAIN_TABLE_SIZE               22
29219393Sadrian
30189747Ssamstruct ath_hal_9280 {
31189747Ssam	struct ath_hal_5416 ah_5416;
32189747Ssam
33189747Ssam	HAL_INI_ARRAY	ah_ini_xmodes;
34189747Ssam	HAL_INI_ARRAY	ah_ini_rxgain;
35189747Ssam	HAL_INI_ARRAY	ah_ini_txgain;
36219393Sadrian
37219393Sadrian	int PDADCdelta;
38219393Sadrian
39219393Sadrian	uint32_t	originalGain[AR9280_TX_GAIN_TABLE_SIZE];
40189747Ssam};
41189747Ssam#define	AH9280(_ah)	((struct ath_hal_9280 *)(_ah))
42189747Ssam
43189747Ssam#define	AR9280_DEFAULT_RXCHAINMASK	3
44203682Srpaulo#define	AR9285_DEFAULT_RXCHAINMASK	1
45189747Ssam#define	AR9280_DEFAULT_TXCHAINMASK	1
46203682Srpaulo#define	AR9285_DEFAULT_TXCHAINMASK	1
47189747Ssam
48218068Sadrian#define	AR_PHY_CCA_NOM_VAL_9280_2GHZ		-112
49218068Sadrian#define	AR_PHY_CCA_NOM_VAL_9280_5GHZ		-112
50218068Sadrian#define	AR_PHY_CCA_MIN_GOOD_VAL_9280_2GHZ	-127
51218068Sadrian#define	AR_PHY_CCA_MIN_GOOD_VAL_9280_5GHZ	-122
52218068Sadrian#define	AR_PHY_CCA_MAX_GOOD_VAL_9280_2GHZ	-97
53218068Sadrian#define	AR_PHY_CCA_MAX_GOOD_VAL_9280_5GHZ	-102
54218068Sadrian
55189747SsamHAL_BOOL ar9280RfAttach(struct ath_hal *, HAL_STATUS *);
56189747Ssam
57189747Ssamstruct ath_hal;
58189747Ssam
59189747SsamHAL_BOOL	ar9280SetAntennaSwitch(struct ath_hal *, HAL_ANT_SETTING);
60203930Srpaulovoid		ar9280SpurMitigate(struct ath_hal *,
61203930Srpaulo    			const struct ieee80211_channel *);
62224243Sadrianvoid		ar9280InitPLL(struct ath_hal *ah,
63224243Sadrian			const struct ieee80211_channel *chan);
64189747Ssam#endif	/* _ATH_AR9280_H_ */
65