xref: /linux/drivers/net/wireless/ti/wl12xx/wl12xx.h (revision d21553f8900f735d2caedd1c6db75dbd67e5ab9e)
1166b2136SLuciano Coelho /*
2166b2136SLuciano Coelho  * This file is part of wl12xx
3166b2136SLuciano Coelho  *
4166b2136SLuciano Coelho  * Copyright (C) 2011 Texas Instruments Inc.
5166b2136SLuciano Coelho  *
6166b2136SLuciano Coelho  * This program is free software; you can redistribute it and/or
7166b2136SLuciano Coelho  * modify it under the terms of the GNU General Public License
8166b2136SLuciano Coelho  * version 2 as published by the Free Software Foundation.
9166b2136SLuciano Coelho  *
10166b2136SLuciano Coelho  * This program is distributed in the hope that it will be useful, but
11166b2136SLuciano Coelho  * WITHOUT ANY WARRANTY; without even the implied warranty of
12166b2136SLuciano Coelho  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13166b2136SLuciano Coelho  * General Public License for more details.
14166b2136SLuciano Coelho  *
15166b2136SLuciano Coelho  * You should have received a copy of the GNU General Public License
16166b2136SLuciano Coelho  * along with this program; if not, write to the Free Software
17166b2136SLuciano Coelho  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
18166b2136SLuciano Coelho  * 02110-1301 USA
19166b2136SLuciano Coelho  *
20166b2136SLuciano Coelho  */
21166b2136SLuciano Coelho 
22166b2136SLuciano Coelho #ifndef __WL12XX_PRIV_H__
23166b2136SLuciano Coelho #define __WL12XX_PRIV_H__
24166b2136SLuciano Coelho 
25166b2136SLuciano Coelho #include "conf.h"
26166b2136SLuciano Coelho 
27986f3aa1SLuciano Coelho /* WiLink 6/7 chip IDs */
28986f3aa1SLuciano Coelho #define CHIP_ID_127X_PG10              (0x04030101)
29986f3aa1SLuciano Coelho #define CHIP_ID_127X_PG20              (0x04030111)
30986f3aa1SLuciano Coelho #define CHIP_ID_128X_PG10              (0x05030101)
31986f3aa1SLuciano Coelho #define CHIP_ID_128X_PG20              (0x05030111)
32986f3aa1SLuciano Coelho 
338675f9abSLuciano Coelho /* FW chip version for wl127x */
344a1ccce8SArik Nemtsov #define WL127X_CHIP_VER		6
358675f9abSLuciano Coelho /* minimum single-role FW version for wl127x */
368675f9abSLuciano Coelho #define WL127X_IFTYPE_SR_VER	3
378675f9abSLuciano Coelho #define WL127X_MAJOR_SR_VER	10
388675f9abSLuciano Coelho #define WL127X_SUBTYPE_SR_VER	WLCORE_FW_VER_IGNORE
398675f9abSLuciano Coelho #define WL127X_MINOR_SR_VER	115
408675f9abSLuciano Coelho /* minimum multi-role FW version for wl127x */
418675f9abSLuciano Coelho #define WL127X_IFTYPE_MR_VER	5
428675f9abSLuciano Coelho #define WL127X_MAJOR_MR_VER	7
438675f9abSLuciano Coelho #define WL127X_SUBTYPE_MR_VER	WLCORE_FW_VER_IGNORE
448675f9abSLuciano Coelho #define WL127X_MINOR_MR_VER	115
454a1ccce8SArik Nemtsov 
468675f9abSLuciano Coelho /* FW chip version for wl128x */
474a1ccce8SArik Nemtsov #define WL128X_CHIP_VER		7
488675f9abSLuciano Coelho /* minimum single-role FW version for wl128x */
498675f9abSLuciano Coelho #define WL128X_IFTYPE_SR_VER	3
508675f9abSLuciano Coelho #define WL128X_MAJOR_SR_VER	10
518675f9abSLuciano Coelho #define WL128X_SUBTYPE_SR_VER	WLCORE_FW_VER_IGNORE
528675f9abSLuciano Coelho #define WL128X_MINOR_SR_VER	115
538675f9abSLuciano Coelho /* minimum multi-role FW version for wl128x */
548675f9abSLuciano Coelho #define WL128X_IFTYPE_MR_VER	5
558675f9abSLuciano Coelho #define WL128X_MAJOR_MR_VER	7
568675f9abSLuciano Coelho #define WL128X_SUBTYPE_MR_VER	WLCORE_FW_VER_IGNORE
578675f9abSLuciano Coelho #define WL128X_MINOR_MR_VER	42
584a1ccce8SArik Nemtsov 
5926a309c7SIgal Chernobelsky #define WL12XX_AGGR_BUFFER_SIZE	(4 * PAGE_SIZE)
6026a309c7SIgal Chernobelsky 
61f1c434dfSIgal Chernobelsky #define WL12XX_NUM_TX_DESCRIPTORS 16
62f1c434dfSIgal Chernobelsky #define WL12XX_NUM_RX_DESCRIPTORS 8
63f1c434dfSIgal Chernobelsky 
64f4afbed9SArik Nemtsov #define WL12XX_NUM_MAC_ADDRESSES 2
65f4afbed9SArik Nemtsov 
66*d21553f8SIgal Chernobelsky #define WL12XX_RX_BA_MAX_SESSIONS 3
67*d21553f8SIgal Chernobelsky 
684b4887e9SLuciano Coelho struct wl127x_rx_mem_pool_addr {
694b4887e9SLuciano Coelho 	u32 addr;
704b4887e9SLuciano Coelho 	u32 addr_extra;
714b4887e9SLuciano Coelho };
724b4887e9SLuciano Coelho 
73166b2136SLuciano Coelho struct wl12xx_priv {
74166b2136SLuciano Coelho 	struct wl12xx_priv_conf conf;
75a5d751bbSLuciano Coelho 
76a5d751bbSLuciano Coelho 	int ref_clock;
77a5d751bbSLuciano Coelho 	int tcxo_clock;
782e07d028SIdo Yariv 
792e07d028SIdo Yariv 	struct wl127x_rx_mem_pool_addr *rx_mem_addr;
80166b2136SLuciano Coelho };
81166b2136SLuciano Coelho 
82166b2136SLuciano Coelho #endif /* __WL12XX_PRIV_H__ */
83