nt9856x/BSP/linux-kernel/drivers/mtd/spiflash/ext_flash_table.h
2023-04-03 19:38:48 +08:00

60 lines
1.5 KiB
C
Executable File

/*
* External Flash table
*
* Copyright (C) Novatek Inc. 2017
*
*/
#include <linux/mtd/mtd.h>
/* data structure to maintain flash ids from different vendors */
struct flash_device {
char *name;
u8 erase_cmd;
u32 device_id;
u32 pagesize;
unsigned long sectorsize;
unsigned long size_in_bytes;
u8 quad_mode;
u8 read_mode;
};
#define FLASH_ID(n, es, id, psize, ssize, size, qpp, rd_mode) \
{ \
.name = n, \
.erase_cmd = es, \
.device_id = id, \
.pagesize = psize, \
.sectorsize = ssize, \
.size_in_bytes = size, \
.quad_mode = qpp, \
.read_mode = rd_mode \
}
/*
* quad_mode :
* 1 bit : 0
* 4 bits : WR_QPP
*
* read_mode :
* SPI_NOR_NORMAL_READ
* SPI_NOR_DUAL_READ
* SPI_NOR_QUAD_READ
*
* Example:
* Read: 4 bits, Write: 1 bit
* FLASH_ID("mx 25l12835f" , 0xd8, 0x001820C2, 0x100, 0x1000 , 0x1000000, 0, SPI_NOR_QUAD_READ),
*
* Read: 2 bits, Write: 1 bit
* FLASH_ID("mac 25l6405" , 0xd8, 0x001720C2, 0x100, 0x10000, 0x800000, 0, SPI_NOR_DUAL_READ),
*
* Read: 4 bits, Write: 4 bit
* FLASH_ID("gd W25Q127C" , 0xd8, 0x001840C8, 0x100, 0x10000, 0x1000000, WR_QPP, SPI_NOR_QUAD_READ),
*/
#ifdef CONFIG_MTD_EXTERNAL_FLASH_TABLE
static struct flash_device flash_devices[] = {
FLASH_ID("EN25QX256A(2S) 256Mb" , 0xd8, 0x0019711C, 0x100, 0x10000, 0x2000000, WR_QPP, SPI_NOR_QUAD_READ),
FLASH_ID("MX25L25635F 256Mb" , 0xd8, 0x001920C2, 0x100, 0x10000, 0x2000000, 0, SPI_NOR_QUAD_READ),
};
#endif