1*6e778a7eSPedro F. Giffuni /*- 2*6e778a7eSPedro F. Giffuni * SPDX-License-Identifier: ISC 3*6e778a7eSPedro F. Giffuni * 4204582f2SAdrian Chadd * Copyright (c) 2008-2009 Sam Leffler, Errno Consulting 5204582f2SAdrian Chadd * 6204582f2SAdrian Chadd * Permission to use, copy, modify, and/or distribute this software for any 7204582f2SAdrian Chadd * purpose with or without fee is hereby granted, provided that the above 8204582f2SAdrian Chadd * copyright notice and this permission notice appear in all copies. 9204582f2SAdrian Chadd * 10204582f2SAdrian Chadd * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 11204582f2SAdrian Chadd * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 12204582f2SAdrian Chadd * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 13204582f2SAdrian Chadd * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 14204582f2SAdrian Chadd * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 15204582f2SAdrian Chadd * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 16204582f2SAdrian Chadd * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17204582f2SAdrian Chadd */ 18204582f2SAdrian Chadd #ifndef _ATH_AR9285_H_ 19204582f2SAdrian Chadd #define _ATH_AR9285_H_ 20204582f2SAdrian Chadd 21204582f2SAdrian Chadd #include "ar5416/ar5416.h" 22204582f2SAdrian Chadd 23204582f2SAdrian Chadd struct ath_hal_9285 { 24204582f2SAdrian Chadd struct ath_hal_5416 ah_5416; 25204582f2SAdrian Chadd 26204582f2SAdrian Chadd HAL_INI_ARRAY ah_ini_txgain; 27204582f2SAdrian Chadd HAL_INI_ARRAY ah_ini_rxgain; 28586b0ae5SAdrian Chadd 29586b0ae5SAdrian Chadd struct { 30586b0ae5SAdrian Chadd int32_t prev_offset; /* Previous value of PA offset value */ 31586b0ae5SAdrian Chadd int8_t max_skipcount; /* Max No. of times PACAL can be skipped */ 32586b0ae5SAdrian Chadd int8_t skipcount; /* No. of times the PACAL to be skipped */ 33586b0ae5SAdrian Chadd } pacal_info; 34204582f2SAdrian Chadd }; 35204582f2SAdrian Chadd #define AH9285(_ah) ((struct ath_hal_9285 *)(_ah)) 36204582f2SAdrian Chadd 37204582f2SAdrian Chadd #define AR9285_DEFAULT_RXCHAINMASK 1 38204582f2SAdrian Chadd #define AR9285_DEFAULT_TXCHAINMASK 1 39204582f2SAdrian Chadd 40c6c9d8c8SAdrian Chadd #define AR_PHY_CCA_NOM_VAL_9285_2GHZ -118 41c6c9d8c8SAdrian Chadd #define AR_PHY_CCA_MIN_GOOD_VAL_9285_2GHZ -127 42c6c9d8c8SAdrian Chadd #define AR_PHY_CCA_MAX_GOOD_VAL_9285_2GHZ -108 43204582f2SAdrian Chadd 44204582f2SAdrian Chadd HAL_BOOL ar9285RfAttach(struct ath_hal *, HAL_STATUS *); 45204582f2SAdrian Chadd 46204582f2SAdrian Chadd extern HAL_BOOL ar9285SetTransmitPower(struct ath_hal *, 47204582f2SAdrian Chadd const struct ieee80211_channel *, uint16_t *); 48204582f2SAdrian Chadd extern HAL_BOOL ar9285SetBoardValues(struct ath_hal *, 49204582f2SAdrian Chadd const struct ieee80211_channel *); 50204582f2SAdrian Chadd 516479ef78SAdrian Chadd /* ar9285_btcoex.h */ 526479ef78SAdrian Chadd extern void ar9285BTCoexAntennaDiversity(struct ath_hal *ah); 536479ef78SAdrian Chadd extern void ar9285BTCoexSetParameter(struct ath_hal *ah, 546479ef78SAdrian Chadd u_int32_t value, u_int32_t type); 556479ef78SAdrian Chadd 56204582f2SAdrian Chadd #endif /* _ATH_AR9285_H_ */ 57