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