X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Flinux%2Fmtd%2Fonenand.h;h=7419b5fab1337a8f55899f219e2d297faef5a064;hb=9464c7cf61b9433057924c36e6e02f303a00e768;hp=1f4972155249887c1c70e3a2a25f42520ac2f871;hpb=3944158a6d33f94668dbd6bdc32ff5c67bb53ec2;p=linux-2.6.git diff --git a/include/linux/mtd/onenand.h b/include/linux/mtd/onenand.h index 1f4972155..7419b5fab 100644 --- a/include/linux/mtd/onenand.h +++ b/include/linux/mtd/onenand.h @@ -23,7 +23,7 @@ extern int onenand_scan(struct mtd_info *mtd, int max_chips); /* Free resources held by the OneNAND device */ extern void onenand_release(struct mtd_info *mtd); -/* +/** * onenand_state_t - chip states * Enumeration for OneNAND flash chip state */ @@ -35,16 +35,14 @@ typedef enum { FL_SYNCING, FL_UNLOCKING, FL_LOCKING, - FL_RESETING, - FL_OTPING, FL_PM_SUSPENDED, } onenand_state_t; /** * struct onenand_bufferram - OneNAND BufferRAM Data - * @block: block address in BufferRAM - * @page: page address in BufferRAM - * @valid: valid flag + * @param block block address in BufferRAM + * @param page page address in BufferRAM + * @param valid valid flag */ struct onenand_bufferram { int block; @@ -54,43 +52,32 @@ struct onenand_bufferram { /** * struct onenand_chip - OneNAND Private Flash Chip Data - * @base: [BOARDSPECIFIC] address to access OneNAND - * @chipsize: [INTERN] the size of one chip for multichip arrays - * @device_id: [INTERN] device ID - * @density_mask: chip density, used for DDP devices - * @verstion_id: [INTERN] version ID - * @options: [BOARDSPECIFIC] various chip options. They can - * partly be set to inform onenand_scan about - * @erase_shift: [INTERN] number of address bits in a block - * @page_shift: [INTERN] number of address bits in a page - * @ppb_shift: [INTERN] number of address bits in a pages per block - * @page_mask: [INTERN] a page per block mask - * @bufferram_index: [INTERN] BufferRAM index - * @bufferram: [INTERN] BufferRAM info - * @readw: [REPLACEABLE] hardware specific function for read short - * @writew: [REPLACEABLE] hardware specific function for write short - * @command: [REPLACEABLE] hardware specific function for writing - * commands to the chip - * @wait: [REPLACEABLE] hardware specific function for wait on ready - * @read_bufferram: [REPLACEABLE] hardware specific function for BufferRAM Area - * @write_bufferram: [REPLACEABLE] hardware specific function for BufferRAM Area - * @read_word: [REPLACEABLE] hardware specific function for read - * register of OneNAND - * @write_word: [REPLACEABLE] hardware specific function for write - * register of OneNAND - * @mmcontrol: sync burst read function - * @block_markbad: function to mark a block as bad - * @scan_bbt: [REPLACEALBE] hardware specific function for scanning - * Bad block Table - * @chip_lock: [INTERN] spinlock used to protect access to this - * structure and the chip - * @wq: [INTERN] wait queue to sleep on if a OneNAND - * operation is in progress - * @state: [INTERN] the current state of the OneNAND device - * @page_buf: data buffer - * @ecclayout: [REPLACEABLE] the default ecc placement scheme - * @bbm: [REPLACEABLE] pointer to Bad Block Management - * @priv: [OPTIONAL] pointer to private chip date + * @param base [BOARDSPECIFIC] address to access OneNAND + * @param chipsize [INTERN] the size of one chip for multichip arrays + * @param device_id [INTERN] device ID + * @param verstion_id [INTERN] version ID + * @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 + * @param ppb_shift [INTERN] number of address bits in a pages per block + * @param page_mask [INTERN] a page per block mask + * @param bufferam_index [INTERN] BufferRAM index + * @param bufferam [INTERN] BufferRAM info + * @param readw [REPLACEABLE] hardware specific function for read short + * @param writew [REPLACEABLE] hardware specific function for write short + * @param command [REPLACEABLE] hardware specific function for writing commands to the chip + * @param wait [REPLACEABLE] hardware specific function for wait on ready + * @param read_bufferram [REPLACEABLE] hardware specific function for BufferRAM Area + * @param write_bufferram [REPLACEABLE] hardware specific function for BufferRAM Area + * @param read_word [REPLACEABLE] hardware specific function for read register of OneNAND + * @param write_word [REPLACEABLE] hardware specific function for write register of OneNAND + * @param scan_bbt [REPLACEALBE] hardware specific function for scaning Bad block Table + * @param chip_lock [INTERN] spinlock used to protect access to this structure and the chip + * @param wq [INTERN] wait queue to sleep on if a OneNAND operation is in progress + * @param state [INTERN] the current state of the OneNAND device + * @param autooob [REPLACEABLE] the default (auto)placement scheme + * @param bbm [REPLACEABLE] pointer to Bad Block Management + * @param priv [OPTIONAL] pointer to private chip date */ struct onenand_chip { void __iomem *base; @@ -124,9 +111,9 @@ struct onenand_chip { onenand_state_t state; unsigned char *page_buf; - struct nand_ecclayout *ecclayout; + struct nand_oobinfo *autooob; - void *bbm; + void *bbm; void *priv; }; @@ -143,9 +130,6 @@ struct onenand_chip { #define ONENAND_SET_SYS_CFG1(v, this) \ (this->write_word(v, this->base + ONENAND_REG_SYS_CFG1)) -/* Check byte access in OneNAND */ -#define ONENAND_CHECK_BYTE_ACCESS(addr) (addr & 0x1) - /* * Options bits */ @@ -158,9 +142,9 @@ struct onenand_chip { #define ONENAND_MFR_SAMSUNG 0xec /** - * struct onenand_manufacturers - NAND Flash Manufacturer ID Structure - * @name: Manufacturer name - * @id: manufacturer ID code of device. + * struct nand_manufacturers - NAND Flash Manufacturer ID Structure + * @param name: Manufacturer name + * @param id: manufacturer ID code of device. */ struct onenand_manufacturers { int id;