Patchwork [U-Boot,v2] ftsmc020: enhanced features and unnested structures

login
register
mail settings
Submitter Macpaul Lin
Date March 31, 2011, 11:18 a.m.
Message ID <1301570307-13852-1-git-send-email-macpaul@andestech.com>
Download mbox | patch
Permalink /patch/89071/
State Superseded
Headers show

Comments

Macpaul Lin - March 31, 2011, 11:18 a.m.
1. Enhance ftsmc020 according to datasheets.
2. Fix relocation related declaration.

Signed-off-by: Macpaul Lin <macpaul@andestech.com>
---
Changes for v2:
  - Remove assembly register offsets for support lowlevel_init.S.
  - The nested structure of register offsets has been rewrote.
  - Fix relocation related declaration.

Note:
  This patch should be applied after patch
  "[U-Boot,v2,4/4] ftsmc020: move ftsmc020 static mem controller to
driver/mtd"
  (/patch/87862/) is applied.

 drivers/mtd/ftsmc020.c     |    7 +++----
 include/faraday/ftsmc020.h |   19 +++++++++++++------
 2 files changed, 16 insertions(+), 10 deletions(-)
Wolfgang Denk - March 31, 2011, 11:45 a.m.
Dear "Macpaul Lin",

In message <1301570307-13852-1-git-send-email-macpaul@andestech.com> you wrote:
> 1. Enhance ftsmc020 according to datasheets.
> 2. Fix relocation related declaration.
> 
> Signed-off-by: Macpaul Lin <macpaul@andestech.com>
...
> CONFIDENTIALITY NOTICE:
> 
> This e-mail (and its attachments) may contain confidential and legally 
> privileged information or information protected from disclosure. If you 
...

Message ignored as instructed.

Best regards,

Wolfgang Denk

Patch

diff --git a/drivers/mtd/ftsmc020.c b/drivers/mtd/ftsmc020.c
index b027685..ddeb3a4 100644
--- a/drivers/mtd/ftsmc020.c
+++ b/drivers/mtd/ftsmc020.c
@@ -27,12 +27,10 @@  struct ftsmc020_config {
 	unsigned int	timing;
 };

-static struct ftsmc020_config config[] = CONFIG_SYS_FTSMC020_CONFIGS;
-
-static struct ftsmc020 *smc = (struct ftsmc020 *)CONFIG_FTSMC020_BASE;
-
 static void ftsmc020_setup_bank(unsigned int bank, struct ftsmc020_config 
*cfg)
 {
+	struct ftsmc020 *smc = (struct ftsmc020 *)CONFIG_FTSMC020_BASE;
+
 	if (bank > 3) {
 		printf("bank # %u invalid\n", bank);
 		return;
@@ -44,6 +42,7 @@  static void ftsmc020_setup_bank(unsigned int bank, 
struct ftsmc020_config *cfg)

 void ftsmc020_init(void)
 {
+	struct ftsmc020_config config[] = CONFIG_SYS_FTSMC020_CONFIGS;
 	int i;

 	for (i = 0; i < ARRAY_SIZE(config); i++)
diff --git a/include/faraday/ftsmc020.h b/include/faraday/ftsmc020.h
index 95d9500..59c6f8e 100644
--- a/include/faraday/ftsmc020.h
+++ b/include/faraday/ftsmc020.h
@@ -25,13 +25,15 @@ 

 #ifndef __ASSEMBLY__

+struct ftsmc020_bank {
+	unsigned int    cr;
+	unsigned int    tpr;
+};
+
 struct ftsmc020 {
-	struct {
-		unsigned int	cr;	/* 0x00, 0x08, 0x10, 0x18 */
-		unsigned int	tpr;	/* 0x04, 0x0c, 0x14, 0x1c */
-	} bank[4];
-	unsigned int	pad[8];	/* 0x20 - 0x3c */
-	unsigned int	ssr;	/* 0x40 */
+	struct ftsmc020_bank bank[4];	/* 0x00 - 0x1c */
+	unsigned int	pad[8];		/* 0x20 - 0x3c */
+	unsigned int	ssr;		/* 0x40 */
 };

 void ftsmc020_init(void);
@@ -46,6 +48,10 @@  void ftsmc020_init(void);

 #define FTSMC020_BANK_WPROT	(1 << 11)

+#define FTSMC020_BANK_TYPE1	(1 << 10)
+#define FTSMC020_BANK_TYPE2	(1 << 9)
+#define FTSMC020_BANK_TYPE3	(1 << 8)
+
 #define FTSMC020_BANK_SIZE_32K	(0xb << 4)
 #define FTSMC020_BANK_SIZE_64K	(0xc << 4)
 #define FTSMC020_BANK_SIZE_128K	(0xd << 4)
@@ -57,6 +63,7 @@  void ftsmc020_init(void);
 #define FTSMC020_BANK_SIZE_8M	(0x3 << 4)
 #define FTSMC020_BANK_SIZE_16M	(0x4 << 4)
 #define FTSMC020_BANK_SIZE_32M	(0x5 << 4)
+#define FTSMC020_BANK_SIZE_64M	(0x6 << 4)

 #define FTSMC020_BANK_MBW_8	(0x0 << 0)
 #define FTSMC020_BANK_MBW_16	(0x1 << 0)