xref: /rk3399_rockchip-uboot/include/onenand_uboot.h (revision 229c56f07a82eacda8c8720cb146fc9be0f6db54)
1d7e8ce10SKyungmin Park /*
2d7e8ce10SKyungmin Park  *  Header file for OneNAND support for U-Boot
3d7e8ce10SKyungmin Park  *
4d7e8ce10SKyungmin Park  *  Adaptation from kernel to U-Boot
5d7e8ce10SKyungmin Park  *
6d7e8ce10SKyungmin Park  *  Copyright (C) 2005-2007 Samsung Electronics
7d7e8ce10SKyungmin Park  *  Kyungmin Park <kyungmin.park@samsung.com>
8d7e8ce10SKyungmin Park  *
9d7e8ce10SKyungmin Park  * This program is free software; you can redistribute it and/or modify
10d7e8ce10SKyungmin Park  * it under the terms of the GNU General Public License version 2 as
11d7e8ce10SKyungmin Park  * published by the Free Software Foundation.
12d7e8ce10SKyungmin Park  */
13d7e8ce10SKyungmin Park 
14d7e8ce10SKyungmin Park #ifndef __UBOOT_ONENAND_H
15d7e8ce10SKyungmin Park #define __UBOOT_ONENAND_H
16d7e8ce10SKyungmin Park 
17*229c56f0SScott Wood #include <linux/types.h>
18*229c56f0SScott Wood 
19d7e8ce10SKyungmin Park struct kvec {
20d7e8ce10SKyungmin Park 	void *iov_base;
21d7e8ce10SKyungmin Park 	size_t iov_len;
22d7e8ce10SKyungmin Park };
23d7e8ce10SKyungmin Park 
24d7e8ce10SKyungmin Park typedef int spinlock_t;
25d7e8ce10SKyungmin Park typedef int wait_queue_head_t;
26d7e8ce10SKyungmin Park 
27*229c56f0SScott Wood struct mtd_info;
28*229c56f0SScott Wood struct erase_info;
29*229c56f0SScott Wood 
30d7e8ce10SKyungmin Park /* Functions */
31d7e8ce10SKyungmin Park extern void onenand_init(void);
32d7e8ce10SKyungmin Park extern int onenand_read(struct mtd_info *mtd, loff_t from, size_t len,
33d7e8ce10SKyungmin Park 			size_t * retlen, u_char * buf);
34d7e8ce10SKyungmin Park extern int onenand_read_oob(struct mtd_info *mtd, loff_t from, size_t len,
35d7e8ce10SKyungmin Park 			    size_t * retlen, u_char * buf);
36d7e8ce10SKyungmin Park extern int onenand_write(struct mtd_info *mtd, loff_t from, size_t len,
37d7e8ce10SKyungmin Park 			 size_t * retlen, const u_char * buf);
38d7e8ce10SKyungmin Park extern int onenand_erase(struct mtd_info *mtd, struct erase_info *instr);
39d7e8ce10SKyungmin Park 
40d7e8ce10SKyungmin Park extern int onenand_unlock(struct mtd_info *mtd, loff_t ofs, size_t len);
41d7e8ce10SKyungmin Park 
42d7e8ce10SKyungmin Park extern void onenand_print_device_info(int device, int verbose);
43d7e8ce10SKyungmin Park 
44d7e8ce10SKyungmin Park #endif /* __UBOOT_ONENAND_H */
45