• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* SPDX-License-Identifier: GPL-2.0 */
2 
3 #ifndef __AW_SPINAND_NFTL_H__
4 #define __AW_SPINAND_NFTL_H__
5 
6 #include <sunxi-boot.h>
7 
8 #define AW_NFTL_OOB_LEN (16)
9 
10 enum AW_NFTL_ECC_STATUS {
11 	AW_NFTL_ECC_ERR = -2,
12 	AW_NFTL_ECC_LIMIT = 10
13 };
14 
15 
16 unsigned int spinand_nftl_get_super_page_size(int type);
17 unsigned int spinand_nftl_get_super_block_size(int type);
18 unsigned int spinand_nftl_get_single_page_size(int type);
19 unsigned int spinand_nftl_get_single_block_size(int type);
20 unsigned int spinand_nftl_get_chip_size(int type);
21 unsigned int spinand_nftl_get_die_size(int type);
22 unsigned int spinand_nftl_get_die_cnt(void);
23 unsigned int spinand_nftl_get_chip_cnt(void);
24 unsigned int spinand_nftl_get_max_erase_times(void);
25 unsigned int spinand_nftl_get_multi_plane_flag(void);
26 unsigned int spinand_nftl_get_operation_opt(void);
27 void spinand_nftl_get_chip_id(unsigned char *id);
28 
29 int spinand_nftl_read_super_page(unsigned short dienum, unsigned short blocknum,
30 		unsigned short pagenum, unsigned short sectorbitmap,
31 		void *rmbuf, void *rspare);
32 
33 int spinand_nftl_write_super_page(unsigned short dienum, unsigned short blocknum,
34 		unsigned short pagenum, unsigned short sectorbitmap,
35 		void *wmbuf, void *wspare);
36 int spinand_nftl_erase_super_block(unsigned short dienum, unsigned short blocknum);
37 int spinand_nftl_super_badblock_check(unsigned short dienum, unsigned short blocknum);
38 int spinand_nftl_super_badblock_mark(unsigned short dienum, unsigned short blocknum);
39 
40 int spinand_nftl_read_single_page(unsigned short dienum, unsigned short blocknum,
41 		unsigned short pagenum, unsigned short sectorbitmap,
42 		void *rmbuf, void *rspare);
43 
44 int spinand_nftl_write_single_page(unsigned short dienum, unsigned short blocknum,
45 		unsigned short pagenum, unsigned short sectorbitmap,
46 		void *wmbuf, void *wspare);
47 int spinand_nftl_erase_single_block(unsigned short dienum, unsigned short blocknum);
48 
49 int spinand_nftl_single_block_copy(unsigned int from_chip,
50 		unsigned int from_block, unsigned int to_chip,
51 		unsigned int to_block);
52 int spinand_nftl_single_badblock_check(unsigned short chipnum, unsigned short blocknum);
53 int spinand_nftl_single_badblock_mark(unsigned short chipnum, unsigned short blocknum);
54 
55 #endif /*AW_SPINAND_NFTL_H*/
56