瀏覽代碼

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>
Rafał Miłecki 12 年之前
父節點
當前提交
1f816bc729
共有 2 個文件被更改,包括 16 次插入0 次删除
  1. 9 0
      drivers/mtd/devices/bcm47xxsflash.c
  2. 7 0
      drivers/mtd/devices/bcm47xxsflash.h

+ 9 - 0
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;

+ 7 - 0
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;