1 /* 2 * (C) Copyright 2005 3 * 2N Telekomunikace, a.s. <www.2n.cz> 4 * Ladislav Michl <michl@2n.cz> 5 * 6 * See file CREDITS for list of people who contributed to this 7 * project. 8 * 9 * This program is free software; you can redistribute it and/or 10 * modify it under the terms of the GNU General Public License 11 * version 2 as published by the Free Software Foundation. 12 * 13 * This program is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * GNU General Public License for more details. 17 * 18 * You should have received a copy of the GNU General Public License 19 * along with this program; if not, write to the Free Software 20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 21 * MA 02111-1307 USA 22 */ 23 24 #ifndef _NAND_H_ 25 #define _NAND_H_ 26 27 #include <linux/mtd/compat.h> 28 #include <linux/mtd/mtd.h> 29 #include <linux/mtd/nand.h> 30 31 typedef struct mtd_info nand_info_t; 32 33 extern int nand_curr_device; 34 extern nand_info_t nand_info[]; 35 36 static inline int nand_read(nand_info_t *info, ulong ofs, ulong *len, u_char *buf) 37 { 38 return info->read(info, ofs, *len, (size_t *)len, buf); 39 } 40 41 static inline int nand_write(nand_info_t *info, ulong ofs, ulong *len, u_char *buf) 42 { 43 return info->write(info, ofs, *len, (size_t *)len, buf); 44 } 45 46 static inline int nand_block_isbad(nand_info_t *info, ulong ofs) 47 { 48 return info->block_isbad(info, ofs); 49 } 50 51 static inline int nand_erase(nand_info_t *info, ulong off, ulong size) 52 { 53 struct erase_info instr; 54 55 instr.mtd = info; 56 instr.addr = off; 57 instr.len = size; 58 instr.callback = 0; 59 60 return info->erase(info, &instr); 61 } 62 63 #endif 64