aboutsummaryrefslogtreecommitdiffstats
path: root/roms/u-boot/drivers/mtd/ftsmc020.c
diff options
context:
space:
mode:
authorfishsoupisgood <github@madingley.org>2019-04-29 01:17:54 +0100
committerfishsoupisgood <github@madingley.org>2019-05-27 03:43:43 +0100
commit3f2546b2ef55b661fd8dd69682b38992225e86f6 (patch)
tree65ca85f13617aee1dce474596800950f266a456c /roms/u-boot/drivers/mtd/ftsmc020.c
downloadqemu-master.tar.gz
qemu-master.tar.bz2
qemu-master.zip
Initial import of qemu-2.4.1HEADmaster
Diffstat (limited to 'roms/u-boot/drivers/mtd/ftsmc020.c')
-rw-r--r--roms/u-boot/drivers/mtd/ftsmc020.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/roms/u-boot/drivers/mtd/ftsmc020.c b/roms/u-boot/drivers/mtd/ftsmc020.c
new file mode 100644
index 00000000..e2e80822
--- /dev/null
+++ b/roms/u-boot/drivers/mtd/ftsmc020.c
@@ -0,0 +1,38 @@
+/*
+ * (C) Copyright 2009 Faraday Technology
+ * Po-Yu Chuang <ratbert@faraday-tech.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <config.h>
+#include <common.h>
+#include <asm/io.h>
+#include <faraday/ftsmc020.h>
+
+struct ftsmc020_config {
+ unsigned int config;
+ unsigned int timing;
+};
+
+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;
+ }
+
+ writel(cfg->config, &smc->bank[bank].cr);
+ writel(cfg->timing, &smc->bank[bank].tpr);
+}
+
+void ftsmc020_init(void)
+{
+ struct ftsmc020_config config[] = CONFIG_SYS_FTSMC020_CONFIGS;
+ int i;
+
+ for (i = 0; i < ARRAY_SIZE(config); i++)
+ ftsmc020_setup_bank(i, &config[i]);
+}