blob: a7c5563bb550ce97e214c0659595f21aa5254fa3 [file] [log] [blame]
GuanXuetaob08b4f82011-02-26 20:08:36 +08001/*
2 * PKUnity NAND Controller Registers
3 */
4/*
5 * ID Reg. 0 NAND_IDR0
6 */
GuanXuetao1cf46c42011-03-04 18:07:48 +08007#define NAND_IDR0 (PKUNITY_NAND_BASE + 0x0000)
GuanXuetaob08b4f82011-02-26 20:08:36 +08008/*
9 * ID Reg. 1 NAND_IDR1
10 */
GuanXuetao1cf46c42011-03-04 18:07:48 +080011#define NAND_IDR1 (PKUNITY_NAND_BASE + 0x0004)
GuanXuetaob08b4f82011-02-26 20:08:36 +080012/*
13 * ID Reg. 2 NAND_IDR2
14 */
GuanXuetao1cf46c42011-03-04 18:07:48 +080015#define NAND_IDR2 (PKUNITY_NAND_BASE + 0x0008)
GuanXuetaob08b4f82011-02-26 20:08:36 +080016/*
17 * ID Reg. 3 NAND_IDR3
18 */
GuanXuetao1cf46c42011-03-04 18:07:48 +080019#define NAND_IDR3 (PKUNITY_NAND_BASE + 0x000C)
GuanXuetaob08b4f82011-02-26 20:08:36 +080020/*
21 * Page Address Reg 0 NAND_PAR0
22 */
GuanXuetao1cf46c42011-03-04 18:07:48 +080023#define NAND_PAR0 (PKUNITY_NAND_BASE + 0x0010)
GuanXuetaob08b4f82011-02-26 20:08:36 +080024/*
25 * Page Address Reg 1 NAND_PAR1
26 */
GuanXuetao1cf46c42011-03-04 18:07:48 +080027#define NAND_PAR1 (PKUNITY_NAND_BASE + 0x0014)
GuanXuetaob08b4f82011-02-26 20:08:36 +080028/*
29 * Page Address Reg 2 NAND_PAR2
30 */
GuanXuetao1cf46c42011-03-04 18:07:48 +080031#define NAND_PAR2 (PKUNITY_NAND_BASE + 0x0018)
GuanXuetaob08b4f82011-02-26 20:08:36 +080032/*
33 * ECC Enable Reg NAND_ECCEN
34 */
GuanXuetao1cf46c42011-03-04 18:07:48 +080035#define NAND_ECCEN (PKUNITY_NAND_BASE + 0x001C)
GuanXuetaob08b4f82011-02-26 20:08:36 +080036/*
37 * Buffer Reg NAND_BUF
38 */
GuanXuetao1cf46c42011-03-04 18:07:48 +080039#define NAND_BUF (PKUNITY_NAND_BASE + 0x0020)
GuanXuetaob08b4f82011-02-26 20:08:36 +080040/*
41 * ECC Status Reg NAND_ECCSR
42 */
GuanXuetao1cf46c42011-03-04 18:07:48 +080043#define NAND_ECCSR (PKUNITY_NAND_BASE + 0x0024)
GuanXuetaob08b4f82011-02-26 20:08:36 +080044/*
45 * Command Reg NAND_CMD
46 */
GuanXuetao1cf46c42011-03-04 18:07:48 +080047#define NAND_CMD (PKUNITY_NAND_BASE + 0x0028)
GuanXuetaob08b4f82011-02-26 20:08:36 +080048/*
49 * DMA Configure Reg NAND_DMACR
50 */
GuanXuetao1cf46c42011-03-04 18:07:48 +080051#define NAND_DMACR (PKUNITY_NAND_BASE + 0x002C)
GuanXuetaob08b4f82011-02-26 20:08:36 +080052/*
53 * Interrupt Reg NAND_IR
54 */
GuanXuetao1cf46c42011-03-04 18:07:48 +080055#define NAND_IR (PKUNITY_NAND_BASE + 0x0030)
GuanXuetaob08b4f82011-02-26 20:08:36 +080056/*
57 * Interrupt Mask Reg NAND_IMR
58 */
GuanXuetao1cf46c42011-03-04 18:07:48 +080059#define NAND_IMR (PKUNITY_NAND_BASE + 0x0034)
GuanXuetaob08b4f82011-02-26 20:08:36 +080060/*
61 * Chip Enable Reg NAND_CHIPEN
62 */
GuanXuetao1cf46c42011-03-04 18:07:48 +080063#define NAND_CHIPEN (PKUNITY_NAND_BASE + 0x0038)
GuanXuetaob08b4f82011-02-26 20:08:36 +080064/*
65 * Address Reg NAND_ADDR
66 */
GuanXuetao1cf46c42011-03-04 18:07:48 +080067#define NAND_ADDR (PKUNITY_NAND_BASE + 0x003C)
GuanXuetaob08b4f82011-02-26 20:08:36 +080068
69/*
70 * Command bits NAND_CMD_CMD_MASK
71 */
72#define NAND_CMD_CMD_MASK FMASK(4, 4)
73#define NAND_CMD_CMD_READPAGE FIELD(0x0, 4, 4)
74#define NAND_CMD_CMD_ERASEBLOCK FIELD(0x6, 4, 4)
75#define NAND_CMD_CMD_READSTATUS FIELD(0x7, 4, 4)
76#define NAND_CMD_CMD_WRITEPAGE FIELD(0x8, 4, 4)
77#define NAND_CMD_CMD_READID FIELD(0x9, 4, 4)
78#define NAND_CMD_CMD_RESET FIELD(0xf, 4, 4)
79