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