sdk-hwV1.3/lichee/linux-4.9/modules/nand/common1/phy-nand/rawnand/rawnand_base.h

44 lines
2.2 KiB
C

/*
* rawnand_base.c for sunxi rawnand base
*
* Copyright (C) 2019 Allwinner.
* SPDX-License-Identifier: GPL-2.0
*/
#include "../../aw_nand_type.h"
#include "controller/ndfc_base.h"
extern struct _nand_temp_buf ntf;
extern struct _nand_permanent_data nand_permanent_data;
extern u8 *nand_get_temp_buf(unsigned int size);
extern int nand_free_temp_buf(unsigned char *buf);
extern s32 nand_get_dma_desc(struct nand_controller_info *nctri);
extern s32 nand_free_dma_desc(struct nand_controller_info *nctri);
extern int nand_init_temp_buf(struct _nand_temp_buf *nand_temp_buf);
extern int (*nand_physic_special_init)(void);
extern int (*nand_physic_special_exit)(void);
struct _nand_info *RawNandHwInit(void);
int RawNandHwExit(void);
int rawnand_hw_super_standby(void);
int rawnand_hw_super_resume(void);
int rawnand_hw_normal_standby(void);
int rawnand_hw_normal_resume(void);
int rawnand_hw_shutdown(void);
int nand_read_scan_data(unsigned int chip, unsigned int block, unsigned int page, unsigned int bitmap, unsigned char *mbuf, unsigned char *sbuf);
int get_nand_structure(struct _nand_super_storage_info *nssi);
int rawnand_physic_erase_block(unsigned int chip, unsigned int block);
int rawnand_physic_write_page(unsigned int chip, unsigned int block, unsigned int page, unsigned int bitmap, unsigned char *mbuf, unsigned char *sbuf);
int rawnand_physic_read_page(unsigned int chip, unsigned int block, unsigned int page, unsigned int bitmap, unsigned char *mbuf, unsigned char *sbuf);
int rawnand_physic_erase_super_block(unsigned int chip, unsigned int block);
int rawnand_physic_write_super_page(unsigned int chip, unsigned int block, unsigned int page, unsigned int bitmap, unsigned char *mbuf, unsigned char *sbuf);
int rawnand_physic_read_super_page(unsigned int chip, unsigned int block, unsigned int page, unsigned int bitmap, unsigned char *mbuf, unsigned char *sbuf);
int rawnand_physic_super_bad_block_check(unsigned int chip, unsigned int block);
int rawnand_physic_super_bad_block_mark(unsigned int chip, unsigned int block);
struct physic_special_ops {
int (*nand_physic_special_init)(void);
int (*nand_physic_special_exit)(void);
};
extern struct physic_special_ops special_ops;