1 /*
2  * Copyright (c) 2010 Broadcom Corporation
3  *
4  * Permission to use, copy, modify, and/or distribute this software for any
5  * purpose with or without fee is hereby granted, provided that the above
6  * copyright notice and this permission notice appear in all copies.
7  *
8  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
11  * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
13  * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
14  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15  */
16 
17 #ifndef	_BRCM_DEFS_H_
18 #define	_BRCM_DEFS_H_
19 
20 #include <linux/types.h>
21 
22 #define	SI_BUS			0
23 #define	PCI_BUS			1
24 #define	PCMCIA_BUS		2
25 #define SDIO_BUS		3
26 #define JTAG_BUS		4
27 #define USB_BUS			5
28 #define SPI_BUS			6
29 
30 #define	OFF	0
31 #define	ON	1		/* ON = 1 */
32 #define	AUTO	(-1)		/* Auto = -1 */
33 
34 /*
35  * Priority definitions according 802.1D
36  */
37 #define	PRIO_8021D_NONE		2
38 #define	PRIO_8021D_BK		1
39 #define	PRIO_8021D_BE		0
40 #define	PRIO_8021D_EE		3
41 #define	PRIO_8021D_CL		4
42 #define	PRIO_8021D_VI		5
43 #define	PRIO_8021D_VO		6
44 #define	PRIO_8021D_NC		7
45 
46 #define	MAXPRIO			7
47 #define NUMPRIO			(MAXPRIO + 1)
48 
49 #define WL_NUMRATES		16	/* max # of rates in a rateset */
50 
51 #define BRCM_CNTRY_BUF_SZ	4	/* Country string is 3 bytes + NUL */
52 
53 #define BRCM_SET_CHANNEL	30
54 #define BRCM_SET_SRL		32
55 #define BRCM_SET_LRL		34
56 #define BRCM_SET_BCNPRD		76
57 
58 #define BRCM_GET_CURR_RATESET	114	/* current rateset */
59 #define BRCM_GET_PHYLIST	180
60 
61 /* Bit masks for radio disabled status - returned by WL_GET_RADIO */
62 
63 #define WL_RADIO_SW_DISABLE		(1<<0)
64 #define WL_RADIO_HW_DISABLE		(1<<1)
65 /* some countries don't support any channel */
66 #define WL_RADIO_COUNTRY_DISABLE	(1<<3)
67 
68 /* Override bit for SET_TXPWR.  if set, ignore other level limits */
69 #define WL_TXPWR_OVERRIDE	(1U<<31)
70 
71 /* band types */
72 #define	BRCM_BAND_AUTO		0	/* auto-select */
73 #define	BRCM_BAND_5G		1	/* 5 Ghz */
74 #define	BRCM_BAND_2G		2	/* 2.4 Ghz */
75 #define	BRCM_BAND_ALL		3	/* all bands */
76 
77 /* Debug levels */
78 #define BRCM_DL_INFO		0x00000001
79 #define BRCM_DL_MAC80211	0x00000002
80 #define BRCM_DL_RX		0x00000004
81 #define BRCM_DL_TX		0x00000008
82 #define BRCM_DL_INT		0x00000010
83 #define BRCM_DL_DMA		0x00000020
84 #define BRCM_DL_HT		0x00000040
85 
86 /* Values for PM */
87 #define PM_OFF	0
88 #define PM_MAX	1
89 #define PM_FAST 2
90 
91 /*
92  * Sonics Configuration Space Registers.
93  */
94 
95 /* core sbconfig regs are top 256bytes of regs */
96 #define	SBCONFIGOFF		0xf00
97 
98 /* cpp contortions to concatenate w/arg prescan */
99 #ifndef	PAD
100 #define	_PADLINE(line)	pad ## line
101 #define	_XSTR(line)	_PADLINE(line)
102 #define	PAD		_XSTR(__LINE__)
103 #endif
104 
105 #endif				/* _BRCM_DEFS_H_ */
106