158 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			158 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /****************************************************************************
 | |
| 
 | |
| Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
 | |
| 
 | |
| This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
 | |
| be copied by any method or incorporated into another program without
 | |
| the express written consent of Aerospace C.Power. This Information or any portion
 | |
| thereof remains the property of Aerospace C.Power. The Information contained herein
 | |
| is believed to be accurate and Aerospace C.Power assumes no responsibility or
 | |
| liability for its use in any way and conveys no license or title under
 | |
| any patent or copyright and makes no representation or warranty that this
 | |
| Information is free from patent or copyright infringement.
 | |
| 
 | |
| ****************************************************************************/
 | |
| #ifndef _NAND_FLASH_H
 | |
| #define _NAND_FLASH_H
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| #define DATA_FIELD_LEN  2048
 | |
| #define SPARE_FIELD_LEN 64
 | |
| 
 | |
| #ifndef     ENABLE
 | |
| #define     ENABLE  1
 | |
| #endif
 | |
| #ifndef     DISABLE
 | |
| #define     DISABLE 0
 | |
| #endif
 | |
| 
 | |
| /**
 | |
|  * @brief nandfc_read_chip_info() - get chip information
 | |
|  *
 | |
|  * @return              the value of the chip information register
 | |
|  */
 | |
| uint32_t nandfc_read_chip_info(void);
 | |
| 
 | |
| /**
 | |
|  * @brief nandfc_get_feature() - get feature register
 | |
|  * @param addr:         the address of feature register
 | |
|  * @return              the value of the feature register
 | |
|  */
 | |
| uint8_t nandfc_get_feature(uint8_t addr);
 | |
| 
 | |
| /**
 | |
|  * @brief nandfc_set_feature() - set feature register
 | |
|  * @param addr:         the address of feature register
 | |
|  * @param data:         the data to be writen
 | |
|  * @return              0 success
 | |
|  * @return              1 failed
 | |
|  */
 | |
| int nandfc_set_feature(char addr, char data);
 | |
| 
 | |
| /**
 | |
|  * @brief nandfc_write_en_switch() - set feature register
 | |
|  * @param en:           0 diable
 | |
|  *                      1 enable
 | |
|  * @return              0 success
 | |
|  * @return              1 failed
 | |
|  */
 | |
| int nandfc_write_en_switch(uint8_t en);
 | |
| 
 | |
| /**
 | |
|  * @brief nandfc_reset_device() - set feature register
 | |
|  *
 | |
|  * @return              0 success
 | |
|  * @return              1 failed
 | |
|  */
 | |
| int nandfc_reset_device(void);
 | |
| 
 | |
| /**
 | |
|  * @brief nandfc_read_page_to_cache() - read the addressed page to cache
 | |
|  * @param page_addr:    the page address to be erasen
 | |
|  * @return              0 success
 | |
|  *                      1 failed
 | |
|  */
 | |
| int nandfc_read_page_to_cache(uint32_t page_addr);
 | |
| 
 | |
| /**
 | |
|  * @brief nandfc_read_random_data() - read the random data within addressed page
 | |
|  * @param data:         the pointer of read back data
 | |
|  * @param raw_addr:     the page address to be read
 | |
|  * @param colum_addr:   the colume address to be read
 | |
|  * @param lenth:        the byte number to be read back
 | |
|  * @return              0 success
 | |
|  * @                    1 failed
 | |
|  */
 | |
| int nandfc_read_random_data(void* data, uint32_t raw_addr, uint32_t colum_addr,uint32_t lenth);
 | |
| 
 | |
| /**
 | |
|  * @brief nandfc_read_paramtr_page() - read out the paramter page
 | |
|  * @param data:         the pointer of read back data
 | |
|  * @param lenth:        the byte number to be read back
 | |
|  * @return              0 success
 | |
|  * @                    1 failed
 | |
|  */
 | |
| int nandfc_read_paramtr_page(void* data, uint32_t lenth);
 | |
| 
 | |
| /**
 | |
|  * @brief nandfc_read_uniID_page() - read out the uiniq ID page
 | |
|  * @param data:         the pointer of read back data
 | |
|  * @return              0 success
 | |
|  * @                    1 failed
 | |
|  */
 | |
| int nandfc_read_uniID_page(void* data);
 | |
| 
 | |
| /**
 | |
|  * @brief nandfc_program_page() - write data into the addressed page
 | |
|  * @param data:         the pointer of read back data
 | |
|  * @param raw_addr:     the page address to be writen
 | |
|  * @param colum_addr:   the colume address to be writen
 | |
|  * @param lenth:        the byte number to be writen
 | |
|  * @return              0 success
 | |
|  * @                    1 failed
 | |
|  */
 | |
| int nandfc_program_page(const void* data, uint32_t raw_addr, uint32_t colum_addr, uint32_t byte_num);
 | |
| 
 | |
| 
 | |
| /**
 | |
|  * @brief nandfc_program_page() - write data into the addressed page
 | |
|  * @param data:         the pointer of read back data
 | |
|  * @param raw_addr:     the page address to be writen
 | |
|  * @param colum_addr:   the colume address to be writen
 | |
|  * @param lenth:        the byte number to be writen
 | |
|  * @return              0 success
 | |
|  * @                    1 failed
 | |
|  */
 | |
| int nandfc_program_random_data(const void* data, uint32_t colum_addr, uint32_t raw_addr, uint32_t byte_num);
 | |
| 
 | |
| /**
 | |
|  * @brief nandfc_program_page() - write the random data into the addressed page
 | |
|  * @param data:         the pointer of read back data
 | |
|  * @param star_addr:    the start address to be writen
 | |
|  * @param byte_num:     the byte number to be writen
 | |
|  * @return              0 success
 | |
|  * @                    1 failed
 | |
|  */
 | |
| int nandfc_program_data(const void* data, uint32_t star_addr, uint32_t byte_num);
 | |
| 
 | |
| /**
 | |
|  * @brief nandfc_inter_data_move() - move data in the addressed page
 | |
|  * @param colum_addr:   the colume address to be move
 | |
|  * @param raw_addr:     the page address to be move
 | |
|  * @param byte_num:     the byte number to be move
 | |
|  * @return              0 success
 | |
|  * @                    1 failed
 | |
|  */
 | |
| int nandfc_inter_data_move(const void* data, uint32_t colum_adrr, uint32_t raw_addr, uint32_t byte_num);
 | |
| 
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| 
 | |
| #endif /*_NAND_FLASH_H*/
 | |
| 
 |