1*572ff6f6SMatthew Dillon /* 2*572ff6f6SMatthew Dillon * Copyright (c) 2008-2009 Sam Leffler, Errno Consulting 3*572ff6f6SMatthew Dillon * 4*572ff6f6SMatthew Dillon * Permission to use, copy, modify, and/or distribute this software for any 5*572ff6f6SMatthew Dillon * purpose with or without fee is hereby granted, provided that the above 6*572ff6f6SMatthew Dillon * copyright notice and this permission notice appear in all copies. 7*572ff6f6SMatthew Dillon * 8*572ff6f6SMatthew Dillon * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9*572ff6f6SMatthew Dillon * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10*572ff6f6SMatthew Dillon * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11*572ff6f6SMatthew Dillon * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12*572ff6f6SMatthew Dillon * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13*572ff6f6SMatthew Dillon * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14*572ff6f6SMatthew Dillon * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15*572ff6f6SMatthew Dillon * 16*572ff6f6SMatthew Dillon * $FreeBSD$ 17*572ff6f6SMatthew Dillon */ 18*572ff6f6SMatthew Dillon #ifndef _ATH_AR9285_H_ 19*572ff6f6SMatthew Dillon #define _ATH_AR9285_H_ 20*572ff6f6SMatthew Dillon 21*572ff6f6SMatthew Dillon #include "ar5416/ar5416.h" 22*572ff6f6SMatthew Dillon 23*572ff6f6SMatthew Dillon struct ath_hal_9285 { 24*572ff6f6SMatthew Dillon struct ath_hal_5416 ah_5416; 25*572ff6f6SMatthew Dillon 26*572ff6f6SMatthew Dillon HAL_INI_ARRAY ah_ini_txgain; 27*572ff6f6SMatthew Dillon HAL_INI_ARRAY ah_ini_rxgain; 28*572ff6f6SMatthew Dillon 29*572ff6f6SMatthew Dillon struct { 30*572ff6f6SMatthew Dillon int32_t prev_offset; /* Previous value of PA offset value */ 31*572ff6f6SMatthew Dillon int8_t max_skipcount; /* Max No. of times PACAL can be skipped */ 32*572ff6f6SMatthew Dillon int8_t skipcount; /* No. of times the PACAL to be skipped */ 33*572ff6f6SMatthew Dillon } pacal_info; 34*572ff6f6SMatthew Dillon }; 35*572ff6f6SMatthew Dillon #define AH9285(_ah) ((struct ath_hal_9285 *)(_ah)) 36*572ff6f6SMatthew Dillon 37*572ff6f6SMatthew Dillon #define AR9285_DEFAULT_RXCHAINMASK 1 38*572ff6f6SMatthew Dillon #define AR9285_DEFAULT_TXCHAINMASK 1 39*572ff6f6SMatthew Dillon 40*572ff6f6SMatthew Dillon #define AR_PHY_CCA_NOM_VAL_9285_2GHZ -118 41*572ff6f6SMatthew Dillon #define AR_PHY_CCA_MIN_GOOD_VAL_9285_2GHZ -127 42*572ff6f6SMatthew Dillon #define AR_PHY_CCA_MAX_GOOD_VAL_9285_2GHZ -108 43*572ff6f6SMatthew Dillon 44*572ff6f6SMatthew Dillon HAL_BOOL ar9285RfAttach(struct ath_hal *, HAL_STATUS *); 45*572ff6f6SMatthew Dillon 46*572ff6f6SMatthew Dillon extern HAL_BOOL ar9285SetTransmitPower(struct ath_hal *, 47*572ff6f6SMatthew Dillon const struct ieee80211_channel *, uint16_t *); 48*572ff6f6SMatthew Dillon extern HAL_BOOL ar9285SetBoardValues(struct ath_hal *, 49*572ff6f6SMatthew Dillon const struct ieee80211_channel *); 50*572ff6f6SMatthew Dillon 51*572ff6f6SMatthew Dillon /* ar9285_btcoex.h */ 52*572ff6f6SMatthew Dillon extern void ar9285BTCoexAntennaDiversity(struct ath_hal *ah); 53*572ff6f6SMatthew Dillon extern void ar9285BTCoexSetParameter(struct ath_hal *ah, 54*572ff6f6SMatthew Dillon u_int32_t value, u_int32_t type); 55*572ff6f6SMatthew Dillon 56*572ff6f6SMatthew Dillon #endif /* _ATH_AR9285_H_ */ 57