diff options
author | John W. Linville <linville@tuxdriver.com> | 2013-02-08 13:16:17 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2013-02-08 13:16:17 -0500 |
commit | f5237f278f30a92401539a54f87ee0c717b6f818 (patch) | |
tree | 209d4fd6fb00e660c76ca8ac5d4caed59dbb9957 /drivers/bcma/driver_mips.c | |
parent | b285109dde7b873b5dc671ef1b3ae3090f4bc72f (diff) | |
parent | b26f5f09ebdeb85ab152344cc1d6d484a3ce967d (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem
Diffstat (limited to 'drivers/bcma/driver_mips.c')
-rw-r--r-- | drivers/bcma/driver_mips.c | 38 |
1 files changed, 33 insertions, 5 deletions
diff --git a/drivers/bcma/driver_mips.c b/drivers/bcma/driver_mips.c index 9fe86ee16c66..9a7f0e3ab5a3 100644 --- a/drivers/bcma/driver_mips.c +++ b/drivers/bcma/driver_mips.c | |||
@@ -14,11 +14,33 @@ | |||
14 | 14 | ||
15 | #include <linux/bcma/bcma.h> | 15 | #include <linux/bcma/bcma.h> |
16 | 16 | ||
17 | #include <linux/mtd/physmap.h> | ||
18 | #include <linux/platform_device.h> | ||
17 | #include <linux/serial.h> | 19 | #include <linux/serial.h> |
18 | #include <linux/serial_core.h> | 20 | #include <linux/serial_core.h> |
19 | #include <linux/serial_reg.h> | 21 | #include <linux/serial_reg.h> |
20 | #include <linux/time.h> | 22 | #include <linux/time.h> |
21 | 23 | ||
24 | static const char *part_probes[] = { "bcm47xxpart", NULL }; | ||
25 | |||
26 | static struct physmap_flash_data bcma_pflash_data = { | ||
27 | .part_probe_types = part_probes, | ||
28 | }; | ||
29 | |||
30 | static struct resource bcma_pflash_resource = { | ||
31 | .name = "bcma_pflash", | ||
32 | .flags = IORESOURCE_MEM, | ||
33 | }; | ||
34 | |||
35 | struct platform_device bcma_pflash_dev = { | ||
36 | .name = "physmap-flash", | ||
37 | .dev = { | ||
38 | .platform_data = &bcma_pflash_data, | ||
39 | }, | ||
40 | .resource = &bcma_pflash_resource, | ||
41 | .num_resources = 1, | ||
42 | }; | ||
43 | |||
22 | /* The 47162a0 hangs when reading MIPS DMP registers registers */ | 44 | /* The 47162a0 hangs when reading MIPS DMP registers registers */ |
23 | static inline bool bcma_core_mips_bcm47162a0_quirk(struct bcma_device *dev) | 45 | static inline bool bcma_core_mips_bcm47162a0_quirk(struct bcma_device *dev) |
24 | { | 46 | { |
@@ -211,6 +233,7 @@ static void bcma_core_mips_flash_detect(struct bcma_drv_mips *mcore) | |||
211 | { | 233 | { |
212 | struct bcma_bus *bus = mcore->core->bus; | 234 | struct bcma_bus *bus = mcore->core->bus; |
213 | struct bcma_drv_cc *cc = &bus->drv_cc; | 235 | struct bcma_drv_cc *cc = &bus->drv_cc; |
236 | struct bcma_pflash *pflash = &cc->pflash; | ||
214 | 237 | ||
215 | switch (cc->capabilities & BCMA_CC_CAP_FLASHT) { | 238 | switch (cc->capabilities & BCMA_CC_CAP_FLASHT) { |
216 | case BCMA_CC_FLASHT_STSER: | 239 | case BCMA_CC_FLASHT_STSER: |
@@ -220,15 +243,20 @@ static void bcma_core_mips_flash_detect(struct bcma_drv_mips *mcore) | |||
220 | break; | 243 | break; |
221 | case BCMA_CC_FLASHT_PARA: | 244 | case BCMA_CC_FLASHT_PARA: |
222 | bcma_debug(bus, "Found parallel flash\n"); | 245 | bcma_debug(bus, "Found parallel flash\n"); |
223 | cc->pflash.present = true; | 246 | pflash->present = true; |
224 | cc->pflash.window = BCMA_SOC_FLASH2; | 247 | pflash->window = BCMA_SOC_FLASH2; |
225 | cc->pflash.window_size = BCMA_SOC_FLASH2_SZ; | 248 | pflash->window_size = BCMA_SOC_FLASH2_SZ; |
226 | 249 | ||
227 | if ((bcma_read32(cc->core, BCMA_CC_FLASH_CFG) & | 250 | if ((bcma_read32(cc->core, BCMA_CC_FLASH_CFG) & |
228 | BCMA_CC_FLASH_CFG_DS) == 0) | 251 | BCMA_CC_FLASH_CFG_DS) == 0) |
229 | cc->pflash.buswidth = 1; | 252 | pflash->buswidth = 1; |
230 | else | 253 | else |
231 | cc->pflash.buswidth = 2; | 254 | pflash->buswidth = 2; |
255 | |||
256 | bcma_pflash_data.width = pflash->buswidth; | ||
257 | bcma_pflash_resource.start = pflash->window; | ||
258 | bcma_pflash_resource.end = pflash->window + pflash->window_size; | ||
259 | |||
232 | break; | 260 | break; |
233 | default: | 261 | default: |
234 | bcma_err(bus, "Flash type not supported\n"); | 262 | bcma_err(bus, "Flash type not supported\n"); |