mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-17 09:43:59 +08:00
ARM: nomadik: add FSMC NAND
This adds the FSMC NAND driver and flash partitions to the Nomadik device tree. The only compatible string accepted by this driver is currently "st,spear600-fsmc-nand" which is inappropriate for this system, so this patch adds the compatible value "stericsson,fsmc-nand" as well. Cc: linux-mtd@vger.kernel.org Cc: David Woodhouse <dwmw2@infradead.org> Cc: Artem Bityutskiy <dedekind1@gmail.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
27bda036d2
commit
ba78520550
@ -1,7 +1,7 @@
|
||||
* FSMC NAND
|
||||
|
||||
Required properties:
|
||||
- compatible : "st,spear600-fsmc-nand"
|
||||
- compatible : "st,spear600-fsmc-nand", "stericsson,fsmc-nand"
|
||||
- reg : Address range of the mtd chip
|
||||
- reg-names: Should contain the reg names "fsmc_regs", "nand_data", "nand_addr" and "nand_cmd"
|
||||
|
||||
|
@ -35,6 +35,44 @@
|
||||
interrupts = <5>;
|
||||
};
|
||||
|
||||
/* A NAND flash of 128 MiB */
|
||||
fsmc: flash@40000000 {
|
||||
compatible = "stericsson,fsmc-nand";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0x10100000 0x1000>, /* FSMC Register*/
|
||||
<0x40000000 0x2000>, /* NAND Base DATA */
|
||||
<0x41000000 0x2000>, /* NAND Base ADDR */
|
||||
<0x40800000 0x2000>; /* NAND Base CMD */
|
||||
reg-names = "fsmc_regs", "nand_data", "nand_addr", "nand_cmd";
|
||||
status = "okay";
|
||||
|
||||
partition@0 {
|
||||
label = "X-Loader(NAND)";
|
||||
reg = <0x0 0x40000>;
|
||||
};
|
||||
partition@40000 {
|
||||
label = "MemInit(NAND)";
|
||||
reg = <0x40000 0x40000>;
|
||||
};
|
||||
partition@80000 {
|
||||
label = "BootLoader(NAND)";
|
||||
reg = <0x80000 0x200000>;
|
||||
};
|
||||
partition@280000 {
|
||||
label = "Kernel zImage(NAND)";
|
||||
reg = <0x280000 0x300000>;
|
||||
};
|
||||
partition@580000 {
|
||||
label = "Root Filesystem(NAND)";
|
||||
reg = <0x580000 0x1600000>;
|
||||
};
|
||||
partition@1b80000 {
|
||||
label = "User Filesystem(NAND)";
|
||||
reg = <0x1b80000 0x6480000>;
|
||||
};
|
||||
};
|
||||
|
||||
amba {
|
||||
compatible = "arm,amba-bus";
|
||||
#address-cells = <1>;
|
||||
|
@ -33,6 +33,7 @@
|
||||
#include <linux/of_irq.h>
|
||||
#include <linux/of_address.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/mtd/fsmc.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/irqs.h>
|
||||
@ -249,6 +250,17 @@ static void __init cpu8815_timer_init_of(void)
|
||||
nmdk_timer_init(base, irq);
|
||||
}
|
||||
|
||||
static struct fsmc_nand_timings cpu8815_nand_timings = {
|
||||
.thiz = 0,
|
||||
.thold = 0x10,
|
||||
.twait = 0x0A,
|
||||
.tset = 0,
|
||||
};
|
||||
|
||||
static struct fsmc_nand_platform_data cpu8815_nand_data = {
|
||||
.nand_timings = &cpu8815_nand_timings,
|
||||
};
|
||||
|
||||
/* These are mostly to get the right device names for the clock lookups */
|
||||
static struct of_dev_auxdata cpu8815_auxdata_lookup[] __initdata = {
|
||||
OF_DEV_AUXDATA("arm,primecell", NOMADIK_UART0_BASE,
|
||||
@ -259,6 +271,9 @@ static struct of_dev_auxdata cpu8815_auxdata_lookup[] __initdata = {
|
||||
"rng", NULL),
|
||||
OF_DEV_AUXDATA("arm,primecell", NOMADIK_RTC_BASE,
|
||||
"rtc-pl031", NULL),
|
||||
OF_DEV_AUXDATA("stericsson,fsmc-nand", NOMADIK_FSMC_BASE,
|
||||
"fsmc-nand", &cpu8815_nand_data),
|
||||
|
||||
{ /* sentinel */ },
|
||||
};
|
||||
|
||||
|
@ -1218,6 +1218,7 @@ static SIMPLE_DEV_PM_OPS(fsmc_nand_pm_ops, fsmc_nand_suspend, fsmc_nand_resume);
|
||||
#ifdef CONFIG_OF
|
||||
static const struct of_device_id fsmc_nand_id_table[] = {
|
||||
{ .compatible = "st,spear600-fsmc-nand" },
|
||||
{ .compatible = "stericsson,fsmc-nand" },
|
||||
{}
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, fsmc_nand_id_table);
|
||||
|
Loading…
Reference in New Issue
Block a user