1 /*
2  * Copyright (c) 2006-2021, RT-Thread Development Team
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  * Date           Author       Notes
8  * 2011-05-25     Bernard      first version
9  */
10 
11 #ifndef __NAND_H__
12 #define __NAND_H__
13 
14 #include <rtthread.h>
15 
16 #define IO_NF_PFR     FM3_GPIO->PFR3
17 #define IO_NF_DDR     FM3_GPIO->DDR3
18 #define IO_NF_PDOR    FM3_GPIO->PDOR3
19 
20 #define NF_EN         0x0008
21 #define NF_DATA_DIR   0x0004
22 
23 #define EXT_BUS_BASE_ADDR    0x60000000
24 #define EXT_CS7_OFFSET       0x0E000000
25 #define EXT_CS7_SIZE         0x02000000
26 
27 #define NF_FLASH_BASE_ADDR   (EXT_BUS_BASE_ADDR+EXT_CS7_OFFSET)
28 
29 #define NF_ALE_OFFSET        0x00003000
30 #define NF_ADDR_OFFSET       0x00002000
31 #define NF_CMD_OFFSET        0x00001000
32 #define NF_DATA_OFFSET       0x00000000
33 
34 /* NAND command */
35 #define NAND_CMD_READ0     0x00
36 #define NAND_CMD_READ1     0x01
37 #define NAND_CMD_PAGEPROG  0x10
38 #define NAND_CMD_READOOB   0x50
39 #define NAND_CMD_ERASE1    0x60
40 #define NAND_CMD_STATUS    0x70
41 #define NAND_CMD_SEQIN     0x80
42 #define NAND_CMD_READID    0x90
43 #define NAND_CMD_READID1   0x91
44 #define NAND_CMD_ERASE2    0xd0
45 #define NAND_CMD_RESET     0xff
46 
47 #define FLASH_OK           0
48 #define FLASH_NG           1
49 
50 /* nand flash device initialization */
51 void rt_hw_nand_init(void);
52 
53 #endif
54