diff options
author | Hauke Mehrtens <hauke@hauke-m.de> | 2012-04-28 20:50:40 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-05-16 12:45:25 -0400 |
commit | 270e38d0085e835973e38575b40e9c769e2823c5 (patch) | |
tree | f3e28d13ff765c768b1db47447551d0005309081 | |
parent | c496fe3a7ffcba32ffed61735e7fed8861e62ac3 (diff) |
brcmsmac: remove nicpci.c
There is no code doing anything useful in nicpci.c anymore, so remove
it.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Tested-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmsmac/Makefile | 1 | ||||
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmsmac/aiutils.c | 16 | ||||
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmsmac/aiutils.h | 1 | ||||
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c | 1 | ||||
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmsmac/nicpci.c | 241 | ||||
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmsmac/nicpci.h | 70 |
6 files changed, 0 insertions, 330 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmsmac/Makefile b/drivers/net/wireless/brcm80211/brcmsmac/Makefile index 80b00e267c2e..e227c4c68ef9 100644 --- a/drivers/net/wireless/brcm80211/brcmsmac/Makefile +++ b/drivers/net/wireless/brcm80211/brcmsmac/Makefile | |||
@@ -40,7 +40,6 @@ BRCMSMAC_OFILES := \ | |||
40 | phy/phytbl_n.o \ | 40 | phy/phytbl_n.o \ |
41 | phy/phy_qmath.o \ | 41 | phy/phy_qmath.o \ |
42 | dma.o \ | 42 | dma.o \ |
43 | nicpci.o \ | ||
44 | brcms_trace_events.o | 43 | brcms_trace_events.o |
45 | 44 | ||
46 | MODULEPFX := brcmsmac | 45 | MODULEPFX := brcmsmac |
diff --git a/drivers/net/wireless/brcm80211/brcmsmac/aiutils.c b/drivers/net/wireless/brcm80211/brcmsmac/aiutils.c index 8908c890d64b..dd4698df6dad 100644 --- a/drivers/net/wireless/brcm80211/brcmsmac/aiutils.c +++ b/drivers/net/wireless/brcm80211/brcmsmac/aiutils.c | |||
@@ -19,7 +19,6 @@ | |||
19 | #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt | 19 | #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt |
20 | 20 | ||
21 | #include <linux/delay.h> | 21 | #include <linux/delay.h> |
22 | #include <linux/pci.h> | ||
23 | 22 | ||
24 | #include <defs.h> | 23 | #include <defs.h> |
25 | #include <chipcommon.h> | 24 | #include <chipcommon.h> |
@@ -29,7 +28,6 @@ | |||
29 | #include "types.h" | 28 | #include "types.h" |
30 | #include "pub.h" | 29 | #include "pub.h" |
31 | #include "pmu.h" | 30 | #include "pmu.h" |
32 | #include "nicpci.h" | ||
33 | #include "aiutils.h" | 31 | #include "aiutils.h" |
34 | 32 | ||
35 | /* slow_clk_ctl */ | 33 | /* slow_clk_ctl */ |
@@ -478,13 +476,6 @@ ai_buscore_setup(struct si_info *sii, struct bcma_device *cc) | |||
478 | /* figure out buscore */ | 476 | /* figure out buscore */ |
479 | sii->buscore = ai_findcore(&sii->pub, PCIE_CORE_ID, 0); | 477 | sii->buscore = ai_findcore(&sii->pub, PCIE_CORE_ID, 0); |
480 | 478 | ||
481 | /* fixup necessary chip/core configurations */ | ||
482 | if (!sii->pch) { | ||
483 | sii->pch = pcicore_init(&sii->pub, sii->icbus->drv_pci.core); | ||
484 | if (sii->pch == NULL) | ||
485 | return false; | ||
486 | } | ||
487 | |||
488 | return true; | 479 | return true; |
489 | } | 480 | } |
490 | 481 | ||
@@ -565,9 +556,6 @@ static struct si_info *ai_doattach(struct si_info *sii, | |||
565 | return sii; | 556 | return sii; |
566 | 557 | ||
567 | exit: | 558 | exit: |
568 | if (sii->pch) | ||
569 | pcicore_deinit(sii->pch); | ||
570 | sii->pch = NULL; | ||
571 | 559 | ||
572 | return NULL; | 560 | return NULL; |
573 | } | 561 | } |
@@ -606,10 +594,6 @@ void ai_detach(struct si_pub *sih) | |||
606 | if (sii == NULL) | 594 | if (sii == NULL) |
607 | return; | 595 | return; |
608 | 596 | ||
609 | if (sii->pch) | ||
610 | pcicore_deinit(sii->pch); | ||
611 | sii->pch = NULL; | ||
612 | |||
613 | kfree(sii); | 597 | kfree(sii); |
614 | } | 598 | } |
615 | 599 | ||
diff --git a/drivers/net/wireless/brcm80211/brcmsmac/aiutils.h b/drivers/net/wireless/brcm80211/brcmsmac/aiutils.h index da758c3ff89f..d9f04a683bdb 100644 --- a/drivers/net/wireless/brcm80211/brcmsmac/aiutils.h +++ b/drivers/net/wireless/brcm80211/brcmsmac/aiutils.h | |||
@@ -168,7 +168,6 @@ struct si_info { | |||
168 | struct si_pub pub; /* back plane public state (must be first) */ | 168 | struct si_pub pub; /* back plane public state (must be first) */ |
169 | struct bcma_bus *icbus; /* handle to soc interconnect bus */ | 169 | struct bcma_bus *icbus; /* handle to soc interconnect bus */ |
170 | struct pci_dev *pcibus; /* handle to pci bus */ | 170 | struct pci_dev *pcibus; /* handle to pci bus */ |
171 | struct pcicore_info *pch; /* PCI/E core handle */ | ||
172 | struct bcma_device *buscore; | 171 | struct bcma_device *buscore; |
173 | 172 | ||
174 | u32 chipst; /* chip status */ | 173 | u32 chipst; /* chip status */ |
diff --git a/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c b/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c index aa15558f75c8..b8350ff9e8c6 100644 --- a/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c +++ b/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c | |||
@@ -25,7 +25,6 @@ | |||
25 | #include <linux/bcma/bcma.h> | 25 | #include <linux/bcma/bcma.h> |
26 | #include <net/mac80211.h> | 26 | #include <net/mac80211.h> |
27 | #include <defs.h> | 27 | #include <defs.h> |
28 | #include "nicpci.h" | ||
29 | #include "phy/phy_int.h" | 28 | #include "phy/phy_int.h" |
30 | #include "d11.h" | 29 | #include "d11.h" |
31 | #include "channel.h" | 30 | #include "channel.h" |
diff --git a/drivers/net/wireless/brcm80211/brcmsmac/nicpci.c b/drivers/net/wireless/brcm80211/brcmsmac/nicpci.c deleted file mode 100644 index cd3899b74142..000000000000 --- a/drivers/net/wireless/brcm80211/brcmsmac/nicpci.c +++ /dev/null | |||
@@ -1,241 +0,0 @@ | |||
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 | #include <linux/slab.h> | ||
18 | #include <linux/delay.h> | ||
19 | #include <linux/pci.h> | ||
20 | |||
21 | #include <defs.h> | ||
22 | #include <soc.h> | ||
23 | #include <chipcommon.h> | ||
24 | #include "aiutils.h" | ||
25 | #include "pub.h" | ||
26 | #include "nicpci.h" | ||
27 | |||
28 | /* SPROM offsets */ | ||
29 | #define SRSH_ASPM_OFFSET 4 /* word 4 */ | ||
30 | #define SRSH_ASPM_ENB 0x18 /* bit 3, 4 */ | ||
31 | #define SRSH_ASPM_L1_ENB 0x10 /* bit 4 */ | ||
32 | #define SRSH_ASPM_L0s_ENB 0x8 /* bit 3 */ | ||
33 | |||
34 | #define SRSH_PCIE_MISC_CONFIG 5 /* word 5 */ | ||
35 | #define SRSH_L23READY_EXIT_NOPERST 0x8000 /* bit 15 */ | ||
36 | #define SRSH_CLKREQ_OFFSET_REV5 20 /* word 20 for srom rev <= 5 */ | ||
37 | #define SRSH_CLKREQ_ENB 0x0800 /* bit 11 */ | ||
38 | #define SRSH_BD_OFFSET 6 /* word 6 */ | ||
39 | |||
40 | /* chipcontrol */ | ||
41 | #define CHIPCTRL_4321_PLL_DOWN 0x800000/* serdes PLL down override */ | ||
42 | |||
43 | /* MDIO control */ | ||
44 | #define MDIOCTL_DIVISOR_MASK 0x7f /* clock to be used on MDIO */ | ||
45 | #define MDIOCTL_DIVISOR_VAL 0x2 | ||
46 | #define MDIOCTL_PREAM_EN 0x80 /* Enable preamble sequnce */ | ||
47 | #define MDIOCTL_ACCESS_DONE 0x100 /* Transaction complete */ | ||
48 | |||
49 | /* MDIO Data */ | ||
50 | #define MDIODATA_MASK 0x0000ffff /* data 2 bytes */ | ||
51 | #define MDIODATA_TA 0x00020000 /* Turnaround */ | ||
52 | |||
53 | #define MDIODATA_REGADDR_SHF 18 /* Regaddr shift */ | ||
54 | #define MDIODATA_REGADDR_MASK 0x007c0000 /* Regaddr Mask */ | ||
55 | #define MDIODATA_DEVADDR_SHF 23 /* Physmedia devaddr shift */ | ||
56 | #define MDIODATA_DEVADDR_MASK 0x0f800000 | ||
57 | /* Physmedia devaddr Mask */ | ||
58 | |||
59 | /* MDIO Data for older revisions < 10 */ | ||
60 | #define MDIODATA_REGADDR_SHF_OLD 18 /* Regaddr shift */ | ||
61 | #define MDIODATA_REGADDR_MASK_OLD 0x003c0000 | ||
62 | /* Regaddr Mask */ | ||
63 | #define MDIODATA_DEVADDR_SHF_OLD 22 /* Physmedia devaddr shift */ | ||
64 | #define MDIODATA_DEVADDR_MASK_OLD 0x0fc00000 | ||
65 | /* Physmedia devaddr Mask */ | ||
66 | |||
67 | /* Transactions flags */ | ||
68 | #define MDIODATA_WRITE 0x10000000 | ||
69 | #define MDIODATA_READ 0x20000000 | ||
70 | #define MDIODATA_START 0x40000000 | ||
71 | |||
72 | #define MDIODATA_DEV_ADDR 0x0 /* dev address for serdes */ | ||
73 | #define MDIODATA_BLK_ADDR 0x1F /* blk address for serdes */ | ||
74 | |||
75 | /* serdes regs (rev < 10) */ | ||
76 | #define MDIODATA_DEV_PLL 0x1d /* SERDES PLL Dev */ | ||
77 | #define MDIODATA_DEV_TX 0x1e /* SERDES TX Dev */ | ||
78 | #define MDIODATA_DEV_RX 0x1f /* SERDES RX Dev */ | ||
79 | |||
80 | /* SERDES RX registers */ | ||
81 | #define SERDES_RX_CTRL 1 /* Rx cntrl */ | ||
82 | #define SERDES_RX_TIMER1 2 /* Rx Timer1 */ | ||
83 | #define SERDES_RX_CDR 6 /* CDR */ | ||
84 | #define SERDES_RX_CDRBW 7 /* CDR BW */ | ||
85 | /* SERDES RX control register */ | ||
86 | #define SERDES_RX_CTRL_FORCE 0x80 /* rxpolarity_force */ | ||
87 | #define SERDES_RX_CTRL_POLARITY 0x40 /* rxpolarity_value */ | ||
88 | |||
89 | /* SERDES PLL registers */ | ||
90 | #define SERDES_PLL_CTRL 1 /* PLL control reg */ | ||
91 | #define PLL_CTRL_FREQDET_EN 0x4000 /* bit 14 is FREQDET on */ | ||
92 | |||
93 | /* Linkcontrol reg offset in PCIE Cap */ | ||
94 | #define PCIE_CAP_LINKCTRL_OFFSET 16 /* offset in pcie cap */ | ||
95 | #define PCIE_CAP_LCREG_ASPML0s 0x01 /* ASPM L0s in linkctrl */ | ||
96 | #define PCIE_CAP_LCREG_ASPML1 0x02 /* ASPM L1 in linkctrl */ | ||
97 | #define PCIE_CLKREQ_ENAB 0x100 /* CLKREQ Enab in linkctrl */ | ||
98 | |||
99 | #define PCIE_ASPM_ENAB 3 /* ASPM L0s & L1 in linkctrl */ | ||
100 | #define PCIE_ASPM_L1_ENAB 2 /* ASPM L0s & L1 in linkctrl */ | ||
101 | #define PCIE_ASPM_L0s_ENAB 1 /* ASPM L0s & L1 in linkctrl */ | ||
102 | #define PCIE_ASPM_DISAB 0 /* ASPM L0s & L1 in linkctrl */ | ||
103 | |||
104 | /* Power management threshold */ | ||
105 | #define PCIE_L1THRESHOLDTIME_MASK 0xFF00 /* bits 8 - 15 */ | ||
106 | #define PCIE_L1THRESHOLDTIME_SHIFT 8 /* PCIE_L1THRESHOLDTIME_SHIFT */ | ||
107 | #define PCIE_L1THRESHOLD_WARVAL 0x72 /* WAR value */ | ||
108 | #define PCIE_ASPMTIMER_EXTEND 0x01000000 | ||
109 | /* > rev7: | ||
110 | * enable extend ASPM timer | ||
111 | */ | ||
112 | |||
113 | /* different register spaces to access thru pcie indirect access */ | ||
114 | #define PCIE_CONFIGREGS 1 /* Access to config space */ | ||
115 | #define PCIE_PCIEREGS 2 /* Access to pcie registers */ | ||
116 | |||
117 | /* PCIE protocol PHY diagnostic registers */ | ||
118 | #define PCIE_PLP_STATUSREG 0x204 /* Status */ | ||
119 | |||
120 | /* Status reg PCIE_PLP_STATUSREG */ | ||
121 | #define PCIE_PLP_POLARITYINV_STAT 0x10 | ||
122 | |||
123 | /* PCIE protocol DLLP diagnostic registers */ | ||
124 | #define PCIE_DLLP_LCREG 0x100 /* Link Control */ | ||
125 | #define PCIE_DLLP_PMTHRESHREG 0x128 /* Power Management Threshold */ | ||
126 | |||
127 | /* PCIE protocol TLP diagnostic registers */ | ||
128 | #define PCIE_TLP_WORKAROUNDSREG 0x004 /* TLP Workarounds */ | ||
129 | |||
130 | /* Sonics to PCI translation types */ | ||
131 | #define SBTOPCI_PREF 0x4 /* prefetch enable */ | ||
132 | #define SBTOPCI_BURST 0x8 /* burst enable */ | ||
133 | #define SBTOPCI_RC_READMULTI 0x20 /* memory read multiple */ | ||
134 | |||
135 | #define PCI_CLKRUN_DSBL 0x8000 /* Bit 15 forceClkrun */ | ||
136 | |||
137 | /* PCI core index in SROM shadow area */ | ||
138 | #define SRSH_PI_OFFSET 0 /* first word */ | ||
139 | #define SRSH_PI_MASK 0xf000 /* bit 15:12 */ | ||
140 | #define SRSH_PI_SHIFT 12 /* bit 15:12 */ | ||
141 | |||
142 | #define PCIREGOFFS(field) offsetof(struct sbpciregs, field) | ||
143 | #define PCIEREGOFFS(field) offsetof(struct sbpcieregs, field) | ||
144 | |||
145 | /* Sonics side: PCI core and host control registers */ | ||
146 | struct sbpciregs { | ||
147 | u32 control; /* PCI control */ | ||
148 | u32 PAD[3]; | ||
149 | u32 arbcontrol; /* PCI arbiter control */ | ||
150 | u32 clkrun; /* Clkrun Control (>=rev11) */ | ||
151 | u32 PAD[2]; | ||
152 | u32 intstatus; /* Interrupt status */ | ||
153 | u32 intmask; /* Interrupt mask */ | ||
154 | u32 sbtopcimailbox; /* Sonics to PCI mailbox */ | ||
155 | u32 PAD[9]; | ||
156 | u32 bcastaddr; /* Sonics broadcast address */ | ||
157 | u32 bcastdata; /* Sonics broadcast data */ | ||
158 | u32 PAD[2]; | ||
159 | u32 gpioin; /* ro: gpio input (>=rev2) */ | ||
160 | u32 gpioout; /* rw: gpio output (>=rev2) */ | ||
161 | u32 gpioouten; /* rw: gpio output enable (>= rev2) */ | ||
162 | u32 gpiocontrol; /* rw: gpio control (>= rev2) */ | ||
163 | u32 PAD[36]; | ||
164 | u32 sbtopci0; /* Sonics to PCI translation 0 */ | ||
165 | u32 sbtopci1; /* Sonics to PCI translation 1 */ | ||
166 | u32 sbtopci2; /* Sonics to PCI translation 2 */ | ||
167 | u32 PAD[189]; | ||
168 | u32 pcicfg[4][64]; /* 0x400 - 0x7FF, PCI Cfg Space (>=rev8) */ | ||
169 | u16 sprom[36]; /* SPROM shadow Area */ | ||
170 | u32 PAD[46]; | ||
171 | }; | ||
172 | |||
173 | /* SB side: PCIE core and host control registers */ | ||
174 | struct sbpcieregs { | ||
175 | u32 control; /* host mode only */ | ||
176 | u32 PAD[2]; | ||
177 | u32 biststatus; /* bist Status: 0x00C */ | ||
178 | u32 gpiosel; /* PCIE gpio sel: 0x010 */ | ||
179 | u32 gpioouten; /* PCIE gpio outen: 0x14 */ | ||
180 | u32 PAD[2]; | ||
181 | u32 intstatus; /* Interrupt status: 0x20 */ | ||
182 | u32 intmask; /* Interrupt mask: 0x24 */ | ||
183 | u32 sbtopcimailbox; /* sb to pcie mailbox: 0x028 */ | ||
184 | u32 PAD[53]; | ||
185 | u32 sbtopcie0; /* sb to pcie translation 0: 0x100 */ | ||
186 | u32 sbtopcie1; /* sb to pcie translation 1: 0x104 */ | ||
187 | u32 sbtopcie2; /* sb to pcie translation 2: 0x108 */ | ||
188 | u32 PAD[5]; | ||
189 | |||
190 | /* pcie core supports in direct access to config space */ | ||
191 | u32 configaddr; /* pcie config space access: Address field: 0x120 */ | ||
192 | u32 configdata; /* pcie config space access: Data field: 0x124 */ | ||
193 | |||
194 | /* mdio access to serdes */ | ||
195 | u32 mdiocontrol; /* controls the mdio access: 0x128 */ | ||
196 | u32 mdiodata; /* Data to the mdio access: 0x12c */ | ||
197 | |||
198 | /* pcie protocol phy/dllp/tlp register indirect access mechanism */ | ||
199 | u32 pcieindaddr; /* indirect access to | ||
200 | * the internal register: 0x130 | ||
201 | */ | ||
202 | u32 pcieinddata; /* Data to/from the internal regsiter: 0x134 */ | ||
203 | |||
204 | u32 clkreqenctrl; /* >= rev 6, Clkreq rdma control : 0x138 */ | ||
205 | u32 PAD[177]; | ||
206 | u32 pciecfg[4][64]; /* 0x400 - 0x7FF, PCIE Cfg Space */ | ||
207 | u16 sprom[64]; /* SPROM shadow Area */ | ||
208 | }; | ||
209 | |||
210 | struct pcicore_info { | ||
211 | struct bcma_device *core; | ||
212 | struct si_pub *sih; /* System interconnect handle */ | ||
213 | struct pci_dev *dev; | ||
214 | |||
215 | u8 pmecap_offset; /* PM Capability offset in the config space */ | ||
216 | bool pmecap; /* Capable of generating PME */ | ||
217 | }; | ||
218 | |||
219 | /* Initialize the PCI core. | ||
220 | * It's caller's responsibility to make sure that this is done only once | ||
221 | */ | ||
222 | struct pcicore_info *pcicore_init(struct si_pub *sih, struct bcma_device *core) | ||
223 | { | ||
224 | struct pcicore_info *pi; | ||
225 | |||
226 | /* alloc struct pcicore_info */ | ||
227 | pi = kzalloc(sizeof(struct pcicore_info), GFP_ATOMIC); | ||
228 | if (pi == NULL) | ||
229 | return NULL; | ||
230 | |||
231 | pi->sih = sih; | ||
232 | pi->dev = core->bus->host_pci; | ||
233 | pi->core = core; | ||
234 | |||
235 | return pi; | ||
236 | } | ||
237 | |||
238 | void pcicore_deinit(struct pcicore_info *pch) | ||
239 | { | ||
240 | kfree(pch); | ||
241 | } | ||
diff --git a/drivers/net/wireless/brcm80211/brcmsmac/nicpci.h b/drivers/net/wireless/brcm80211/brcmsmac/nicpci.h deleted file mode 100644 index cbd426ec0bcf..000000000000 --- a/drivers/net/wireless/brcm80211/brcmsmac/nicpci.h +++ /dev/null | |||
@@ -1,70 +0,0 @@ | |||
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_NICPCI_H_ | ||
18 | #define _BRCM_NICPCI_H_ | ||
19 | |||
20 | #include "types.h" | ||
21 | |||
22 | /* PCI configuration address space size */ | ||
23 | #define PCI_SZPCR 256 | ||
24 | |||
25 | /* Brcm PCI configuration registers */ | ||
26 | /* backplane address space accessed by BAR0 */ | ||
27 | #define PCI_BAR0_WIN 0x80 | ||
28 | /* sprom property control */ | ||
29 | #define PCI_SPROM_CONTROL 0x88 | ||
30 | /* mask of PCI and other cores interrupts */ | ||
31 | #define PCI_INT_MASK 0x94 | ||
32 | /* backplane core interrupt mask bits offset */ | ||
33 | #define PCI_SBIM_SHIFT 8 | ||
34 | /* backplane address space accessed by second 4KB of BAR0 */ | ||
35 | #define PCI_BAR0_WIN2 0xac | ||
36 | /* pci config space gpio input (>=rev3) */ | ||
37 | #define PCI_GPIO_IN 0xb0 | ||
38 | /* pci config space gpio output (>=rev3) */ | ||
39 | #define PCI_GPIO_OUT 0xb4 | ||
40 | /* pci config space gpio output enable (>=rev3) */ | ||
41 | #define PCI_GPIO_OUTEN 0xb8 | ||
42 | |||
43 | /* bar0 + 4K accesses external sprom */ | ||
44 | #define PCI_BAR0_SPROM_OFFSET (4 * 1024) | ||
45 | /* bar0 + 6K accesses pci core registers */ | ||
46 | #define PCI_BAR0_PCIREGS_OFFSET (6 * 1024) | ||
47 | /* | ||
48 | * pci core SB registers are at the end of the | ||
49 | * 8KB window, so their address is the "regular" | ||
50 | * address plus 4K | ||
51 | */ | ||
52 | #define PCI_BAR0_PCISBR_OFFSET (4 * 1024) | ||
53 | /* bar0 window size Match with corerev 13 */ | ||
54 | #define PCI_BAR0_WINSZ (16 * 1024) | ||
55 | /* On pci corerev >= 13 and all pcie, the bar0 is now 16KB and it maps: */ | ||
56 | /* bar0 + 8K accesses pci/pcie core registers */ | ||
57 | #define PCI_16KB0_PCIREGS_OFFSET (8 * 1024) | ||
58 | /* bar0 + 12K accesses chipc core registers */ | ||
59 | #define PCI_16KB0_CCREGS_OFFSET (12 * 1024) | ||
60 | |||
61 | struct sbpciregs; | ||
62 | struct sbpcieregs; | ||
63 | |||
64 | extern struct pcicore_info *pcicore_init(struct si_pub *sih, | ||
65 | struct bcma_device *core); | ||
66 | extern void pcicore_deinit(struct pcicore_info *pch); | ||
67 | extern void pcicore_up(struct pcicore_info *pch, int state); | ||
68 | extern void pcicore_down(struct pcicore_info *pch, int state); | ||
69 | |||
70 | #endif /* _BRCM_NICPCI_H_ */ | ||