[U-Boot] [PATCH v2] ftsmc020: enhanced features and unnested structures
Macpaul Lin
macpaul at andestech.com
Thu Mar 31 13:18:27 CEST 2011
1. Enhance ftsmc020 according to datasheets.
2. Fix relocation related declaration.
Signed-off-by: Macpaul Lin <macpaul at 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(-)
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)
--
1.7.3.5
CONFIDENTIALITY NOTICE:
This e-mail (and its attachments) may contain confidential and legally
privileged information or information protected from disclosure. If you
are not the intended recipient, you are hereby notified that any
disclosure, copying, distribution, or use of the information contained
herein is strictly prohibited. In this case, please immediately notify the
sender by return e-mail, delete the message (and any accompanying
documents) and destroy all printed hard copies. Thank you for your
cooperation.
Copyright ANDES TECHNOLOGY CORPORATION - All Rights Reserved.
More information about the U-Boot
mailing list