summaryrefslogtreecommitdiff
path: root/drivers/mtd
diff options
context:
space:
mode:
authorRafał Miłecki <zajec5@gmail.com>2013-03-06 12:34:19 +0100
committerDavid Woodhouse <David.Woodhouse@intel.com>2013-04-05 13:14:14 +0100
commit1f816bc729fd5dec7c3633b0a54b75dc7a1fea0f (patch)
treeab58e0d4000de16f5a778e70e755e9d5c6716784 /drivers/mtd
parent41c81536ea25d17933b5b503053a5990ec05502a (diff)
mtd: bcm47xxsflash: store info about flash type
It's going to be needed for erase and write operations, they differ between Atmel and ST flashes. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Diffstat (limited to 'drivers/mtd')
-rw-r--r--drivers/mtd/devices/bcm47xxsflash.c9
-rw-r--r--drivers/mtd/devices/bcm47xxsflash.h7
2 files changed, 16 insertions, 0 deletions
diff --git a/drivers/mtd/devices/bcm47xxsflash.c b/drivers/mtd/devices/bcm47xxsflash.c
index b0705741fd93..18e7761137a3 100644
--- a/drivers/mtd/devices/bcm47xxsflash.c
+++ b/drivers/mtd/devices/bcm47xxsflash.c
@@ -63,6 +63,15 @@ static int bcm47xxsflash_bcma_probe(struct platform_device *pdev)
b47s->bcma_cc = container_of(sflash, struct bcma_drv_cc, sflash);
+ switch (b47s->bcma_cc->capabilities & BCMA_CC_CAP_FLASHT) {
+ case BCMA_CC_FLASHT_STSER:
+ b47s->type = BCM47XXSFLASH_TYPE_ST;
+ break;
+ case BCMA_CC_FLASHT_ATSER:
+ b47s->type = BCM47XXSFLASH_TYPE_ATMEL;
+ break;
+ }
+
b47s->window = sflash->window;
b47s->blocksize = sflash->blocksize;
b47s->numblocks = sflash->numblocks;
diff --git a/drivers/mtd/devices/bcm47xxsflash.h b/drivers/mtd/devices/bcm47xxsflash.h
index e37285e6fad9..44985294ed8f 100644
--- a/drivers/mtd/devices/bcm47xxsflash.h
+++ b/drivers/mtd/devices/bcm47xxsflash.h
@@ -5,9 +5,16 @@
struct bcma_drv_cc;
+enum bcm47xxsflash_type {
+ BCM47XXSFLASH_TYPE_ATMEL,
+ BCM47XXSFLASH_TYPE_ST,
+};
+
struct bcm47xxsflash {
struct bcma_drv_cc *bcma_cc;
+ enum bcm47xxsflash_type type;
+
u32 window;
u32 blocksize;
u16 numblocks;