All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v8 0/4] add the GPMI-NAND support for imx23/imx28
@ 2011-08-24  7:07 ` Huang Shijie
  0 siblings, 0 replies; 46+ messages in thread
From: Huang Shijie @ 2011-08-24  7:07 UTC (permalink / raw)
  To: s.hauer; +Cc: Huang Shijie, linux-mtd, w.sang, linux-arm-kernel, dedekind1

The patch set is based on tag v3.1-rc2 of linus's tree.
and it can be git-am to Artem's tree:
	http://git.infradead.org/users/dedekind/l2-mtd-2.6.git

The general-purpose media interface(GPMI) controller is a flexible interface
to up to several NAND flashs.

The Bose Ray-Choudhury Hocquenghem(BCH) module is a hardware ECC accelerator.

With the help of BCH, the GPMI controller can choose to do the hardware ECC or
not.

v7 --> v8:
	[0] add header file to fix compiling error.

v6 --> v7:
	[0] rename RES_SIZE to GPMI_NAND_RES_SIZE.
	[1] move gpmi-nand.h to `include/linux/mtd/` directory.
	[2] remove comment for new pad control.
	[3] others

v5 --> v6:
	[0] rename `gpmi-nfc` to `gpmi-nand`.
	[1] remove ->exit() in structure gpmi_nand_platform_data{}.
	[2] drop the macros for the resource's definition of gpmi-nand.
	[3] add a new pad control `MXS_PAD_CTRL_12MA`. 
	[4] others.

v4 --> v5:
	[0] split out the mach code and the machine code.

v3 --> v4:
	merge the GPMI-NFC device code to the new branch.

Huang Shijie (4):
  ARM: mxs: add GPMI-NAND support for imx23/imx28
  ARM: mxs: add new a pad control
  ARM: mxs/mx23evk: add GPMI-NAND device
  ARM: mxs/mx28evk: add GPMI-NAND device

 arch/arm/mach-mxs/Kconfig                       |    2 +
 arch/arm/mach-mxs/clock-mx23.c                  |    1 +
 arch/arm/mach-mxs/clock-mx28.c                  |    1 +
 arch/arm/mach-mxs/devices-mx23.h                |    4 +
 arch/arm/mach-mxs/devices-mx28.h                |    4 +
 arch/arm/mach-mxs/devices/Kconfig               |    3 +
 arch/arm/mach-mxs/devices/Makefile              |    1 +
 arch/arm/mach-mxs/devices/platform-gpmi-nand.c  |  109 +++++++++++++++++++++++
 arch/arm/mach-mxs/include/mach/devices-common.h |   10 ++
 arch/arm/mach-mxs/include/mach/iomux.h          |    1 +
 arch/arm/mach-mxs/mach-mx23evk.c                |   36 ++++++++
 arch/arm/mach-mxs/mach-mx28evk.c                |   36 ++++++++
 include/linux/mtd/gpmi-nand.h                   |   68 ++++++++++++++
 13 files changed, 276 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm/mach-mxs/devices/platform-gpmi-nand.c
 create mode 100644 include/linux/mtd/gpmi-nand.h

^ permalink raw reply	[flat|nested] 46+ messages in thread

* [PATCH v8 0/4] add the GPMI-NAND support for imx23/imx28
@ 2011-08-24  7:07 ` Huang Shijie
  0 siblings, 0 replies; 46+ messages in thread
From: Huang Shijie @ 2011-08-24  7:07 UTC (permalink / raw)
  To: linux-arm-kernel

The patch set is based on tag v3.1-rc2 of linus's tree.
and it can be git-am to Artem's tree:
	http://git.infradead.org/users/dedekind/l2-mtd-2.6.git

The general-purpose media interface(GPMI) controller is a flexible interface
to up to several NAND flashs.

The Bose Ray-Choudhury Hocquenghem(BCH) module is a hardware ECC accelerator.

With the help of BCH, the GPMI controller can choose to do the hardware ECC or
not.

v7 --> v8:
	[0] add header file to fix compiling error.

v6 --> v7:
	[0] rename RES_SIZE to GPMI_NAND_RES_SIZE.
	[1] move gpmi-nand.h to `include/linux/mtd/` directory.
	[2] remove comment for new pad control.
	[3] others

v5 --> v6:
	[0] rename `gpmi-nfc` to `gpmi-nand`.
	[1] remove ->exit() in structure gpmi_nand_platform_data{}.
	[2] drop the macros for the resource's definition of gpmi-nand.
	[3] add a new pad control `MXS_PAD_CTRL_12MA`. 
	[4] others.

v4 --> v5:
	[0] split out the mach code and the machine code.

v3 --> v4:
	merge the GPMI-NFC device code to the new branch.

Huang Shijie (4):
  ARM: mxs: add GPMI-NAND support for imx23/imx28
  ARM: mxs: add new a pad control
  ARM: mxs/mx23evk: add GPMI-NAND device
  ARM: mxs/mx28evk: add GPMI-NAND device

 arch/arm/mach-mxs/Kconfig                       |    2 +
 arch/arm/mach-mxs/clock-mx23.c                  |    1 +
 arch/arm/mach-mxs/clock-mx28.c                  |    1 +
 arch/arm/mach-mxs/devices-mx23.h                |    4 +
 arch/arm/mach-mxs/devices-mx28.h                |    4 +
 arch/arm/mach-mxs/devices/Kconfig               |    3 +
 arch/arm/mach-mxs/devices/Makefile              |    1 +
 arch/arm/mach-mxs/devices/platform-gpmi-nand.c  |  109 +++++++++++++++++++++++
 arch/arm/mach-mxs/include/mach/devices-common.h |   10 ++
 arch/arm/mach-mxs/include/mach/iomux.h          |    1 +
 arch/arm/mach-mxs/mach-mx23evk.c                |   36 ++++++++
 arch/arm/mach-mxs/mach-mx28evk.c                |   36 ++++++++
 include/linux/mtd/gpmi-nand.h                   |   68 ++++++++++++++
 13 files changed, 276 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm/mach-mxs/devices/platform-gpmi-nand.c
 create mode 100644 include/linux/mtd/gpmi-nand.h

^ permalink raw reply	[flat|nested] 46+ messages in thread

* [PATCH v8 1/4] ARM: mxs: add GPMI-NAND support for imx23/imx28
  2011-08-24  7:07 ` Huang Shijie
@ 2011-08-24  7:07   ` Huang Shijie
  -1 siblings, 0 replies; 46+ messages in thread
From: Huang Shijie @ 2011-08-24  7:07 UTC (permalink / raw)
  To: s.hauer; +Cc: Huang Shijie, linux-mtd, w.sang, linux-arm-kernel, dedekind1

add GPMI-NAND support for imx23 and imx28.

Signed-off-by: Huang Shijie <b32955@freescale.com>
---
 arch/arm/mach-mxs/clock-mx23.c                  |    1 +
 arch/arm/mach-mxs/clock-mx28.c                  |    1 +
 arch/arm/mach-mxs/devices-mx23.h                |    4 +
 arch/arm/mach-mxs/devices-mx28.h                |    4 +
 arch/arm/mach-mxs/devices/Kconfig               |    3 +
 arch/arm/mach-mxs/devices/Makefile              |    1 +
 arch/arm/mach-mxs/devices/platform-gpmi-nand.c  |  109 +++++++++++++++++++++++
 arch/arm/mach-mxs/include/mach/devices-common.h |   10 ++
 include/linux/mtd/gpmi-nand.h                   |   68 ++++++++++++++
 9 files changed, 201 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm/mach-mxs/devices/platform-gpmi-nand.c
 create mode 100644 include/linux/mtd/gpmi-nand.h

diff --git a/arch/arm/mach-mxs/clock-mx23.c b/arch/arm/mach-mxs/clock-mx23.c
index 0163b6d..4300ce5 100644
--- a/arch/arm/mach-mxs/clock-mx23.c
+++ b/arch/arm/mach-mxs/clock-mx23.c
@@ -456,6 +456,7 @@ static struct clk_lookup lookups[] = {
 	_REGISTER_CLOCK("mxs-pwm.3", NULL, pwm_clk)
 	_REGISTER_CLOCK("mxs-pwm.4", NULL, pwm_clk)
 	_REGISTER_CLOCK("imx23-fb", NULL, lcdif_clk)
+	_REGISTER_CLOCK("imx23-gpmi-nand", NULL, gpmi_clk)
 };
 
 static int clk_misc_init(void)
diff --git a/arch/arm/mach-mxs/clock-mx28.c b/arch/arm/mach-mxs/clock-mx28.c
index 5dcc59d..dc2052c 100644
--- a/arch/arm/mach-mxs/clock-mx28.c
+++ b/arch/arm/mach-mxs/clock-mx28.c
@@ -614,6 +614,7 @@ static struct clk_lookup lookups[] = {
 	_REGISTER_CLOCK("duart", NULL, uart_clk)
 	_REGISTER_CLOCK("imx28-fec.0", NULL, fec_clk)
 	_REGISTER_CLOCK("imx28-fec.1", NULL, fec_clk)
+	_REGISTER_CLOCK("imx28-gpmi-nand", NULL, gpmi_clk)
 	_REGISTER_CLOCK("mxs-auart.0", NULL, uart_clk)
 	_REGISTER_CLOCK("mxs-auart.1", NULL, uart_clk)
 	_REGISTER_CLOCK("mxs-auart.2", NULL, uart_clk)
diff --git a/arch/arm/mach-mxs/devices-mx23.h b/arch/arm/mach-mxs/devices-mx23.h
index c6f345f..ee8c525 100644
--- a/arch/arm/mach-mxs/devices-mx23.h
+++ b/arch/arm/mach-mxs/devices-mx23.h
@@ -21,6 +21,10 @@ extern const struct mxs_auart_data mx23_auart_data[] __initconst;
 #define mx23_add_auart0()		mx23_add_auart(0)
 #define mx23_add_auart1()		mx23_add_auart(1)
 
+extern const struct mxs_gpmi_nand_data mx23_gpmi_nand_data __initconst;
+#define mx23_add_gpmi_nand(pdata)	\
+	mxs_add_gpmi_nand(pdata, &mx23_gpmi_nand_data)
+
 extern const struct mxs_mxs_mmc_data mx23_mxs_mmc_data[] __initconst;
 #define mx23_add_mxs_mmc(id, pdata) \
 	mxs_add_mxs_mmc(&mx23_mxs_mmc_data[id], pdata)
diff --git a/arch/arm/mach-mxs/devices-mx28.h b/arch/arm/mach-mxs/devices-mx28.h
index 79b9452..2953f0d 100644
--- a/arch/arm/mach-mxs/devices-mx28.h
+++ b/arch/arm/mach-mxs/devices-mx28.h
@@ -34,6 +34,10 @@ extern const struct mxs_flexcan_data mx28_flexcan_data[] __initconst;
 #define mx28_add_flexcan0(pdata)	mx28_add_flexcan(0, pdata)
 #define mx28_add_flexcan1(pdata)	mx28_add_flexcan(1, pdata)
 
+extern const struct mxs_gpmi_nand_data mx28_gpmi_nand_data __initconst;
+#define mx28_add_gpmi_nand(pdata)	\
+	mxs_add_gpmi_nand(pdata, &mx28_gpmi_nand_data)
+
 extern const struct mxs_mxs_i2c_data mx28_mxs_i2c_data[] __initconst;
 #define mx28_add_mxs_i2c(id)		mxs_add_mxs_i2c(&mx28_mxs_i2c_data[id])
 
diff --git a/arch/arm/mach-mxs/devices/Kconfig b/arch/arm/mach-mxs/devices/Kconfig
index acf9eea..a3bca3c 100644
--- a/arch/arm/mach-mxs/devices/Kconfig
+++ b/arch/arm/mach-mxs/devices/Kconfig
@@ -12,6 +12,9 @@ config MXS_HAVE_PLATFORM_FLEXCAN
 	select HAVE_CAN_FLEXCAN if CAN
 	bool
 
+config MXS_HAVE_PLATFORM_GPMI_NAND
+	bool
+
 config MXS_HAVE_PLATFORM_MXS_I2C
 	bool
 
diff --git a/arch/arm/mach-mxs/devices/Makefile b/arch/arm/mach-mxs/devices/Makefile
index 351915c..7d26eb1 100644
--- a/arch/arm/mach-mxs/devices/Makefile
+++ b/arch/arm/mach-mxs/devices/Makefile
@@ -3,6 +3,7 @@ obj-$(CONFIG_MXS_HAVE_PLATFORM_AUART) += platform-auart.o
 obj-y += platform-dma.o
 obj-$(CONFIG_MXS_HAVE_PLATFORM_FEC) += platform-fec.o
 obj-$(CONFIG_MXS_HAVE_PLATFORM_FLEXCAN) += platform-flexcan.o
+obj-$(CONFIG_MXS_HAVE_PLATFORM_GPMI_NAND) += platform-gpmi-nand.o
 obj-$(CONFIG_MXS_HAVE_PLATFORM_MXS_I2C) += platform-mxs-i2c.o
 obj-$(CONFIG_MXS_HAVE_PLATFORM_MXS_MMC) += platform-mxs-mmc.o
 obj-$(CONFIG_MXS_HAVE_PLATFORM_MXS_PWM) += platform-mxs-pwm.o
diff --git a/arch/arm/mach-mxs/devices/platform-gpmi-nand.c b/arch/arm/mach-mxs/devices/platform-gpmi-nand.c
new file mode 100644
index 0000000..a8b74dc
--- /dev/null
+++ b/arch/arm/mach-mxs/devices/platform-gpmi-nand.c
@@ -0,0 +1,109 @@
+/*
+ * Copyright (C) 2011 Freescale Semiconductor, Inc. All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+#include <asm/sizes.h>
+#include <mach/mx23.h>
+#include <mach/mx28.h>
+#include <mach/devices-common.h>
+#include <linux/dma-mapping.h>
+
+#ifdef CONFIG_SOC_IMX23
+const struct mxs_gpmi_nand_data mx23_gpmi_nand_data __initconst = {
+	.devid = "imx23-gpmi-nand",
+	.res = {
+		{	/* GPMI */
+			.start = MX23_GPMI_BASE_ADDR,
+			.end   = MX23_GPMI_BASE_ADDR + SZ_8K - 1,
+			.name  = GPMI_NAND_GPMI_REGS_ADDR_RES_NAME,
+			.flags = IORESOURCE_MEM,
+		}, {
+			.start = MX23_INT_GPMI_ATTENTION,
+			.end   = MX23_INT_GPMI_ATTENTION,
+			.name  = GPMI_NAND_GPMI_INTERRUPT_RES_NAME,
+			.flags = IORESOURCE_IRQ,
+		}, {	/* BCH */
+			.start = MX23_BCH_BASE_ADDR,
+			.end   = MX23_BCH_BASE_ADDR + SZ_8K - 1,
+			.name  = GPMI_NAND_BCH_REGS_ADDR_RES_NAME,
+			.flags = IORESOURCE_MEM,
+		}, {
+			.start = MX23_INT_BCH,
+			.end   = MX23_INT_BCH,
+			.name  = GPMI_NAND_BCH_INTERRUPT_RES_NAME,
+			.flags = IORESOURCE_IRQ,
+		}, {	/* DMA */
+			.start	= MX23_DMA_GPMI0,
+			.end	= MX23_DMA_GPMI3,
+			.name  = GPMI_NAND_DMA_CHANNELS_RES_NAME,
+			.flags = IORESOURCE_DMA,
+		}, {
+			.start = MX23_INT_GPMI_DMA,
+			.end   = MX23_INT_GPMI_DMA,
+			.name  = GPMI_NAND_DMA_INTERRUPT_RES_NAME,
+			.flags = IORESOURCE_IRQ,
+		},
+	},
+};
+#endif
+
+#ifdef CONFIG_SOC_IMX28
+const struct mxs_gpmi_nand_data mx28_gpmi_nand_data __initconst = {
+	.devid = "imx28-gpmi-nand",
+	.res = {
+		{	/* GPMI */
+			.start = MX28_GPMI_BASE_ADDR,
+			.end   = MX28_GPMI_BASE_ADDR + SZ_8K - 1,
+			.name  = GPMI_NAND_GPMI_REGS_ADDR_RES_NAME,
+			.flags = IORESOURCE_MEM,
+		 }, {
+			.start = MX28_INT_GPMI,
+			.end   = MX28_INT_GPMI,
+			.name  = GPMI_NAND_GPMI_INTERRUPT_RES_NAME,
+			.flags = IORESOURCE_IRQ,
+		}, {	/* BCH */
+			.start = MX28_BCH_BASE_ADDR,
+			.end   = MX28_BCH_BASE_ADDR + SZ_8K - 1,
+			.name  = GPMI_NAND_BCH_REGS_ADDR_RES_NAME,
+			.flags = IORESOURCE_MEM,
+		 }, {
+			.start = MX28_INT_BCH,
+			.end   = MX28_INT_BCH,
+			.name  = GPMI_NAND_BCH_INTERRUPT_RES_NAME,
+			.flags = IORESOURCE_IRQ,
+		 }, {	/* DMA */
+			.start	= MX28_DMA_GPMI0,
+			.end	= MX28_DMA_GPMI7,
+			.name	= GPMI_NAND_DMA_CHANNELS_RES_NAME,
+			.flags	= IORESOURCE_DMA,
+		 }, {
+			.start = MX28_INT_GPMI_DMA,
+			.end   = MX28_INT_GPMI_DMA,
+			.name  = GPMI_NAND_DMA_INTERRUPT_RES_NAME,
+			.flags = IORESOURCE_IRQ,
+		},
+	},
+};
+#endif
+
+struct platform_device *__init
+mxs_add_gpmi_nand(const struct gpmi_nand_platform_data *pdata,
+		const struct mxs_gpmi_nand_data *data)
+{
+	return mxs_add_platform_device_dmamask(data->devid, -1,
+				data->res, GPMI_NAND_RES_SIZE,
+				pdata, sizeof(*pdata), DMA_BIT_MASK(32));
+}
diff --git a/arch/arm/mach-mxs/include/mach/devices-common.h b/arch/arm/mach-mxs/include/mach/devices-common.h
index 812d7a8..ce71c89 100644
--- a/arch/arm/mach-mxs/include/mach/devices-common.h
+++ b/arch/arm/mach-mxs/include/mach/devices-common.h
@@ -66,6 +66,16 @@ struct platform_device *__init mxs_add_flexcan(
 		const struct mxs_flexcan_data *data,
 		const struct flexcan_platform_data *pdata);
 
+/* gpmi-nand */
+#include <linux/mtd/gpmi-nand.h>
+struct mxs_gpmi_nand_data {
+	const char *devid;
+	const struct resource res[GPMI_NAND_RES_SIZE];
+};
+struct platform_device *__init
+mxs_add_gpmi_nand(const struct gpmi_nand_platform_data *pdata,
+		const struct mxs_gpmi_nand_data *data);
+
 /* i2c */
 struct mxs_mxs_i2c_data {
 	int id;
diff --git a/include/linux/mtd/gpmi-nand.h b/include/linux/mtd/gpmi-nand.h
new file mode 100644
index 0000000..69b6dbf
--- /dev/null
+++ b/include/linux/mtd/gpmi-nand.h
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2011 Freescale Semiconductor, Inc. All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef __MACH_MXS_GPMI_NAND_H__
+#define __MACH_MXS_GPMI_NAND_H__
+
+/* The size of the resources is fixed. */
+#define GPMI_NAND_RES_SIZE	6
+
+/* Resource names for the GPMI NAND driver. */
+#define GPMI_NAND_GPMI_REGS_ADDR_RES_NAME  "GPMI NAND GPMI Registers"
+#define GPMI_NAND_GPMI_INTERRUPT_RES_NAME  "GPMI NAND GPMI Interrupt"
+#define GPMI_NAND_BCH_REGS_ADDR_RES_NAME   "GPMI NAND BCH Registers"
+#define GPMI_NAND_BCH_INTERRUPT_RES_NAME   "GPMI NAND BCH Interrupt"
+#define GPMI_NAND_DMA_CHANNELS_RES_NAME    "GPMI NAND DMA Channels"
+#define GPMI_NAND_DMA_INTERRUPT_RES_NAME   "GPMI NAND DMA Interrupt"
+
+/**
+ * struct gpmi_nand_platform_data - GPMI NAND driver platform data.
+ *
+ * This structure communicates platform-specific information to the GPMI NAND
+ * driver that can't be expressed as resources.
+ *
+ * @platform_init:           A pointer to a function the driver will call to
+ *                           initialize the platform (e.g., set up the pin mux).
+ * @min_prop_delay_in_ns:    Minimum propagation delay of GPMI signals to and
+ *                           from the NAND Flash device, in nanoseconds.
+ * @max_prop_delay_in_ns:    Maximum propagation delay of GPMI signals to and
+ *                           from the NAND Flash device, in nanoseconds.
+ * @max_chip_count:          The maximum number of chips for which the driver
+ *                           should configure the hardware. This value most
+ *                           likely reflects the number of pins that are
+ *                           connected to a NAND Flash device. If this is
+ *                           greater than the SoC hardware can support, the
+ *                           driver will print a message and fail to initialize.
+ * @partitions:              An optional pointer to an array of partition
+ *                           descriptions.
+ * @partition_count:         The number of elements in the partitions array.
+ */
+struct gpmi_nand_platform_data {
+	/* SoC hardware information. */
+	int		(*platform_init)(void);
+
+	/* NAND Flash information. */
+	unsigned int	min_prop_delay_in_ns;
+	unsigned int	max_prop_delay_in_ns;
+	unsigned int	max_chip_count;
+
+	/* Medium information. */
+	struct		mtd_partition *partitions;
+	unsigned	partition_count;
+};
+#endif
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [PATCH v8 1/4] ARM: mxs: add GPMI-NAND support for imx23/imx28
@ 2011-08-24  7:07   ` Huang Shijie
  0 siblings, 0 replies; 46+ messages in thread
From: Huang Shijie @ 2011-08-24  7:07 UTC (permalink / raw)
  To: linux-arm-kernel

add GPMI-NAND support for imx23 and imx28.

Signed-off-by: Huang Shijie <b32955@freescale.com>
---
 arch/arm/mach-mxs/clock-mx23.c                  |    1 +
 arch/arm/mach-mxs/clock-mx28.c                  |    1 +
 arch/arm/mach-mxs/devices-mx23.h                |    4 +
 arch/arm/mach-mxs/devices-mx28.h                |    4 +
 arch/arm/mach-mxs/devices/Kconfig               |    3 +
 arch/arm/mach-mxs/devices/Makefile              |    1 +
 arch/arm/mach-mxs/devices/platform-gpmi-nand.c  |  109 +++++++++++++++++++++++
 arch/arm/mach-mxs/include/mach/devices-common.h |   10 ++
 include/linux/mtd/gpmi-nand.h                   |   68 ++++++++++++++
 9 files changed, 201 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm/mach-mxs/devices/platform-gpmi-nand.c
 create mode 100644 include/linux/mtd/gpmi-nand.h

diff --git a/arch/arm/mach-mxs/clock-mx23.c b/arch/arm/mach-mxs/clock-mx23.c
index 0163b6d..4300ce5 100644
--- a/arch/arm/mach-mxs/clock-mx23.c
+++ b/arch/arm/mach-mxs/clock-mx23.c
@@ -456,6 +456,7 @@ static struct clk_lookup lookups[] = {
 	_REGISTER_CLOCK("mxs-pwm.3", NULL, pwm_clk)
 	_REGISTER_CLOCK("mxs-pwm.4", NULL, pwm_clk)
 	_REGISTER_CLOCK("imx23-fb", NULL, lcdif_clk)
+	_REGISTER_CLOCK("imx23-gpmi-nand", NULL, gpmi_clk)
 };
 
 static int clk_misc_init(void)
diff --git a/arch/arm/mach-mxs/clock-mx28.c b/arch/arm/mach-mxs/clock-mx28.c
index 5dcc59d..dc2052c 100644
--- a/arch/arm/mach-mxs/clock-mx28.c
+++ b/arch/arm/mach-mxs/clock-mx28.c
@@ -614,6 +614,7 @@ static struct clk_lookup lookups[] = {
 	_REGISTER_CLOCK("duart", NULL, uart_clk)
 	_REGISTER_CLOCK("imx28-fec.0", NULL, fec_clk)
 	_REGISTER_CLOCK("imx28-fec.1", NULL, fec_clk)
+	_REGISTER_CLOCK("imx28-gpmi-nand", NULL, gpmi_clk)
 	_REGISTER_CLOCK("mxs-auart.0", NULL, uart_clk)
 	_REGISTER_CLOCK("mxs-auart.1", NULL, uart_clk)
 	_REGISTER_CLOCK("mxs-auart.2", NULL, uart_clk)
diff --git a/arch/arm/mach-mxs/devices-mx23.h b/arch/arm/mach-mxs/devices-mx23.h
index c6f345f..ee8c525 100644
--- a/arch/arm/mach-mxs/devices-mx23.h
+++ b/arch/arm/mach-mxs/devices-mx23.h
@@ -21,6 +21,10 @@ extern const struct mxs_auart_data mx23_auart_data[] __initconst;
 #define mx23_add_auart0()		mx23_add_auart(0)
 #define mx23_add_auart1()		mx23_add_auart(1)
 
+extern const struct mxs_gpmi_nand_data mx23_gpmi_nand_data __initconst;
+#define mx23_add_gpmi_nand(pdata)	\
+	mxs_add_gpmi_nand(pdata, &mx23_gpmi_nand_data)
+
 extern const struct mxs_mxs_mmc_data mx23_mxs_mmc_data[] __initconst;
 #define mx23_add_mxs_mmc(id, pdata) \
 	mxs_add_mxs_mmc(&mx23_mxs_mmc_data[id], pdata)
diff --git a/arch/arm/mach-mxs/devices-mx28.h b/arch/arm/mach-mxs/devices-mx28.h
index 79b9452..2953f0d 100644
--- a/arch/arm/mach-mxs/devices-mx28.h
+++ b/arch/arm/mach-mxs/devices-mx28.h
@@ -34,6 +34,10 @@ extern const struct mxs_flexcan_data mx28_flexcan_data[] __initconst;
 #define mx28_add_flexcan0(pdata)	mx28_add_flexcan(0, pdata)
 #define mx28_add_flexcan1(pdata)	mx28_add_flexcan(1, pdata)
 
+extern const struct mxs_gpmi_nand_data mx28_gpmi_nand_data __initconst;
+#define mx28_add_gpmi_nand(pdata)	\
+	mxs_add_gpmi_nand(pdata, &mx28_gpmi_nand_data)
+
 extern const struct mxs_mxs_i2c_data mx28_mxs_i2c_data[] __initconst;
 #define mx28_add_mxs_i2c(id)		mxs_add_mxs_i2c(&mx28_mxs_i2c_data[id])
 
diff --git a/arch/arm/mach-mxs/devices/Kconfig b/arch/arm/mach-mxs/devices/Kconfig
index acf9eea..a3bca3c 100644
--- a/arch/arm/mach-mxs/devices/Kconfig
+++ b/arch/arm/mach-mxs/devices/Kconfig
@@ -12,6 +12,9 @@ config MXS_HAVE_PLATFORM_FLEXCAN
 	select HAVE_CAN_FLEXCAN if CAN
 	bool
 
+config MXS_HAVE_PLATFORM_GPMI_NAND
+	bool
+
 config MXS_HAVE_PLATFORM_MXS_I2C
 	bool
 
diff --git a/arch/arm/mach-mxs/devices/Makefile b/arch/arm/mach-mxs/devices/Makefile
index 351915c..7d26eb1 100644
--- a/arch/arm/mach-mxs/devices/Makefile
+++ b/arch/arm/mach-mxs/devices/Makefile
@@ -3,6 +3,7 @@ obj-$(CONFIG_MXS_HAVE_PLATFORM_AUART) += platform-auart.o
 obj-y += platform-dma.o
 obj-$(CONFIG_MXS_HAVE_PLATFORM_FEC) += platform-fec.o
 obj-$(CONFIG_MXS_HAVE_PLATFORM_FLEXCAN) += platform-flexcan.o
+obj-$(CONFIG_MXS_HAVE_PLATFORM_GPMI_NAND) += platform-gpmi-nand.o
 obj-$(CONFIG_MXS_HAVE_PLATFORM_MXS_I2C) += platform-mxs-i2c.o
 obj-$(CONFIG_MXS_HAVE_PLATFORM_MXS_MMC) += platform-mxs-mmc.o
 obj-$(CONFIG_MXS_HAVE_PLATFORM_MXS_PWM) += platform-mxs-pwm.o
diff --git a/arch/arm/mach-mxs/devices/platform-gpmi-nand.c b/arch/arm/mach-mxs/devices/platform-gpmi-nand.c
new file mode 100644
index 0000000..a8b74dc
--- /dev/null
+++ b/arch/arm/mach-mxs/devices/platform-gpmi-nand.c
@@ -0,0 +1,109 @@
+/*
+ * Copyright (C) 2011 Freescale Semiconductor, Inc. All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+#include <asm/sizes.h>
+#include <mach/mx23.h>
+#include <mach/mx28.h>
+#include <mach/devices-common.h>
+#include <linux/dma-mapping.h>
+
+#ifdef CONFIG_SOC_IMX23
+const struct mxs_gpmi_nand_data mx23_gpmi_nand_data __initconst = {
+	.devid = "imx23-gpmi-nand",
+	.res = {
+		{	/* GPMI */
+			.start = MX23_GPMI_BASE_ADDR,
+			.end   = MX23_GPMI_BASE_ADDR + SZ_8K - 1,
+			.name  = GPMI_NAND_GPMI_REGS_ADDR_RES_NAME,
+			.flags = IORESOURCE_MEM,
+		}, {
+			.start = MX23_INT_GPMI_ATTENTION,
+			.end   = MX23_INT_GPMI_ATTENTION,
+			.name  = GPMI_NAND_GPMI_INTERRUPT_RES_NAME,
+			.flags = IORESOURCE_IRQ,
+		}, {	/* BCH */
+			.start = MX23_BCH_BASE_ADDR,
+			.end   = MX23_BCH_BASE_ADDR + SZ_8K - 1,
+			.name  = GPMI_NAND_BCH_REGS_ADDR_RES_NAME,
+			.flags = IORESOURCE_MEM,
+		}, {
+			.start = MX23_INT_BCH,
+			.end   = MX23_INT_BCH,
+			.name  = GPMI_NAND_BCH_INTERRUPT_RES_NAME,
+			.flags = IORESOURCE_IRQ,
+		}, {	/* DMA */
+			.start	= MX23_DMA_GPMI0,
+			.end	= MX23_DMA_GPMI3,
+			.name  = GPMI_NAND_DMA_CHANNELS_RES_NAME,
+			.flags = IORESOURCE_DMA,
+		}, {
+			.start = MX23_INT_GPMI_DMA,
+			.end   = MX23_INT_GPMI_DMA,
+			.name  = GPMI_NAND_DMA_INTERRUPT_RES_NAME,
+			.flags = IORESOURCE_IRQ,
+		},
+	},
+};
+#endif
+
+#ifdef CONFIG_SOC_IMX28
+const struct mxs_gpmi_nand_data mx28_gpmi_nand_data __initconst = {
+	.devid = "imx28-gpmi-nand",
+	.res = {
+		{	/* GPMI */
+			.start = MX28_GPMI_BASE_ADDR,
+			.end   = MX28_GPMI_BASE_ADDR + SZ_8K - 1,
+			.name  = GPMI_NAND_GPMI_REGS_ADDR_RES_NAME,
+			.flags = IORESOURCE_MEM,
+		 }, {
+			.start = MX28_INT_GPMI,
+			.end   = MX28_INT_GPMI,
+			.name  = GPMI_NAND_GPMI_INTERRUPT_RES_NAME,
+			.flags = IORESOURCE_IRQ,
+		}, {	/* BCH */
+			.start = MX28_BCH_BASE_ADDR,
+			.end   = MX28_BCH_BASE_ADDR + SZ_8K - 1,
+			.name  = GPMI_NAND_BCH_REGS_ADDR_RES_NAME,
+			.flags = IORESOURCE_MEM,
+		 }, {
+			.start = MX28_INT_BCH,
+			.end   = MX28_INT_BCH,
+			.name  = GPMI_NAND_BCH_INTERRUPT_RES_NAME,
+			.flags = IORESOURCE_IRQ,
+		 }, {	/* DMA */
+			.start	= MX28_DMA_GPMI0,
+			.end	= MX28_DMA_GPMI7,
+			.name	= GPMI_NAND_DMA_CHANNELS_RES_NAME,
+			.flags	= IORESOURCE_DMA,
+		 }, {
+			.start = MX28_INT_GPMI_DMA,
+			.end   = MX28_INT_GPMI_DMA,
+			.name  = GPMI_NAND_DMA_INTERRUPT_RES_NAME,
+			.flags = IORESOURCE_IRQ,
+		},
+	},
+};
+#endif
+
+struct platform_device *__init
+mxs_add_gpmi_nand(const struct gpmi_nand_platform_data *pdata,
+		const struct mxs_gpmi_nand_data *data)
+{
+	return mxs_add_platform_device_dmamask(data->devid, -1,
+				data->res, GPMI_NAND_RES_SIZE,
+				pdata, sizeof(*pdata), DMA_BIT_MASK(32));
+}
diff --git a/arch/arm/mach-mxs/include/mach/devices-common.h b/arch/arm/mach-mxs/include/mach/devices-common.h
index 812d7a8..ce71c89 100644
--- a/arch/arm/mach-mxs/include/mach/devices-common.h
+++ b/arch/arm/mach-mxs/include/mach/devices-common.h
@@ -66,6 +66,16 @@ struct platform_device *__init mxs_add_flexcan(
 		const struct mxs_flexcan_data *data,
 		const struct flexcan_platform_data *pdata);
 
+/* gpmi-nand */
+#include <linux/mtd/gpmi-nand.h>
+struct mxs_gpmi_nand_data {
+	const char *devid;
+	const struct resource res[GPMI_NAND_RES_SIZE];
+};
+struct platform_device *__init
+mxs_add_gpmi_nand(const struct gpmi_nand_platform_data *pdata,
+		const struct mxs_gpmi_nand_data *data);
+
 /* i2c */
 struct mxs_mxs_i2c_data {
 	int id;
diff --git a/include/linux/mtd/gpmi-nand.h b/include/linux/mtd/gpmi-nand.h
new file mode 100644
index 0000000..69b6dbf
--- /dev/null
+++ b/include/linux/mtd/gpmi-nand.h
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2011 Freescale Semiconductor, Inc. All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef __MACH_MXS_GPMI_NAND_H__
+#define __MACH_MXS_GPMI_NAND_H__
+
+/* The size of the resources is fixed. */
+#define GPMI_NAND_RES_SIZE	6
+
+/* Resource names for the GPMI NAND driver. */
+#define GPMI_NAND_GPMI_REGS_ADDR_RES_NAME  "GPMI NAND GPMI Registers"
+#define GPMI_NAND_GPMI_INTERRUPT_RES_NAME  "GPMI NAND GPMI Interrupt"
+#define GPMI_NAND_BCH_REGS_ADDR_RES_NAME   "GPMI NAND BCH Registers"
+#define GPMI_NAND_BCH_INTERRUPT_RES_NAME   "GPMI NAND BCH Interrupt"
+#define GPMI_NAND_DMA_CHANNELS_RES_NAME    "GPMI NAND DMA Channels"
+#define GPMI_NAND_DMA_INTERRUPT_RES_NAME   "GPMI NAND DMA Interrupt"
+
+/**
+ * struct gpmi_nand_platform_data - GPMI NAND driver platform data.
+ *
+ * This structure communicates platform-specific information to the GPMI NAND
+ * driver that can't be expressed as resources.
+ *
+ * @platform_init:           A pointer to a function the driver will call to
+ *                           initialize the platform (e.g., set up the pin mux).
+ * @min_prop_delay_in_ns:    Minimum propagation delay of GPMI signals to and
+ *                           from the NAND Flash device, in nanoseconds.
+ * @max_prop_delay_in_ns:    Maximum propagation delay of GPMI signals to and
+ *                           from the NAND Flash device, in nanoseconds.
+ * @max_chip_count:          The maximum number of chips for which the driver
+ *                           should configure the hardware. This value most
+ *                           likely reflects the number of pins that are
+ *                           connected to a NAND Flash device. If this is
+ *                           greater than the SoC hardware can support, the
+ *                           driver will print a message and fail to initialize.
+ * @partitions:              An optional pointer to an array of partition
+ *                           descriptions.
+ * @partition_count:         The number of elements in the partitions array.
+ */
+struct gpmi_nand_platform_data {
+	/* SoC hardware information. */
+	int		(*platform_init)(void);
+
+	/* NAND Flash information. */
+	unsigned int	min_prop_delay_in_ns;
+	unsigned int	max_prop_delay_in_ns;
+	unsigned int	max_chip_count;
+
+	/* Medium information. */
+	struct		mtd_partition *partitions;
+	unsigned	partition_count;
+};
+#endif
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [PATCH v8 2/4] ARM: mxs: add new a pad control
  2011-08-24  7:07 ` Huang Shijie
@ 2011-08-24  7:07   ` Huang Shijie
  -1 siblings, 0 replies; 46+ messages in thread
From: Huang Shijie @ 2011-08-24  7:07 UTC (permalink / raw)
  To: s.hauer; +Cc: Huang Shijie, linux-mtd, w.sang, linux-arm-kernel, dedekind1

add a new pad control which is used in some rare cases,
such as gpmi-nand device.

Signed-off-by: Huang Shijie <b32955@freescale.com>
---
 arch/arm/mach-mxs/include/mach/iomux.h |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-mxs/include/mach/iomux.h b/arch/arm/mach-mxs/include/mach/iomux.h
index 7abdf58..1b6f55a 100644
--- a/arch/arm/mach-mxs/include/mach/iomux.h
+++ b/arch/arm/mach-mxs/include/mach/iomux.h
@@ -93,6 +93,7 @@ typedef u32 iomux_cfg_t;
 
 /* generic pad control used in most cases */
 #define MXS_PAD_CTRL	(MXS_PAD_4MA | MXS_PAD_3V3 | MXS_PAD_NOPULL)
+#define MXS_PAD_CTRL_12MA	(MXS_PAD_12MA | MXS_PAD_3V3 | MXS_PAD_NOPULL)
 
 #define MXS_IOMUX_PAD(_bank, _pin, _muxsel, _ma, _vol, _pull)		\
 		(((iomux_cfg_t)(_bank) << MXS_PAD_BANK_SHIFT) |		\
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [PATCH v8 2/4] ARM: mxs: add new a pad control
@ 2011-08-24  7:07   ` Huang Shijie
  0 siblings, 0 replies; 46+ messages in thread
From: Huang Shijie @ 2011-08-24  7:07 UTC (permalink / raw)
  To: linux-arm-kernel

add a new pad control which is used in some rare cases,
such as gpmi-nand device.

Signed-off-by: Huang Shijie <b32955@freescale.com>
---
 arch/arm/mach-mxs/include/mach/iomux.h |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-mxs/include/mach/iomux.h b/arch/arm/mach-mxs/include/mach/iomux.h
index 7abdf58..1b6f55a 100644
--- a/arch/arm/mach-mxs/include/mach/iomux.h
+++ b/arch/arm/mach-mxs/include/mach/iomux.h
@@ -93,6 +93,7 @@ typedef u32 iomux_cfg_t;
 
 /* generic pad control used in most cases */
 #define MXS_PAD_CTRL	(MXS_PAD_4MA | MXS_PAD_3V3 | MXS_PAD_NOPULL)
+#define MXS_PAD_CTRL_12MA	(MXS_PAD_12MA | MXS_PAD_3V3 | MXS_PAD_NOPULL)
 
 #define MXS_IOMUX_PAD(_bank, _pin, _muxsel, _ma, _vol, _pull)		\
 		(((iomux_cfg_t)(_bank) << MXS_PAD_BANK_SHIFT) |		\
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [PATCH v8 3/4] ARM: mxs/mx23evk: add GPMI-NAND device
  2011-08-24  7:07 ` Huang Shijie
@ 2011-08-24  7:07   ` Huang Shijie
  -1 siblings, 0 replies; 46+ messages in thread
From: Huang Shijie @ 2011-08-24  7:07 UTC (permalink / raw)
  To: s.hauer; +Cc: Huang Shijie, linux-mtd, w.sang, linux-arm-kernel, dedekind1

add the GPMI-NAND device for mx23evk board.

Signed-off-by: Huang Shijie <b32955@freescale.com>
---
 arch/arm/mach-mxs/Kconfig        |    1 +
 arch/arm/mach-mxs/mach-mx23evk.c |   36 ++++++++++++++++++++++++++++++++++++
 2 files changed, 37 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-mxs/Kconfig b/arch/arm/mach-mxs/Kconfig
index 4cd0231..8bf202a 100644
--- a/arch/arm/mach-mxs/Kconfig
+++ b/arch/arm/mach-mxs/Kconfig
@@ -32,6 +32,7 @@ config MACH_MX23EVK
 	select SOC_IMX23
 	select MXS_HAVE_AMBA_DUART
 	select MXS_HAVE_PLATFORM_AUART
+	select MXS_HAVE_PLATFORM_GPMI_NAND
 	select MXS_HAVE_PLATFORM_MXS_MMC
 	select MXS_HAVE_PLATFORM_MXSFB
 	help
diff --git a/arch/arm/mach-mxs/mach-mx23evk.c b/arch/arm/mach-mxs/mach-mx23evk.c
index 3c2de33..d55ee6f 100644
--- a/arch/arm/mach-mxs/mach-mx23evk.c
+++ b/arch/arm/mach-mxs/mach-mx23evk.c
@@ -107,6 +107,41 @@ static const iomux_cfg_t mx23evk_pads[] __initconst = {
 		(MXS_PAD_4MA | MXS_PAD_3V3 | MXS_PAD_NOPULL),
 };
 
+/* gpmi-nand */
+static iomux_cfg_t mx23evk_gpmi_nand_pads[] = {
+	MX23_PAD_GPMI_D00__GPMI_D00 | MXS_PAD_CTRL,
+	MX23_PAD_GPMI_D01__GPMI_D01 | MXS_PAD_CTRL,
+	MX23_PAD_GPMI_D02__GPMI_D02 | MXS_PAD_CTRL,
+	MX23_PAD_GPMI_D03__GPMI_D03 | MXS_PAD_CTRL,
+	MX23_PAD_GPMI_D04__GPMI_D04 | MXS_PAD_CTRL,
+	MX23_PAD_GPMI_D05__GPMI_D05 | MXS_PAD_CTRL,
+	MX23_PAD_GPMI_D06__GPMI_D06 | MXS_PAD_CTRL,
+	MX23_PAD_GPMI_D07__GPMI_D07 | MXS_PAD_CTRL,
+	MX23_PAD_GPMI_CLE__GPMI_CLE | MXS_PAD_CTRL,
+	MX23_PAD_GPMI_ALE__GPMI_ALE | MXS_PAD_CTRL,
+	MX23_PAD_GPMI_WPN__GPMI_WPN | MXS_PAD_CTRL_12MA,
+	MX23_PAD_GPMI_WRN__GPMI_WRN | MXS_PAD_CTRL_12MA,
+	MX23_PAD_GPMI_RDN__GPMI_RDN | MXS_PAD_CTRL_12MA,
+	MX23_PAD_GPMI_RDY0__GPMI_RDY0 | MXS_PAD_CTRL,
+	MX23_PAD_GPMI_RDY1__GPMI_RDY1 | MXS_PAD_CTRL,
+	MX23_PAD_GPMI_CE0N__GPMI_CE0N | MXS_PAD_CTRL,
+	MX23_PAD_GPMI_CE1N__GPMI_CE1N | MXS_PAD_CTRL,
+};
+
+static int mx23evk_gpmi_nand_platform_init(void)
+{
+	return mxs_iomux_setup_multiple_pads(mx23evk_gpmi_nand_pads,
+				ARRAY_SIZE(mx23evk_gpmi_nand_pads));
+}
+
+static const
+struct gpmi_nand_platform_data mx23evk_gpmi_nand_data __initconst = {
+	.platform_init		= mx23evk_gpmi_nand_platform_init,
+	.min_prop_delay_in_ns	= 5,
+	.max_prop_delay_in_ns	= 9,
+	.max_chip_count		= 1,
+};
+
 /* mxsfb (lcdif) */
 static struct fb_videomode mx23evk_video_modes[] = {
 	{
@@ -166,6 +201,7 @@ static void __init mx23evk_init(void)
 	else
 		gpio_set_value(MX23EVK_BL_ENABLE, 1);
 
+	mx23_add_gpmi_nand(&mx23evk_gpmi_nand_data);
 	mx23_add_mxsfb(&mx23evk_mxsfb_pdata);
 }
 
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [PATCH v8 3/4] ARM: mxs/mx23evk: add GPMI-NAND device
@ 2011-08-24  7:07   ` Huang Shijie
  0 siblings, 0 replies; 46+ messages in thread
From: Huang Shijie @ 2011-08-24  7:07 UTC (permalink / raw)
  To: linux-arm-kernel

add the GPMI-NAND device for mx23evk board.

Signed-off-by: Huang Shijie <b32955@freescale.com>
---
 arch/arm/mach-mxs/Kconfig        |    1 +
 arch/arm/mach-mxs/mach-mx23evk.c |   36 ++++++++++++++++++++++++++++++++++++
 2 files changed, 37 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-mxs/Kconfig b/arch/arm/mach-mxs/Kconfig
index 4cd0231..8bf202a 100644
--- a/arch/arm/mach-mxs/Kconfig
+++ b/arch/arm/mach-mxs/Kconfig
@@ -32,6 +32,7 @@ config MACH_MX23EVK
 	select SOC_IMX23
 	select MXS_HAVE_AMBA_DUART
 	select MXS_HAVE_PLATFORM_AUART
+	select MXS_HAVE_PLATFORM_GPMI_NAND
 	select MXS_HAVE_PLATFORM_MXS_MMC
 	select MXS_HAVE_PLATFORM_MXSFB
 	help
diff --git a/arch/arm/mach-mxs/mach-mx23evk.c b/arch/arm/mach-mxs/mach-mx23evk.c
index 3c2de33..d55ee6f 100644
--- a/arch/arm/mach-mxs/mach-mx23evk.c
+++ b/arch/arm/mach-mxs/mach-mx23evk.c
@@ -107,6 +107,41 @@ static const iomux_cfg_t mx23evk_pads[] __initconst = {
 		(MXS_PAD_4MA | MXS_PAD_3V3 | MXS_PAD_NOPULL),
 };
 
+/* gpmi-nand */
+static iomux_cfg_t mx23evk_gpmi_nand_pads[] = {
+	MX23_PAD_GPMI_D00__GPMI_D00 | MXS_PAD_CTRL,
+	MX23_PAD_GPMI_D01__GPMI_D01 | MXS_PAD_CTRL,
+	MX23_PAD_GPMI_D02__GPMI_D02 | MXS_PAD_CTRL,
+	MX23_PAD_GPMI_D03__GPMI_D03 | MXS_PAD_CTRL,
+	MX23_PAD_GPMI_D04__GPMI_D04 | MXS_PAD_CTRL,
+	MX23_PAD_GPMI_D05__GPMI_D05 | MXS_PAD_CTRL,
+	MX23_PAD_GPMI_D06__GPMI_D06 | MXS_PAD_CTRL,
+	MX23_PAD_GPMI_D07__GPMI_D07 | MXS_PAD_CTRL,
+	MX23_PAD_GPMI_CLE__GPMI_CLE | MXS_PAD_CTRL,
+	MX23_PAD_GPMI_ALE__GPMI_ALE | MXS_PAD_CTRL,
+	MX23_PAD_GPMI_WPN__GPMI_WPN | MXS_PAD_CTRL_12MA,
+	MX23_PAD_GPMI_WRN__GPMI_WRN | MXS_PAD_CTRL_12MA,
+	MX23_PAD_GPMI_RDN__GPMI_RDN | MXS_PAD_CTRL_12MA,
+	MX23_PAD_GPMI_RDY0__GPMI_RDY0 | MXS_PAD_CTRL,
+	MX23_PAD_GPMI_RDY1__GPMI_RDY1 | MXS_PAD_CTRL,
+	MX23_PAD_GPMI_CE0N__GPMI_CE0N | MXS_PAD_CTRL,
+	MX23_PAD_GPMI_CE1N__GPMI_CE1N | MXS_PAD_CTRL,
+};
+
+static int mx23evk_gpmi_nand_platform_init(void)
+{
+	return mxs_iomux_setup_multiple_pads(mx23evk_gpmi_nand_pads,
+				ARRAY_SIZE(mx23evk_gpmi_nand_pads));
+}
+
+static const
+struct gpmi_nand_platform_data mx23evk_gpmi_nand_data __initconst = {
+	.platform_init		= mx23evk_gpmi_nand_platform_init,
+	.min_prop_delay_in_ns	= 5,
+	.max_prop_delay_in_ns	= 9,
+	.max_chip_count		= 1,
+};
+
 /* mxsfb (lcdif) */
 static struct fb_videomode mx23evk_video_modes[] = {
 	{
@@ -166,6 +201,7 @@ static void __init mx23evk_init(void)
 	else
 		gpio_set_value(MX23EVK_BL_ENABLE, 1);
 
+	mx23_add_gpmi_nand(&mx23evk_gpmi_nand_data);
 	mx23_add_mxsfb(&mx23evk_mxsfb_pdata);
 }
 
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [PATCH v8 4/4] ARM: mxs/mx28evk: add GPMI-NAND device
  2011-08-24  7:07 ` Huang Shijie
@ 2011-08-24  7:07   ` Huang Shijie
  -1 siblings, 0 replies; 46+ messages in thread
From: Huang Shijie @ 2011-08-24  7:07 UTC (permalink / raw)
  To: s.hauer; +Cc: Huang Shijie, linux-mtd, w.sang, linux-arm-kernel, dedekind1

add GPMI-NAND device for mx28evk board.

Signed-off-by: Huang Shijie <b32955@freescale.com>
---
 arch/arm/mach-mxs/Kconfig        |    1 +
 arch/arm/mach-mxs/mach-mx28evk.c |   36 ++++++++++++++++++++++++++++++++++++
 2 files changed, 37 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-mxs/Kconfig b/arch/arm/mach-mxs/Kconfig
index 8bf202a..f76710e 100644
--- a/arch/arm/mach-mxs/Kconfig
+++ b/arch/arm/mach-mxs/Kconfig
@@ -47,6 +47,7 @@ config MACH_MX28EVK
 	select MXS_HAVE_PLATFORM_AUART
 	select MXS_HAVE_PLATFORM_FEC
 	select MXS_HAVE_PLATFORM_FLEXCAN
+	select MXS_HAVE_PLATFORM_GPMI_NAND
 	select MXS_HAVE_PLATFORM_MXS_MMC
 	select MXS_HAVE_PLATFORM_MXSFB
 	select MXS_OCOTP
diff --git a/arch/arm/mach-mxs/mach-mx28evk.c b/arch/arm/mach-mxs/mach-mx28evk.c
index eaaf6ff..d26bc22 100644
--- a/arch/arm/mach-mxs/mach-mx28evk.c
+++ b/arch/arm/mach-mxs/mach-mx28evk.c
@@ -314,6 +314,41 @@ static const struct flexcan_platform_data
 	}
 };
 
+/* gpmi-nand */
+static iomux_cfg_t mx28evk_gpmi_nand_pads[] = {
+	MX28_PAD_GPMI_D00__GPMI_D0 | MXS_PAD_CTRL,
+	MX28_PAD_GPMI_D01__GPMI_D1 | MXS_PAD_CTRL,
+	MX28_PAD_GPMI_D02__GPMI_D2 | MXS_PAD_CTRL,
+	MX28_PAD_GPMI_D03__GPMI_D3 | MXS_PAD_CTRL,
+	MX28_PAD_GPMI_D04__GPMI_D4 | MXS_PAD_CTRL,
+	MX28_PAD_GPMI_D05__GPMI_D5 | MXS_PAD_CTRL,
+	MX28_PAD_GPMI_D06__GPMI_D6 | MXS_PAD_CTRL,
+	MX28_PAD_GPMI_D07__GPMI_D7 | MXS_PAD_CTRL,
+	MX28_PAD_GPMI_ALE__GPMI_ALE | MXS_PAD_CTRL,
+	MX28_PAD_GPMI_CLE__GPMI_CLE | MXS_PAD_CTRL,
+	MX28_PAD_GPMI_CE0N__GPMI_CE0N | MXS_PAD_CTRL,
+	MX28_PAD_GPMI_CE1N__GPMI_CE1N | MXS_PAD_CTRL,
+	MX28_PAD_GPMI_RDY0__GPMI_READY0 | MXS_PAD_CTRL,
+	MX28_PAD_GPMI_RDY1__GPMI_READY1 | MXS_PAD_CTRL,
+	MX28_PAD_GPMI_RDN__GPMI_RDN | MXS_PAD_CTRL_12MA,
+	MX28_PAD_GPMI_WRN__GPMI_WRN | MXS_PAD_CTRL_12MA,
+	MX28_PAD_GPMI_RESETN__GPMI_RESETN | MXS_PAD_CTRL_12MA,
+};
+
+static int mx28evk_gpmi_nand_platform_init(void)
+{
+	return mxs_iomux_setup_multiple_pads(mx28evk_gpmi_nand_pads,
+				ARRAY_SIZE(mx28evk_gpmi_nand_pads));
+}
+
+static const struct gpmi_nand_platform_data
+mx28evk_gpmi_nand_data __initconst = {
+	.platform_init		= mx28evk_gpmi_nand_platform_init,
+	.min_prop_delay_in_ns	= 5,
+	.max_prop_delay_in_ns	= 9,
+	.max_chip_count		= 1,
+};
+
 /* mxsfb (lcdif) */
 static struct fb_videomode mx28evk_video_modes[] = {
 	{
@@ -390,6 +425,7 @@ static void __init mx28evk_init(void)
 	else
 		gpio_set_value(MX28EVK_BL_ENABLE, 1);
 
+	mx28_add_gpmi_nand(&mx28evk_gpmi_nand_data);
 	mx28_add_mxsfb(&mx28evk_mxsfb_pdata);
 
 	/* power on mmc slot by writing 0 to the gpio */
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 46+ messages in thread

* [PATCH v8 4/4] ARM: mxs/mx28evk: add GPMI-NAND device
@ 2011-08-24  7:07   ` Huang Shijie
  0 siblings, 0 replies; 46+ messages in thread
From: Huang Shijie @ 2011-08-24  7:07 UTC (permalink / raw)
  To: linux-arm-kernel

add GPMI-NAND device for mx28evk board.

Signed-off-by: Huang Shijie <b32955@freescale.com>
---
 arch/arm/mach-mxs/Kconfig        |    1 +
 arch/arm/mach-mxs/mach-mx28evk.c |   36 ++++++++++++++++++++++++++++++++++++
 2 files changed, 37 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-mxs/Kconfig b/arch/arm/mach-mxs/Kconfig
index 8bf202a..f76710e 100644
--- a/arch/arm/mach-mxs/Kconfig
+++ b/arch/arm/mach-mxs/Kconfig
@@ -47,6 +47,7 @@ config MACH_MX28EVK
 	select MXS_HAVE_PLATFORM_AUART
 	select MXS_HAVE_PLATFORM_FEC
 	select MXS_HAVE_PLATFORM_FLEXCAN
+	select MXS_HAVE_PLATFORM_GPMI_NAND
 	select MXS_HAVE_PLATFORM_MXS_MMC
 	select MXS_HAVE_PLATFORM_MXSFB
 	select MXS_OCOTP
diff --git a/arch/arm/mach-mxs/mach-mx28evk.c b/arch/arm/mach-mxs/mach-mx28evk.c
index eaaf6ff..d26bc22 100644
--- a/arch/arm/mach-mxs/mach-mx28evk.c
+++ b/arch/arm/mach-mxs/mach-mx28evk.c
@@ -314,6 +314,41 @@ static const struct flexcan_platform_data
 	}
 };
 
+/* gpmi-nand */
+static iomux_cfg_t mx28evk_gpmi_nand_pads[] = {
+	MX28_PAD_GPMI_D00__GPMI_D0 | MXS_PAD_CTRL,
+	MX28_PAD_GPMI_D01__GPMI_D1 | MXS_PAD_CTRL,
+	MX28_PAD_GPMI_D02__GPMI_D2 | MXS_PAD_CTRL,
+	MX28_PAD_GPMI_D03__GPMI_D3 | MXS_PAD_CTRL,
+	MX28_PAD_GPMI_D04__GPMI_D4 | MXS_PAD_CTRL,
+	MX28_PAD_GPMI_D05__GPMI_D5 | MXS_PAD_CTRL,
+	MX28_PAD_GPMI_D06__GPMI_D6 | MXS_PAD_CTRL,
+	MX28_PAD_GPMI_D07__GPMI_D7 | MXS_PAD_CTRL,
+	MX28_PAD_GPMI_ALE__GPMI_ALE | MXS_PAD_CTRL,
+	MX28_PAD_GPMI_CLE__GPMI_CLE | MXS_PAD_CTRL,
+	MX28_PAD_GPMI_CE0N__GPMI_CE0N | MXS_PAD_CTRL,
+	MX28_PAD_GPMI_CE1N__GPMI_CE1N | MXS_PAD_CTRL,
+	MX28_PAD_GPMI_RDY0__GPMI_READY0 | MXS_PAD_CTRL,
+	MX28_PAD_GPMI_RDY1__GPMI_READY1 | MXS_PAD_CTRL,
+	MX28_PAD_GPMI_RDN__GPMI_RDN | MXS_PAD_CTRL_12MA,
+	MX28_PAD_GPMI_WRN__GPMI_WRN | MXS_PAD_CTRL_12MA,
+	MX28_PAD_GPMI_RESETN__GPMI_RESETN | MXS_PAD_CTRL_12MA,
+};
+
+static int mx28evk_gpmi_nand_platform_init(void)
+{
+	return mxs_iomux_setup_multiple_pads(mx28evk_gpmi_nand_pads,
+				ARRAY_SIZE(mx28evk_gpmi_nand_pads));
+}
+
+static const struct gpmi_nand_platform_data
+mx28evk_gpmi_nand_data __initconst = {
+	.platform_init		= mx28evk_gpmi_nand_platform_init,
+	.min_prop_delay_in_ns	= 5,
+	.max_prop_delay_in_ns	= 9,
+	.max_chip_count		= 1,
+};
+
 /* mxsfb (lcdif) */
 static struct fb_videomode mx28evk_video_modes[] = {
 	{
@@ -390,6 +425,7 @@ static void __init mx28evk_init(void)
 	else
 		gpio_set_value(MX28EVK_BL_ENABLE, 1);
 
+	mx28_add_gpmi_nand(&mx28evk_gpmi_nand_data);
 	mx28_add_mxsfb(&mx28evk_mxsfb_pdata);
 
 	/* power on mmc slot by writing 0 to the gpio */
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 46+ messages in thread

* Re: [PATCH v8 0/4] add the GPMI-NAND support for imx23/imx28
  2011-08-24  7:07 ` Huang Shijie
@ 2011-08-25 11:37   ` Artem Bityutskiy
  -1 siblings, 0 replies; 46+ messages in thread
From: Artem Bityutskiy @ 2011-08-25 11:37 UTC (permalink / raw)
  To: Huang Shijie; +Cc: s.hauer, linux-mtd, w.sang, linux-arm-kernel

On Wed, 2011-08-24 at 15:07 +0800, Huang Shijie wrote:
> The patch set is based on tag v3.1-rc2 of linus's tree.
> and it can be git-am to Artem's tree:
> 	http://git.infradead.org/users/dedekind/l2-mtd-2.6.git
> 
> The general-purpose media interface(GPMI) controller is a flexible interface
> to up to several NAND flashs.
> 
> The Bose Ray-Choudhury Hocquenghem(BCH) module is a hardware ECC accelerator.
> 
> With the help of BCH, the GPMI controller can choose to do the hardware ECC or
> not.

I thought that this series will go in via an imx sub-tree. If you want
it to go via the mtd tree, we'd need blessing from the imx subtree
maintainer, I think.

-- 
Best Regards,
Artem Bityutskiy

^ permalink raw reply	[flat|nested] 46+ messages in thread

* [PATCH v8 0/4] add the GPMI-NAND support for imx23/imx28
@ 2011-08-25 11:37   ` Artem Bityutskiy
  0 siblings, 0 replies; 46+ messages in thread
From: Artem Bityutskiy @ 2011-08-25 11:37 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, 2011-08-24 at 15:07 +0800, Huang Shijie wrote:
> The patch set is based on tag v3.1-rc2 of linus's tree.
> and it can be git-am to Artem's tree:
> 	http://git.infradead.org/users/dedekind/l2-mtd-2.6.git
> 
> The general-purpose media interface(GPMI) controller is a flexible interface
> to up to several NAND flashs.
> 
> The Bose Ray-Choudhury Hocquenghem(BCH) module is a hardware ECC accelerator.
> 
> With the help of BCH, the GPMI controller can choose to do the hardware ECC or
> not.

I thought that this series will go in via an imx sub-tree. If you want
it to go via the mtd tree, we'd need blessing from the imx subtree
maintainer, I think.

-- 
Best Regards,
Artem Bityutskiy

^ permalink raw reply	[flat|nested] 46+ messages in thread

* Re: [PATCH v8 0/4] add the GPMI-NAND support for imx23/imx28
  2011-08-25 11:37   ` Artem Bityutskiy
@ 2011-08-26  3:28     ` Huang Shijie
  -1 siblings, 0 replies; 46+ messages in thread
From: Huang Shijie @ 2011-08-26  3:28 UTC (permalink / raw)
  To: dedekind1; +Cc: s.hauer, linux-mtd, w.sang, linux-arm-kernel

Hi Sascha:
> On Wed, 2011-08-24 at 15:07 +0800, Huang Shijie wrote:
>> The patch set is based on tag v3.1-rc2 of linus's tree.
>> and it can be git-am to Artem's tree:
>> 	http://git.infradead.org/users/dedekind/l2-mtd-2.6.git
>>
>> The general-purpose media interface(GPMI) controller is a flexible interface
>> to up to several NAND flashs.
>>
>> The Bose Ray-Choudhury Hocquenghem(BCH) module is a hardware ECC accelerator.
>>
>> With the help of BCH, the GPMI controller can choose to do the hardware ECC or
>> not.
> I thought that this series will go in via an imx sub-tree. If you want
> it to go via the mtd tree, we'd need blessing from the imx subtree
> maintainer, I think.
>
Could you accept this patch set? or I have to make some further changes 
about it.

Thanks.

Huang Shijie

^ permalink raw reply	[flat|nested] 46+ messages in thread

* [PATCH v8 0/4] add the GPMI-NAND support for imx23/imx28
@ 2011-08-26  3:28     ` Huang Shijie
  0 siblings, 0 replies; 46+ messages in thread
From: Huang Shijie @ 2011-08-26  3:28 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Sascha:
> On Wed, 2011-08-24 at 15:07 +0800, Huang Shijie wrote:
>> The patch set is based on tag v3.1-rc2 of linus's tree.
>> and it can be git-am to Artem's tree:
>> 	http://git.infradead.org/users/dedekind/l2-mtd-2.6.git
>>
>> The general-purpose media interface(GPMI) controller is a flexible interface
>> to up to several NAND flashs.
>>
>> The Bose Ray-Choudhury Hocquenghem(BCH) module is a hardware ECC accelerator.
>>
>> With the help of BCH, the GPMI controller can choose to do the hardware ECC or
>> not.
> I thought that this series will go in via an imx sub-tree. If you want
> it to go via the mtd tree, we'd need blessing from the imx subtree
> maintainer, I think.
>
Could you accept this patch set? or I have to make some further changes 
about it.

Thanks.

Huang Shijie

^ permalink raw reply	[flat|nested] 46+ messages in thread

* Re: [PATCH v8 0/4] add the GPMI-NAND support for imx23/imx28
  2011-08-26  3:28     ` Huang Shijie
@ 2011-08-26 13:35       ` Koen Beel
  -1 siblings, 0 replies; 46+ messages in thread
From: Koen Beel @ 2011-08-26 13:35 UTC (permalink / raw)
  To: Huang Shijie; +Cc: s.hauer, linux-mtd, w.sang, linux-arm-kernel, dedekind1

Tested-by: Koen Beel <koen.beel@barco.com>

On Fri, Aug 26, 2011 at 5:28 AM, Huang Shijie <b32955@freescale.com> wrote:
> Hi Sascha:
>>
>> On Wed, 2011-08-24 at 15:07 +0800, Huang Shijie wrote:
>>>
>>> The patch set is based on tag v3.1-rc2 of linus's tree.
>>> and it can be git-am to Artem's tree:
>>>        http://git.infradead.org/users/dedekind/l2-mtd-2.6.git
>>>
>>> The general-purpose media interface(GPMI) controller is a flexible
>>> interface
>>> to up to several NAND flashs.
>>>
>>> The Bose Ray-Choudhury Hocquenghem(BCH) module is a hardware ECC
>>> accelerator.
>>>
>>> With the help of BCH, the GPMI controller can choose to do the hardware
>>> ECC or
>>> not.
>>
>> I thought that this series will go in via an imx sub-tree. If you want
>> it to go via the mtd tree, we'd need blessing from the imx subtree
>> maintainer, I think.
>>
> Could you accept this patch set? or I have to make some further changes
> about it.
>
> Thanks.
>
> Huang Shijie
>
>
>
> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/
>

^ permalink raw reply	[flat|nested] 46+ messages in thread

* [PATCH v8 0/4] add the GPMI-NAND support for imx23/imx28
@ 2011-08-26 13:35       ` Koen Beel
  0 siblings, 0 replies; 46+ messages in thread
From: Koen Beel @ 2011-08-26 13:35 UTC (permalink / raw)
  To: linux-arm-kernel

Tested-by: Koen Beel <koen.beel@barco.com>

On Fri, Aug 26, 2011 at 5:28 AM, Huang Shijie <b32955@freescale.com> wrote:
> Hi Sascha:
>>
>> On Wed, 2011-08-24 at 15:07 +0800, Huang Shijie wrote:
>>>
>>> The patch set is based on tag v3.1-rc2 of linus's tree.
>>> and it can be git-am to Artem's tree:
>>> ? ? ? ?http://git.infradead.org/users/dedekind/l2-mtd-2.6.git
>>>
>>> The general-purpose media interface(GPMI) controller is a flexible
>>> interface
>>> to up to several NAND flashs.
>>>
>>> The Bose Ray-Choudhury Hocquenghem(BCH) module is a hardware ECC
>>> accelerator.
>>>
>>> With the help of BCH, the GPMI controller can choose to do the hardware
>>> ECC or
>>> not.
>>
>> I thought that this series will go in via an imx sub-tree. If you want
>> it to go via the mtd tree, we'd need blessing from the imx subtree
>> maintainer, I think.
>>
> Could you accept this patch set? or I have to make some further changes
> about it.
>
> Thanks.
>
> Huang Shijie
>
>
>
> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/
>

^ permalink raw reply	[flat|nested] 46+ messages in thread

* Re: [PATCH v8 0/4] add the GPMI-NAND support for imx23/imx28
  2011-08-24  7:07 ` Huang Shijie
@ 2011-09-16  2:28   ` Huang Shijie
  -1 siblings, 0 replies; 46+ messages in thread
From: Huang Shijie @ 2011-09-16  2:28 UTC (permalink / raw)
  To: Huang Shijie; +Cc: s.hauer, linux-mtd, w.sang, linux-arm-kernel, dedekind1

Hi Sascha:
Is this patch set ok now?

thanks
Huang Shijie
> The patch set is based on tag v3.1-rc2 of linus's tree.
> and it can be git-am to Artem's tree:
> 	http://git.infradead.org/users/dedekind/l2-mtd-2.6.git
>
> The general-purpose media interface(GPMI) controller is a flexible interface
> to up to several NAND flashs.
>
> The Bose Ray-Choudhury Hocquenghem(BCH) module is a hardware ECC accelerator.
>
> With the help of BCH, the GPMI controller can choose to do the hardware ECC or
> not.
>
> v7 --> v8:
> 	[0] add header file to fix compiling error.
>
> v6 --> v7:
> 	[0] rename RES_SIZE to GPMI_NAND_RES_SIZE.
> 	[1] move gpmi-nand.h to `include/linux/mtd/` directory.
> 	[2] remove comment for new pad control.
> 	[3] others
>
> v5 --> v6:
> 	[0] rename `gpmi-nfc` to `gpmi-nand`.
> 	[1] remove ->exit() in structure gpmi_nand_platform_data{}.
> 	[2] drop the macros for the resource's definition of gpmi-nand.
> 	[3] add a new pad control `MXS_PAD_CTRL_12MA`. 
> 	[4] others.
>
> v4 --> v5:
> 	[0] split out the mach code and the machine code.
>
> v3 --> v4:
> 	merge the GPMI-NFC device code to the new branch.
>
> Huang Shijie (4):
>   ARM: mxs: add GPMI-NAND support for imx23/imx28
>   ARM: mxs: add new a pad control
>   ARM: mxs/mx23evk: add GPMI-NAND device
>   ARM: mxs/mx28evk: add GPMI-NAND device
>
>  arch/arm/mach-mxs/Kconfig                       |    2 +
>  arch/arm/mach-mxs/clock-mx23.c                  |    1 +
>  arch/arm/mach-mxs/clock-mx28.c                  |    1 +
>  arch/arm/mach-mxs/devices-mx23.h                |    4 +
>  arch/arm/mach-mxs/devices-mx28.h                |    4 +
>  arch/arm/mach-mxs/devices/Kconfig               |    3 +
>  arch/arm/mach-mxs/devices/Makefile              |    1 +
>  arch/arm/mach-mxs/devices/platform-gpmi-nand.c  |  109 +++++++++++++++++++++++
>  arch/arm/mach-mxs/include/mach/devices-common.h |   10 ++
>  arch/arm/mach-mxs/include/mach/iomux.h          |    1 +
>  arch/arm/mach-mxs/mach-mx23evk.c                |   36 ++++++++
>  arch/arm/mach-mxs/mach-mx28evk.c                |   36 ++++++++
>  include/linux/mtd/gpmi-nand.h                   |   68 ++++++++++++++
>  13 files changed, 276 insertions(+), 0 deletions(-)
>  create mode 100644 arch/arm/mach-mxs/devices/platform-gpmi-nand.c
>  create mode 100644 include/linux/mtd/gpmi-nand.h
>

^ permalink raw reply	[flat|nested] 46+ messages in thread

* [PATCH v8 0/4] add the GPMI-NAND support for imx23/imx28
@ 2011-09-16  2:28   ` Huang Shijie
  0 siblings, 0 replies; 46+ messages in thread
From: Huang Shijie @ 2011-09-16  2:28 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Sascha:
Is this patch set ok now?

thanks
Huang Shijie
> The patch set is based on tag v3.1-rc2 of linus's tree.
> and it can be git-am to Artem's tree:
> 	http://git.infradead.org/users/dedekind/l2-mtd-2.6.git
>
> The general-purpose media interface(GPMI) controller is a flexible interface
> to up to several NAND flashs.
>
> The Bose Ray-Choudhury Hocquenghem(BCH) module is a hardware ECC accelerator.
>
> With the help of BCH, the GPMI controller can choose to do the hardware ECC or
> not.
>
> v7 --> v8:
> 	[0] add header file to fix compiling error.
>
> v6 --> v7:
> 	[0] rename RES_SIZE to GPMI_NAND_RES_SIZE.
> 	[1] move gpmi-nand.h to `include/linux/mtd/` directory.
> 	[2] remove comment for new pad control.
> 	[3] others
>
> v5 --> v6:
> 	[0] rename `gpmi-nfc` to `gpmi-nand`.
> 	[1] remove ->exit() in structure gpmi_nand_platform_data{}.
> 	[2] drop the macros for the resource's definition of gpmi-nand.
> 	[3] add a new pad control `MXS_PAD_CTRL_12MA`. 
> 	[4] others.
>
> v4 --> v5:
> 	[0] split out the mach code and the machine code.
>
> v3 --> v4:
> 	merge the GPMI-NFC device code to the new branch.
>
> Huang Shijie (4):
>   ARM: mxs: add GPMI-NAND support for imx23/imx28
>   ARM: mxs: add new a pad control
>   ARM: mxs/mx23evk: add GPMI-NAND device
>   ARM: mxs/mx28evk: add GPMI-NAND device
>
>  arch/arm/mach-mxs/Kconfig                       |    2 +
>  arch/arm/mach-mxs/clock-mx23.c                  |    1 +
>  arch/arm/mach-mxs/clock-mx28.c                  |    1 +
>  arch/arm/mach-mxs/devices-mx23.h                |    4 +
>  arch/arm/mach-mxs/devices-mx28.h                |    4 +
>  arch/arm/mach-mxs/devices/Kconfig               |    3 +
>  arch/arm/mach-mxs/devices/Makefile              |    1 +
>  arch/arm/mach-mxs/devices/platform-gpmi-nand.c  |  109 +++++++++++++++++++++++
>  arch/arm/mach-mxs/include/mach/devices-common.h |   10 ++
>  arch/arm/mach-mxs/include/mach/iomux.h          |    1 +
>  arch/arm/mach-mxs/mach-mx23evk.c                |   36 ++++++++
>  arch/arm/mach-mxs/mach-mx28evk.c                |   36 ++++++++
>  include/linux/mtd/gpmi-nand.h                   |   68 ++++++++++++++
>  13 files changed, 276 insertions(+), 0 deletions(-)
>  create mode 100644 arch/arm/mach-mxs/devices/platform-gpmi-nand.c
>  create mode 100644 include/linux/mtd/gpmi-nand.h
>

^ permalink raw reply	[flat|nested] 46+ messages in thread

* Re: [PATCH v8 4/4] ARM: mxs/mx28evk: add GPMI-NAND device
  2011-08-24  7:07   ` Huang Shijie
@ 2012-04-05  0:44     ` Fabio Estevam
  -1 siblings, 0 replies; 46+ messages in thread
From: Fabio Estevam @ 2012-04-05  0:44 UTC (permalink / raw)
  To: Huang Shijie; +Cc: s.hauer, linux-mtd, w.sang, linux-arm-kernel, dedekind1

Hi Shawn,

On Wed, Aug 24, 2011 at 4:07 AM, Huang Shijie <b32955@freescale.com> wrote:
> add GPMI-NAND device for mx28evk board.
>
> Signed-off-by: Huang Shijie <b32955@freescale.com>

Can this one be applied now?

^ permalink raw reply	[flat|nested] 46+ messages in thread

* [PATCH v8 4/4] ARM: mxs/mx28evk: add GPMI-NAND device
@ 2012-04-05  0:44     ` Fabio Estevam
  0 siblings, 0 replies; 46+ messages in thread
From: Fabio Estevam @ 2012-04-05  0:44 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Shawn,

On Wed, Aug 24, 2011 at 4:07 AM, Huang Shijie <b32955@freescale.com> wrote:
> add GPMI-NAND device for mx28evk board.
>
> Signed-off-by: Huang Shijie <b32955@freescale.com>

Can this one be applied now?

^ permalink raw reply	[flat|nested] 46+ messages in thread

* Re: [PATCH v8 4/4] ARM: mxs/mx28evk: add GPMI-NAND device
  2012-04-05  0:44     ` Fabio Estevam
@ 2012-04-05  0:45       ` Fabio Estevam
  -1 siblings, 0 replies; 46+ messages in thread
From: Fabio Estevam @ 2012-04-05  0:45 UTC (permalink / raw)
  To: Huang Shijie, Shawn Guo
  Cc: s.hauer, linux-mtd, w.sang, linux-arm-kernel, dedekind1

On Wed, Apr 4, 2012 at 9:44 PM, Fabio Estevam <festevam@gmail.com> wrote:
> Hi Shawn,
>
> On Wed, Aug 24, 2011 at 4:07 AM, Huang Shijie <b32955@freescale.com> wrote:
>> add GPMI-NAND device for mx28evk board.
>>
>> Signed-off-by: Huang Shijie <b32955@freescale.com>
>
> Can this one be applied now?

Adding Shawn.

^ permalink raw reply	[flat|nested] 46+ messages in thread

* [PATCH v8 4/4] ARM: mxs/mx28evk: add GPMI-NAND device
@ 2012-04-05  0:45       ` Fabio Estevam
  0 siblings, 0 replies; 46+ messages in thread
From: Fabio Estevam @ 2012-04-05  0:45 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Apr 4, 2012 at 9:44 PM, Fabio Estevam <festevam@gmail.com> wrote:
> Hi Shawn,
>
> On Wed, Aug 24, 2011 at 4:07 AM, Huang Shijie <b32955@freescale.com> wrote:
>> add GPMI-NAND device for mx28evk board.
>>
>> Signed-off-by: Huang Shijie <b32955@freescale.com>
>
> Can this one be applied now?

Adding Shawn.

^ permalink raw reply	[flat|nested] 46+ messages in thread

* Re: [PATCH v8 4/4] ARM: mxs/mx28evk: add GPMI-NAND device
  2012-04-05  0:44     ` Fabio Estevam
@ 2012-04-05  1:08       ` Shawn Guo
  -1 siblings, 0 replies; 46+ messages in thread
From: Shawn Guo @ 2012-04-05  1:08 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: dedekind1, s.hauer, w.sang, Huang Shijie, linux-mtd, linux-arm-kernel

On Wed, Apr 04, 2012 at 09:44:52PM -0300, Fabio Estevam wrote:
> Hi Shawn,
> 
> On Wed, Aug 24, 2011 at 4:07 AM, Huang Shijie <b32955@freescale.com> wrote:
> > add GPMI-NAND device for mx28evk board.
> >
> > Signed-off-by: Huang Shijie <b32955@freescale.com>
> 
> Can this one be applied now?
> 
No.

1) The pin confliction between gpmi and lcdif remains.
2) I intend to freeze the board file updates, as we are on the way to
   device tree.

So instead of patching board file, please contribute to device tree
conversion.

-- 
Regards,
Shawn

^ permalink raw reply	[flat|nested] 46+ messages in thread

* [PATCH v8 4/4] ARM: mxs/mx28evk: add GPMI-NAND device
@ 2012-04-05  1:08       ` Shawn Guo
  0 siblings, 0 replies; 46+ messages in thread
From: Shawn Guo @ 2012-04-05  1:08 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Apr 04, 2012 at 09:44:52PM -0300, Fabio Estevam wrote:
> Hi Shawn,
> 
> On Wed, Aug 24, 2011 at 4:07 AM, Huang Shijie <b32955@freescale.com> wrote:
> > add GPMI-NAND device for mx28evk board.
> >
> > Signed-off-by: Huang Shijie <b32955@freescale.com>
> 
> Can this one be applied now?
> 
No.

1) The pin confliction between gpmi and lcdif remains.
2) I intend to freeze the board file updates, as we are on the way to
   device tree.

So instead of patching board file, please contribute to device tree
conversion.

-- 
Regards,
Shawn

^ permalink raw reply	[flat|nested] 46+ messages in thread

* Re: [PATCH v8 4/4] ARM: mxs/mx28evk: add GPMI-NAND device
  2012-04-05  1:08       ` Shawn Guo
@ 2012-04-05  1:19         ` Fabio Estevam
  -1 siblings, 0 replies; 46+ messages in thread
From: Fabio Estevam @ 2012-04-05  1:19 UTC (permalink / raw)
  To: Shawn Guo
  Cc: dedekind1, s.hauer, w.sang, Huang Shijie, linux-mtd, linux-arm-kernel

On Wed, Apr 4, 2012 at 10:08 PM, Shawn Guo <shawn.guo@linaro.org> wrote:

> No.
>
> 1) The pin confliction between gpmi and lcdif remains.
> 2) I intend to freeze the board file updates, as we are on the way to
>   device tree.
>
> So instead of patching board file, please contribute to device tree
> conversion.

I don't see mx28 dts support in mainline yet.

Does it mean my spi patches will not be accepted as well?

^ permalink raw reply	[flat|nested] 46+ messages in thread

* [PATCH v8 4/4] ARM: mxs/mx28evk: add GPMI-NAND device
@ 2012-04-05  1:19         ` Fabio Estevam
  0 siblings, 0 replies; 46+ messages in thread
From: Fabio Estevam @ 2012-04-05  1:19 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Apr 4, 2012 at 10:08 PM, Shawn Guo <shawn.guo@linaro.org> wrote:

> No.
>
> 1) The pin confliction between gpmi and lcdif remains.
> 2) I intend to freeze the board file updates, as we are on the way to
> ? device tree.
>
> So instead of patching board file, please contribute to device tree
> conversion.

I don't see mx28 dts support in mainline yet.

Does it mean my spi patches will not be accepted as well?

^ permalink raw reply	[flat|nested] 46+ messages in thread

* Re: [PATCH v8 4/4] ARM: mxs/mx28evk: add GPMI-NAND device
  2012-04-05  1:19         ` Fabio Estevam
@ 2012-04-05  1:23           ` Shawn Guo
  -1 siblings, 0 replies; 46+ messages in thread
From: Shawn Guo @ 2012-04-05  1:23 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: dedekind1, s.hauer, w.sang, Huang Shijie, linux-mtd, linux-arm-kernel

On Wed, Apr 04, 2012 at 10:19:25PM -0300, Fabio Estevam wrote:
> On Wed, Apr 4, 2012 at 10:08 PM, Shawn Guo <shawn.guo@linaro.org> wrote:
> 
> > No.
> >
> > 1) The pin confliction between gpmi and lcdif remains.
> > 2) I intend to freeze the board file updates, as we are on the way to
> >   device tree.
> >
> > So instead of patching board file, please contribute to device tree
> > conversion.
> 
> I don't see mx28 dts support in mainline yet.
> 
I will be soon on arm-soc and in turn linux-next.

> Does it mean my spi patches will not be accepted as well?

Yes and sorry.

-- 
Regards,
Shawn

^ permalink raw reply	[flat|nested] 46+ messages in thread

* [PATCH v8 4/4] ARM: mxs/mx28evk: add GPMI-NAND device
@ 2012-04-05  1:23           ` Shawn Guo
  0 siblings, 0 replies; 46+ messages in thread
From: Shawn Guo @ 2012-04-05  1:23 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Apr 04, 2012 at 10:19:25PM -0300, Fabio Estevam wrote:
> On Wed, Apr 4, 2012 at 10:08 PM, Shawn Guo <shawn.guo@linaro.org> wrote:
> 
> > No.
> >
> > 1) The pin confliction between gpmi and lcdif remains.
> > 2) I intend to freeze the board file updates, as we are on the way to
> > ? device tree.
> >
> > So instead of patching board file, please contribute to device tree
> > conversion.
> 
> I don't see mx28 dts support in mainline yet.
> 
I will be soon on arm-soc and in turn linux-next.

> Does it mean my spi patches will not be accepted as well?

Yes and sorry.

-- 
Regards,
Shawn

^ permalink raw reply	[flat|nested] 46+ messages in thread

* Re: [PATCH v8 4/4] ARM: mxs/mx28evk: add GPMI-NAND device
  2012-04-05  1:23           ` Shawn Guo
@ 2012-04-05 16:12             ` Fabio Estevam
  -1 siblings, 0 replies; 46+ messages in thread
From: Fabio Estevam @ 2012-04-05 16:12 UTC (permalink / raw)
  To: Shawn Guo
  Cc: dedekind1, s.hauer, w.sang, Huang Shijie, linux-mtd, linux-arm-kernel

On Wed, Apr 4, 2012 at 10:23 PM, Shawn Guo <shawn.guo@linaro.org> wrote:

>> I don't see mx28 dts support in mainline yet.
>>
> I will be soon on arm-soc and in turn linux-next.

I will be glad to help on the conversion of mxs into dt.

However, I think it is a bit early to block acceptance of non-DT code
for mxs especially because there is no mx28 nor mx28evk in mainline
yet.

^ permalink raw reply	[flat|nested] 46+ messages in thread

* [PATCH v8 4/4] ARM: mxs/mx28evk: add GPMI-NAND device
@ 2012-04-05 16:12             ` Fabio Estevam
  0 siblings, 0 replies; 46+ messages in thread
From: Fabio Estevam @ 2012-04-05 16:12 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Apr 4, 2012 at 10:23 PM, Shawn Guo <shawn.guo@linaro.org> wrote:

>> I don't see mx28 dts support in mainline yet.
>>
> I will be soon on arm-soc and in turn linux-next.

I will be glad to help on the conversion of mxs into dt.

However, I think it is a bit early to block acceptance of non-DT code
for mxs especially because there is no mx28 nor mx28evk in mainline
yet.

^ permalink raw reply	[flat|nested] 46+ messages in thread

* Re: [PATCH v8 4/4] ARM: mxs/mx28evk: add GPMI-NAND device
  2012-04-05 16:12             ` Fabio Estevam
@ 2012-04-06  2:31               ` Shawn Guo
  -1 siblings, 0 replies; 46+ messages in thread
From: Shawn Guo @ 2012-04-06  2:31 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: dedekind1, s.hauer, w.sang, Huang Shijie, linux-mtd, linux-arm-kernel

On Thu, Apr 05, 2012 at 01:12:03PM -0300, Fabio Estevam wrote:
...
> However, I think it is a bit early to block acceptance of non-DT code
> for mxs especially because there is no mx28 nor mx28evk in mainline
> yet.

I have to do that to motivate people to add DT support for the drivers
they submit from the beginning.

Also I do not see much point to keep patching board files which are
to be removed.

-- 
Regards,
Shawn

^ permalink raw reply	[flat|nested] 46+ messages in thread

* [PATCH v8 4/4] ARM: mxs/mx28evk: add GPMI-NAND device
@ 2012-04-06  2:31               ` Shawn Guo
  0 siblings, 0 replies; 46+ messages in thread
From: Shawn Guo @ 2012-04-06  2:31 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Apr 05, 2012 at 01:12:03PM -0300, Fabio Estevam wrote:
...
> However, I think it is a bit early to block acceptance of non-DT code
> for mxs especially because there is no mx28 nor mx28evk in mainline
> yet.

I have to do that to motivate people to add DT support for the drivers
they submit from the beginning.

Also I do not see much point to keep patching board files which are
to be removed.

-- 
Regards,
Shawn

^ permalink raw reply	[flat|nested] 46+ messages in thread

* Re: [PATCH v8 4/4] ARM: mxs/mx28evk: add GPMI-NAND device
       [not found]               ` <C7A5B00EFC707A46AB67997D0215216701B5C28A@mx1.grid-net.com>
@ 2012-04-06  3:35                   ` Shawn Guo
  0 siblings, 0 replies; 46+ messages in thread
From: Shawn Guo @ 2012-04-06  3:35 UTC (permalink / raw)
  To: Subodh Nijsure
  Cc: dedekind1, s.hauer, w.sang, Huang Shijie, linux-mtd,
	Fabio Estevam, linux-arm-kernel

On Thu, Apr 05, 2012 at 08:08:52PM -0700, Subodh Nijsure wrote:
> 
> Hello Shawn,
> 
> You also have to consider that folks who are using MX28 based design might be just now shifting from freescale provided 2.6.35 SDK to the latest 3.4-rcX train on their own (my case). To make them wait for 3.5 to get all the iMX driver seems like hard thing to do.
>  
I'm pretty sure that even 3.5 will not have all the imx28 drivers
support.  Also freezing board file update does not block anyone adding
new driver support in any way.  I do not understand what your argument
is.

Please note, the gpmi nand mx28evk board patch was not accept because
it has pin confliction issue to be resolved.

-- 
Regards,
Shawn

^ permalink raw reply	[flat|nested] 46+ messages in thread

* [PATCH v8 4/4] ARM: mxs/mx28evk: add GPMI-NAND device
@ 2012-04-06  3:35                   ` Shawn Guo
  0 siblings, 0 replies; 46+ messages in thread
From: Shawn Guo @ 2012-04-06  3:35 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Apr 05, 2012 at 08:08:52PM -0700, Subodh Nijsure wrote:
> 
> Hello Shawn,
> 
> You also have to consider that folks who are using MX28 based design might be just now shifting from freescale provided 2.6.35 SDK to the latest 3.4-rcX train on their own (my case). To make them wait for 3.5 to get all the iMX driver seems like hard thing to do.
>  
I'm pretty sure that even 3.5 will not have all the imx28 drivers
support.  Also freezing board file update does not block anyone adding
new driver support in any way.  I do not understand what your argument
is.

Please note, the gpmi nand mx28evk board patch was not accept because
it has pin confliction issue to be resolved.

-- 
Regards,
Shawn

^ permalink raw reply	[flat|nested] 46+ messages in thread

* Re: [PATCH v8 4/4] ARM: mxs/mx28evk: add GPMI-NAND device
  2012-04-06  2:31               ` Shawn Guo
@ 2012-04-06  5:49                 ` Fabio Estevam
  -1 siblings, 0 replies; 46+ messages in thread
From: Fabio Estevam @ 2012-04-06  5:49 UTC (permalink / raw)
  To: Shawn Guo
  Cc: dedekind1, s.hauer, w.sang, Huang Shijie, linux-mtd, Sam Gandhi,
	linux-arm-kernel

On Thu, Apr 5, 2012 at 11:31 PM, Shawn Guo <shawn.guo@linaro.org> wrote:

> I have to do that to motivate people to add DT support for the drivers
> they submit from the beginning.

Understand your point for new drivers.

If you take the GPMI driver for example: it has been available for a
long time and there is no board using it in mainline.

So how can people easily test it and find bugs with this driver?
Patching their own trees themselves? Sam Gandhi did extensive tests on
NAND and found some DMA issues with it.

If we could have mx28evk supporting GPMI driver today it would
estimulate people to use it and more issues can be found and fixed.

Waiting for DT support to be in place is just blocking the progress for mx28.

Please note that right now there is no dt support for mx28 in mainline.

If what blocks this patch "ARM: mxs/mx28evk: add GPMI-NAND device" to
be accepted is the pin mux conflict, that would be easy to fix and
Huang could do a v5 if you agree.

> Also I do not see much point to keep patching board files which are
> to be removed.

I understand your point, but again, right now there is no dt support,
so the only mechanism we have to register driver is via board files
for mx28.

So it would be nice if you could still accept patches for mx28 while
mx28 dt does not show up in mainline.

^ permalink raw reply	[flat|nested] 46+ messages in thread

* [PATCH v8 4/4] ARM: mxs/mx28evk: add GPMI-NAND device
@ 2012-04-06  5:49                 ` Fabio Estevam
  0 siblings, 0 replies; 46+ messages in thread
From: Fabio Estevam @ 2012-04-06  5:49 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Apr 5, 2012 at 11:31 PM, Shawn Guo <shawn.guo@linaro.org> wrote:

> I have to do that to motivate people to add DT support for the drivers
> they submit from the beginning.

Understand your point for new drivers.

If you take the GPMI driver for example: it has been available for a
long time and there is no board using it in mainline.

So how can people easily test it and find bugs with this driver?
Patching their own trees themselves? Sam Gandhi did extensive tests on
NAND and found some DMA issues with it.

If we could have mx28evk supporting GPMI driver today it would
estimulate people to use it and more issues can be found and fixed.

Waiting for DT support to be in place is just blocking the progress for mx28.

Please note that right now there is no dt support for mx28 in mainline.

If what blocks this patch "ARM: mxs/mx28evk: add GPMI-NAND device" to
be accepted is the pin mux conflict, that would be easy to fix and
Huang could do a v5 if you agree.

> Also I do not see much point to keep patching board files which are
> to be removed.

I understand your point, but again, right now there is no dt support,
so the only mechanism we have to register driver is via board files
for mx28.

So it would be nice if you could still accept patches for mx28 while
mx28 dt does not show up in mainline.

^ permalink raw reply	[flat|nested] 46+ messages in thread

* Re: [PATCH v8 4/4] ARM: mxs/mx28evk: add GPMI-NAND device
  2012-04-06  5:49                 ` Fabio Estevam
@ 2012-04-06  6:53                   ` Shawn Guo
  -1 siblings, 0 replies; 46+ messages in thread
From: Shawn Guo @ 2012-04-06  6:53 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: dedekind1, s.hauer, w.sang, Huang Shijie, linux-mtd, Sam Gandhi,
	linux-arm-kernel

On Fri, Apr 06, 2012 at 02:49:05AM -0300, Fabio Estevam wrote:
> On Thu, Apr 5, 2012 at 11:31 PM, Shawn Guo <shawn.guo@linaro.org> wrote:
> 
> > I have to do that to motivate people to add DT support for the drivers
> > they submit from the beginning.
> 
> Understand your point for new drivers.
> 
> If you take the GPMI driver for example: it has been available for a
> long time and there is no board using it in mainline.
> 
> So how can people easily test it and find bugs with this driver?
> Patching their own trees themselves? Sam Gandhi did extensive tests on
> NAND and found some DMA issues with it.
> 
Look, people can still test and find issue with no board in mainline
using it.

> If we could have mx28evk supporting GPMI driver today it would
> estimulate people to use it and more issues can be found and fixed.
> 
> Waiting for DT support to be in place is just blocking the progress for mx28.
> 
Please tell me what are exactly being blocked there.

> Please note that right now there is no dt support for mx28 in mainline.
> 
There are still no spi-mxs driver in mainline, why are you sending me
spi board file patches?

> If what blocks this patch "ARM: mxs/mx28evk: add GPMI-NAND device" to
> be accepted is the pin mux conflict, that would be easy to fix and
> Huang could do a v5 if you agree.
> 
We had the discussion and agreed that migrating to pinctrl subsystem is
the right solution.  I will be more than happy to accept if someone
send me mxs pinctrl support rather than any "easy" fix.

> > Also I do not see much point to keep patching board files which are
> > to be removed.
> 
> I understand your point, but again, right now there is no dt support,
> so the only mechanism we have to register driver is via board files
> for mx28.
> 
> So it would be nice if you could still accept patches for mx28 while
> mx28 dt does not show up in mainline.

I could accept your spi board file patch when spi-mxs driver hit
mainline while mx28 dt does not.

-- 
Regards,
Shawn

^ permalink raw reply	[flat|nested] 46+ messages in thread

* [PATCH v8 4/4] ARM: mxs/mx28evk: add GPMI-NAND device
@ 2012-04-06  6:53                   ` Shawn Guo
  0 siblings, 0 replies; 46+ messages in thread
From: Shawn Guo @ 2012-04-06  6:53 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Apr 06, 2012 at 02:49:05AM -0300, Fabio Estevam wrote:
> On Thu, Apr 5, 2012 at 11:31 PM, Shawn Guo <shawn.guo@linaro.org> wrote:
> 
> > I have to do that to motivate people to add DT support for the drivers
> > they submit from the beginning.
> 
> Understand your point for new drivers.
> 
> If you take the GPMI driver for example: it has been available for a
> long time and there is no board using it in mainline.
> 
> So how can people easily test it and find bugs with this driver?
> Patching their own trees themselves? Sam Gandhi did extensive tests on
> NAND and found some DMA issues with it.
> 
Look, people can still test and find issue with no board in mainline
using it.

> If we could have mx28evk supporting GPMI driver today it would
> estimulate people to use it and more issues can be found and fixed.
> 
> Waiting for DT support to be in place is just blocking the progress for mx28.
> 
Please tell me what are exactly being blocked there.

> Please note that right now there is no dt support for mx28 in mainline.
> 
There are still no spi-mxs driver in mainline, why are you sending me
spi board file patches?

> If what blocks this patch "ARM: mxs/mx28evk: add GPMI-NAND device" to
> be accepted is the pin mux conflict, that would be easy to fix and
> Huang could do a v5 if you agree.
> 
We had the discussion and agreed that migrating to pinctrl subsystem is
the right solution.  I will be more than happy to accept if someone
send me mxs pinctrl support rather than any "easy" fix.

> > Also I do not see much point to keep patching board files which are
> > to be removed.
> 
> I understand your point, but again, right now there is no dt support,
> so the only mechanism we have to register driver is via board files
> for mx28.
> 
> So it would be nice if you could still accept patches for mx28 while
> mx28 dt does not show up in mainline.

I could accept your spi board file patch when spi-mxs driver hit
mainline while mx28 dt does not.

-- 
Regards,
Shawn

^ permalink raw reply	[flat|nested] 46+ messages in thread

* Re: [PATCH v8 4/4] ARM: mxs/mx28evk: add GPMI-NAND device
  2012-04-06  6:53                   ` Shawn Guo
@ 2012-04-06 13:16                     ` Fabio Estevam
  -1 siblings, 0 replies; 46+ messages in thread
From: Fabio Estevam @ 2012-04-06 13:16 UTC (permalink / raw)
  To: Shawn Guo
  Cc: dedekind1, s.hauer, w.sang, Huang Shijie, linux-mtd, Sam Gandhi,
	linux-arm-kernel

On Fri, Apr 6, 2012 at 3:53 AM, Shawn Guo <shawn.guo@linaro.org> wrote:

> Look, people can still test and find issue with no board in mainline
> using it.

Sure they can, then you need to assume that everyone who uses the
kernel is a kernel developer, which is not the case.

Please think on a user's perspective too, where people want just to
get the kernel from kernel.org and use it without doing any hacks to
it.

>> If we could have mx28evk supporting GPMI driver today it would
>> estimulate people to use it and more issues can be found and fixed.
>>
>> Waiting for DT support to be in place is just blocking the progress for mx28.
>>
> Please tell me what are exactly being blocked there.

The whole point of this discussion started when you stated the reasons
for not applying this patch of the thread:

"1) The pin confliction between gpmi and lcdif remains.
2) I intend to freeze the board file updates, as we are on the way to
  device tree."

1) is easily understood and can be fixed

2) is what we have been discussing.

So not accepting patches to mx28 board files while mx28 dt is not in
place will at least block: GPMI and SPI for mx28.

>> Please note that right now there is no dt support for mx28 in mainline.
>
> There are still no spi-mxs driver in mainline, why are you sending me
> spi board file patches?

I have it locally and I was ready to submit it till I read this
thread. I haven't made the mxs spi driver dt aware.

Since there is no dt support for mx28 yet, I cannot submit it now, so
this will have to wait.

It is like the "chicken-and-egg problem".

> I could accept your spi board file patch when spi-mxs driver hit
> mainline while mx28 dt does not.

Excellent, that's good news and we come to an agreement  :-) Thanks!

^ permalink raw reply	[flat|nested] 46+ messages in thread

* [PATCH v8 4/4] ARM: mxs/mx28evk: add GPMI-NAND device
@ 2012-04-06 13:16                     ` Fabio Estevam
  0 siblings, 0 replies; 46+ messages in thread
From: Fabio Estevam @ 2012-04-06 13:16 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Apr 6, 2012 at 3:53 AM, Shawn Guo <shawn.guo@linaro.org> wrote:

> Look, people can still test and find issue with no board in mainline
> using it.

Sure they can, then you need to assume that everyone who uses the
kernel is a kernel developer, which is not the case.

Please think on a user's perspective too, where people want just to
get the kernel from kernel.org and use it without doing any hacks to
it.

>> If we could have mx28evk supporting GPMI driver today it would
>> estimulate people to use it and more issues can be found and fixed.
>>
>> Waiting for DT support to be in place is just blocking the progress for mx28.
>>
> Please tell me what are exactly being blocked there.

The whole point of this discussion started when you stated the reasons
for not applying this patch of the thread:

"1) The pin confliction between gpmi and lcdif remains.
2) I intend to freeze the board file updates, as we are on the way to
  device tree."

1) is easily understood and can be fixed

2) is what we have been discussing.

So not accepting patches to mx28 board files while mx28 dt is not in
place will at least block: GPMI and SPI for mx28.

>> Please note that right now there is no dt support for mx28 in mainline.
>
> There are still no spi-mxs driver in mainline, why are you sending me
> spi board file patches?

I have it locally and I was ready to submit it till I read this
thread. I haven't made the mxs spi driver dt aware.

Since there is no dt support for mx28 yet, I cannot submit it now, so
this will have to wait.

It is like the "chicken-and-egg problem".

> I could accept your spi board file patch when spi-mxs driver hit
> mainline while mx28 dt does not.

Excellent, that's good news and we come to an agreement  :-) Thanks!

^ permalink raw reply	[flat|nested] 46+ messages in thread

* Re: [PATCH v8 4/4] ARM: mxs/mx28evk: add GPMI-NAND device
  2012-04-06 13:16                     ` Fabio Estevam
@ 2012-04-06 13:46                       ` Shawn Guo
  -1 siblings, 0 replies; 46+ messages in thread
From: Shawn Guo @ 2012-04-06 13:46 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: dedekind1, s.hauer, w.sang, Huang Shijie, linux-mtd, Sam Gandhi,
	linux-arm-kernel

On Fri, Apr 06, 2012 at 10:16:48AM -0300, Fabio Estevam wrote:
> On Fri, Apr 6, 2012 at 3:53 AM, Shawn Guo <shawn.guo@linaro.org> wrote:
...
> > I could accept your spi board file patch when spi-mxs driver hit
> > mainline while mx28 dt does not.
> 
> Excellent, that's good news and we come to an agreement  :-) Thanks!

I'm pretty sure that imx28 dt patch from Dong Aisheng will hit mainline
with v3.5-rc1, which could be the earliest time for spi-mxs to hit
mainline.  In that case, I do not have any reason to take your board
file patch from there, so what's point of the while argument?

-- 
Regards,
Shawn

^ permalink raw reply	[flat|nested] 46+ messages in thread

* [PATCH v8 4/4] ARM: mxs/mx28evk: add GPMI-NAND device
@ 2012-04-06 13:46                       ` Shawn Guo
  0 siblings, 0 replies; 46+ messages in thread
From: Shawn Guo @ 2012-04-06 13:46 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Apr 06, 2012 at 10:16:48AM -0300, Fabio Estevam wrote:
> On Fri, Apr 6, 2012 at 3:53 AM, Shawn Guo <shawn.guo@linaro.org> wrote:
...
> > I could accept your spi board file patch when spi-mxs driver hit
> > mainline while mx28 dt does not.
> 
> Excellent, that's good news and we come to an agreement  :-) Thanks!

I'm pretty sure that imx28 dt patch from Dong Aisheng will hit mainline
with v3.5-rc1, which could be the earliest time for spi-mxs to hit
mainline.  In that case, I do not have any reason to take your board
file patch from there, so what's point of the while argument?

-- 
Regards,
Shawn

^ permalink raw reply	[flat|nested] 46+ messages in thread

* Re: [PATCH v8 4/4] ARM: mxs/mx28evk: add GPMI-NAND device
  2012-04-06 13:46                       ` Shawn Guo
@ 2012-04-06 13:56                         ` Fabio Estevam
  -1 siblings, 0 replies; 46+ messages in thread
From: Fabio Estevam @ 2012-04-06 13:56 UTC (permalink / raw)
  To: Shawn Guo
  Cc: dedekind1, s.hauer, w.sang, Huang Shijie, linux-mtd, Sam Gandhi,
	linux-arm-kernel

On Fri, Apr 6, 2012 at 10:46 AM, Shawn Guo <shawn.guo@linaro.org> wrote:

> I'm pretty sure that imx28 dt patch from Dong Aisheng will hit mainline
> with v3.5-rc1, which could be the earliest time for spi-mxs to hit
> mainline.  In that case, I do not have any reason to take your board
> file patch from there, so what's point of the while argument?

Ok, will submit the mxs spi driver (non-dt aware) next week when I
come back to the office.

You can drop all of the arch mxs spi patches I sent you

^ permalink raw reply	[flat|nested] 46+ messages in thread

* [PATCH v8 4/4] ARM: mxs/mx28evk: add GPMI-NAND device
@ 2012-04-06 13:56                         ` Fabio Estevam
  0 siblings, 0 replies; 46+ messages in thread
From: Fabio Estevam @ 2012-04-06 13:56 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Apr 6, 2012 at 10:46 AM, Shawn Guo <shawn.guo@linaro.org> wrote:

> I'm pretty sure that imx28 dt patch from Dong Aisheng will hit mainline
> with v3.5-rc1, which could be the earliest time for spi-mxs to hit
> mainline. ?In that case, I do not have any reason to take your board
> file patch from there, so what's point of the while argument?

Ok, will submit the mxs spi driver (non-dt aware) next week when I
come back to the office.

You can drop all of the arch mxs spi patches I sent you

^ permalink raw reply	[flat|nested] 46+ messages in thread

* Re: [PATCH v8 4/4] ARM: mxs/mx28evk: add GPMI-NAND device
  2012-04-06  5:49                 ` Fabio Estevam
@ 2012-04-18 21:46                   ` Marek Vasut
  -1 siblings, 0 replies; 46+ messages in thread
From: Marek Vasut @ 2012-04-18 21:46 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: dedekind1, Sam Gandhi, s.hauer, w.sang, Huang Shijie, linux-mtd,
	Shawn Guo, Fabio Estevam

Dear Fabio Estevam,

> On Thu, Apr 5, 2012 at 11:31 PM, Shawn Guo <shawn.guo@linaro.org> wrote:
> > I have to do that to motivate people to add DT support for the drivers
> > they submit from the beginning.
> 
> Understand your point for new drivers.
> 
> If you take the GPMI driver for example: it has been available for a
> long time and there is no board using it in mainline.
> 
> So how can people easily test it and find bugs with this driver?
> Patching their own trees themselves? Sam Gandhi did extensive tests on
> NAND and found some DMA issues with it.
> 
> If we could have mx28evk supporting GPMI driver today it would
> estimulate people to use it and more issues can be found and fixed.
> 
> Waiting for DT support to be in place is just blocking the progress for
> mx28.

Sadly, I have to agree. I'm not against DT, but blocking it now is bogus.

> Please note that right now there is no dt support for mx28 in mainline.
> 
> If what blocks this patch "ARM: mxs/mx28evk: add GPMI-NAND device" to
> be accepted is the pin mux conflict, that would be easy to fix and
> Huang could do a v5 if you agree.
> 
> > Also I do not see much point to keep patching board files which are
> > to be removed.
> 
> I understand your point, but again, right now there is no dt support,
> so the only mechanism we have to register driver is via board files
> for mx28.
> 
> So it would be nice if you could still accept patches for mx28 while
> mx28 dt does not show up in mainline.
> 

Agreed


Best regards,
Marek Vasut

^ permalink raw reply	[flat|nested] 46+ messages in thread

* [PATCH v8 4/4] ARM: mxs/mx28evk: add GPMI-NAND device
@ 2012-04-18 21:46                   ` Marek Vasut
  0 siblings, 0 replies; 46+ messages in thread
From: Marek Vasut @ 2012-04-18 21:46 UTC (permalink / raw)
  To: linux-arm-kernel

Dear Fabio Estevam,

> On Thu, Apr 5, 2012 at 11:31 PM, Shawn Guo <shawn.guo@linaro.org> wrote:
> > I have to do that to motivate people to add DT support for the drivers
> > they submit from the beginning.
> 
> Understand your point for new drivers.
> 
> If you take the GPMI driver for example: it has been available for a
> long time and there is no board using it in mainline.
> 
> So how can people easily test it and find bugs with this driver?
> Patching their own trees themselves? Sam Gandhi did extensive tests on
> NAND and found some DMA issues with it.
> 
> If we could have mx28evk supporting GPMI driver today it would
> estimulate people to use it and more issues can be found and fixed.
> 
> Waiting for DT support to be in place is just blocking the progress for
> mx28.

Sadly, I have to agree. I'm not against DT, but blocking it now is bogus.

> Please note that right now there is no dt support for mx28 in mainline.
> 
> If what blocks this patch "ARM: mxs/mx28evk: add GPMI-NAND device" to
> be accepted is the pin mux conflict, that would be easy to fix and
> Huang could do a v5 if you agree.
> 
> > Also I do not see much point to keep patching board files which are
> > to be removed.
> 
> I understand your point, but again, right now there is no dt support,
> so the only mechanism we have to register driver is via board files
> for mx28.
> 
> So it would be nice if you could still accept patches for mx28 while
> mx28 dt does not show up in mainline.
> 

Agreed


Best regards,
Marek Vasut

^ permalink raw reply	[flat|nested] 46+ messages in thread

end of thread, other threads:[~2012-04-18 21:46 UTC | newest]

Thread overview: 46+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-08-24  7:07 [PATCH v8 0/4] add the GPMI-NAND support for imx23/imx28 Huang Shijie
2011-08-24  7:07 ` Huang Shijie
2011-08-24  7:07 ` [PATCH v8 1/4] ARM: mxs: add " Huang Shijie
2011-08-24  7:07   ` Huang Shijie
2011-08-24  7:07 ` [PATCH v8 2/4] ARM: mxs: add new a pad control Huang Shijie
2011-08-24  7:07   ` Huang Shijie
2011-08-24  7:07 ` [PATCH v8 3/4] ARM: mxs/mx23evk: add GPMI-NAND device Huang Shijie
2011-08-24  7:07   ` Huang Shijie
2011-08-24  7:07 ` [PATCH v8 4/4] ARM: mxs/mx28evk: " Huang Shijie
2011-08-24  7:07   ` Huang Shijie
2012-04-05  0:44   ` Fabio Estevam
2012-04-05  0:44     ` Fabio Estevam
2012-04-05  0:45     ` Fabio Estevam
2012-04-05  0:45       ` Fabio Estevam
2012-04-05  1:08     ` Shawn Guo
2012-04-05  1:08       ` Shawn Guo
2012-04-05  1:19       ` Fabio Estevam
2012-04-05  1:19         ` Fabio Estevam
2012-04-05  1:23         ` Shawn Guo
2012-04-05  1:23           ` Shawn Guo
2012-04-05 16:12           ` Fabio Estevam
2012-04-05 16:12             ` Fabio Estevam
2012-04-06  2:31             ` Shawn Guo
2012-04-06  2:31               ` Shawn Guo
     [not found]               ` <C7A5B00EFC707A46AB67997D0215216701B5C28A@mx1.grid-net.com>
2012-04-06  3:35                 ` Shawn Guo
2012-04-06  3:35                   ` Shawn Guo
2012-04-06  5:49               ` Fabio Estevam
2012-04-06  5:49                 ` Fabio Estevam
2012-04-06  6:53                 ` Shawn Guo
2012-04-06  6:53                   ` Shawn Guo
2012-04-06 13:16                   ` Fabio Estevam
2012-04-06 13:16                     ` Fabio Estevam
2012-04-06 13:46                     ` Shawn Guo
2012-04-06 13:46                       ` Shawn Guo
2012-04-06 13:56                       ` Fabio Estevam
2012-04-06 13:56                         ` Fabio Estevam
2012-04-18 21:46                 ` Marek Vasut
2012-04-18 21:46                   ` Marek Vasut
2011-08-25 11:37 ` [PATCH v8 0/4] add the GPMI-NAND support for imx23/imx28 Artem Bityutskiy
2011-08-25 11:37   ` Artem Bityutskiy
2011-08-26  3:28   ` Huang Shijie
2011-08-26  3:28     ` Huang Shijie
2011-08-26 13:35     ` Koen Beel
2011-08-26 13:35       ` Koen Beel
2011-09-16  2:28 ` Huang Shijie
2011-09-16  2:28   ` Huang Shijie

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.