aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorRafał Miłecki <zajec5@gmail.com>2011-06-01 20:08:51 -0400
committerJohn W. Linville <linville@tuxdriver.com>2011-06-03 15:01:07 -0400
commit27f18dc2dafe66a93c7101fc94201b8c83903597 (patch)
tree4600db64c653cfc74d427fc26b7f94ef8fb5db28 /include/linux
parent4da909e7b572b561d8150f9d41b04bcfff386222 (diff)
bcma: read SPROM and extract MAC from it
In case of BCMA cards SPROM is located in the ChipCommon core, it is not mapped as separated host window. So far we have met only SPROMs rev 8. SPROM layout seems to be the same as for SSB buses, so we decided to share SPROM struct and some defines. For now we extract MAC address only, this can be improved of course. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/bcma/bcma.h5
-rw-r--r--include/linux/bcma/bcma_driver_chipcommon.h1
2 files changed, 6 insertions, 0 deletions
diff --git a/include/linux/bcma/bcma.h b/include/linux/bcma/bcma.h
index 27a27a79bea..6ff080eac0b 100644
--- a/include/linux/bcma/bcma.h
+++ b/include/linux/bcma/bcma.h
@@ -6,6 +6,7 @@
6 6
7#include <linux/bcma/bcma_driver_chipcommon.h> 7#include <linux/bcma/bcma_driver_chipcommon.h>
8#include <linux/bcma/bcma_driver_pci.h> 8#include <linux/bcma/bcma_driver_pci.h>
9#include <linux/ssb/ssb.h> /* SPROM sharing */
9 10
10#include "bcma_regs.h" 11#include "bcma_regs.h"
11 12
@@ -187,6 +188,10 @@ struct bcma_bus {
187 188
188 struct bcma_drv_cc drv_cc; 189 struct bcma_drv_cc drv_cc;
189 struct bcma_drv_pci drv_pci; 190 struct bcma_drv_pci drv_pci;
191
192 /* We decided to share SPROM struct with SSB as long as we do not need
193 * any hacks for BCMA. This simplifies drivers code. */
194 struct ssb_sprom sprom;
190}; 195};
191 196
192extern inline u32 bcma_read8(struct bcma_device *core, u16 offset) 197extern inline u32 bcma_read8(struct bcma_device *core, u16 offset)
diff --git a/include/linux/bcma/bcma_driver_chipcommon.h b/include/linux/bcma/bcma_driver_chipcommon.h
index 083c3b6cd5c..9c5b69fc985 100644
--- a/include/linux/bcma/bcma_driver_chipcommon.h
+++ b/include/linux/bcma/bcma_driver_chipcommon.h
@@ -244,6 +244,7 @@
244#define BCMA_CC_REGCTL_DATA 0x065C 244#define BCMA_CC_REGCTL_DATA 0x065C
245#define BCMA_CC_PLLCTL_ADDR 0x0660 245#define BCMA_CC_PLLCTL_ADDR 0x0660
246#define BCMA_CC_PLLCTL_DATA 0x0664 246#define BCMA_CC_PLLCTL_DATA 0x0664
247#define BCMA_CC_SPROM 0x0830 /* SPROM beginning */
247 248
248/* Data for the PMU, if available. 249/* Data for the PMU, if available.
249 * Check availability with ((struct bcma_chipcommon)->capabilities & BCMA_CC_CAP_PMU) 250 * Check availability with ((struct bcma_chipcommon)->capabilities & BCMA_CC_CAP_PMU)