aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorBastian Hecht <hechtb@googlemail.com>2012-03-01 04:48:35 -0500
committerDavid Woodhouse <David.Woodhouse@intel.com>2012-03-26 19:42:29 -0400
commitb6a5588b27f21d74ae35709b56e969d536f1eed0 (patch)
treed46a57790e91043eac9c50382cdf792ff6b1bf6c /include
parent9bbf29e4757fb152c8673eda0b1e9d507b953df9 (diff)
mtd: sh_flctl: Expand FLCMNCR register bit field
Add support for a new hardware generation. The meaning of some bits of the FLCMNCR register changed, so some new defines are added parallel to the existing ones to keep backward compatibility. The defines allow to choose an appropriate clocking scheme. Signed-off-by: Bastian Hecht <hechtb@gmail.com> Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/mtd/sh_flctl.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/include/linux/mtd/sh_flctl.h b/include/linux/mtd/sh_flctl.h
index 9cf4c4c7955..b66940593c8 100644
--- a/include/linux/mtd/sh_flctl.h
+++ b/include/linux/mtd/sh_flctl.h
@@ -67,6 +67,30 @@
67#define CE0_ENABLE (0x1 << 3) /* Chip Enable 0 */ 67#define CE0_ENABLE (0x1 << 3) /* Chip Enable 0 */
68#define TYPESEL_SET (0x1 << 0) 68#define TYPESEL_SET (0x1 << 0)
69 69
70/*
71 * Clock settings using the PULSEx registers from FLCMNCR
72 *
73 * Some hardware uses bits called PULSEx instead of FCKSEL_E and QTSEL_E
74 * to control the clock divider used between the High-Speed Peripheral Clock
75 * and the FLCTL internal clock. If so, use CLK_8_BIT_xxx for connecting 8 bit
76 * and CLK_16_BIT_xxx for connecting 16 bit bus bandwith NAND chips. For the 16
77 * bit version the divider is seperate for the pulse width of high and low
78 * signals.
79 */
80#define PULSE3 (0x1 << 27)
81#define PULSE2 (0x1 << 17)
82#define PULSE1 (0x1 << 15)
83#define PULSE0 (0x1 << 9)
84#define CLK_8B_0_5 PULSE1
85#define CLK_8B_1 0x0
86#define CLK_8B_1_5 (PULSE1 | PULSE2)
87#define CLK_8B_2 PULSE0
88#define CLK_8B_3 (PULSE0 | PULSE1 | PULSE2)
89#define CLK_8B_4 (PULSE0 | PULSE2)
90#define CLK_16B_6L_2H PULSE0
91#define CLK_16B_9L_3H (PULSE0 | PULSE1 | PULSE2)
92#define CLK_16B_12L_4H (PULSE0 | PULSE2)
93
70/* FLCMDCR control bits */ 94/* FLCMDCR control bits */
71#define ADRCNT2_E (0x1 << 31) /* 5byte address enable */ 95#define ADRCNT2_E (0x1 << 31) /* 5byte address enable */
72#define ADRMD_E (0x1 << 26) /* Sector address access */ 96#define ADRMD_E (0x1 << 26) /* Sector address access */