70 lines
1.8 KiB
C
70 lines
1.8 KiB
C
|
#ifndef _NANDFLASH_H
|
|||
|
#define _NANDFLASH_H
|
|||
|
|
|||
|
#include "device/device.h"
|
|||
|
#include "ioctl_cmds.h"
|
|||
|
#include "asm/spi.h"
|
|||
|
#include "printf.h"
|
|||
|
#include "gpio.h"
|
|||
|
#include "device_drive.h"
|
|||
|
#include "malloc.h"
|
|||
|
|
|||
|
|
|||
|
#define GD_WRITE_ENABLE 0x06
|
|||
|
#define GD_WRITE_DISABLE 0x04
|
|||
|
#define GD_BLOCK_ERASE 0xD8
|
|||
|
#define GD_READ_ID 0x9F
|
|||
|
/*for features*/
|
|||
|
#define GD_GET_FEATURES 0x0F
|
|||
|
#define GD_SET_FEATURES 0x1F
|
|||
|
//<features addr
|
|||
|
#define GD_FEATURES_PROTECT 0xA0
|
|||
|
#define GD_FEATURES 0xB0
|
|||
|
#define GD_GET_STATUS 0xC0
|
|||
|
/*for write*/
|
|||
|
#define GD_PROGRAM_LOAD 0x02
|
|||
|
#define GD_PROGRAM_EXECUTE 0x10
|
|||
|
#define GD_PROGRAM_LOAD_RANDOM_DATA 0x84
|
|||
|
//for write x4
|
|||
|
#define GD_PROGRAM_LOAD_X4 0x32
|
|||
|
/*for read*/
|
|||
|
#define GD_PAGE_READ_CACHE 0x13
|
|||
|
#define GD_READ_FROM_CACHE 0x03
|
|||
|
//for read x2
|
|||
|
#define GD_READ_FROM_CACHE_X2 0x3B
|
|||
|
//for read x4
|
|||
|
#define GD_READ_FROM_CACHE_X4 0x6B
|
|||
|
#define GD_PROGRAM_LOAD_RANDOM_DATA_X4 0x32
|
|||
|
|
|||
|
#define NAND_OTP_PRT BIT(7)
|
|||
|
#define NAND_OTP_EN BIT(6)
|
|||
|
#define NAND_ECC_EN BIT(4)
|
|||
|
#define NAND_X4_EN BIT(0)
|
|||
|
|
|||
|
#define NAND_STATUS_OIP BIT(0)
|
|||
|
#define NAND_STATUS_WEL BIT(1)
|
|||
|
#define NAND_STATUS_E_FAIL BIT(2)
|
|||
|
#define NAND_STATUS_P_FAIL BIT(3)
|
|||
|
#define NAND_STATUS_ECCS (0x30)
|
|||
|
|
|||
|
struct nandflash_dev_platform_data {
|
|||
|
int spi_hw_num; //只支持SPI1或SPI2
|
|||
|
u32 spi_cs_port; //cs的引脚
|
|||
|
u32 spi_read_width; //flash读数据的线宽
|
|||
|
const struct spi_platform_data *spi_pdata;
|
|||
|
u32 start_addr; //分区起始地址
|
|||
|
u32 size; //分区大小,若只有1个分区,则这个参数可以忽略
|
|||
|
};
|
|||
|
|
|||
|
#define NANDFLASH_DEV_PLATFORM_DATA_BEGIN(data) \
|
|||
|
const struct nandflash_dev_platform_data data = {
|
|||
|
|
|||
|
#define NANDFLASH_DEV_PLATFORM_DATA_END() \
|
|||
|
};
|
|||
|
|
|||
|
|
|||
|
extern const struct device_operations nandflash_dev_ops;
|
|||
|
|
|||
|
#endif
|
|||
|
|