Go to the documentation of this file.
22 #include <linux/types.h>
24 #include <asm/param.h>
26 #define FSMC_NAND_BW8 1
27 #define FSMC_NAND_BW16 2
29 #define FSMC_MAX_NOR_BANKS 4
30 #define FSMC_MAX_NAND_BANKS 4
32 #define FSMC_FLASH_WIDTH8 1
33 #define FSMC_FLASH_WIDTH16 2
38 #define BANK_ENABLE (1 << 0)
39 #define MUXED (1 << 1)
40 #define NOR_DEV (2 << 2)
41 #define WIDTH_8 (0 << 4)
42 #define WIDTH_16 (1 << 4)
43 #define RSTPWRDWN (1 << 6)
44 #define WPROT (1 << 7)
45 #define WRT_ENABLE (1 << 12)
46 #define WAIT_ENB (1 << 13)
51 #define FSMC_NOR_BANK_SZ 0x8
52 #define FSMC_NOR_REG_SIZE 0x40
54 #define FSMC_NOR_REG(base, bank, reg) (base + \
55 FSMC_NOR_BANK_SZ * (bank) + \
61 #define FSMC_RESET (1 << 0)
62 #define FSMC_WAITON (1 << 1)
63 #define FSMC_ENABLE (1 << 2)
64 #define FSMC_DEVTYPE_NAND (1 << 3)
65 #define FSMC_DEVWID_8 (0 << 4)
66 #define FSMC_DEVWID_16 (1 << 4)
67 #define FSMC_ECCEN (1 << 6)
68 #define FSMC_ECCPLEN_512 (0 << 7)
69 #define FSMC_ECCPLEN_256 (1 << 7)
70 #define FSMC_TCLR_1 (1)
71 #define FSMC_TCLR_SHIFT (9)
72 #define FSMC_TCLR_MASK (0xF)
73 #define FSMC_TAR_1 (1)
74 #define FSMC_TAR_SHIFT (13)
75 #define FSMC_TAR_MASK (0xF)
78 #define FSMC_CODE_RDY (1 << 15)
82 #define FSMC_TSET_SHIFT 0
83 #define FSMC_TSET_MASK 0xFF
84 #define FSMC_TWAIT_6 6
85 #define FSMC_TWAIT_SHIFT 8
86 #define FSMC_TWAIT_MASK 0xFF
87 #define FSMC_THOLD_4 4
88 #define FSMC_THOLD_SHIFT 16
89 #define FSMC_THOLD_MASK 0xFF
91 #define FSMC_THIZ_SHIFT 24
92 #define FSMC_THIZ_MASK 0xFF
98 #define FSMC_NAND_BANK_SZ 0x20
100 #define FSMC_NAND_REG(base, bank, reg) (base + FSMC_NOR_REG_SIZE + \
101 (FSMC_NAND_BANK_SZ * (bank)) + \
104 #define FSMC_BUSY_WAIT_TIMEOUT (1 * HZ)
113 #define MAX_ECCPLACE_ENTRIES 32
173 struct mtd_partition *partitions,
unsigned int nr_partitions,