diff options
| author | Wolfgang Denk <wd@denx.de> | 2009-12-15 23:38:34 +0100 | 
|---|---|---|
| committer | Wolfgang Denk <wd@denx.de> | 2009-12-15 23:38:34 +0100 | 
| commit | bb3bcfa2426cc6a0aecec7270e3ee67ca843a125 (patch) | |
| tree | 0314e3d8e8d9e4d568a496fca27db33d66e68bb4 /include/linux/mtd/onenand.h | |
| parent | a200a7c04d89853d2a1395b96d8ca5e3dd754551 (diff) | |
| parent | 4b142febff71eabdb7ddbb125c7b583b24ddc434 (diff) | |
| download | olio-uboot-2014.01-bb3bcfa2426cc6a0aecec7270e3ee67ca843a125.tar.xz olio-uboot-2014.01-bb3bcfa2426cc6a0aecec7270e3ee67ca843a125.zip | |
Merge branch 'next' of ../next
Diffstat (limited to 'include/linux/mtd/onenand.h')
| -rw-r--r-- | include/linux/mtd/onenand.h | 16 | 
1 files changed, 15 insertions, 1 deletions
| diff --git a/include/linux/mtd/onenand.h b/include/linux/mtd/onenand.h index 9a6f31752..68e174e31 100644 --- a/include/linux/mtd/onenand.h +++ b/include/linux/mtd/onenand.h @@ -20,8 +20,9 @@  #include <linux/mtd/compat.h>  #include <linux/mtd/bbm.h> +#define MAX_DIES		2  #define MAX_BUFFERRAM		2 -#define MAX_ONENAND_PAGESIZE	(2048 + 64) +#define MAX_ONENAND_PAGESIZE	(4096 + 128)  /* Scan and identify a OneNAND device */  extern int onenand_scan (struct mtd_info *mtd, int max_chips); @@ -39,9 +40,14 @@ struct onenand_bufferram {  /**   * struct onenand_chip - OneNAND Private Flash Chip Data   * @param base		[BOARDSPECIFIC] address to access OneNAND + * @dies:               [INTERN][FLEXONENAND] number of dies on chip + * @boundary:           [INTERN][FLEXONENAND] Boundary of the dies + * @diesize:            [INTERN][FLEXONENAND] Size of the dies   * @param chipsize	[INTERN] the size of one chip for multichip arrays   * @param device_id	[INTERN] device ID   * @param verstion_id	[INTERN] version ID + * @technology		[INTERN] describes the internal NAND array technology such as SLC or MLC. + * @density_mask:	[INTERN] chip density, used for DDP devices   * @param options	[BOARDSPECIFIC] various chip options. They can partly be set to inform onenand_scan about   * @param erase_shift	[INTERN] number of address bits in a block   * @param page_shift	[INTERN] number of address bits in a page @@ -64,9 +70,13 @@ struct onenand_bufferram {   */  struct onenand_chip {  	void __iomem *base; +	unsigned int dies; +	unsigned int boundary[MAX_DIES]; +	unsigned int diesize[MAX_DIES];  	unsigned int chipsize;  	unsigned int device_id;  	unsigned int version_id; +	unsigned int technology;  	unsigned int density_mask;  	unsigned int options; @@ -124,6 +134,8 @@ struct onenand_chip {  #define ONENAND_SET_BUFFERRAM0(this)		(this->bufferram_index = 0)  #define ONENAND_SET_BUFFERRAM1(this)		(this->bufferram_index = 1) +#define FLEXONENAND(this)	(this->device_id & DEVICE_IS_FLEXONENAND) +#define ONENAND_IS_MLC(this)	(this->technology & ONENAND_TECHNOLOGY_IS_MLC)  #define ONENAND_IS_DDP(this)						\  	(this->device_id & ONENAND_DEVICE_IS_DDP) @@ -157,4 +169,6 @@ struct onenand_manufacturers {  int onenand_bbt_read_oob(struct mtd_info *mtd, loff_t from,  			struct mtd_oob_ops *ops); +unsigned int onenand_block(struct onenand_chip *this, loff_t addr); +int flexonenand_region(struct mtd_info *mtd, loff_t addr);  #endif				/* __LINUX_MTD_ONENAND_H */ |