linux-sh.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 1/7] mtd: sh_flctl: Expand FLCMNCR register bit field
@ 2012-03-01  9:48 Bastian Hecht
  2012-03-01  9:48 ` [PATCH v3 2/7] mtd: sh_flctl: Reorder empty_fifo() calls Bastian Hecht
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: Bastian Hecht @ 2012-03-01  9:48 UTC (permalink / raw)
  To: linux-sh, linux-mtd; +Cc: Magnus Damm, Laurent Pichart

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>
---
changelog: shortened the names of some defines.

 include/linux/mtd/sh_flctl.h |   24 ++++++++++++++++++++++++
 1 files changed, 24 insertions(+), 0 deletions(-)

diff --git a/include/linux/mtd/sh_flctl.h b/include/linux/mtd/sh_flctl.h
index 9cf4c4c..b669405 100644
--- a/include/linux/mtd/sh_flctl.h
+++ b/include/linux/mtd/sh_flctl.h
@@ -67,6 +67,30 @@
 #define	CE0_ENABLE	(0x1 << 3)	/* Chip Enable 0 */
 #define	TYPESEL_SET	(0x1 << 0)
 
+/*
+ * Clock settings using the PULSEx registers from FLCMNCR
+ *
+ * Some hardware uses bits called PULSEx instead of FCKSEL_E and QTSEL_E
+ * to control the clock divider used between the High-Speed Peripheral Clock
+ * and the FLCTL internal clock. If so, use CLK_8_BIT_xxx for connecting 8 bit
+ * and CLK_16_BIT_xxx for connecting 16 bit bus bandwith NAND chips. For the 16
+ * bit version the divider is seperate for the pulse width of high and low
+ * signals.
+ */
+#define PULSE3	(0x1 << 27)
+#define PULSE2	(0x1 << 17)
+#define PULSE1	(0x1 << 15)
+#define PULSE0	(0x1 << 9)
+#define CLK_8B_0_5			PULSE1
+#define CLK_8B_1			0x0
+#define CLK_8B_1_5			(PULSE1 | PULSE2)
+#define CLK_8B_2			PULSE0
+#define CLK_8B_3			(PULSE0 | PULSE1 | PULSE2)
+#define CLK_8B_4			(PULSE0 | PULSE2)
+#define CLK_16B_6L_2H			PULSE0
+#define CLK_16B_9L_3H			(PULSE0 | PULSE1 | PULSE2)
+#define CLK_16B_12L_4H			(PULSE0 | PULSE2)
+
 /* FLCMDCR control bits */
 #define ADRCNT2_E	(0x1 << 31)	/* 5byte address enable */
 #define ADRMD_E		(0x1 << 26)	/* Sector address access */
-- 
1.7.5.4


^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2012-03-09 12:48 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-01  9:48 [PATCH v3 1/7] mtd: sh_flctl: Expand FLCMNCR register bit field Bastian Hecht
2012-03-01  9:48 ` [PATCH v3 2/7] mtd: sh_flctl: Reorder empty_fifo() calls Bastian Hecht
2012-03-01  9:48 ` [PATCH v3 3/7] mtd: sh_flctl: Expand the READID command to 8 bytes Bastian Hecht
2012-03-01  9:48 ` [PATCH v3 4/7] mtd: sh_flctl: Implement NAND_CMD_RNDOUT command Bastian Hecht
2012-03-01  9:48 ` [PATCH v3 5/7] mtd: sh_flctl: Use cached register value for FLCMNCR Bastian Hecht
2012-03-01  9:48 ` [PATCH v3 6/7] mtd: sh_flctl: Add FLHOLDCR register Bastian Hecht
2012-03-01  9:48 ` [PATCH v3 7/7] ARM: mach-shmobile: mackerel: Add the flash controller flctl Bastian Hecht
2012-03-01 15:19 ` [PATCH v3 1/7] mtd: sh_flctl: Expand FLCMNCR register bit field Laurent Pinchart
2012-03-09 12:48 ` Artem Bityutskiy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).