diff options
-rw-r--r-- | arch/arm/plat-mxc/Kconfig | 2 | ||||
-rw-r--r-- | arch/arm/plat-mxc/Makefile | 2 | ||||
-rw-r--r-- | arch/arm/plat-mxc/devices/Kconfig | 2 | ||||
-rw-r--r-- | arch/arm/plat-mxc/devices/Makefile | 1 | ||||
-rw-r--r-- | arch/arm/plat-mxc/devices/platform-mxc_nand.c | 44 | ||||
-rw-r--r-- | arch/arm/plat-mxc/include/mach/devices-common.h | 6 |
6 files changed, 57 insertions, 0 deletions
diff --git a/arch/arm/plat-mxc/Kconfig b/arch/arm/plat-mxc/Kconfig index d80de4eacd2a..cf053d7e5261 100644 --- a/arch/arm/plat-mxc/Kconfig +++ b/arch/arm/plat-mxc/Kconfig | |||
@@ -1,5 +1,7 @@ | |||
1 | if ARCH_MXC | 1 | if ARCH_MXC |
2 | 2 | ||
3 | source "arch/arm/plat-mxc/devices/Kconfig" | ||
4 | |||
3 | menu "Freescale MXC Implementations" | 5 | menu "Freescale MXC Implementations" |
4 | 6 | ||
5 | choice | 7 | choice |
diff --git a/arch/arm/plat-mxc/Makefile b/arch/arm/plat-mxc/Makefile index f134d14eabfd..c7506a80eb31 100644 --- a/arch/arm/plat-mxc/Makefile +++ b/arch/arm/plat-mxc/Makefile | |||
@@ -19,3 +19,5 @@ ifdef CONFIG_SND_IMX_SOC | |||
19 | obj-y += ssi-fiq.o | 19 | obj-y += ssi-fiq.o |
20 | obj-y += ssi-fiq-ksym.o | 20 | obj-y += ssi-fiq-ksym.o |
21 | endif | 21 | endif |
22 | |||
23 | obj-y += devices/ | ||
diff --git a/arch/arm/plat-mxc/devices/Kconfig b/arch/arm/plat-mxc/devices/Kconfig new file mode 100644 index 000000000000..09e91dde63ab --- /dev/null +++ b/arch/arm/plat-mxc/devices/Kconfig | |||
@@ -0,0 +1,2 @@ | |||
1 | config IMX_HAVE_PLATFORM_MXC_NAND | ||
2 | bool | ||
diff --git a/arch/arm/plat-mxc/devices/Makefile b/arch/arm/plat-mxc/devices/Makefile new file mode 100644 index 000000000000..e314533a61b9 --- /dev/null +++ b/arch/arm/plat-mxc/devices/Makefile | |||
@@ -0,0 +1 @@ | |||
obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_NAND) += platform-mxc_nand.o | |||
diff --git a/arch/arm/plat-mxc/devices/platform-mxc_nand.c b/arch/arm/plat-mxc/devices/platform-mxc_nand.c new file mode 100644 index 000000000000..1c286418d123 --- /dev/null +++ b/arch/arm/plat-mxc/devices/platform-mxc_nand.c | |||
@@ -0,0 +1,44 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2009-2010 Pengutronix | ||
3 | * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it under | ||
6 | * the terms of the GNU General Public License version 2 as published by the | ||
7 | * Free Software Foundation. | ||
8 | */ | ||
9 | #include <asm/sizes.h> | ||
10 | #include <mach/devices-common.h> | ||
11 | |||
12 | static struct platform_device *__init imx_add_mxc_nand(resource_size_t iobase, | ||
13 | int irq, const struct mxc_nand_platform_data *pdata, | ||
14 | resource_size_t iosize) | ||
15 | { | ||
16 | static int id = 0; | ||
17 | |||
18 | struct resource res[] = { | ||
19 | { | ||
20 | .start = iobase, | ||
21 | .end = iobase + iosize - 1, | ||
22 | .flags = IORESOURCE_MEM, | ||
23 | }, { | ||
24 | .start = irq, | ||
25 | .end = irq, | ||
26 | .flags = IORESOURCE_IRQ, | ||
27 | }, | ||
28 | }; | ||
29 | |||
30 | return imx_add_platform_device("mxc_nand", id++, res, ARRAY_SIZE(res), | ||
31 | pdata, sizeof(*pdata)); | ||
32 | } | ||
33 | |||
34 | struct platform_device *__init imx_add_mxc_nand_v1(resource_size_t iobase, | ||
35 | int irq, const struct mxc_nand_platform_data *pdata) | ||
36 | { | ||
37 | return imx_add_mxc_nand(iobase, irq, pdata, SZ_4K); | ||
38 | } | ||
39 | |||
40 | struct platform_device *__init imx_add_mxc_nand_v21(resource_size_t iobase, | ||
41 | int irq, const struct mxc_nand_platform_data *pdata) | ||
42 | { | ||
43 | return imx_add_mxc_nand(iobase, irq, pdata, SZ_8K); | ||
44 | } | ||
diff --git a/arch/arm/plat-mxc/include/mach/devices-common.h b/arch/arm/plat-mxc/include/mach/devices-common.h index 849d8ff7b17d..d5f121a5604b 100644 --- a/arch/arm/plat-mxc/include/mach/devices-common.h +++ b/arch/arm/plat-mxc/include/mach/devices-common.h | |||
@@ -13,3 +13,9 @@ | |||
13 | struct platform_device *imx_add_platform_device(const char *name, int id, | 13 | struct platform_device *imx_add_platform_device(const char *name, int id, |
14 | const struct resource *res, unsigned int num_resources, | 14 | const struct resource *res, unsigned int num_resources, |
15 | const void *data, size_t size_data); | 15 | const void *data, size_t size_data); |
16 | |||
17 | #include <mach/mxc_nand.h> | ||
18 | struct platform_device *__init imx_add_mxc_nand_v1(resource_size_t iobase, | ||
19 | int irq, const struct mxc_nand_platform_data *pdata); | ||
20 | struct platform_device *__init imx_add_mxc_nand_v21(resource_size_t iobase, | ||
21 | int irq, const struct mxc_nand_platform_data *pdata); | ||