linux/drivers/net/wireless/ath/ath9k/btcoex.h

/*
 * Copyright (c) 2009-2011 Atheros Communications Inc.
 *
 * Permission to use, copy, modify, and/or distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

#ifndef BTCOEX_H
#define BTCOEX_H

#include "hw.h"

#define ATH_WLANACTIVE_GPIO_9280
#define ATH_BTACTIVE_GPIO_9280
#define ATH_BTPRIORITY_GPIO_9285

#define ATH_WLANACTIVE_GPIO_9300
#define ATH_BTACTIVE_GPIO_9300
#define ATH_BTPRIORITY_GPIO_9300

#define ATH_BTCOEX_DEF_BT_PERIOD
#define ATH_BTCOEX_DEF_DUTY_CYCLE
#define ATH_BTCOEX_BTSCAN_DUTY_CYCLE
#define ATH_BTCOEX_BMISS_THRESH

#define ATH_BT_PRIORITY_TIME_THRESHOLD
#define ATH_BT_CNT_THRESHOLD
#define ATH_BT_CNT_SCAN_THRESHOLD

#define ATH_BTCOEX_RX_WAIT_TIME
#define ATH_BTCOEX_STOMP_FTP_THRESH

#define ATH_BTCOEX_HT20_MAX_TXPOWER
#define ATH_BTCOEX_HT40_MAX_TXPOWER

#define AR9300_NUM_BT_WEIGHTS
#define AR9300_NUM_WLAN_WEIGHTS

#define ATH_AIC_MAX_BT_CHANNEL

/* Defines the BT AR_BT_COEX_WGHT used */
enum ath_stomp_type {};

enum ath_btcoex_scheme {};

struct ath9k_hw_mci {};

struct ath9k_hw_aic {};

struct ath_btcoex_hw {};

void ath9k_hw_btcoex_init_scheme(struct ath_hw *ah);
void ath9k_hw_btcoex_init_2wire(struct ath_hw *ah);
void ath9k_hw_btcoex_init_3wire(struct ath_hw *ah);
void ath9k_hw_btcoex_deinit(struct ath_hw *ah);
void ath9k_hw_btcoex_init_mci(struct ath_hw *ah);
void ath9k_hw_init_btcoex_hw(struct ath_hw *ah, int qnum);
void ath9k_hw_btcoex_set_weight(struct ath_hw *ah,
				u32 bt_weight,
				u32 wlan_weight,
				enum ath_stomp_type stomp_type);
void ath9k_hw_btcoex_disable(struct ath_hw *ah);
void ath9k_hw_btcoex_bt_stomp(struct ath_hw *ah,
			      enum ath_stomp_type stomp_type);
void ath9k_hw_btcoex_set_concur_txprio(struct ath_hw *ah, u8 *stomp_txprio);

#endif