All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] imx-esdhc: update devices registration
@ 2010-10-12 12:23 Eric Bénard
  2010-10-12 12:23 ` [PATCH 2/3] mx25: fix compile error in platform-imx-dma.c Eric Bénard
                   ` (3 more replies)
  0 siblings, 4 replies; 21+ messages in thread
From: Eric Bénard @ 2010-10-12 12:23 UTC (permalink / raw)
  To: linux-arm-kernel

Tested on i.MX25 and i.MX35 and i.MX51

Signed-off-by: Eric B?nard <eric@eukrea.com>
---
 arch/arm/mach-mx25/devices-imx25.h              |   10 ++--
 arch/arm/mach-mx3/devices-imx35.h               |   12 ++--
 arch/arm/mach-mx5/devices-imx51.h               |   11 +---
 arch/arm/plat-mxc/devices/platform-esdhc.c      |   58 +++++++++++++++++++---
 arch/arm/plat-mxc/include/mach/devices-common.h |   12 ++++-
 arch/arm/plat-mxc/include/mach/mx25.h           |    4 +-
 arch/arm/plat-mxc/include/mach/mx35.h           |    6 +-
 arch/arm/plat-mxc/include/mach/mx51.h           |   12 ++--
 8 files changed, 85 insertions(+), 40 deletions(-)

diff --git a/arch/arm/mach-mx25/devices-imx25.h b/arch/arm/mach-mx25/devices-imx25.h
index 733aaee..86b2bea 100644
--- a/arch/arm/mach-mx25/devices-imx25.h
+++ b/arch/arm/mach-mx25/devices-imx25.h
@@ -49,7 +49,9 @@ extern const struct imx_spi_imx_data imx25_spi_imx_data[] __initconst;
 #define imx25_add_spi_imx1(pdata)	imx25_add_spi_imx(1, pdata)
 #define imx25_add_spi_imx2(pdata)	imx25_add_spi_imx(2, pdata)
 
-#define imx25_add_esdhc0(pdata)	\
-	imx_add_esdhc(0, MX25_ESDHC1_BASE_ADDR, SZ_16K, MX25_INT_MMC_SDHC1, pdata)
-#define imx25_add_esdhc1(pdata)	\
-	imx_add_esdhc(1, MX25_ESDHC2_BASE_ADDR, SZ_16K, MX25_INT_MMC_SDHC2, pdata)
+extern const struct imx_esdhc_imx_data imx25_esdhc_data[] __initconst;
+#define imx25_add_esdhc(id, pdata)	\
+	imx_add_esdhc(&imx25_esdhc_data[id], pdata)
+#define imx25_add_esdhc0(pdata)		imx25_add_esdhc(0, pdata)
+#define imx25_add_esdhc1(pdata)		imx25_add_esdhc(1, pdata)
+
diff --git a/arch/arm/mach-mx3/devices-imx35.h b/arch/arm/mach-mx3/devices-imx35.h
index 509b346..e4ef168 100644
--- a/arch/arm/mach-mx3/devices-imx35.h
+++ b/arch/arm/mach-mx3/devices-imx35.h
@@ -46,9 +46,9 @@ extern const struct imx_spi_imx_data imx35_cspi_data[] __initconst;
 #define imx35_add_spi_imx0(pdata)	imx35_add_cspi(0, pdata)
 #define imx35_add_spi_imx1(pdata)	imx35_add_cspi(1, pdata)
 
-#define imx35_add_esdhc0(pdata)	\
-	imx_add_esdhc(0, MX35_ESDHC1_BASE_ADDR, SZ_16K, MX35_INT_MMC_SDHC1, pdata)
-#define imx35_add_esdhc1(pdata)	\
-	imx_add_esdhc(1, MX35_ESDHC2_BASE_ADDR, SZ_16K, MX35_INT_MMC_SDHC2, pdata)
-#define imx35_add_esdhc2(pdata)	\
-	imx_add_esdhc(2, MX35_ESDHC3_BASE_ADDR, SZ_16K, MX35_INT_MMC_SDHC3, pdata)
+extern const struct imx_esdhc_imx_data imx35_esdhc_data[] __initconst;
+#define imx35_add_esdhc(id, pdata)	\
+	imx_add_esdhc(&imx35_esdhc_data[id], pdata)
+#define imx35_add_esdhc0(pdata)		imx35_add_esdhc(0, pdata)
+#define imx35_add_esdhc1(pdata)		imx35_add_esdhc(1, pdata)
+#define imx35_add_esdhc2(pdata)		imx35_add_esdhc(2, pdata)
diff --git a/arch/arm/mach-mx5/devices-imx51.h b/arch/arm/mach-mx5/devices-imx51.h
index 547432d..5cc910e 100644
--- a/arch/arm/mach-mx5/devices-imx51.h
+++ b/arch/arm/mach-mx5/devices-imx51.h
@@ -37,11 +37,6 @@ extern const struct imx_spi_imx_data imx51_ecspi_data[] __initconst;
 #define imx51_add_ecspi(id, pdata)	\
 	imx_add_spi_imx(&imx51_ecspi_data[id], pdata)
 
-#define imx51_add_esdhc0(pdata)	\
-	imx_add_esdhc(0, MX51_MMC_SDHC1_BASE_ADDR, SZ_16K, MX51_MXC_INT_MMC_SDHC1, pdata)
-#define imx51_add_esdhc1(pdata)	\
-	imx_add_esdhc(1, MX51_MMC_SDHC2_BASE_ADDR, SZ_16K, MX51_MXC_INT_MMC_SDHC2, pdata)
-#define imx51_add_esdhc2(pdata)	\
-	imx_add_esdhc(2, MX51_MMC_SDHC3_BASE_ADDR, SZ_16K, MX51_MXC_INT_MMC_SDHC3, pdata)
-#define imx51_add_esdhc3(pdata)	\
-	imx_add_esdhc(3, MX51_MMC_SDHC4_BASE_ADDR, SZ_16K, MX51_MXC_INT_MMC_SDHC4, pdata)
+extern const struct imx_esdhc_imx_data imx51_esdhc_data[] __initconst;
+#define imx51_add_esdhc(id, pdata)	\
+	imx_add_esdhc(&imx51_esdhc_data[id], pdata)
diff --git a/arch/arm/plat-mxc/devices/platform-esdhc.c b/arch/arm/plat-mxc/devices/platform-esdhc.c
index 68db2a2..5669045 100644
--- a/arch/arm/plat-mxc/devices/platform-esdhc.c
+++ b/arch/arm/plat-mxc/devices/platform-esdhc.c
@@ -6,26 +6,68 @@
  * Free Software Foundation.
  */
 
+#include <mach/hardware.h>
 #include <mach/devices-common.h>
 #include <mach/esdhc.h>
 
-struct platform_device *__init imx_add_esdhc(int id,
-		resource_size_t iobase, resource_size_t iosize,
-		resource_size_t irq,
+#define imx_esdhc_imx_data_entry_single(soc, type, _devid, _id, hwid, _size) \
+	{								\
+		.devid = _devid,					\
+		.id = _id,						\
+		.iobase = soc ## _ ## type ## hwid ## _BASE_ADDR,	\
+		.iosize = _size,					\
+		.irq = soc ## _INT_ ## type ## hwid,			\
+	}
+
+#define imx_esdhc_imx_data_entry(soc, type, devid, id, hwid, size)	\
+	[id] = imx_esdhc_imx_data_entry_single(soc, type, devid, id, hwid, size)
+
+#ifdef CONFIG_ARCH_MX25
+const struct imx_esdhc_imx_data imx25_esdhc_data[] __initconst = {
+#define imx25_esdhc_data_entry(_id, _hwid)				\
+	imx_esdhc_imx_data_entry(MX25, MMC_SDHC, "sdhci-esdhc-imx", _id, _hwid, SZ_16K)
+	imx25_esdhc_data_entry(0, 1),
+	imx25_esdhc_data_entry(1, 2),
+};
+#endif /* ifdef CONFIG_ARCH_MX25 */
+
+#ifdef CONFIG_ARCH_MX35
+const struct imx_esdhc_imx_data imx35_esdhc_data[] __initconst = {
+#define imx35_esdhc_data_entry(_id, _hwid)                           \
+	imx_esdhc_imx_data_entry(MX35, MMC_SDHC, "sdhci-esdhc-imx", _id, _hwid, SZ_16K)
+	imx35_esdhc_data_entry(0, 1),
+	imx35_esdhc_data_entry(1, 2),
+	imx35_esdhc_data_entry(2, 3),
+};
+#endif /* ifdef CONFIG_ARCH_MX35 */
+
+#ifdef CONFIG_ARCH_MX51
+const struct imx_esdhc_imx_data imx51_esdhc_data[] __initconst = {
+#define imx51_esdhc_data_entry(_id, _hwid)				\
+	imx_esdhc_imx_data_entry(MX51, MMC_SDHC, "sdhci-esdhc-imx", _id, _hwid, SZ_16K)
+	imx51_esdhc_data_entry(0, 1),
+	imx51_esdhc_data_entry(1, 2),
+	imx51_esdhc_data_entry(2, 3),
+	imx51_esdhc_data_entry(3, 4),
+};
+#endif /* ifdef CONFIG_ARCH_MX51 */
+
+struct platform_device *__init imx_add_esdhc(
+		const struct imx_esdhc_imx_data *data,
 		const struct esdhc_platform_data *pdata)
 {
 	struct resource res[] = {
 		{
-			.start = iobase,
-			.end = iobase + iosize - 1,
+			.start = data->iobase,
+			.end = data->iobase + data->iosize - 1,
 			.flags = IORESOURCE_MEM,
 		}, {
-			.start = irq,
-			.end = irq,
+			.start = data->irq,
+			.end = data->irq,
 			.flags = IORESOURCE_IRQ,
 		},
 	};
 
-	return imx_add_platform_device("sdhci-esdhc-imx", id, res,
+	return imx_add_platform_device(data->devid, data->id, res,
 			ARRAY_SIZE(res), pdata, sizeof(*pdata));
 }
diff --git a/arch/arm/plat-mxc/include/mach/devices-common.h b/arch/arm/plat-mxc/include/mach/devices-common.h
index 0498978..ca1f922 100644
--- a/arch/arm/plat-mxc/include/mach/devices-common.h
+++ b/arch/arm/plat-mxc/include/mach/devices-common.h
@@ -108,7 +108,13 @@ struct platform_device *__init imx_add_spi_imx(
 		const struct spi_imx_master *pdata);
 
 #include <mach/esdhc.h>
-struct platform_device *__init imx_add_esdhc(int id,
-		resource_size_t iobase, resource_size_t iosize,
-		resource_size_t irq,
+struct imx_esdhc_imx_data {
+	const char *devid;
+	int id;
+	resource_size_t iobase;
+	resource_size_t iosize;
+	resource_size_t irq;
+};
+struct platform_device *__init imx_add_esdhc(
+		const struct imx_esdhc_imx_data *data,
 		const struct esdhc_platform_data *pdata);
diff --git a/arch/arm/plat-mxc/include/mach/mx25.h b/arch/arm/plat-mxc/include/mach/mx25.h
index 153dd1b..31d9c4c 100644
--- a/arch/arm/plat-mxc/include/mach/mx25.h
+++ b/arch/arm/plat-mxc/include/mach/mx25.h
@@ -50,8 +50,8 @@
 #define MX25_SSI1_BASE_ADDR		0x50034000
 #define MX25_NFC_BASE_ADDR		0xbb000000
 #define MX25_DRYICE_BASE_ADDR		0x53ffc000
-#define MX25_ESDHC1_BASE_ADDR		0x53fb4000
-#define MX25_ESDHC2_BASE_ADDR		0x53fb8000
+#define MX25_MMC_SDHC1_BASE_ADDR	0x53fb4000
+#define MX25_MMC_SDHC2_BASE_ADDR	0x53fb8000
 #define MX25_LCDC_BASE_ADDR		0x53fbc000
 #define MX25_KPP_BASE_ADDR		0x43fa8000
 #define MX25_OTG_BASE_ADDR		0x53ff4000
diff --git a/arch/arm/plat-mxc/include/mach/mx35.h b/arch/arm/plat-mxc/include/mach/mx35.h
index cb071b7..6f113fc 100644
--- a/arch/arm/plat-mxc/include/mach/mx35.h
+++ b/arch/arm/plat-mxc/include/mach/mx35.h
@@ -53,9 +53,9 @@
 #define MX35_GPIO3_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xa4000)
 #define MX35_SCC_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xac000)
 #define MX35_RNGA_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xb0000)
-#define MX35_ESDHC1_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xb4000)
-#define MX35_ESDHC2_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xb8000)
-#define MX35_ESDHC3_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xbc000)
+#define MX35_MMC_SDHC1_BASE_ADDR		(MX35_AIPS2_BASE_ADDR + 0xb4000)
+#define MX35_MMC_SDHC2_BASE_ADDR		(MX35_AIPS2_BASE_ADDR + 0xb8000)
+#define MX35_MMC_SDHC3_BASE_ADDR		(MX35_AIPS2_BASE_ADDR + 0xbc000)
 #define MX35_IPU_CTRL_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xc0000)
 #define MX35_AUDMUX_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xc4000)
 #define MX35_GPIO1_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xcc000)
diff --git a/arch/arm/plat-mxc/include/mach/mx51.h b/arch/arm/plat-mxc/include/mach/mx51.h
index c54b5c3..38cf657 100644
--- a/arch/arm/plat-mxc/include/mach/mx51.h
+++ b/arch/arm/plat-mxc/include/mach/mx51.h
@@ -139,7 +139,7 @@
 #define MX51_MIPI_HSC_BASE_ADDR		(MX51_AIPS2_BASE_ADDR + 0xdc000)
 #define MX51_ATA_BASE_ADDR		(MX51_AIPS2_BASE_ADDR + 0xe0000)
 #define MX51_SIM_BASE_ADDR		(MX51_AIPS2_BASE_ADDR + 0xe4000)
-#define MX51_SSI3BASE_ADDR		(MX51_AIPS2_BASE_ADDR + 0xe8000)
+#define MX51_SSI3_BASE_ADDR		(MX51_AIPS2_BASE_ADDR + 0xe8000)
 #define MX51_FEC_BASE_ADDR		(MX51_AIPS2_BASE_ADDR + 0xec000)
 #define MX51_TVE_BASE_ADDR		(MX51_AIPS2_BASE_ADDR + 0xf0000)
 #define MX51_VPU_BASE_ADDR		(MX51_AIPS2_BASE_ADDR + 0xf4000)
@@ -280,10 +280,10 @@
  */
 #define MX51_MXC_INT_BASE		0
 #define MX51_MXC_INT_RESV0		0
-#define MX51_MXC_INT_MMC_SDHC1		1
-#define MX51_MXC_INT_MMC_SDHC2		2
-#define MX51_MXC_INT_MMC_SDHC3		3
-#define MX51_MXC_INT_MMC_SDHC4		4
+#define MX51_INT_MMC_SDHC1		1
+#define MX51_INT_MMC_SDHC2		2
+#define MX51_INT_MMC_SDHC3		3
+#define MX51_INT_MMC_SDHC4		4
 #define MX51_MXC_INT_RESV5		5
 #define MX51_INT_SDMA			6
 #define MX51_MXC_INT_IOMUX		7
@@ -375,7 +375,7 @@
 #define MX51_MXC_INT_FIRI		93
 #define MX51_MXC_INT_PWM2		94
 #define MX51_MXC_INT_SLIM_EXP		95
-#define MX51_MXC_INT_SSI3		96
+#define MX51_INT_SSI3		96
 #define MX51_MXC_INT_EMI_BOOT		97
 #define MX51_MXC_INT_CTI1_TG3		98
 #define MX51_MXC_INT_SMC_RX		99
-- 
1.7.0.4

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

* [PATCH 2/3] mx25: fix compile error in platform-imx-dma.c
  2010-10-12 12:23 [PATCH 1/3] imx-esdhc: update devices registration Eric Bénard
@ 2010-10-12 12:23 ` Eric Bénard
  2010-10-12 12:35   ` Uwe Kleine-König
  2010-10-12 12:23 ` [PATCH 3/3] iomux-mx51: fix GPIO_1_xx 's IOMUX configuration Eric Bénard
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 21+ messages in thread
From: Eric Bénard @ 2010-10-12 12:23 UTC (permalink / raw)
  To: linux-arm-kernel

this patch fix the following errors :
arch/arm/plat-mxc/devices/platform-imx-dma.c:44:
    error: ?MX25_SDMA_BASE_ADDR? undeclared here (not in a function)
arch/arm/plat-mxc/devices/platform-imx-dma.c:44:
    error: ?MX25_INT_SDMA? undeclared here (not in a function)

Signed-off-by: Eric B?nard <eric@eukrea.com>
---
 arch/arm/plat-mxc/include/mach/mx25.h |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/arch/arm/plat-mxc/include/mach/mx25.h b/arch/arm/plat-mxc/include/mach/mx25.h
index 31d9c4c..02d0ecd 100644
--- a/arch/arm/plat-mxc/include/mach/mx25.h
+++ b/arch/arm/plat-mxc/include/mach/mx25.h
@@ -54,6 +54,7 @@
 #define MX25_MMC_SDHC2_BASE_ADDR	0x53fb8000
 #define MX25_LCDC_BASE_ADDR		0x53fbc000
 #define MX25_KPP_BASE_ADDR		0x43fa8000
+#define MX25_SDMA_BASE_ADDR		0x53fd4000
 #define MX25_OTG_BASE_ADDR		0x53ff4000
 #define MX25_CSI_BASE_ADDR		0x53ff8000
 
@@ -74,6 +75,7 @@
 #define MX25_INT_DRYICE		25
 #define MX25_INT_UART2		32
 #define MX25_INT_NFC		33
+#define MX25_INT_SDMA		34
 #define MX25_INT_LCDC		39
 #define MX25_INT_UART5		40
 #define MX25_INT_CAN1		43
-- 
1.7.0.4

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

* [PATCH 3/3] iomux-mx51: fix GPIO_1_xx 's IOMUX configuration
  2010-10-12 12:23 [PATCH 1/3] imx-esdhc: update devices registration Eric Bénard
  2010-10-12 12:23 ` [PATCH 2/3] mx25: fix compile error in platform-imx-dma.c Eric Bénard
@ 2010-10-12 12:23 ` Eric Bénard
  2010-10-12 12:31 ` [PATCH v2 1/3] imx-esdhc: update devices registration Eric Bénard
  2010-10-12 12:33 ` [PATCH " Uwe Kleine-König
  3 siblings, 0 replies; 21+ messages in thread
From: Eric Bénard @ 2010-10-12 12:23 UTC (permalink / raw)
  To: linux-arm-kernel

this patch really configure the GPIO in GPIO mode.

Signed-off-by: Eric B?nard <eric@eukrea.com>
---
 arch/arm/plat-mxc/include/mach/iomux-mx51.h |   20 ++++++++++----------
 1 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/arch/arm/plat-mxc/include/mach/iomux-mx51.h b/arch/arm/plat-mxc/include/mach/iomux-mx51.h
index 93141d1..e46b1c2 100644
--- a/arch/arm/plat-mxc/include/mach/iomux-mx51.h
+++ b/arch/arm/plat-mxc/include/mach/iomux-mx51.h
@@ -366,20 +366,20 @@ typedef enum iomux_config {
 							MX51_SDHCI_PAD_CTRL)
 #define MX51_PAD_SD2_DATA3__SD2_DATA3		IOMUX_PAD(0x7D0, 0x3C8, IOMUX_CONFIG_SION, 0x0, 0, \
 							MX51_SDHCI_PAD_CTRL)
-#define MX51_PAD_GPIO_1_0__GPIO_1_0		IOMUX_PAD(0x7B4, 0x3AC, 1, 0x0,   0, NO_PAD_CTRL)
-#define MX51_PAD_GPIO_1_1__GPIO_1_1		IOMUX_PAD(0x7B8, 0x3B0, 1, 0x0,   0, NO_PAD_CTRL)
-#define MX51_PAD_GPIO_1_2__GPIO_1_2		IOMUX_PAD(0x7D4, 0x3CC, 0, 0x0,   0, NO_PAD_CTRL)
+#define MX51_PAD_GPIO_1_0__GPIO_1_0		IOMUX_PAD(0x7B4, 0x3AC, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
+#define MX51_PAD_GPIO_1_1__GPIO_1_1		IOMUX_PAD(0x7B8, 0x3B0, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
+#define MX51_PAD_GPIO_1_2__GPIO_1_2		IOMUX_PAD(0x7D4, 0x3CC, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
 #define MX51_PAD_GPIO_1_2__I2C2_SCL		IOMUX_PAD(0x7D4, 0x3CC, (2 | IOMUX_CONFIG_SION), \
 							0x9b8,   3, MX51_I2C_PAD_CTRL)
-#define MX51_PAD_GPIO_1_3__GPIO_1_3		IOMUX_PAD(0x7D8, 0x3D0, 0, 0x0,   0, NO_PAD_CTRL)
+#define MX51_PAD_GPIO_1_3__GPIO_1_3		IOMUX_PAD(0x7D8, 0x3D0, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
 #define MX51_PAD_GPIO_1_3__I2C2_SDA		IOMUX_PAD(0x7D8, 0x3D0, (2 | IOMUX_CONFIG_SION), \
 							0x9bc,   3, MX51_I2C_PAD_CTRL)
 #define MX51_PAD_PMIC_INT_REQ__PMIC_INT_REQ	IOMUX_PAD(0x7FC, 0x3D4, 0, 0x0,   0, NO_PAD_CTRL)
-#define MX51_PAD_GPIO_1_4__GPIO_1_4		IOMUX_PAD(0x804, 0x3D8, 0, 0x0,   0, NO_PAD_CTRL)
-#define MX51_PAD_GPIO_1_5__GPIO_1_5		IOMUX_PAD(0x808, 0x3DC, 0, 0x0,   0, NO_PAD_CTRL)
-#define MX51_PAD_GPIO_1_6__GPIO_1_6		IOMUX_PAD(0x80C, 0x3E0, 0, 0x0,   0, MX51_GPIO_PAD_CTRL)
-#define MX51_PAD_GPIO_1_7__GPIO_1_7		IOMUX_PAD(0x810, 0x3E4, 0, 0x0,   0, MX51_GPIO_PAD_CTRL)
-#define MX51_PAD_GPIO_1_8__GPIO_1_8		IOMUX_PAD(0x814, 0x3E8, 0, 0x0,   1, MX51_GPIO_PAD_CTRL)
-#define MX51_PAD_GPIO_1_9__GPIO_1_9		IOMUX_PAD(0x818, 0x3EC, 0, 0x0,   0, NO_PAD_CTRL)
+#define MX51_PAD_GPIO_1_4__GPIO_1_4		IOMUX_PAD(0x804, 0x3D8, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
+#define MX51_PAD_GPIO_1_5__GPIO_1_5		IOMUX_PAD(0x808, 0x3DC, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
+#define MX51_PAD_GPIO_1_6__GPIO_1_6		IOMUX_PAD(0x80C, 0x3E0, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
+#define MX51_PAD_GPIO_1_7__GPIO_1_7		IOMUX_PAD(0x810, 0x3E4, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
+#define MX51_PAD_GPIO_1_8__GPIO_1_8		IOMUX_PAD(0x814, 0x3E8, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
+#define MX51_PAD_GPIO_1_9__GPIO_1_9		IOMUX_PAD(0x818, 0x3EC, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
 
 #endif /* __MACH_IOMUX_MX51_H__ */
-- 
1.7.0.4

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

* [PATCH v2 1/3] imx-esdhc: update devices registration
  2010-10-12 12:23 [PATCH 1/3] imx-esdhc: update devices registration Eric Bénard
  2010-10-12 12:23 ` [PATCH 2/3] mx25: fix compile error in platform-imx-dma.c Eric Bénard
  2010-10-12 12:23 ` [PATCH 3/3] iomux-mx51: fix GPIO_1_xx 's IOMUX configuration Eric Bénard
@ 2010-10-12 12:31 ` Eric Bénard
  2010-10-12 12:33 ` [PATCH " Uwe Kleine-König
  3 siblings, 0 replies; 21+ messages in thread
From: Eric Bénard @ 2010-10-12 12:31 UTC (permalink / raw)
  To: linux-arm-kernel

Tested on i.MX25 and i.MX35 and i.MX51

Signed-off-by: Eric B?nard <eric@eukrea.com>
---
v2 : remove SSI3 fixes which leaked in previous patch

 arch/arm/mach-mx25/devices-imx25.h              |    9 ++--
 arch/arm/mach-mx3/devices-imx35.h               |   12 ++--
 arch/arm/mach-mx5/devices-imx51.h               |   11 +---
 arch/arm/plat-mxc/devices/platform-esdhc.c      |   58 +++++++++++++++++++---
 arch/arm/plat-mxc/include/mach/devices-common.h |   12 ++++-
 arch/arm/plat-mxc/include/mach/mx25.h           |    4 +-
 arch/arm/plat-mxc/include/mach/mx35.h           |    6 +-
 arch/arm/plat-mxc/include/mach/mx51.h           |    8 ++--
 8 files changed, 82 insertions(+), 38 deletions(-)

diff --git a/arch/arm/mach-mx25/devices-imx25.h b/arch/arm/mach-mx25/devices-imx25.h
index 733aaee..4e7b280 100644
--- a/arch/arm/mach-mx25/devices-imx25.h
+++ b/arch/arm/mach-mx25/devices-imx25.h
@@ -49,7 +49,8 @@ extern const struct imx_spi_imx_data imx25_spi_imx_data[] __initconst;
 #define imx25_add_spi_imx1(pdata)	imx25_add_spi_imx(1, pdata)
 #define imx25_add_spi_imx2(pdata)	imx25_add_spi_imx(2, pdata)
 
-#define imx25_add_esdhc0(pdata)	\
-	imx_add_esdhc(0, MX25_ESDHC1_BASE_ADDR, SZ_16K, MX25_INT_MMC_SDHC1, pdata)
-#define imx25_add_esdhc1(pdata)	\
-	imx_add_esdhc(1, MX25_ESDHC2_BASE_ADDR, SZ_16K, MX25_INT_MMC_SDHC2, pdata)
+extern const struct imx_esdhc_imx_data imx25_esdhc_data[] __initconst;
+#define imx25_add_esdhc(id, pdata)	\
+	imx_add_esdhc(&imx25_esdhc_data[id], pdata)
+#define imx25_add_esdhc0(pdata)		imx25_add_esdhc(0, pdata)
+#define imx25_add_esdhc1(pdata)		imx25_add_esdhc(1, pdata)
diff --git a/arch/arm/mach-mx3/devices-imx35.h b/arch/arm/mach-mx3/devices-imx35.h
index 509b346..e4ef168 100644
--- a/arch/arm/mach-mx3/devices-imx35.h
+++ b/arch/arm/mach-mx3/devices-imx35.h
@@ -46,9 +46,9 @@ extern const struct imx_spi_imx_data imx35_cspi_data[] __initconst;
 #define imx35_add_spi_imx0(pdata)	imx35_add_cspi(0, pdata)
 #define imx35_add_spi_imx1(pdata)	imx35_add_cspi(1, pdata)
 
-#define imx35_add_esdhc0(pdata)	\
-	imx_add_esdhc(0, MX35_ESDHC1_BASE_ADDR, SZ_16K, MX35_INT_MMC_SDHC1, pdata)
-#define imx35_add_esdhc1(pdata)	\
-	imx_add_esdhc(1, MX35_ESDHC2_BASE_ADDR, SZ_16K, MX35_INT_MMC_SDHC2, pdata)
-#define imx35_add_esdhc2(pdata)	\
-	imx_add_esdhc(2, MX35_ESDHC3_BASE_ADDR, SZ_16K, MX35_INT_MMC_SDHC3, pdata)
+extern const struct imx_esdhc_imx_data imx35_esdhc_data[] __initconst;
+#define imx35_add_esdhc(id, pdata)	\
+	imx_add_esdhc(&imx35_esdhc_data[id], pdata)
+#define imx35_add_esdhc0(pdata)		imx35_add_esdhc(0, pdata)
+#define imx35_add_esdhc1(pdata)		imx35_add_esdhc(1, pdata)
+#define imx35_add_esdhc2(pdata)		imx35_add_esdhc(2, pdata)
diff --git a/arch/arm/mach-mx5/devices-imx51.h b/arch/arm/mach-mx5/devices-imx51.h
index 547432d..5cc910e 100644
--- a/arch/arm/mach-mx5/devices-imx51.h
+++ b/arch/arm/mach-mx5/devices-imx51.h
@@ -37,11 +37,6 @@ extern const struct imx_spi_imx_data imx51_ecspi_data[] __initconst;
 #define imx51_add_ecspi(id, pdata)	\
 	imx_add_spi_imx(&imx51_ecspi_data[id], pdata)
 
-#define imx51_add_esdhc0(pdata)	\
-	imx_add_esdhc(0, MX51_MMC_SDHC1_BASE_ADDR, SZ_16K, MX51_MXC_INT_MMC_SDHC1, pdata)
-#define imx51_add_esdhc1(pdata)	\
-	imx_add_esdhc(1, MX51_MMC_SDHC2_BASE_ADDR, SZ_16K, MX51_MXC_INT_MMC_SDHC2, pdata)
-#define imx51_add_esdhc2(pdata)	\
-	imx_add_esdhc(2, MX51_MMC_SDHC3_BASE_ADDR, SZ_16K, MX51_MXC_INT_MMC_SDHC3, pdata)
-#define imx51_add_esdhc3(pdata)	\
-	imx_add_esdhc(3, MX51_MMC_SDHC4_BASE_ADDR, SZ_16K, MX51_MXC_INT_MMC_SDHC4, pdata)
+extern const struct imx_esdhc_imx_data imx51_esdhc_data[] __initconst;
+#define imx51_add_esdhc(id, pdata)	\
+	imx_add_esdhc(&imx51_esdhc_data[id], pdata)
diff --git a/arch/arm/plat-mxc/devices/platform-esdhc.c b/arch/arm/plat-mxc/devices/platform-esdhc.c
index 68db2a2..5669045 100644
--- a/arch/arm/plat-mxc/devices/platform-esdhc.c
+++ b/arch/arm/plat-mxc/devices/platform-esdhc.c
@@ -6,26 +6,68 @@
  * Free Software Foundation.
  */
 
+#include <mach/hardware.h>
 #include <mach/devices-common.h>
 #include <mach/esdhc.h>
 
-struct platform_device *__init imx_add_esdhc(int id,
-		resource_size_t iobase, resource_size_t iosize,
-		resource_size_t irq,
+#define imx_esdhc_imx_data_entry_single(soc, type, _devid, _id, hwid, _size) \
+	{								\
+		.devid = _devid,					\
+		.id = _id,						\
+		.iobase = soc ## _ ## type ## hwid ## _BASE_ADDR,	\
+		.iosize = _size,					\
+		.irq = soc ## _INT_ ## type ## hwid,			\
+	}
+
+#define imx_esdhc_imx_data_entry(soc, type, devid, id, hwid, size)	\
+	[id] = imx_esdhc_imx_data_entry_single(soc, type, devid, id, hwid, size)
+
+#ifdef CONFIG_ARCH_MX25
+const struct imx_esdhc_imx_data imx25_esdhc_data[] __initconst = {
+#define imx25_esdhc_data_entry(_id, _hwid)				\
+	imx_esdhc_imx_data_entry(MX25, MMC_SDHC, "sdhci-esdhc-imx", _id, _hwid, SZ_16K)
+	imx25_esdhc_data_entry(0, 1),
+	imx25_esdhc_data_entry(1, 2),
+};
+#endif /* ifdef CONFIG_ARCH_MX25 */
+
+#ifdef CONFIG_ARCH_MX35
+const struct imx_esdhc_imx_data imx35_esdhc_data[] __initconst = {
+#define imx35_esdhc_data_entry(_id, _hwid)                           \
+	imx_esdhc_imx_data_entry(MX35, MMC_SDHC, "sdhci-esdhc-imx", _id, _hwid, SZ_16K)
+	imx35_esdhc_data_entry(0, 1),
+	imx35_esdhc_data_entry(1, 2),
+	imx35_esdhc_data_entry(2, 3),
+};
+#endif /* ifdef CONFIG_ARCH_MX35 */
+
+#ifdef CONFIG_ARCH_MX51
+const struct imx_esdhc_imx_data imx51_esdhc_data[] __initconst = {
+#define imx51_esdhc_data_entry(_id, _hwid)				\
+	imx_esdhc_imx_data_entry(MX51, MMC_SDHC, "sdhci-esdhc-imx", _id, _hwid, SZ_16K)
+	imx51_esdhc_data_entry(0, 1),
+	imx51_esdhc_data_entry(1, 2),
+	imx51_esdhc_data_entry(2, 3),
+	imx51_esdhc_data_entry(3, 4),
+};
+#endif /* ifdef CONFIG_ARCH_MX51 */
+
+struct platform_device *__init imx_add_esdhc(
+		const struct imx_esdhc_imx_data *data,
 		const struct esdhc_platform_data *pdata)
 {
 	struct resource res[] = {
 		{
-			.start = iobase,
-			.end = iobase + iosize - 1,
+			.start = data->iobase,
+			.end = data->iobase + data->iosize - 1,
 			.flags = IORESOURCE_MEM,
 		}, {
-			.start = irq,
-			.end = irq,
+			.start = data->irq,
+			.end = data->irq,
 			.flags = IORESOURCE_IRQ,
 		},
 	};
 
-	return imx_add_platform_device("sdhci-esdhc-imx", id, res,
+	return imx_add_platform_device(data->devid, data->id, res,
 			ARRAY_SIZE(res), pdata, sizeof(*pdata));
 }
diff --git a/arch/arm/plat-mxc/include/mach/devices-common.h b/arch/arm/plat-mxc/include/mach/devices-common.h
index 0498978..ca1f922 100644
--- a/arch/arm/plat-mxc/include/mach/devices-common.h
+++ b/arch/arm/plat-mxc/include/mach/devices-common.h
@@ -108,7 +108,13 @@ struct platform_device *__init imx_add_spi_imx(
 		const struct spi_imx_master *pdata);
 
 #include <mach/esdhc.h>
-struct platform_device *__init imx_add_esdhc(int id,
-		resource_size_t iobase, resource_size_t iosize,
-		resource_size_t irq,
+struct imx_esdhc_imx_data {
+	const char *devid;
+	int id;
+	resource_size_t iobase;
+	resource_size_t iosize;
+	resource_size_t irq;
+};
+struct platform_device *__init imx_add_esdhc(
+		const struct imx_esdhc_imx_data *data,
 		const struct esdhc_platform_data *pdata);
diff --git a/arch/arm/plat-mxc/include/mach/mx25.h b/arch/arm/plat-mxc/include/mach/mx25.h
index 153dd1b..31d9c4c 100644
--- a/arch/arm/plat-mxc/include/mach/mx25.h
+++ b/arch/arm/plat-mxc/include/mach/mx25.h
@@ -50,8 +50,8 @@
 #define MX25_SSI1_BASE_ADDR		0x50034000
 #define MX25_NFC_BASE_ADDR		0xbb000000
 #define MX25_DRYICE_BASE_ADDR		0x53ffc000
-#define MX25_ESDHC1_BASE_ADDR		0x53fb4000
-#define MX25_ESDHC2_BASE_ADDR		0x53fb8000
+#define MX25_MMC_SDHC1_BASE_ADDR	0x53fb4000
+#define MX25_MMC_SDHC2_BASE_ADDR	0x53fb8000
 #define MX25_LCDC_BASE_ADDR		0x53fbc000
 #define MX25_KPP_BASE_ADDR		0x43fa8000
 #define MX25_OTG_BASE_ADDR		0x53ff4000
diff --git a/arch/arm/plat-mxc/include/mach/mx35.h b/arch/arm/plat-mxc/include/mach/mx35.h
index cb071b7..6f113fc 100644
--- a/arch/arm/plat-mxc/include/mach/mx35.h
+++ b/arch/arm/plat-mxc/include/mach/mx35.h
@@ -53,9 +53,9 @@
 #define MX35_GPIO3_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xa4000)
 #define MX35_SCC_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xac000)
 #define MX35_RNGA_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xb0000)
-#define MX35_ESDHC1_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xb4000)
-#define MX35_ESDHC2_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xb8000)
-#define MX35_ESDHC3_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xbc000)
+#define MX35_MMC_SDHC1_BASE_ADDR		(MX35_AIPS2_BASE_ADDR + 0xb4000)
+#define MX35_MMC_SDHC2_BASE_ADDR		(MX35_AIPS2_BASE_ADDR + 0xb8000)
+#define MX35_MMC_SDHC3_BASE_ADDR		(MX35_AIPS2_BASE_ADDR + 0xbc000)
 #define MX35_IPU_CTRL_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xc0000)
 #define MX35_AUDMUX_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xc4000)
 #define MX35_GPIO1_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xcc000)
diff --git a/arch/arm/plat-mxc/include/mach/mx51.h b/arch/arm/plat-mxc/include/mach/mx51.h
index c54b5c3..7927f61 100644
--- a/arch/arm/plat-mxc/include/mach/mx51.h
+++ b/arch/arm/plat-mxc/include/mach/mx51.h
@@ -280,10 +280,10 @@
  */
 #define MX51_MXC_INT_BASE		0
 #define MX51_MXC_INT_RESV0		0
-#define MX51_MXC_INT_MMC_SDHC1		1
-#define MX51_MXC_INT_MMC_SDHC2		2
-#define MX51_MXC_INT_MMC_SDHC3		3
-#define MX51_MXC_INT_MMC_SDHC4		4
+#define MX51_INT_MMC_SDHC1		1
+#define MX51_INT_MMC_SDHC2		2
+#define MX51_INT_MMC_SDHC3		3
+#define MX51_INT_MMC_SDHC4		4
 #define MX51_MXC_INT_RESV5		5
 #define MX51_INT_SDMA			6
 #define MX51_MXC_INT_IOMUX		7
-- 
1.7.0.4

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

* [PATCH 1/3] imx-esdhc: update devices registration
  2010-10-12 12:23 [PATCH 1/3] imx-esdhc: update devices registration Eric Bénard
                   ` (2 preceding siblings ...)
  2010-10-12 12:31 ` [PATCH v2 1/3] imx-esdhc: update devices registration Eric Bénard
@ 2010-10-12 12:33 ` Uwe Kleine-König
  2010-10-12 12:57   ` Eric Bénard
  3 siblings, 1 reply; 21+ messages in thread
From: Uwe Kleine-König @ 2010-10-12 12:33 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Eric,

On Tue, Oct 12, 2010 at 02:23:55PM +0200, Eric B?nard wrote:
> Tested on i.MX25 and i.MX35 and i.MX51
> 
> Signed-off-by: Eric B?nard <eric@eukrea.com>
> ---
>  arch/arm/mach-mx25/devices-imx25.h              |   10 ++--
>  arch/arm/mach-mx3/devices-imx35.h               |   12 ++--
>  arch/arm/mach-mx5/devices-imx51.h               |   11 +---
>  arch/arm/plat-mxc/devices/platform-esdhc.c      |   58 +++++++++++++++++++---
>  arch/arm/plat-mxc/include/mach/devices-common.h |   12 ++++-
>  arch/arm/plat-mxc/include/mach/mx25.h           |    4 +-
>  arch/arm/plat-mxc/include/mach/mx35.h           |    6 +-
>  arch/arm/plat-mxc/include/mach/mx51.h           |   12 ++--
>  8 files changed, 85 insertions(+), 40 deletions(-)
> 
> diff --git a/arch/arm/mach-mx25/devices-imx25.h b/arch/arm/mach-mx25/devices-imx25.h
> index 733aaee..86b2bea 100644
> --- a/arch/arm/mach-mx25/devices-imx25.h
> +++ b/arch/arm/mach-mx25/devices-imx25.h
> @@ -49,7 +49,9 @@ extern const struct imx_spi_imx_data imx25_spi_imx_data[] __initconst;
>  #define imx25_add_spi_imx1(pdata)	imx25_add_spi_imx(1, pdata)
>  #define imx25_add_spi_imx2(pdata)	imx25_add_spi_imx(2, pdata)
>  
> -#define imx25_add_esdhc0(pdata)	\
> -	imx_add_esdhc(0, MX25_ESDHC1_BASE_ADDR, SZ_16K, MX25_INT_MMC_SDHC1, pdata)
> -#define imx25_add_esdhc1(pdata)	\
> -	imx_add_esdhc(1, MX25_ESDHC2_BASE_ADDR, SZ_16K, MX25_INT_MMC_SDHC2, pdata)
> +extern const struct imx_esdhc_imx_data imx25_esdhc_data[] __initconst;
> +#define imx25_add_esdhc(id, pdata)	\
> +	imx_add_esdhc(&imx25_esdhc_data[id], pdata)
> +#define imx25_add_esdhc0(pdata)		imx25_add_esdhc(0, pdata)
> +#define imx25_add_esdhc1(pdata)		imx25_add_esdhc(1, pdata)
> +
> diff --git a/arch/arm/mach-mx3/devices-imx35.h b/arch/arm/mach-mx3/devices-imx35.h
> index 509b346..e4ef168 100644
> --- a/arch/arm/mach-mx3/devices-imx35.h
> +++ b/arch/arm/mach-mx3/devices-imx35.h
> @@ -46,9 +46,9 @@ extern const struct imx_spi_imx_data imx35_cspi_data[] __initconst;
>  #define imx35_add_spi_imx0(pdata)	imx35_add_cspi(0, pdata)
>  #define imx35_add_spi_imx1(pdata)	imx35_add_cspi(1, pdata)
>  
> -#define imx35_add_esdhc0(pdata)	\
> -	imx_add_esdhc(0, MX35_ESDHC1_BASE_ADDR, SZ_16K, MX35_INT_MMC_SDHC1, pdata)
> -#define imx35_add_esdhc1(pdata)	\
> -	imx_add_esdhc(1, MX35_ESDHC2_BASE_ADDR, SZ_16K, MX35_INT_MMC_SDHC2, pdata)
> -#define imx35_add_esdhc2(pdata)	\
> -	imx_add_esdhc(2, MX35_ESDHC3_BASE_ADDR, SZ_16K, MX35_INT_MMC_SDHC3, pdata)
> +extern const struct imx_esdhc_imx_data imx35_esdhc_data[] __initconst;
> +#define imx35_add_esdhc(id, pdata)	\
> +	imx_add_esdhc(&imx35_esdhc_data[id], pdata)
> +#define imx35_add_esdhc0(pdata)		imx35_add_esdhc(0, pdata)
> +#define imx35_add_esdhc1(pdata)		imx35_add_esdhc(1, pdata)
> +#define imx35_add_esdhc2(pdata)		imx35_add_esdhc(2, pdata)
> diff --git a/arch/arm/mach-mx5/devices-imx51.h b/arch/arm/mach-mx5/devices-imx51.h
> index 547432d..5cc910e 100644
> --- a/arch/arm/mach-mx5/devices-imx51.h
> +++ b/arch/arm/mach-mx5/devices-imx51.h
> @@ -37,11 +37,6 @@ extern const struct imx_spi_imx_data imx51_ecspi_data[] __initconst;
>  #define imx51_add_ecspi(id, pdata)	\
>  	imx_add_spi_imx(&imx51_ecspi_data[id], pdata)
>  
> -#define imx51_add_esdhc0(pdata)	\
> -	imx_add_esdhc(0, MX51_MMC_SDHC1_BASE_ADDR, SZ_16K, MX51_MXC_INT_MMC_SDHC1, pdata)
> -#define imx51_add_esdhc1(pdata)	\
> -	imx_add_esdhc(1, MX51_MMC_SDHC2_BASE_ADDR, SZ_16K, MX51_MXC_INT_MMC_SDHC2, pdata)
> -#define imx51_add_esdhc2(pdata)	\
> -	imx_add_esdhc(2, MX51_MMC_SDHC3_BASE_ADDR, SZ_16K, MX51_MXC_INT_MMC_SDHC3, pdata)
> -#define imx51_add_esdhc3(pdata)	\
> -	imx_add_esdhc(3, MX51_MMC_SDHC4_BASE_ADDR, SZ_16K, MX51_MXC_INT_MMC_SDHC4, pdata)
> +extern const struct imx_esdhc_imx_data imx51_esdhc_data[] __initconst;
> +#define imx51_add_esdhc(id, pdata)	\
> +	imx_add_esdhc(&imx51_esdhc_data[id], pdata)
> diff --git a/arch/arm/plat-mxc/devices/platform-esdhc.c b/arch/arm/plat-mxc/devices/platform-esdhc.c
> index 68db2a2..5669045 100644
> --- a/arch/arm/plat-mxc/devices/platform-esdhc.c
> +++ b/arch/arm/plat-mxc/devices/platform-esdhc.c
> @@ -6,26 +6,68 @@
>   * Free Software Foundation.
>   */
>  
> +#include <mach/hardware.h>
>  #include <mach/devices-common.h>
>  #include <mach/esdhc.h>
>  
> -struct platform_device *__init imx_add_esdhc(int id,
> -		resource_size_t iobase, resource_size_t iosize,
> -		resource_size_t irq,
> +#define imx_esdhc_imx_data_entry_single(soc, type, _devid, _id, hwid, _size) \
> +	{								\
> +		.devid = _devid,					\
> +		.id = _id,						\
> +		.iobase = soc ## _ ## type ## hwid ## _BASE_ADDR,	\
> +		.iosize = _size,					\
> +		.irq = soc ## _INT_ ## type ## hwid,			\
> +	}
> +
> +#define imx_esdhc_imx_data_entry(soc, type, devid, id, hwid, size)	\
> +	[id] = imx_esdhc_imx_data_entry_single(soc, type, devid, id, hwid, size)
> +
> +#ifdef CONFIG_ARCH_MX25
> +const struct imx_esdhc_imx_data imx25_esdhc_data[] __initconst = {
> +#define imx25_esdhc_data_entry(_id, _hwid)				\
> +	imx_esdhc_imx_data_entry(MX25, MMC_SDHC, "sdhci-esdhc-imx", _id, _hwid, SZ_16K)
> +	imx25_esdhc_data_entry(0, 1),
> +	imx25_esdhc_data_entry(1, 2),
> +};
> +#endif /* ifdef CONFIG_ARCH_MX25 */
> +
> +#ifdef CONFIG_ARCH_MX35
> +const struct imx_esdhc_imx_data imx35_esdhc_data[] __initconst = {
> +#define imx35_esdhc_data_entry(_id, _hwid)                           \
> +	imx_esdhc_imx_data_entry(MX35, MMC_SDHC, "sdhci-esdhc-imx", _id, _hwid, SZ_16K)
> +	imx35_esdhc_data_entry(0, 1),
> +	imx35_esdhc_data_entry(1, 2),
> +	imx35_esdhc_data_entry(2, 3),
> +};
> +#endif /* ifdef CONFIG_ARCH_MX35 */
> +
> +#ifdef CONFIG_ARCH_MX51
> +const struct imx_esdhc_imx_data imx51_esdhc_data[] __initconst = {
> +#define imx51_esdhc_data_entry(_id, _hwid)				\
> +	imx_esdhc_imx_data_entry(MX51, MMC_SDHC, "sdhci-esdhc-imx", _id, _hwid, SZ_16K)
> +	imx51_esdhc_data_entry(0, 1),
> +	imx51_esdhc_data_entry(1, 2),
> +	imx51_esdhc_data_entry(2, 3),
> +	imx51_esdhc_data_entry(3, 4),
> +};
> +#endif /* ifdef CONFIG_ARCH_MX51 */
Hmmm, I think it's sensible to use the config struct only for data that
is actually different for the different socs.  That is MMC_SDHC,
"sdhci-esdhc-imx" and SZ_16K doesn't need to be part of the data.


> +
> +struct platform_device *__init imx_add_esdhc(
> +		const struct imx_esdhc_imx_data *data,
>  		const struct esdhc_platform_data *pdata)
>  {
>  	struct resource res[] = {
>  		{
> -			.start = iobase,
> -			.end = iobase + iosize - 1,
> +			.start = data->iobase,
> +			.end = data->iobase + data->iosize - 1,
>  			.flags = IORESOURCE_MEM,
>  		}, {
> -			.start = irq,
> -			.end = irq,
> +			.start = data->irq,
> +			.end = data->irq,
>  			.flags = IORESOURCE_IRQ,
>  		},
>  	};
>  
> -	return imx_add_platform_device("sdhci-esdhc-imx", id, res,
> +	return imx_add_platform_device(data->devid, data->id, res,
>  			ARRAY_SIZE(res), pdata, sizeof(*pdata));
>  }
> diff --git a/arch/arm/plat-mxc/include/mach/devices-common.h b/arch/arm/plat-mxc/include/mach/devices-common.h
> index 0498978..ca1f922 100644
> --- a/arch/arm/plat-mxc/include/mach/devices-common.h
> +++ b/arch/arm/plat-mxc/include/mach/devices-common.h
> @@ -108,7 +108,13 @@ struct platform_device *__init imx_add_spi_imx(
>  		const struct spi_imx_master *pdata);
>  
>  #include <mach/esdhc.h>
> -struct platform_device *__init imx_add_esdhc(int id,
> -		resource_size_t iobase, resource_size_t iosize,
> -		resource_size_t irq,
> +struct imx_esdhc_imx_data {
> +	const char *devid;
> +	int id;
> +	resource_size_t iobase;
> +	resource_size_t iosize;
> +	resource_size_t irq;
> +};
> +struct platform_device *__init imx_add_esdhc(
> +		const struct imx_esdhc_imx_data *data,
>  		const struct esdhc_platform_data *pdata);
> diff --git a/arch/arm/plat-mxc/include/mach/mx25.h b/arch/arm/plat-mxc/include/mach/mx25.h
> index 153dd1b..31d9c4c 100644
> --- a/arch/arm/plat-mxc/include/mach/mx25.h
> +++ b/arch/arm/plat-mxc/include/mach/mx25.h
> @@ -50,8 +50,8 @@
>  #define MX25_SSI1_BASE_ADDR		0x50034000
>  #define MX25_NFC_BASE_ADDR		0xbb000000
>  #define MX25_DRYICE_BASE_ADDR		0x53ffc000
> -#define MX25_ESDHC1_BASE_ADDR		0x53fb4000
> -#define MX25_ESDHC2_BASE_ADDR		0x53fb8000
> +#define MX25_MMC_SDHC1_BASE_ADDR	0x53fb4000
> +#define MX25_MMC_SDHC2_BASE_ADDR	0x53fb8000
>  #define MX25_LCDC_BASE_ADDR		0x53fbc000
>  #define MX25_KPP_BASE_ADDR		0x43fa8000
>  #define MX25_OTG_BASE_ADDR		0x53ff4000
> diff --git a/arch/arm/plat-mxc/include/mach/mx35.h b/arch/arm/plat-mxc/include/mach/mx35.h
> index cb071b7..6f113fc 100644
> --- a/arch/arm/plat-mxc/include/mach/mx35.h
> +++ b/arch/arm/plat-mxc/include/mach/mx35.h
> @@ -53,9 +53,9 @@
>  #define MX35_GPIO3_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xa4000)
>  #define MX35_SCC_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xac000)
>  #define MX35_RNGA_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xb0000)
> -#define MX35_ESDHC1_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xb4000)
> -#define MX35_ESDHC2_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xb8000)
> -#define MX35_ESDHC3_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xbc000)
> +#define MX35_MMC_SDHC1_BASE_ADDR		(MX35_AIPS2_BASE_ADDR + 0xb4000)
> +#define MX35_MMC_SDHC2_BASE_ADDR		(MX35_AIPS2_BASE_ADDR + 0xb8000)
> +#define MX35_MMC_SDHC3_BASE_ADDR		(MX35_AIPS2_BASE_ADDR + 0xbc000)
>  #define MX35_IPU_CTRL_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xc0000)
>  #define MX35_AUDMUX_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xc4000)
>  #define MX35_GPIO1_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xcc000)
> diff --git a/arch/arm/plat-mxc/include/mach/mx51.h b/arch/arm/plat-mxc/include/mach/mx51.h
> index c54b5c3..38cf657 100644
> --- a/arch/arm/plat-mxc/include/mach/mx51.h
> +++ b/arch/arm/plat-mxc/include/mach/mx51.h
> @@ -139,7 +139,7 @@
>  #define MX51_MIPI_HSC_BASE_ADDR		(MX51_AIPS2_BASE_ADDR + 0xdc000)
>  #define MX51_ATA_BASE_ADDR		(MX51_AIPS2_BASE_ADDR + 0xe0000)
>  #define MX51_SIM_BASE_ADDR		(MX51_AIPS2_BASE_ADDR + 0xe4000)
> -#define MX51_SSI3BASE_ADDR		(MX51_AIPS2_BASE_ADDR + 0xe8000)
> +#define MX51_SSI3_BASE_ADDR		(MX51_AIPS2_BASE_ADDR + 0xe8000)
This is unrelated, no?

>  #define MX51_FEC_BASE_ADDR		(MX51_AIPS2_BASE_ADDR + 0xec000)
>  #define MX51_TVE_BASE_ADDR		(MX51_AIPS2_BASE_ADDR + 0xf0000)
>  #define MX51_VPU_BASE_ADDR		(MX51_AIPS2_BASE_ADDR + 0xf4000)
> @@ -280,10 +280,10 @@
>   */
>  #define MX51_MXC_INT_BASE		0
>  #define MX51_MXC_INT_RESV0		0
> -#define MX51_MXC_INT_MMC_SDHC1		1
> -#define MX51_MXC_INT_MMC_SDHC2		2
> -#define MX51_MXC_INT_MMC_SDHC3		3
> -#define MX51_MXC_INT_MMC_SDHC4		4
> +#define MX51_INT_MMC_SDHC1		1
> +#define MX51_INT_MMC_SDHC2		2
> +#define MX51_INT_MMC_SDHC3		3
> +#define MX51_INT_MMC_SDHC4		4
>  #define MX51_MXC_INT_RESV5		5
>  #define MX51_INT_SDMA			6
>  #define MX51_MXC_INT_IOMUX		7
> @@ -375,7 +375,7 @@
>  #define MX51_MXC_INT_FIRI		93
>  #define MX51_MXC_INT_PWM2		94
>  #define MX51_MXC_INT_SLIM_EXP		95
> -#define MX51_MXC_INT_SSI3		96
> +#define MX51_INT_SSI3		96
ditto

Thanks
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

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

* [PATCH 2/3] mx25: fix compile error in platform-imx-dma.c
  2010-10-12 12:23 ` [PATCH 2/3] mx25: fix compile error in platform-imx-dma.c Eric Bénard
@ 2010-10-12 12:35   ` Uwe Kleine-König
  0 siblings, 0 replies; 21+ messages in thread
From: Uwe Kleine-König @ 2010-10-12 12:35 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Oct 12, 2010 at 02:23:56PM +0200, Eric B?nard wrote:
> this patch fix the following errors :
> arch/arm/plat-mxc/devices/platform-imx-dma.c:44:
>     error: ?MX25_SDMA_BASE_ADDR? undeclared here (not in a function)
> arch/arm/plat-mxc/devices/platform-imx-dma.c:44:
>     error: ?MX25_INT_SDMA? undeclared here (not in a function)
> 
> Signed-off-by: Eric B?nard <eric@eukrea.com>
ah, it seems my mx25_defconfig is gone.  Thanks and ack.

Uwe
> ---
>  arch/arm/plat-mxc/include/mach/mx25.h |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/arm/plat-mxc/include/mach/mx25.h b/arch/arm/plat-mxc/include/mach/mx25.h
> index 31d9c4c..02d0ecd 100644
> --- a/arch/arm/plat-mxc/include/mach/mx25.h
> +++ b/arch/arm/plat-mxc/include/mach/mx25.h
> @@ -54,6 +54,7 @@
>  #define MX25_MMC_SDHC2_BASE_ADDR	0x53fb8000
>  #define MX25_LCDC_BASE_ADDR		0x53fbc000
>  #define MX25_KPP_BASE_ADDR		0x43fa8000
> +#define MX25_SDMA_BASE_ADDR		0x53fd4000
>  #define MX25_OTG_BASE_ADDR		0x53ff4000
>  #define MX25_CSI_BASE_ADDR		0x53ff8000
>  
> @@ -74,6 +75,7 @@
>  #define MX25_INT_DRYICE		25
>  #define MX25_INT_UART2		32
>  #define MX25_INT_NFC		33
> +#define MX25_INT_SDMA		34
>  #define MX25_INT_LCDC		39
>  #define MX25_INT_UART5		40
>  #define MX25_INT_CAN1		43
> -- 
> 1.7.0.4
> 
> 

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

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

* [PATCH 1/3] imx-esdhc: update devices registration
  2010-10-12 12:33 ` [PATCH " Uwe Kleine-König
@ 2010-10-12 12:57   ` Eric Bénard
  2010-10-12 13:04     ` Uwe Kleine-König
  0 siblings, 1 reply; 21+ messages in thread
From: Eric Bénard @ 2010-10-12 12:57 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Uwe,

Le 12/10/2010 14:33, Uwe Kleine-K?nig a ?crit :
>> +#ifdef CONFIG_ARCH_MX51
>> +const struct imx_esdhc_imx_data imx51_esdhc_data[] __initconst = {
>> +#define imx51_esdhc_data_entry(_id, _hwid)				\
>> +	imx_esdhc_imx_data_entry(MX51, MMC_SDHC, "sdhci-esdhc-imx", _id, _hwid, SZ_16K)
>> +	imx51_esdhc_data_entry(0, 1),
>> +	imx51_esdhc_data_entry(1, 2),
>> +	imx51_esdhc_data_entry(2, 3),
>> +	imx51_esdhc_data_entry(3, 4),
>> +};
>> +#endif /* ifdef CONFIG_ARCH_MX51 */
> Hmmm, I think it's sensible to use the config struct only for data that
> is actually different for the different socs.  That is MMC_SDHC,
> "sdhci-esdhc-imx" and SZ_16K doesn't need to be part of the data.
>
keeping it like this will allow to handle the case of future i.MX socs 
which may need special (like for spi for example) for new revisions of 
the esdhc IP.

>> +#define MX51_SSI3_BASE_ADDR		(MX51_AIPS2_BASE_ADDR + 0xe8000)
> This is unrelated, no?
>
fixed in V2.

Eric

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

* [PATCH 1/3] imx-esdhc: update devices registration
  2010-10-12 12:57   ` Eric Bénard
@ 2010-10-12 13:04     ` Uwe Kleine-König
  2010-10-12 14:58       ` [PATCH v3] " Eric Bénard
  0 siblings, 1 reply; 21+ messages in thread
From: Uwe Kleine-König @ 2010-10-12 13:04 UTC (permalink / raw)
  To: linux-arm-kernel

Salut Eric,
On Tue, Oct 12, 2010 at 02:57:46PM +0200, Eric B?nard wrote:
> Hi Uwe,
>
> Le 12/10/2010 14:33, Uwe Kleine-K?nig a ?crit :
>>> +#ifdef CONFIG_ARCH_MX51
>>> +const struct imx_esdhc_imx_data imx51_esdhc_data[] __initconst = {
>>> +#define imx51_esdhc_data_entry(_id, _hwid)				\
>>> +	imx_esdhc_imx_data_entry(MX51, MMC_SDHC, "sdhci-esdhc-imx", _id, _hwid, SZ_16K)
>>> +	imx51_esdhc_data_entry(0, 1),
>>> +	imx51_esdhc_data_entry(1, 2),
>>> +	imx51_esdhc_data_entry(2, 3),
>>> +	imx51_esdhc_data_entry(3, 4),
>>> +};
>>> +#endif /* ifdef CONFIG_ARCH_MX51 */
>> Hmmm, I think it's sensible to use the config struct only for data that
>> is actually different for the different socs.  That is MMC_SDHC,
>> "sdhci-esdhc-imx" and SZ_16K doesn't need to be part of the data.
>>
> keeping it like this will allow to handle the case of future i.MX socs  
> which may need special (like for spi for example) for new revisions of  
> the esdhc IP.
OK, the "danger" is real as we're talking about Freescale here.  Still I
think if that happens we only have to touch a single file and so I
prefer to have it as simple as possible as long as possible.

>>> +#define MX51_SSI3_BASE_ADDR		(MX51_AIPS2_BASE_ADDR + 0xe8000)
>> This is unrelated, no?
>>
> fixed in V2.
Yep, just saw that after I hit the send button :-)

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

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

* [PATCH v3] imx-esdhc: update devices registration
  2010-10-12 13:04     ` Uwe Kleine-König
@ 2010-10-12 14:58       ` Eric Bénard
  2010-10-12 15:08         ` Uwe Kleine-König
  0 siblings, 1 reply; 21+ messages in thread
From: Eric Bénard @ 2010-10-12 14:58 UTC (permalink / raw)
  To: linux-arm-kernel

Tested on i.MX25 and i.MX35 and i.MX51

Signed-off-by: Eric B?nard <eric@eukrea.com>
---
v3 : remove generic bits from the structure
v2 : remove SSI3 fixes which leaked in previous patch
 arch/arm/mach-mx25/devices-imx25.h              |    9 ++--
 arch/arm/mach-mx3/devices-imx35.h               |   12 +++---
 arch/arm/mach-mx5/devices-imx51.h               |   11 +---
 arch/arm/plat-mxc/devices/platform-esdhc.c      |   56 +++++++++++++++++++---
 arch/arm/plat-mxc/include/mach/devices-common.h |   12 ++++-
 arch/arm/plat-mxc/include/mach/mx25.h           |    4 +-
 arch/arm/plat-mxc/include/mach/mx35.h           |    6 +-
 arch/arm/plat-mxc/include/mach/mx51.h           |    8 ++--
 8 files changed, 80 insertions(+), 38 deletions(-)

diff --git a/arch/arm/mach-mx25/devices-imx25.h b/arch/arm/mach-mx25/devices-imx25.h
index 733aaee..4e7b280 100644
--- a/arch/arm/mach-mx25/devices-imx25.h
+++ b/arch/arm/mach-mx25/devices-imx25.h
@@ -49,7 +49,8 @@ extern const struct imx_spi_imx_data imx25_spi_imx_data[] __initconst;
 #define imx25_add_spi_imx1(pdata)	imx25_add_spi_imx(1, pdata)
 #define imx25_add_spi_imx2(pdata)	imx25_add_spi_imx(2, pdata)
 
-#define imx25_add_esdhc0(pdata)	\
-	imx_add_esdhc(0, MX25_ESDHC1_BASE_ADDR, SZ_16K, MX25_INT_MMC_SDHC1, pdata)
-#define imx25_add_esdhc1(pdata)	\
-	imx_add_esdhc(1, MX25_ESDHC2_BASE_ADDR, SZ_16K, MX25_INT_MMC_SDHC2, pdata)
+extern const struct imx_esdhc_imx_data imx25_esdhc_data[] __initconst;
+#define imx25_add_esdhc(id, pdata)	\
+	imx_add_esdhc(&imx25_esdhc_data[id], pdata)
+#define imx25_add_esdhc0(pdata)		imx25_add_esdhc(0, pdata)
+#define imx25_add_esdhc1(pdata)		imx25_add_esdhc(1, pdata)
diff --git a/arch/arm/mach-mx3/devices-imx35.h b/arch/arm/mach-mx3/devices-imx35.h
index 509b346..e4ef168 100644
--- a/arch/arm/mach-mx3/devices-imx35.h
+++ b/arch/arm/mach-mx3/devices-imx35.h
@@ -46,9 +46,9 @@ extern const struct imx_spi_imx_data imx35_cspi_data[] __initconst;
 #define imx35_add_spi_imx0(pdata)	imx35_add_cspi(0, pdata)
 #define imx35_add_spi_imx1(pdata)	imx35_add_cspi(1, pdata)
 
-#define imx35_add_esdhc0(pdata)	\
-	imx_add_esdhc(0, MX35_ESDHC1_BASE_ADDR, SZ_16K, MX35_INT_MMC_SDHC1, pdata)
-#define imx35_add_esdhc1(pdata)	\
-	imx_add_esdhc(1, MX35_ESDHC2_BASE_ADDR, SZ_16K, MX35_INT_MMC_SDHC2, pdata)
-#define imx35_add_esdhc2(pdata)	\
-	imx_add_esdhc(2, MX35_ESDHC3_BASE_ADDR, SZ_16K, MX35_INT_MMC_SDHC3, pdata)
+extern const struct imx_esdhc_imx_data imx35_esdhc_data[] __initconst;
+#define imx35_add_esdhc(id, pdata)	\
+	imx_add_esdhc(&imx35_esdhc_data[id], pdata)
+#define imx35_add_esdhc0(pdata)		imx35_add_esdhc(0, pdata)
+#define imx35_add_esdhc1(pdata)		imx35_add_esdhc(1, pdata)
+#define imx35_add_esdhc2(pdata)		imx35_add_esdhc(2, pdata)
diff --git a/arch/arm/mach-mx5/devices-imx51.h b/arch/arm/mach-mx5/devices-imx51.h
index 547432d..5cc910e 100644
--- a/arch/arm/mach-mx5/devices-imx51.h
+++ b/arch/arm/mach-mx5/devices-imx51.h
@@ -37,11 +37,6 @@ extern const struct imx_spi_imx_data imx51_ecspi_data[] __initconst;
 #define imx51_add_ecspi(id, pdata)	\
 	imx_add_spi_imx(&imx51_ecspi_data[id], pdata)
 
-#define imx51_add_esdhc0(pdata)	\
-	imx_add_esdhc(0, MX51_MMC_SDHC1_BASE_ADDR, SZ_16K, MX51_MXC_INT_MMC_SDHC1, pdata)
-#define imx51_add_esdhc1(pdata)	\
-	imx_add_esdhc(1, MX51_MMC_SDHC2_BASE_ADDR, SZ_16K, MX51_MXC_INT_MMC_SDHC2, pdata)
-#define imx51_add_esdhc2(pdata)	\
-	imx_add_esdhc(2, MX51_MMC_SDHC3_BASE_ADDR, SZ_16K, MX51_MXC_INT_MMC_SDHC3, pdata)
-#define imx51_add_esdhc3(pdata)	\
-	imx_add_esdhc(3, MX51_MMC_SDHC4_BASE_ADDR, SZ_16K, MX51_MXC_INT_MMC_SDHC4, pdata)
+extern const struct imx_esdhc_imx_data imx51_esdhc_data[] __initconst;
+#define imx51_add_esdhc(id, pdata)	\
+	imx_add_esdhc(&imx51_esdhc_data[id], pdata)
diff --git a/arch/arm/plat-mxc/devices/platform-esdhc.c b/arch/arm/plat-mxc/devices/platform-esdhc.c
index 68db2a2..4fc37e4 100644
--- a/arch/arm/plat-mxc/devices/platform-esdhc.c
+++ b/arch/arm/plat-mxc/devices/platform-esdhc.c
@@ -6,26 +6,66 @@
  * Free Software Foundation.
  */
 
+#include <mach/hardware.h>
 #include <mach/devices-common.h>
 #include <mach/esdhc.h>
 
-struct platform_device *__init imx_add_esdhc(int id,
-		resource_size_t iobase, resource_size_t iosize,
-		resource_size_t irq,
+#define imx_esdhc_imx_data_entry_single(soc, _id, hwid) \
+	{								\
+		.id = _id,						\
+		.iobase = soc ## _MMC_SDHC ## hwid ## _BASE_ADDR,	\
+		.irq = soc ## _INT_MMC_SDHC ## hwid,			\
+	}
+
+#define imx_esdhc_imx_data_entry(soc, id, hwid)	\
+	[id] = imx_esdhc_imx_data_entry_single(soc, id, hwid)
+
+#ifdef CONFIG_ARCH_MX25
+const struct imx_esdhc_imx_data imx25_esdhc_data[] __initconst = {
+#define imx25_esdhc_data_entry(_id, _hwid)				\
+	imx_esdhc_imx_data_entry(MX25, _id, _hwid)
+	imx25_esdhc_data_entry(0, 1),
+	imx25_esdhc_data_entry(1, 2),
+};
+#endif /* ifdef CONFIG_ARCH_MX25 */
+
+#ifdef CONFIG_ARCH_MX35
+const struct imx_esdhc_imx_data imx35_esdhc_data[] __initconst = {
+#define imx35_esdhc_data_entry(_id, _hwid)                           \
+	imx_esdhc_imx_data_entry(MX35, _id, _hwid)
+	imx35_esdhc_data_entry(0, 1),
+	imx35_esdhc_data_entry(1, 2),
+	imx35_esdhc_data_entry(2, 3),
+};
+#endif /* ifdef CONFIG_ARCH_MX35 */
+
+#ifdef CONFIG_ARCH_MX51
+const struct imx_esdhc_imx_data imx51_esdhc_data[] __initconst = {
+#define imx51_esdhc_data_entry(_id, _hwid)				\
+	imx_esdhc_imx_data_entry(MX51, _id, _hwid)
+	imx51_esdhc_data_entry(0, 1),
+	imx51_esdhc_data_entry(1, 2),
+	imx51_esdhc_data_entry(2, 3),
+	imx51_esdhc_data_entry(3, 4),
+};
+#endif /* ifdef CONFIG_ARCH_MX51 */
+
+struct platform_device *__init imx_add_esdhc(
+		const struct imx_esdhc_imx_data *data,
 		const struct esdhc_platform_data *pdata)
 {
 	struct resource res[] = {
 		{
-			.start = iobase,
-			.end = iobase + iosize - 1,
+			.start = data->iobase,
+			.end = data->iobase + SZ_16K - 1,
 			.flags = IORESOURCE_MEM,
 		}, {
-			.start = irq,
-			.end = irq,
+			.start = data->irq,
+			.end = data->irq,
 			.flags = IORESOURCE_IRQ,
 		},
 	};
 
-	return imx_add_platform_device("sdhci-esdhc-imx", id, res,
+	return imx_add_platform_device("sdhci-esdhc-imx", data->id, res,
 			ARRAY_SIZE(res), pdata, sizeof(*pdata));
 }
diff --git a/arch/arm/plat-mxc/include/mach/devices-common.h b/arch/arm/plat-mxc/include/mach/devices-common.h
index 0498978..ca1f922 100644
--- a/arch/arm/plat-mxc/include/mach/devices-common.h
+++ b/arch/arm/plat-mxc/include/mach/devices-common.h
@@ -108,7 +108,13 @@ struct platform_device *__init imx_add_spi_imx(
 		const struct spi_imx_master *pdata);
 
 #include <mach/esdhc.h>
-struct platform_device *__init imx_add_esdhc(int id,
-		resource_size_t iobase, resource_size_t iosize,
-		resource_size_t irq,
+struct imx_esdhc_imx_data {
+	const char *devid;
+	int id;
+	resource_size_t iobase;
+	resource_size_t iosize;
+	resource_size_t irq;
+};
+struct platform_device *__init imx_add_esdhc(
+		const struct imx_esdhc_imx_data *data,
 		const struct esdhc_platform_data *pdata);
diff --git a/arch/arm/plat-mxc/include/mach/mx25.h b/arch/arm/plat-mxc/include/mach/mx25.h
index 153dd1b..31d9c4c 100644
--- a/arch/arm/plat-mxc/include/mach/mx25.h
+++ b/arch/arm/plat-mxc/include/mach/mx25.h
@@ -50,8 +50,8 @@
 #define MX25_SSI1_BASE_ADDR		0x50034000
 #define MX25_NFC_BASE_ADDR		0xbb000000
 #define MX25_DRYICE_BASE_ADDR		0x53ffc000
-#define MX25_ESDHC1_BASE_ADDR		0x53fb4000
-#define MX25_ESDHC2_BASE_ADDR		0x53fb8000
+#define MX25_MMC_SDHC1_BASE_ADDR	0x53fb4000
+#define MX25_MMC_SDHC2_BASE_ADDR	0x53fb8000
 #define MX25_LCDC_BASE_ADDR		0x53fbc000
 #define MX25_KPP_BASE_ADDR		0x43fa8000
 #define MX25_OTG_BASE_ADDR		0x53ff4000
diff --git a/arch/arm/plat-mxc/include/mach/mx35.h b/arch/arm/plat-mxc/include/mach/mx35.h
index cb071b7..6f113fc 100644
--- a/arch/arm/plat-mxc/include/mach/mx35.h
+++ b/arch/arm/plat-mxc/include/mach/mx35.h
@@ -53,9 +53,9 @@
 #define MX35_GPIO3_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xa4000)
 #define MX35_SCC_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xac000)
 #define MX35_RNGA_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xb0000)
-#define MX35_ESDHC1_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xb4000)
-#define MX35_ESDHC2_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xb8000)
-#define MX35_ESDHC3_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xbc000)
+#define MX35_MMC_SDHC1_BASE_ADDR		(MX35_AIPS2_BASE_ADDR + 0xb4000)
+#define MX35_MMC_SDHC2_BASE_ADDR		(MX35_AIPS2_BASE_ADDR + 0xb8000)
+#define MX35_MMC_SDHC3_BASE_ADDR		(MX35_AIPS2_BASE_ADDR + 0xbc000)
 #define MX35_IPU_CTRL_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xc0000)
 #define MX35_AUDMUX_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xc4000)
 #define MX35_GPIO1_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xcc000)
diff --git a/arch/arm/plat-mxc/include/mach/mx51.h b/arch/arm/plat-mxc/include/mach/mx51.h
index c54b5c3..7927f61 100644
--- a/arch/arm/plat-mxc/include/mach/mx51.h
+++ b/arch/arm/plat-mxc/include/mach/mx51.h
@@ -280,10 +280,10 @@
  */
 #define MX51_MXC_INT_BASE		0
 #define MX51_MXC_INT_RESV0		0
-#define MX51_MXC_INT_MMC_SDHC1		1
-#define MX51_MXC_INT_MMC_SDHC2		2
-#define MX51_MXC_INT_MMC_SDHC3		3
-#define MX51_MXC_INT_MMC_SDHC4		4
+#define MX51_INT_MMC_SDHC1		1
+#define MX51_INT_MMC_SDHC2		2
+#define MX51_INT_MMC_SDHC3		3
+#define MX51_INT_MMC_SDHC4		4
 #define MX51_MXC_INT_RESV5		5
 #define MX51_INT_SDMA			6
 #define MX51_MXC_INT_IOMUX		7
-- 
1.7.0.4

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

* [PATCH v3] imx-esdhc: update devices registration
  2010-10-12 14:58       ` [PATCH v3] " Eric Bénard
@ 2010-10-12 15:08         ` Uwe Kleine-König
  2010-10-12 15:16           ` Eric Bénard
  0 siblings, 1 reply; 21+ messages in thread
From: Uwe Kleine-König @ 2010-10-12 15:08 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Oct 12, 2010 at 04:58:25PM +0200, Eric B?nard wrote:
> Tested on i.MX25 and i.MX35 and i.MX51
> 
> Signed-off-by: Eric B?nard <eric@eukrea.com>
> ---
> v3 : remove generic bits from the structure
looks good, only three minor things left, ...

> v2 : remove SSI3 fixes which leaked in previous patch
>  arch/arm/mach-mx25/devices-imx25.h              |    9 ++--
>  arch/arm/mach-mx3/devices-imx35.h               |   12 +++---
>  arch/arm/mach-mx5/devices-imx51.h               |   11 +---
>  arch/arm/plat-mxc/devices/platform-esdhc.c      |   56 +++++++++++++++++++---
>  arch/arm/plat-mxc/include/mach/devices-common.h |   12 ++++-
>  arch/arm/plat-mxc/include/mach/mx25.h           |    4 +-
>  arch/arm/plat-mxc/include/mach/mx35.h           |    6 +-
>  arch/arm/plat-mxc/include/mach/mx51.h           |    8 ++--
>  8 files changed, 80 insertions(+), 38 deletions(-)
> 
> diff --git a/arch/arm/mach-mx25/devices-imx25.h b/arch/arm/mach-mx25/devices-imx25.h
> index 733aaee..4e7b280 100644
> --- a/arch/arm/mach-mx25/devices-imx25.h
> +++ b/arch/arm/mach-mx25/devices-imx25.h
> @@ -49,7 +49,8 @@ extern const struct imx_spi_imx_data imx25_spi_imx_data[] __initconst;
>  #define imx25_add_spi_imx1(pdata)	imx25_add_spi_imx(1, pdata)
>  #define imx25_add_spi_imx2(pdata)	imx25_add_spi_imx(2, pdata)
>  
> -#define imx25_add_esdhc0(pdata)	\
> -	imx_add_esdhc(0, MX25_ESDHC1_BASE_ADDR, SZ_16K, MX25_INT_MMC_SDHC1, pdata)
> -#define imx25_add_esdhc1(pdata)	\
> -	imx_add_esdhc(1, MX25_ESDHC2_BASE_ADDR, SZ_16K, MX25_INT_MMC_SDHC2, pdata)
> +extern const struct imx_esdhc_imx_data imx25_esdhc_data[] __initconst;
> +#define imx25_add_esdhc(id, pdata)	\
> +	imx_add_esdhc(&imx25_esdhc_data[id], pdata)
> +#define imx25_add_esdhc0(pdata)		imx25_add_esdhc(0, pdata)
> +#define imx25_add_esdhc1(pdata)		imx25_add_esdhc(1, pdata)
these wrappers for imxXX_add_esdhc can go away iff they are unused
(didn't check and don't care much).

> diff --git a/arch/arm/mach-mx3/devices-imx35.h b/arch/arm/mach-mx3/devices-imx35.h
> index 509b346..e4ef168 100644
> --- a/arch/arm/mach-mx3/devices-imx35.h
> +++ b/arch/arm/mach-mx3/devices-imx35.h
> @@ -46,9 +46,9 @@ extern const struct imx_spi_imx_data imx35_cspi_data[] __initconst;
>  #define imx35_add_spi_imx0(pdata)	imx35_add_cspi(0, pdata)
>  #define imx35_add_spi_imx1(pdata)	imx35_add_cspi(1, pdata)
>  
> -#define imx35_add_esdhc0(pdata)	\
> -	imx_add_esdhc(0, MX35_ESDHC1_BASE_ADDR, SZ_16K, MX35_INT_MMC_SDHC1, pdata)
> -#define imx35_add_esdhc1(pdata)	\
> -	imx_add_esdhc(1, MX35_ESDHC2_BASE_ADDR, SZ_16K, MX35_INT_MMC_SDHC2, pdata)
> -#define imx35_add_esdhc2(pdata)	\
> -	imx_add_esdhc(2, MX35_ESDHC3_BASE_ADDR, SZ_16K, MX35_INT_MMC_SDHC3, pdata)
> +extern const struct imx_esdhc_imx_data imx35_esdhc_data[] __initconst;
> +#define imx35_add_esdhc(id, pdata)	\
> +	imx_add_esdhc(&imx35_esdhc_data[id], pdata)
> +#define imx35_add_esdhc0(pdata)		imx35_add_esdhc(0, pdata)
> +#define imx35_add_esdhc1(pdata)		imx35_add_esdhc(1, pdata)
> +#define imx35_add_esdhc2(pdata)		imx35_add_esdhc(2, pdata)
> diff --git a/arch/arm/mach-mx5/devices-imx51.h b/arch/arm/mach-mx5/devices-imx51.h
> index 547432d..5cc910e 100644
> --- a/arch/arm/mach-mx5/devices-imx51.h
> +++ b/arch/arm/mach-mx5/devices-imx51.h
> @@ -37,11 +37,6 @@ extern const struct imx_spi_imx_data imx51_ecspi_data[] __initconst;
>  #define imx51_add_ecspi(id, pdata)	\
>  	imx_add_spi_imx(&imx51_ecspi_data[id], pdata)
>  
> -#define imx51_add_esdhc0(pdata)	\
> -	imx_add_esdhc(0, MX51_MMC_SDHC1_BASE_ADDR, SZ_16K, MX51_MXC_INT_MMC_SDHC1, pdata)
> -#define imx51_add_esdhc1(pdata)	\
> -	imx_add_esdhc(1, MX51_MMC_SDHC2_BASE_ADDR, SZ_16K, MX51_MXC_INT_MMC_SDHC2, pdata)
> -#define imx51_add_esdhc2(pdata)	\
> -	imx_add_esdhc(2, MX51_MMC_SDHC3_BASE_ADDR, SZ_16K, MX51_MXC_INT_MMC_SDHC3, pdata)
> -#define imx51_add_esdhc3(pdata)	\
> -	imx_add_esdhc(3, MX51_MMC_SDHC4_BASE_ADDR, SZ_16K, MX51_MXC_INT_MMC_SDHC4, pdata)
> +extern const struct imx_esdhc_imx_data imx51_esdhc_data[] __initconst;
> +#define imx51_add_esdhc(id, pdata)	\
> +	imx_add_esdhc(&imx51_esdhc_data[id], pdata)
> diff --git a/arch/arm/plat-mxc/devices/platform-esdhc.c b/arch/arm/plat-mxc/devices/platform-esdhc.c
> index 68db2a2..4fc37e4 100644
> --- a/arch/arm/plat-mxc/devices/platform-esdhc.c
> +++ b/arch/arm/plat-mxc/devices/platform-esdhc.c
> @@ -6,26 +6,66 @@
>   * Free Software Foundation.
>   */
>  
> +#include <mach/hardware.h>
>  #include <mach/devices-common.h>
>  #include <mach/esdhc.h>
>  
> -struct platform_device *__init imx_add_esdhc(int id,
> -		resource_size_t iobase, resource_size_t iosize,
> -		resource_size_t irq,
> +#define imx_esdhc_imx_data_entry_single(soc, _id, hwid) \
> +	{								\
> +		.id = _id,						\
> +		.iobase = soc ## _MMC_SDHC ## hwid ## _BASE_ADDR,	\
> +		.irq = soc ## _INT_MMC_SDHC ## hwid,			\
> +	}
> +
> +#define imx_esdhc_imx_data_entry(soc, id, hwid)	\
> +	[id] = imx_esdhc_imx_data_entry_single(soc, id, hwid)
> +
> +#ifdef CONFIG_ARCH_MX25
> +const struct imx_esdhc_imx_data imx25_esdhc_data[] __initconst = {
> +#define imx25_esdhc_data_entry(_id, _hwid)				\
> +	imx_esdhc_imx_data_entry(MX25, _id, _hwid)
> +	imx25_esdhc_data_entry(0, 1),
> +	imx25_esdhc_data_entry(1, 2),
> +};
> +#endif /* ifdef CONFIG_ARCH_MX25 */
> +
> +#ifdef CONFIG_ARCH_MX35
> +const struct imx_esdhc_imx_data imx35_esdhc_data[] __initconst = {
> +#define imx35_esdhc_data_entry(_id, _hwid)                           \
> +	imx_esdhc_imx_data_entry(MX35, _id, _hwid)
> +	imx35_esdhc_data_entry(0, 1),
> +	imx35_esdhc_data_entry(1, 2),
> +	imx35_esdhc_data_entry(2, 3),
> +};
> +#endif /* ifdef CONFIG_ARCH_MX35 */
> +
> +#ifdef CONFIG_ARCH_MX51
> +const struct imx_esdhc_imx_data imx51_esdhc_data[] __initconst = {
> +#define imx51_esdhc_data_entry(_id, _hwid)				\
> +	imx_esdhc_imx_data_entry(MX51, _id, _hwid)
> +	imx51_esdhc_data_entry(0, 1),
> +	imx51_esdhc_data_entry(1, 2),
> +	imx51_esdhc_data_entry(2, 3),
> +	imx51_esdhc_data_entry(3, 4),
> +};
> +#endif /* ifdef CONFIG_ARCH_MX51 */
> +
> +struct platform_device *__init imx_add_esdhc(
> +		const struct imx_esdhc_imx_data *data,
>  		const struct esdhc_platform_data *pdata)
>  {
>  	struct resource res[] = {
>  		{
> -			.start = iobase,
> -			.end = iobase + iosize - 1,
> +			.start = data->iobase,
> +			.end = data->iobase + SZ_16K - 1,
>  			.flags = IORESOURCE_MEM,
>  		}, {
> -			.start = irq,
> -			.end = irq,
> +			.start = data->irq,
> +			.end = data->irq,
>  			.flags = IORESOURCE_IRQ,
>  		},
>  	};
>  
> -	return imx_add_platform_device("sdhci-esdhc-imx", id, res,
> +	return imx_add_platform_device("sdhci-esdhc-imx", data->id, res,
>  			ARRAY_SIZE(res), pdata, sizeof(*pdata));
>  }
> diff --git a/arch/arm/plat-mxc/include/mach/devices-common.h b/arch/arm/plat-mxc/include/mach/devices-common.h
> index 0498978..ca1f922 100644
> --- a/arch/arm/plat-mxc/include/mach/devices-common.h
> +++ b/arch/arm/plat-mxc/include/mach/devices-common.h
> @@ -108,7 +108,13 @@ struct platform_device *__init imx_add_spi_imx(
>  		const struct spi_imx_master *pdata);
>  
>  #include <mach/esdhc.h>
> -struct platform_device *__init imx_add_esdhc(int id,
> -		resource_size_t iobase, resource_size_t iosize,
> -		resource_size_t irq,
> +struct imx_esdhc_imx_data {
> +	const char *devid;
> +	int id;
> +	resource_size_t iobase;
> +	resource_size_t iosize;
> +	resource_size_t irq;
some of these can go away no, too

> +};
> +struct platform_device *__init imx_add_esdhc(
> +		const struct imx_esdhc_imx_data *data,
>  		const struct esdhc_platform_data *pdata);
> diff --git a/arch/arm/plat-mxc/include/mach/mx25.h b/arch/arm/plat-mxc/include/mach/mx25.h
> index 153dd1b..31d9c4c 100644
> --- a/arch/arm/plat-mxc/include/mach/mx25.h
> +++ b/arch/arm/plat-mxc/include/mach/mx25.h
> @@ -50,8 +50,8 @@
>  #define MX25_SSI1_BASE_ADDR		0x50034000
>  #define MX25_NFC_BASE_ADDR		0xbb000000
>  #define MX25_DRYICE_BASE_ADDR		0x53ffc000
> -#define MX25_ESDHC1_BASE_ADDR		0x53fb4000
> -#define MX25_ESDHC2_BASE_ADDR		0x53fb8000
> +#define MX25_MMC_SDHC1_BASE_ADDR	0x53fb4000
> +#define MX25_MMC_SDHC2_BASE_ADDR	0x53fb8000
I wonder about the name in the reference manual.  Is it really MMC_SDHC
for all socs?  I always wonder what it the best here (if they are named
inconsitently there), have it equal over all SoCs or have it match the
respective reference manual?!

>  #define MX25_LCDC_BASE_ADDR		0x53fbc000
>  #define MX25_KPP_BASE_ADDR		0x43fa8000
>  #define MX25_OTG_BASE_ADDR		0x53ff4000
> diff --git a/arch/arm/plat-mxc/include/mach/mx35.h b/arch/arm/plat-mxc/include/mach/mx35.h
> index cb071b7..6f113fc 100644
> --- a/arch/arm/plat-mxc/include/mach/mx35.h
> +++ b/arch/arm/plat-mxc/include/mach/mx35.h
> @@ -53,9 +53,9 @@
>  #define MX35_GPIO3_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xa4000)
>  #define MX35_SCC_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xac000)
>  #define MX35_RNGA_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xb0000)
> -#define MX35_ESDHC1_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xb4000)
> -#define MX35_ESDHC2_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xb8000)
> -#define MX35_ESDHC3_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xbc000)
> +#define MX35_MMC_SDHC1_BASE_ADDR		(MX35_AIPS2_BASE_ADDR + 0xb4000)
> +#define MX35_MMC_SDHC2_BASE_ADDR		(MX35_AIPS2_BASE_ADDR + 0xb8000)
> +#define MX35_MMC_SDHC3_BASE_ADDR		(MX35_AIPS2_BASE_ADDR + 0xbc000)
>  #define MX35_IPU_CTRL_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xc0000)
>  #define MX35_AUDMUX_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xc4000)
>  #define MX35_GPIO1_BASE_ADDR			(MX35_AIPS2_BASE_ADDR + 0xcc000)
> diff --git a/arch/arm/plat-mxc/include/mach/mx51.h b/arch/arm/plat-mxc/include/mach/mx51.h
> index c54b5c3..7927f61 100644
> --- a/arch/arm/plat-mxc/include/mach/mx51.h
> +++ b/arch/arm/plat-mxc/include/mach/mx51.h
> @@ -280,10 +280,10 @@
>   */
>  #define MX51_MXC_INT_BASE		0
>  #define MX51_MXC_INT_RESV0		0
> -#define MX51_MXC_INT_MMC_SDHC1		1
> -#define MX51_MXC_INT_MMC_SDHC2		2
> -#define MX51_MXC_INT_MMC_SDHC3		3
> -#define MX51_MXC_INT_MMC_SDHC4		4
> +#define MX51_INT_MMC_SDHC1		1
> +#define MX51_INT_MMC_SDHC2		2
> +#define MX51_INT_MMC_SDHC3		3
> +#define MX51_INT_MMC_SDHC4		4
>  #define MX51_MXC_INT_RESV5		5
>  #define MX51_INT_SDMA			6
>  #define MX51_MXC_INT_IOMUX		7
> -- 
> 1.7.0.4
> 
> 

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

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

* [PATCH v3] imx-esdhc: update devices registration
  2010-10-12 15:08         ` Uwe Kleine-König
@ 2010-10-12 15:16           ` Eric Bénard
  2010-10-12 15:31             ` Wolfram Sang
  0 siblings, 1 reply; 21+ messages in thread
From: Eric Bénard @ 2010-10-12 15:16 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Uwe,

Le 12/10/2010 17:08, Uwe Kleine-K?nig a ?crit :
>> +#define MX25_MMC_SDHC1_BASE_ADDR	0x53fb4000
>> +#define MX25_MMC_SDHC2_BASE_ADDR	0x53fb8000
> I wonder about the name in the reference manual.  Is it really MMC_SDHC
> for all socs?  I always wonder what it the best here (if they are named
> inconsitently there), have it equal over all SoCs or have it match the
> respective reference manual?!
>
reference manual, section Memory Map :
i.MX25 : eSDHC-x
i.MX35 : eSDHCv2-x
i.MX51 : ESDHC x

so the manual are not consistent ... "MMC_SDHC" seems easy to understand 
but of course we can have ESDHC, or SDHC or something else if you have a 
better name to suggest.

Eric

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

* [PATCH v3] imx-esdhc: update devices registration
  2010-10-12 15:16           ` Eric Bénard
@ 2010-10-12 15:31             ` Wolfram Sang
  2010-10-12 17:33               ` [PATCH v4] " Eric Bénard
  0 siblings, 1 reply; 21+ messages in thread
From: Wolfram Sang @ 2010-10-12 15:31 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Oct 12, 2010 at 05:16:31PM +0200, Eric B?nard wrote:
> Hi Uwe,
> 
> Le 12/10/2010 17:08, Uwe Kleine-K?nig a ?crit :
> >>+#define MX25_MMC_SDHC1_BASE_ADDR	0x53fb4000
> >>+#define MX25_MMC_SDHC2_BASE_ADDR	0x53fb8000
> >I wonder about the name in the reference manual.  Is it really MMC_SDHC
> >for all socs?  I always wonder what it the best here (if they are named
> >inconsitently there), have it equal over all SoCs or have it match the
> >respective reference manual?!
> >
> reference manual, section Memory Map :
> i.MX25 : eSDHC-x
> i.MX35 : eSDHCv2-x
> i.MX51 : ESDHC x
> 
> so the manual are not consistent ... "MMC_SDHC" seems easy to
> understand but of course we can have ESDHC, or SDHC or something
> else if you have a better name to suggest.

I'd go for ESDHC, that seems to be the common part in all refmans. (And
comparing it to the SDHC-spec, it is also not really a straightforward
SDHC anyway ;))

Regards,

   Wolfram

-- 
Pengutronix e.K.                           | Wolfram Sang                |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20101012/d2fe3d70/attachment.sig>

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

* [PATCH v4] imx-esdhc: update devices registration
  2010-10-12 15:31             ` Wolfram Sang
@ 2010-10-12 17:33               ` Eric Bénard
  2010-10-15  9:01                 ` Uwe Kleine-König
  2010-10-20 14:55                 ` Uwe Kleine-König
  0 siblings, 2 replies; 21+ messages in thread
From: Eric Bénard @ 2010-10-12 17:33 UTC (permalink / raw)
  To: linux-arm-kernel

Tested on i.MX25 and i.MX35 and i.MX51

Signed-off-by: Eric B?nard <eric@eukrea.com>
---
v4 : rename to ESDHC and remove non necessary defines
v3 : remove generic bits from the structure
v2 : remove SSI3 fixes which leaked in previous patch

 arch/arm/mach-mx25/devices-imx25.h              |    7 +--
 arch/arm/mach-mx25/eukrea_mbimxsd-baseboard.c   |    2 +-
 arch/arm/mach-mx3/devices-imx35.h               |    9 +---
 arch/arm/mach-mx3/eukrea_mbimxsd-baseboard.c    |    2 +-
 arch/arm/mach-mx3/mach-pcm043.c                 |    2 +-
 arch/arm/mach-mx5/devices-imx51.h               |   11 +---
 arch/arm/plat-mxc/devices/platform-esdhc.c      |   56 +++++++++++++++++++---
 arch/arm/plat-mxc/include/mach/devices-common.h |   10 +++-
 arch/arm/plat-mxc/include/mach/mx25.h           |    4 +-
 arch/arm/plat-mxc/include/mach/mx35.h           |    6 +-
 arch/arm/plat-mxc/include/mach/mx51.h           |   16 +++---
 11 files changed, 80 insertions(+), 45 deletions(-)

diff --git a/arch/arm/mach-mx25/devices-imx25.h b/arch/arm/mach-mx25/devices-imx25.h
index 733aaee..93afa10 100644
--- a/arch/arm/mach-mx25/devices-imx25.h
+++ b/arch/arm/mach-mx25/devices-imx25.h
@@ -49,7 +49,6 @@ extern const struct imx_spi_imx_data imx25_spi_imx_data[] __initconst;
 #define imx25_add_spi_imx1(pdata)	imx25_add_spi_imx(1, pdata)
 #define imx25_add_spi_imx2(pdata)	imx25_add_spi_imx(2, pdata)
 
-#define imx25_add_esdhc0(pdata)	\
-	imx_add_esdhc(0, MX25_ESDHC1_BASE_ADDR, SZ_16K, MX25_INT_MMC_SDHC1, pdata)
-#define imx25_add_esdhc1(pdata)	\
-	imx_add_esdhc(1, MX25_ESDHC2_BASE_ADDR, SZ_16K, MX25_INT_MMC_SDHC2, pdata)
+extern const struct imx_esdhc_imx_data imx25_esdhc_data[] __initconst;
+#define imx25_add_esdhc(id, pdata)	\
+	imx_add_esdhc(&imx25_esdhc_data[id], pdata)
diff --git a/arch/arm/mach-mx25/eukrea_mbimxsd-baseboard.c b/arch/arm/mach-mx25/eukrea_mbimxsd-baseboard.c
index c1fe048..54a7cf9 100644
--- a/arch/arm/mach-mx25/eukrea_mbimxsd-baseboard.c
+++ b/arch/arm/mach-mx25/eukrea_mbimxsd-baseboard.c
@@ -245,7 +245,7 @@ void __init eukrea_mbimxsd25_baseboard_init(void)
 	imx25_add_imx_ssi(0, &eukrea_mbimxsd_ssi_pdata);
 
 	imx25_add_flexcan1(NULL);
-	imx25_add_esdhc0(NULL);
+	imx25_add_esdhc(0, NULL);
 
 	gpio_request(GPIO_LED1, "LED1");
 	gpio_direction_output(GPIO_LED1, 1);
diff --git a/arch/arm/mach-mx3/devices-imx35.h b/arch/arm/mach-mx3/devices-imx35.h
index 509b346..5eb917b 100644
--- a/arch/arm/mach-mx3/devices-imx35.h
+++ b/arch/arm/mach-mx3/devices-imx35.h
@@ -46,9 +46,6 @@ extern const struct imx_spi_imx_data imx35_cspi_data[] __initconst;
 #define imx35_add_spi_imx0(pdata)	imx35_add_cspi(0, pdata)
 #define imx35_add_spi_imx1(pdata)	imx35_add_cspi(1, pdata)
 
-#define imx35_add_esdhc0(pdata)	\
-	imx_add_esdhc(0, MX35_ESDHC1_BASE_ADDR, SZ_16K, MX35_INT_MMC_SDHC1, pdata)
-#define imx35_add_esdhc1(pdata)	\
-	imx_add_esdhc(1, MX35_ESDHC2_BASE_ADDR, SZ_16K, MX35_INT_MMC_SDHC2, pdata)
-#define imx35_add_esdhc2(pdata)	\
-	imx_add_esdhc(2, MX35_ESDHC3_BASE_ADDR, SZ_16K, MX35_INT_MMC_SDHC3, pdata)
+extern const struct imx_esdhc_imx_data imx35_esdhc_data[] __initconst;
+#define imx35_add_esdhc(id, pdata)	\
+	imx_add_esdhc(&imx35_esdhc_data[id], pdata)
diff --git a/arch/arm/mach-mx3/eukrea_mbimxsd-baseboard.c b/arch/arm/mach-mx3/eukrea_mbimxsd-baseboard.c
index 8869599..e8946e0 100644
--- a/arch/arm/mach-mx3/eukrea_mbimxsd-baseboard.c
+++ b/arch/arm/mach-mx3/eukrea_mbimxsd-baseboard.c
@@ -255,7 +255,7 @@ void __init eukrea_mbimxsd35_baseboard_init(void)
 	imx35_add_imx_ssi(0, &eukrea_mbimxsd_ssi_pdata);
 
 	imx35_add_flexcan1(NULL);
-	imx35_add_esdhc0(NULL);
+	imx35_add_esdhc(0, NULL);
 
 	gpio_request(GPIO_LED1, "LED1");
 	gpio_direction_output(GPIO_LED1, 1);
diff --git a/arch/arm/mach-mx3/mach-pcm043.c b/arch/arm/mach-mx3/mach-pcm043.c
index e790a00..a9397a4 100644
--- a/arch/arm/mach-mx3/mach-pcm043.c
+++ b/arch/arm/mach-mx3/mach-pcm043.c
@@ -395,7 +395,7 @@ static void __init mxc_board_init(void)
 		mxc_register_device(&mxc_otg_udc_device, &otg_device_pdata);
 
 	imx35_add_flexcan1(NULL);
-	imx35_add_esdhc0(NULL);
+	imx35_add_esdhc(0, NULL);
 }
 
 static void __init pcm043_timer_init(void)
diff --git a/arch/arm/mach-mx5/devices-imx51.h b/arch/arm/mach-mx5/devices-imx51.h
index 547432d..5cc910e 100644
--- a/arch/arm/mach-mx5/devices-imx51.h
+++ b/arch/arm/mach-mx5/devices-imx51.h
@@ -37,11 +37,6 @@ extern const struct imx_spi_imx_data imx51_ecspi_data[] __initconst;
 #define imx51_add_ecspi(id, pdata)	\
 	imx_add_spi_imx(&imx51_ecspi_data[id], pdata)
 
-#define imx51_add_esdhc0(pdata)	\
-	imx_add_esdhc(0, MX51_MMC_SDHC1_BASE_ADDR, SZ_16K, MX51_MXC_INT_MMC_SDHC1, pdata)
-#define imx51_add_esdhc1(pdata)	\
-	imx_add_esdhc(1, MX51_MMC_SDHC2_BASE_ADDR, SZ_16K, MX51_MXC_INT_MMC_SDHC2, pdata)
-#define imx51_add_esdhc2(pdata)	\
-	imx_add_esdhc(2, MX51_MMC_SDHC3_BASE_ADDR, SZ_16K, MX51_MXC_INT_MMC_SDHC3, pdata)
-#define imx51_add_esdhc3(pdata)	\
-	imx_add_esdhc(3, MX51_MMC_SDHC4_BASE_ADDR, SZ_16K, MX51_MXC_INT_MMC_SDHC4, pdata)
+extern const struct imx_esdhc_imx_data imx51_esdhc_data[] __initconst;
+#define imx51_add_esdhc(id, pdata)	\
+	imx_add_esdhc(&imx51_esdhc_data[id], pdata)
diff --git a/arch/arm/plat-mxc/devices/platform-esdhc.c b/arch/arm/plat-mxc/devices/platform-esdhc.c
index 68db2a2..2605bfa 100644
--- a/arch/arm/plat-mxc/devices/platform-esdhc.c
+++ b/arch/arm/plat-mxc/devices/platform-esdhc.c
@@ -6,26 +6,66 @@
  * Free Software Foundation.
  */
 
+#include <mach/hardware.h>
 #include <mach/devices-common.h>
 #include <mach/esdhc.h>
 
-struct platform_device *__init imx_add_esdhc(int id,
-		resource_size_t iobase, resource_size_t iosize,
-		resource_size_t irq,
+#define imx_esdhc_imx_data_entry_single(soc, _id, hwid) \
+	{								\
+		.id = _id,						\
+		.iobase = soc ## _ESDHC ## hwid ## _BASE_ADDR,	\
+		.irq = soc ## _INT_ESDHC ## hwid,			\
+	}
+
+#define imx_esdhc_imx_data_entry(soc, id, hwid)	\
+	[id] = imx_esdhc_imx_data_entry_single(soc, id, hwid)
+
+#ifdef CONFIG_ARCH_MX25
+const struct imx_esdhc_imx_data imx25_esdhc_data[] __initconst = {
+#define imx25_esdhc_data_entry(_id, _hwid)				\
+	imx_esdhc_imx_data_entry(MX25, _id, _hwid)
+	imx25_esdhc_data_entry(0, 1),
+	imx25_esdhc_data_entry(1, 2),
+};
+#endif /* ifdef CONFIG_ARCH_MX25 */
+
+#ifdef CONFIG_ARCH_MX35
+const struct imx_esdhc_imx_data imx35_esdhc_data[] __initconst = {
+#define imx35_esdhc_data_entry(_id, _hwid)                           \
+	imx_esdhc_imx_data_entry(MX35, _id, _hwid)
+	imx35_esdhc_data_entry(0, 1),
+	imx35_esdhc_data_entry(1, 2),
+	imx35_esdhc_data_entry(2, 3),
+};
+#endif /* ifdef CONFIG_ARCH_MX35 */
+
+#ifdef CONFIG_ARCH_MX51
+const struct imx_esdhc_imx_data imx51_esdhc_data[] __initconst = {
+#define imx51_esdhc_data_entry(_id, _hwid)				\
+	imx_esdhc_imx_data_entry(MX51, _id, _hwid)
+	imx51_esdhc_data_entry(0, 1),
+	imx51_esdhc_data_entry(1, 2),
+	imx51_esdhc_data_entry(2, 3),
+	imx51_esdhc_data_entry(3, 4),
+};
+#endif /* ifdef CONFIG_ARCH_MX51 */
+
+struct platform_device *__init imx_add_esdhc(
+		const struct imx_esdhc_imx_data *data,
 		const struct esdhc_platform_data *pdata)
 {
 	struct resource res[] = {
 		{
-			.start = iobase,
-			.end = iobase + iosize - 1,
+			.start = data->iobase,
+			.end = data->iobase + SZ_16K - 1,
 			.flags = IORESOURCE_MEM,
 		}, {
-			.start = irq,
-			.end = irq,
+			.start = data->irq,
+			.end = data->irq,
 			.flags = IORESOURCE_IRQ,
 		},
 	};
 
-	return imx_add_platform_device("sdhci-esdhc-imx", id, res,
+	return imx_add_platform_device("sdhci-esdhc-imx", data->id, res,
 			ARRAY_SIZE(res), pdata, sizeof(*pdata));
 }
diff --git a/arch/arm/plat-mxc/include/mach/devices-common.h b/arch/arm/plat-mxc/include/mach/devices-common.h
index 0498978..86d7575 100644
--- a/arch/arm/plat-mxc/include/mach/devices-common.h
+++ b/arch/arm/plat-mxc/include/mach/devices-common.h
@@ -108,7 +108,11 @@ struct platform_device *__init imx_add_spi_imx(
 		const struct spi_imx_master *pdata);
 
 #include <mach/esdhc.h>
-struct platform_device *__init imx_add_esdhc(int id,
-		resource_size_t iobase, resource_size_t iosize,
-		resource_size_t irq,
+struct imx_esdhc_imx_data {
+	int id;
+	resource_size_t iobase;
+	resource_size_t irq;
+};
+struct platform_device *__init imx_add_esdhc(
+		const struct imx_esdhc_imx_data *data,
 		const struct esdhc_platform_data *pdata);
diff --git a/arch/arm/plat-mxc/include/mach/mx25.h b/arch/arm/plat-mxc/include/mach/mx25.h
index 153dd1b..8e00793 100644
--- a/arch/arm/plat-mxc/include/mach/mx25.h
+++ b/arch/arm/plat-mxc/include/mach/mx25.h
@@ -61,8 +61,8 @@
 #define MX25_INT_I2C1		3
 #define MX25_INT_I2C2		4
 #define MX25_INT_UART4		5
-#define MX25_INT_MMC_SDHC2	8
-#define MX25_INT_MMC_SDHC1	9
+#define MX25_INT_ESDHC2		8
+#define MX25_INT_ESDHC1		9
 #define MX25_INT_I2C3		10
 #define MX25_INT_SSI2		11
 #define MX25_INT_SSI1		12
diff --git a/arch/arm/plat-mxc/include/mach/mx35.h b/arch/arm/plat-mxc/include/mach/mx35.h
index cb071b7..ff905cb 100644
--- a/arch/arm/plat-mxc/include/mach/mx35.h
+++ b/arch/arm/plat-mxc/include/mach/mx35.h
@@ -128,9 +128,9 @@
 #define MX35_INT_I2C3		3
 #define MX35_INT_I2C2		4
 #define MX35_INT_RTIC		6
-#define MX35_INT_MMC_SDHC1	7
-#define MX35_INT_MMC_SDHC2	8
-#define MX35_INT_MMC_SDHC3	9
+#define MX35_INT_ESDHC1		7
+#define MX35_INT_ESDHC2		8
+#define MX35_INT_ESDHC3		9
 #define MX35_INT_I2C1		10
 #define MX35_INT_SSI1		11
 #define MX35_INT_SSI2		12
diff --git a/arch/arm/plat-mxc/include/mach/mx51.h b/arch/arm/plat-mxc/include/mach/mx51.h
index c54b5c3..2af7a10 100644
--- a/arch/arm/plat-mxc/include/mach/mx51.h
+++ b/arch/arm/plat-mxc/include/mach/mx51.h
@@ -64,13 +64,13 @@
 #define MX51_SPBA0_BASE_ADDR_VIRT	0xfb100000
 #define MX51_SPBA0_SIZE			SZ_1M
 
-#define MX51_MMC_SDHC1_BASE_ADDR	(MX51_SPBA0_BASE_ADDR + 0x04000)
-#define MX51_MMC_SDHC2_BASE_ADDR	(MX51_SPBA0_BASE_ADDR + 0x08000)
+#define MX51_ESDHC1_BASE_ADDR		(MX51_SPBA0_BASE_ADDR + 0x04000)
+#define MX51_ESDHC2_BASE_ADDR		(MX51_SPBA0_BASE_ADDR + 0x08000)
 #define MX51_UART3_BASE_ADDR		(MX51_SPBA0_BASE_ADDR + 0x0c000)
 #define MX51_ECSPI1_BASE_ADDR		(MX51_SPBA0_BASE_ADDR + 0x10000)
 #define MX51_SSI2_BASE_ADDR		(MX51_SPBA0_BASE_ADDR + 0x14000)
-#define MX51_MMC_SDHC3_BASE_ADDR	(MX51_SPBA0_BASE_ADDR + 0x20000)
-#define MX51_MMC_SDHC4_BASE_ADDR	(MX51_SPBA0_BASE_ADDR + 0x24000)
+#define MX51_ESDHC3_BASE_ADDR		(MX51_SPBA0_BASE_ADDR + 0x20000)
+#define MX51_ESDHC4_BASE_ADDR		(MX51_SPBA0_BASE_ADDR + 0x24000)
 #define MX51_SPDIF_BASE_ADDR		(MX51_SPBA0_BASE_ADDR + 0x28000)
 #define MX51_ATA_DMA_BASE_ADDR		(MX51_SPBA0_BASE_ADDR + 0x30000)
 #define MX51_SLIM_DMA_BASE_ADDR		(MX51_SPBA0_BASE_ADDR + 0x34000)
@@ -280,10 +280,10 @@
  */
 #define MX51_MXC_INT_BASE		0
 #define MX51_MXC_INT_RESV0		0
-#define MX51_MXC_INT_MMC_SDHC1		1
-#define MX51_MXC_INT_MMC_SDHC2		2
-#define MX51_MXC_INT_MMC_SDHC3		3
-#define MX51_MXC_INT_MMC_SDHC4		4
+#define MX51_INT_ESDHC1			1
+#define MX51_INT_ESDHC2			2
+#define MX51_INT_ESDHC3			3
+#define MX51_INT_ESDHC4			4
 #define MX51_MXC_INT_RESV5		5
 #define MX51_INT_SDMA			6
 #define MX51_MXC_INT_IOMUX		7
-- 
1.7.0.4

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

* [PATCH v4] imx-esdhc: update devices registration
  2010-10-12 17:33               ` [PATCH v4] " Eric Bénard
@ 2010-10-15  9:01                 ` Uwe Kleine-König
  2010-10-15  9:16                   ` Eric Bénard
  2010-10-20 14:55                 ` Uwe Kleine-König
  1 sibling, 1 reply; 21+ messages in thread
From: Uwe Kleine-König @ 2010-10-15  9:01 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Eric,

On Tue, Oct 12, 2010 at 07:33:45PM +0200, Eric B?nard wrote:
> Tested on i.MX25 and i.MX35 and i.MX51
> 
> Signed-off-by: Eric B?nard <eric@eukrea.com>
Looks good now, but the patch doesn't apply for me:

	Applying: imx-esdhc: update devices registration
	fatal: sha1 information is lacking or useless
	(arch/arm/mach-mx5/devices-imx51.h).
	Repository lacks necessary blobs to fall back on 3-way merge.
	Cannot fall back to three-way merge.
	Patch failed at 0001 imx-esdhc: update devices registration
	When you have resolved this problem run "git am --resolved".
	If you would prefer to skip this patch, instead run "git am --skip".
	To restore the original branch and stop patching run "git am --abort".
	Press any key to continue...

Best regards
Uwe

> ---
> v4 : rename to ESDHC and remove non necessary defines
> v3 : remove generic bits from the structure
> v2 : remove SSI3 fixes which leaked in previous patch
> 
>  arch/arm/mach-mx25/devices-imx25.h              |    7 +--
>  arch/arm/mach-mx25/eukrea_mbimxsd-baseboard.c   |    2 +-
>  arch/arm/mach-mx3/devices-imx35.h               |    9 +---
>  arch/arm/mach-mx3/eukrea_mbimxsd-baseboard.c    |    2 +-
>  arch/arm/mach-mx3/mach-pcm043.c                 |    2 +-
>  arch/arm/mach-mx5/devices-imx51.h               |   11 +---
>  arch/arm/plat-mxc/devices/platform-esdhc.c      |   56 +++++++++++++++++++---
>  arch/arm/plat-mxc/include/mach/devices-common.h |   10 +++-
>  arch/arm/plat-mxc/include/mach/mx25.h           |    4 +-
>  arch/arm/plat-mxc/include/mach/mx35.h           |    6 +-
>  arch/arm/plat-mxc/include/mach/mx51.h           |   16 +++---
>  11 files changed, 80 insertions(+), 45 deletions(-)
> 
> diff --git a/arch/arm/mach-mx25/devices-imx25.h b/arch/arm/mach-mx25/devices-imx25.h
> index 733aaee..93afa10 100644
> --- a/arch/arm/mach-mx25/devices-imx25.h
> +++ b/arch/arm/mach-mx25/devices-imx25.h
> @@ -49,7 +49,6 @@ extern const struct imx_spi_imx_data imx25_spi_imx_data[] __initconst;
>  #define imx25_add_spi_imx1(pdata)	imx25_add_spi_imx(1, pdata)
>  #define imx25_add_spi_imx2(pdata)	imx25_add_spi_imx(2, pdata)
>  
> -#define imx25_add_esdhc0(pdata)	\
> -	imx_add_esdhc(0, MX25_ESDHC1_BASE_ADDR, SZ_16K, MX25_INT_MMC_SDHC1, pdata)
> -#define imx25_add_esdhc1(pdata)	\
> -	imx_add_esdhc(1, MX25_ESDHC2_BASE_ADDR, SZ_16K, MX25_INT_MMC_SDHC2, pdata)
> +extern const struct imx_esdhc_imx_data imx25_esdhc_data[] __initconst;
> +#define imx25_add_esdhc(id, pdata)	\
> +	imx_add_esdhc(&imx25_esdhc_data[id], pdata)
> diff --git a/arch/arm/mach-mx25/eukrea_mbimxsd-baseboard.c b/arch/arm/mach-mx25/eukrea_mbimxsd-baseboard.c
> index c1fe048..54a7cf9 100644
> --- a/arch/arm/mach-mx25/eukrea_mbimxsd-baseboard.c
> +++ b/arch/arm/mach-mx25/eukrea_mbimxsd-baseboard.c
> @@ -245,7 +245,7 @@ void __init eukrea_mbimxsd25_baseboard_init(void)
>  	imx25_add_imx_ssi(0, &eukrea_mbimxsd_ssi_pdata);
>  
>  	imx25_add_flexcan1(NULL);
> -	imx25_add_esdhc0(NULL);
> +	imx25_add_esdhc(0, NULL);
>  
>  	gpio_request(GPIO_LED1, "LED1");
>  	gpio_direction_output(GPIO_LED1, 1);
> diff --git a/arch/arm/mach-mx3/devices-imx35.h b/arch/arm/mach-mx3/devices-imx35.h
> index 509b346..5eb917b 100644
> --- a/arch/arm/mach-mx3/devices-imx35.h
> +++ b/arch/arm/mach-mx3/devices-imx35.h
> @@ -46,9 +46,6 @@ extern const struct imx_spi_imx_data imx35_cspi_data[] __initconst;
>  #define imx35_add_spi_imx0(pdata)	imx35_add_cspi(0, pdata)
>  #define imx35_add_spi_imx1(pdata)	imx35_add_cspi(1, pdata)
>  
> -#define imx35_add_esdhc0(pdata)	\
> -	imx_add_esdhc(0, MX35_ESDHC1_BASE_ADDR, SZ_16K, MX35_INT_MMC_SDHC1, pdata)
> -#define imx35_add_esdhc1(pdata)	\
> -	imx_add_esdhc(1, MX35_ESDHC2_BASE_ADDR, SZ_16K, MX35_INT_MMC_SDHC2, pdata)
> -#define imx35_add_esdhc2(pdata)	\
> -	imx_add_esdhc(2, MX35_ESDHC3_BASE_ADDR, SZ_16K, MX35_INT_MMC_SDHC3, pdata)
> +extern const struct imx_esdhc_imx_data imx35_esdhc_data[] __initconst;
> +#define imx35_add_esdhc(id, pdata)	\
> +	imx_add_esdhc(&imx35_esdhc_data[id], pdata)
> diff --git a/arch/arm/mach-mx3/eukrea_mbimxsd-baseboard.c b/arch/arm/mach-mx3/eukrea_mbimxsd-baseboard.c
> index 8869599..e8946e0 100644
> --- a/arch/arm/mach-mx3/eukrea_mbimxsd-baseboard.c
> +++ b/arch/arm/mach-mx3/eukrea_mbimxsd-baseboard.c
> @@ -255,7 +255,7 @@ void __init eukrea_mbimxsd35_baseboard_init(void)
>  	imx35_add_imx_ssi(0, &eukrea_mbimxsd_ssi_pdata);
>  
>  	imx35_add_flexcan1(NULL);
> -	imx35_add_esdhc0(NULL);
> +	imx35_add_esdhc(0, NULL);
>  
>  	gpio_request(GPIO_LED1, "LED1");
>  	gpio_direction_output(GPIO_LED1, 1);
> diff --git a/arch/arm/mach-mx3/mach-pcm043.c b/arch/arm/mach-mx3/mach-pcm043.c
> index e790a00..a9397a4 100644
> --- a/arch/arm/mach-mx3/mach-pcm043.c
> +++ b/arch/arm/mach-mx3/mach-pcm043.c
> @@ -395,7 +395,7 @@ static void __init mxc_board_init(void)
>  		mxc_register_device(&mxc_otg_udc_device, &otg_device_pdata);
>  
>  	imx35_add_flexcan1(NULL);
> -	imx35_add_esdhc0(NULL);
> +	imx35_add_esdhc(0, NULL);
>  }
>  
>  static void __init pcm043_timer_init(void)
> diff --git a/arch/arm/mach-mx5/devices-imx51.h b/arch/arm/mach-mx5/devices-imx51.h
> index 547432d..5cc910e 100644
> --- a/arch/arm/mach-mx5/devices-imx51.h
> +++ b/arch/arm/mach-mx5/devices-imx51.h
> @@ -37,11 +37,6 @@ extern const struct imx_spi_imx_data imx51_ecspi_data[] __initconst;
>  #define imx51_add_ecspi(id, pdata)	\
>  	imx_add_spi_imx(&imx51_ecspi_data[id], pdata)
>  
> -#define imx51_add_esdhc0(pdata)	\
> -	imx_add_esdhc(0, MX51_MMC_SDHC1_BASE_ADDR, SZ_16K, MX51_MXC_INT_MMC_SDHC1, pdata)
> -#define imx51_add_esdhc1(pdata)	\
> -	imx_add_esdhc(1, MX51_MMC_SDHC2_BASE_ADDR, SZ_16K, MX51_MXC_INT_MMC_SDHC2, pdata)
> -#define imx51_add_esdhc2(pdata)	\
> -	imx_add_esdhc(2, MX51_MMC_SDHC3_BASE_ADDR, SZ_16K, MX51_MXC_INT_MMC_SDHC3, pdata)
> -#define imx51_add_esdhc3(pdata)	\
> -	imx_add_esdhc(3, MX51_MMC_SDHC4_BASE_ADDR, SZ_16K, MX51_MXC_INT_MMC_SDHC4, pdata)
> +extern const struct imx_esdhc_imx_data imx51_esdhc_data[] __initconst;
> +#define imx51_add_esdhc(id, pdata)	\
> +	imx_add_esdhc(&imx51_esdhc_data[id], pdata)
> diff --git a/arch/arm/plat-mxc/devices/platform-esdhc.c b/arch/arm/plat-mxc/devices/platform-esdhc.c
> index 68db2a2..2605bfa 100644
> --- a/arch/arm/plat-mxc/devices/platform-esdhc.c
> +++ b/arch/arm/plat-mxc/devices/platform-esdhc.c
> @@ -6,26 +6,66 @@
>   * Free Software Foundation.
>   */
>  
> +#include <mach/hardware.h>
>  #include <mach/devices-common.h>
>  #include <mach/esdhc.h>
>  
> -struct platform_device *__init imx_add_esdhc(int id,
> -		resource_size_t iobase, resource_size_t iosize,
> -		resource_size_t irq,
> +#define imx_esdhc_imx_data_entry_single(soc, _id, hwid) \
> +	{								\
> +		.id = _id,						\
> +		.iobase = soc ## _ESDHC ## hwid ## _BASE_ADDR,	\
> +		.irq = soc ## _INT_ESDHC ## hwid,			\
> +	}
> +
> +#define imx_esdhc_imx_data_entry(soc, id, hwid)	\
> +	[id] = imx_esdhc_imx_data_entry_single(soc, id, hwid)
> +
> +#ifdef CONFIG_ARCH_MX25
> +const struct imx_esdhc_imx_data imx25_esdhc_data[] __initconst = {
> +#define imx25_esdhc_data_entry(_id, _hwid)				\
> +	imx_esdhc_imx_data_entry(MX25, _id, _hwid)
> +	imx25_esdhc_data_entry(0, 1),
> +	imx25_esdhc_data_entry(1, 2),
> +};
> +#endif /* ifdef CONFIG_ARCH_MX25 */
> +
> +#ifdef CONFIG_ARCH_MX35
> +const struct imx_esdhc_imx_data imx35_esdhc_data[] __initconst = {
> +#define imx35_esdhc_data_entry(_id, _hwid)                           \
> +	imx_esdhc_imx_data_entry(MX35, _id, _hwid)
> +	imx35_esdhc_data_entry(0, 1),
> +	imx35_esdhc_data_entry(1, 2),
> +	imx35_esdhc_data_entry(2, 3),
> +};
> +#endif /* ifdef CONFIG_ARCH_MX35 */
> +
> +#ifdef CONFIG_ARCH_MX51
> +const struct imx_esdhc_imx_data imx51_esdhc_data[] __initconst = {
> +#define imx51_esdhc_data_entry(_id, _hwid)				\
> +	imx_esdhc_imx_data_entry(MX51, _id, _hwid)
> +	imx51_esdhc_data_entry(0, 1),
> +	imx51_esdhc_data_entry(1, 2),
> +	imx51_esdhc_data_entry(2, 3),
> +	imx51_esdhc_data_entry(3, 4),
> +};
> +#endif /* ifdef CONFIG_ARCH_MX51 */
> +
> +struct platform_device *__init imx_add_esdhc(
> +		const struct imx_esdhc_imx_data *data,
>  		const struct esdhc_platform_data *pdata)
>  {
>  	struct resource res[] = {
>  		{
> -			.start = iobase,
> -			.end = iobase + iosize - 1,
> +			.start = data->iobase,
> +			.end = data->iobase + SZ_16K - 1,
>  			.flags = IORESOURCE_MEM,
>  		}, {
> -			.start = irq,
> -			.end = irq,
> +			.start = data->irq,
> +			.end = data->irq,
>  			.flags = IORESOURCE_IRQ,
>  		},
>  	};
>  
> -	return imx_add_platform_device("sdhci-esdhc-imx", id, res,
> +	return imx_add_platform_device("sdhci-esdhc-imx", data->id, res,
>  			ARRAY_SIZE(res), pdata, sizeof(*pdata));
>  }
> diff --git a/arch/arm/plat-mxc/include/mach/devices-common.h b/arch/arm/plat-mxc/include/mach/devices-common.h
> index 0498978..86d7575 100644
> --- a/arch/arm/plat-mxc/include/mach/devices-common.h
> +++ b/arch/arm/plat-mxc/include/mach/devices-common.h
> @@ -108,7 +108,11 @@ struct platform_device *__init imx_add_spi_imx(
>  		const struct spi_imx_master *pdata);
>  
>  #include <mach/esdhc.h>
> -struct platform_device *__init imx_add_esdhc(int id,
> -		resource_size_t iobase, resource_size_t iosize,
> -		resource_size_t irq,
> +struct imx_esdhc_imx_data {
> +	int id;
> +	resource_size_t iobase;
> +	resource_size_t irq;
> +};
> +struct platform_device *__init imx_add_esdhc(
> +		const struct imx_esdhc_imx_data *data,
>  		const struct esdhc_platform_data *pdata);
> diff --git a/arch/arm/plat-mxc/include/mach/mx25.h b/arch/arm/plat-mxc/include/mach/mx25.h
> index 153dd1b..8e00793 100644
> --- a/arch/arm/plat-mxc/include/mach/mx25.h
> +++ b/arch/arm/plat-mxc/include/mach/mx25.h
> @@ -61,8 +61,8 @@
>  #define MX25_INT_I2C1		3
>  #define MX25_INT_I2C2		4
>  #define MX25_INT_UART4		5
> -#define MX25_INT_MMC_SDHC2	8
> -#define MX25_INT_MMC_SDHC1	9
> +#define MX25_INT_ESDHC2		8
> +#define MX25_INT_ESDHC1		9
>  #define MX25_INT_I2C3		10
>  #define MX25_INT_SSI2		11
>  #define MX25_INT_SSI1		12
> diff --git a/arch/arm/plat-mxc/include/mach/mx35.h b/arch/arm/plat-mxc/include/mach/mx35.h
> index cb071b7..ff905cb 100644
> --- a/arch/arm/plat-mxc/include/mach/mx35.h
> +++ b/arch/arm/plat-mxc/include/mach/mx35.h
> @@ -128,9 +128,9 @@
>  #define MX35_INT_I2C3		3
>  #define MX35_INT_I2C2		4
>  #define MX35_INT_RTIC		6
> -#define MX35_INT_MMC_SDHC1	7
> -#define MX35_INT_MMC_SDHC2	8
> -#define MX35_INT_MMC_SDHC3	9
> +#define MX35_INT_ESDHC1		7
> +#define MX35_INT_ESDHC2		8
> +#define MX35_INT_ESDHC3		9
>  #define MX35_INT_I2C1		10
>  #define MX35_INT_SSI1		11
>  #define MX35_INT_SSI2		12
> diff --git a/arch/arm/plat-mxc/include/mach/mx51.h b/arch/arm/plat-mxc/include/mach/mx51.h
> index c54b5c3..2af7a10 100644
> --- a/arch/arm/plat-mxc/include/mach/mx51.h
> +++ b/arch/arm/plat-mxc/include/mach/mx51.h
> @@ -64,13 +64,13 @@
>  #define MX51_SPBA0_BASE_ADDR_VIRT	0xfb100000
>  #define MX51_SPBA0_SIZE			SZ_1M
>  
> -#define MX51_MMC_SDHC1_BASE_ADDR	(MX51_SPBA0_BASE_ADDR + 0x04000)
> -#define MX51_MMC_SDHC2_BASE_ADDR	(MX51_SPBA0_BASE_ADDR + 0x08000)
> +#define MX51_ESDHC1_BASE_ADDR		(MX51_SPBA0_BASE_ADDR + 0x04000)
> +#define MX51_ESDHC2_BASE_ADDR		(MX51_SPBA0_BASE_ADDR + 0x08000)
>  #define MX51_UART3_BASE_ADDR		(MX51_SPBA0_BASE_ADDR + 0x0c000)
>  #define MX51_ECSPI1_BASE_ADDR		(MX51_SPBA0_BASE_ADDR + 0x10000)
>  #define MX51_SSI2_BASE_ADDR		(MX51_SPBA0_BASE_ADDR + 0x14000)
> -#define MX51_MMC_SDHC3_BASE_ADDR	(MX51_SPBA0_BASE_ADDR + 0x20000)
> -#define MX51_MMC_SDHC4_BASE_ADDR	(MX51_SPBA0_BASE_ADDR + 0x24000)
> +#define MX51_ESDHC3_BASE_ADDR		(MX51_SPBA0_BASE_ADDR + 0x20000)
> +#define MX51_ESDHC4_BASE_ADDR		(MX51_SPBA0_BASE_ADDR + 0x24000)
>  #define MX51_SPDIF_BASE_ADDR		(MX51_SPBA0_BASE_ADDR + 0x28000)
>  #define MX51_ATA_DMA_BASE_ADDR		(MX51_SPBA0_BASE_ADDR + 0x30000)
>  #define MX51_SLIM_DMA_BASE_ADDR		(MX51_SPBA0_BASE_ADDR + 0x34000)
> @@ -280,10 +280,10 @@
>   */
>  #define MX51_MXC_INT_BASE		0
>  #define MX51_MXC_INT_RESV0		0
> -#define MX51_MXC_INT_MMC_SDHC1		1
> -#define MX51_MXC_INT_MMC_SDHC2		2
> -#define MX51_MXC_INT_MMC_SDHC3		3
> -#define MX51_MXC_INT_MMC_SDHC4		4
> +#define MX51_INT_ESDHC1			1
> +#define MX51_INT_ESDHC2			2
> +#define MX51_INT_ESDHC3			3
> +#define MX51_INT_ESDHC4			4
>  #define MX51_MXC_INT_RESV5		5
>  #define MX51_INT_SDMA			6
>  #define MX51_MXC_INT_IOMUX		7
> -- 
> 1.7.0.4
> 
> 

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

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

* [PATCH v4] imx-esdhc: update devices registration
  2010-10-15  9:01                 ` Uwe Kleine-König
@ 2010-10-15  9:16                   ` Eric Bénard
  0 siblings, 0 replies; 21+ messages in thread
From: Eric Bénard @ 2010-10-15  9:16 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Uwe,

Le 15/10/2010 11:01, Uwe Kleine-K?nig a ?crit :
> On Tue, Oct 12, 2010 at 07:33:45PM +0200, Eric B?nard wrote:
>> Tested on i.MX25 and i.MX35 and i.MX51
>>
>> Signed-off-by: Eric B?nard<eric@eukrea.com>
> Looks good now, but the patch doesn't apply for me:
>
yes you need the i.MX51 part before. The process is :
- add MX25 & MX35 SDHC support
- add MX51 SDHC support
- update the way SDHC is registered for MX25, MX35 and MX51.

Eric

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

* [PATCH v4] imx-esdhc: update devices registration
  2010-10-12 17:33               ` [PATCH v4] " Eric Bénard
  2010-10-15  9:01                 ` Uwe Kleine-König
@ 2010-10-20 14:55                 ` Uwe Kleine-König
  2010-10-20 15:05                   ` Eric Bénard
  1 sibling, 1 reply; 21+ messages in thread
From: Uwe Kleine-König @ 2010-10-20 14:55 UTC (permalink / raw)
  To: linux-arm-kernel

Hello Eric,

On Tue, Oct 12, 2010 at 07:33:45PM +0200, Eric B?nard wrote:
> Tested on i.MX25 and i.MX35 and i.MX51
> 
> Signed-off-by: Eric B?nard <eric@eukrea.com>
This patch (or more exact: the version of this patch that Sascha picked
up) breaks compiling mx3_defconfig.

The minimal fix is

diff --git a/arch/arm/plat-mxc/include/mach/mx35.h b/arch/arm/plat-mxc/include/mach/mx35.h
index ff905cb..9d46b7e 100644
--- a/arch/arm/plat-mxc/include/mach/mx35.h
+++ b/arch/arm/plat-mxc/include/mach/mx35.h
@@ -197,8 +197,8 @@
 /* these should go away */
 #define MXC_FEC_BASE_ADDR MX35_FEC_BASE_ADDR
 #define MXC_INT_OWIRE MX35_INT_OWIRE
-#define MXC_INT_MMC_SDHC2 MX35_INT_MMC_SDHC2
+#define MXC_INT_MMC_SDHC2 MX35_INT_ESDHC2
 #define MXC_INT_MMC_SDHC3 MX35_INT_MMC_SDHC3
 #define MXC_INT_GPU2D MX35_INT_GPU2D
 #define MXC_INT_ASRC MX35_INT_ASRC
 #define MXC_INT_USBHS MX35_INT_USBHS

But somehow this is still broken because arch/arm/mach-mx3/devices.c
uses MXC_INT_MMC_SDHC1 and MXC_INT_MMC_SDHC2.  The former is defined as

	#define MXC_INT_MMC_SDHC1 MX31_INT_MMC_SDHC1
	#define MX31_INT_MMC_SDHC1      9

the latter as

	#define MXC_INT_MMC_SDHC2 MX35_INT_ESDHC2
	#define MX35_INT_ESDHC2         8

.  Moreover we have:

	#define MXC_INT_MMC_SDHC3 MX35_INT_ESDHC3
	#define MX35_INT_ESDHC3         9

and note that arch/arm/mach-mx3/devices.c only defines mxcsdhc_device0
and mxcsdhc_device1 in an #ifdef CONFIG_ARCH_MX31 block.  (So I guess
that in an mx31 kernel the error is not, that MX35_INT_MMC_SDHC2 isn't
defined but MXC_INT_MMC_SDHC2.)

Ugly.

The better fix would be to delete mxcsdhc_device[01] from
arch/arm/mach-mx3/devices.c and convert all users to the new function.
Volunteers?  Eric?

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

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

* [PATCH v4] imx-esdhc: update devices registration
  2010-10-20 14:55                 ` Uwe Kleine-König
@ 2010-10-20 15:05                   ` Eric Bénard
  2010-10-20 15:44                     ` Uwe Kleine-König
  0 siblings, 1 reply; 21+ messages in thread
From: Eric Bénard @ 2010-10-20 15:05 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Uwe,

Le 20/10/2010 16:55, Uwe Kleine-K?nig a ?crit :
> On Tue, Oct 12, 2010 at 07:33:45PM +0200, Eric B?nard wrote:
>> Tested on i.MX25 and i.MX35 and i.MX51
>>
>> Signed-off-by: Eric B?nard<eric@eukrea.com>
> This patch (or more exact: the version of this patch that Sascha picked
> up) breaks compiling mx3_defconfig.
>
I may have made a mistake somewhere using git when providing the branch for 
Sascha to merge it because I upgraded this patch when I tested mx3_defconfig 
to have it compile !

> The better fix would be to delete mxcsdhc_device[01] from
> arch/arm/mach-mx3/devices.c and convert all users to the new function.
> Volunteers?  Eric?
>
I will see what I can do next week.

Eric

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

* [PATCH v4] imx-esdhc: update devices registration
  2010-10-20 15:05                   ` Eric Bénard
@ 2010-10-20 15:44                     ` Uwe Kleine-König
  2010-10-21 19:47                       ` Eric Bénard
  0 siblings, 1 reply; 21+ messages in thread
From: Uwe Kleine-König @ 2010-10-20 15:44 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Oct 20, 2010 at 05:05:55PM +0200, Eric B?nard wrote:
> Hi Uwe,
>
> Le 20/10/2010 16:55, Uwe Kleine-K?nig a ?crit :
>> On Tue, Oct 12, 2010 at 07:33:45PM +0200, Eric B?nard wrote:
>>> Tested on i.MX25 and i.MX35 and i.MX51
>>>
>>> Signed-off-by: Eric B?nard<eric@eukrea.com>
>> This patch (or more exact: the version of this patch that Sascha picked
>> up) breaks compiling mx3_defconfig.
>>
> I may have made a mistake somewhere using git when providing the branch 
> for Sascha to merge it because I upgraded this patch when I tested 
> mx3_defconfig to have it compile !
>
>> The better fix would be to delete mxcsdhc_device[01] from
>> arch/arm/mach-mx3/devices.c and convert all users to the new function.
>> Volunteers?  Eric?
>>
> I will see what I can do next week.
Hmm, next week might be late for Russell's first pull-request to Linus,
so below is a fix.

As the mmc unit on mx31 is different from the one on mx35, I didn't fold
it into arch/arm/plat-mxc/devices/platform-esdhc.c but simply fixed the
definition in arch/arm/mach-mx3/devices.c.

----------------------------->8-------------------------
ARM: mx3: fix build failure concerning MXC_INT_MMC_SDHC2

From: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>

Commit c074512 (imx-esdhc: update devices registration) renamed
MX35_INT_MMC_SDHC2 to MX35_INT_ESDHC2 which broke expansion of the
MXC_INT_MMC_SDHC2 macro.
As  (the only user of MXC_INT_MMC_SDHC2) is only used on
mx31 use the MX31 prefixed symbol to define its resources.  Moreover to
reduce further confusion mxcsdhc_device0 is fixed accordingly and the MXC
prefixed symbols are removed.

Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
 arch/arm/mach-mx3/devices.c           |   16 ++++++++--------
 arch/arm/plat-mxc/include/mach/mx31.h |    1 -
 arch/arm/plat-mxc/include/mach/mx35.h |    2 --
 3 files changed, 8 insertions(+), 11 deletions(-)

diff --git a/arch/arm/mach-mx3/devices.c b/arch/arm/mach-mx3/devices.c
index f4dff11..d4da949 100644
--- a/arch/arm/mach-mx3/devices.c
+++ b/arch/arm/mach-mx3/devices.c
@@ -72,24 +72,24 @@ struct platform_device mxc_w1_master_device = {
 #ifdef CONFIG_ARCH_MX31
 static struct resource mxcsdhc0_resources[] = {
 	{
-		.start = MMC_SDHC1_BASE_ADDR,
-		.end = MMC_SDHC1_BASE_ADDR + SZ_16K - 1,
+		.start = MX31_MMC_SDHC1_BASE_ADDR,
+		.end = MX31_MMC_SDHC1_BASE_ADDR + SZ_16K - 1,
 		.flags = IORESOURCE_MEM,
 	}, {
-		.start = MXC_INT_MMC_SDHC1,
-		.end = MXC_INT_MMC_SDHC1,
+		.start = MX31_INT_MMC_SDHC1,
+		.end = MX31_INT_MMC_SDHC1,
 		.flags = IORESOURCE_IRQ,
 	},
 };
 
 static struct resource mxcsdhc1_resources[] = {
 	{
-		.start = MMC_SDHC2_BASE_ADDR,
-		.end = MMC_SDHC2_BASE_ADDR + SZ_16K - 1,
+		.start = MX31_MMC_SDHC2_BASE_ADDR,
+		.end = MX31_MMC_SDHC2_BASE_ADDR + SZ_16K - 1,
 		.flags = IORESOURCE_MEM,
 	}, {
-		.start = MXC_INT_MMC_SDHC2,
-		.end = MXC_INT_MMC_SDHC2,
+		.start = MX31_INT_MMC_SDHC2,
+		.end = MX31_INT_MMC_SDHC2,
 		.flags = IORESOURCE_IRQ,
 	},
 };
diff --git a/arch/arm/plat-mxc/include/mach/mx31.h b/arch/arm/plat-mxc/include/mach/mx31.h
index 03e2afa..61cfe82 100644
--- a/arch/arm/plat-mxc/include/mach/mx31.h
+++ b/arch/arm/plat-mxc/include/mach/mx31.h
@@ -240,7 +240,6 @@ static inline void mx31_setup_weimcs(size_t cs,
 #define MPEG4_ENC_BASE_ADDR MX31_MPEG4_ENC_BASE_ADDR
 #define MXC_INT_MPEG4_ENCODER MX31_INT_MPEG4_ENCODER
 #define MXC_INT_FIRI MX31_INT_FIRI
-#define MXC_INT_MMC_SDHC1 MX31_INT_MMC_SDHC1
 #define MXC_INT_MBX MX31_INT_MBX
 #define MXC_INT_CSPI3 MX31_INT_CSPI3
 #define MXC_INT_SIM2 MX31_INT_SIM2
diff --git a/arch/arm/plat-mxc/include/mach/mx35.h b/arch/arm/plat-mxc/include/mach/mx35.h
index ff905cb..6267cff 100644
--- a/arch/arm/plat-mxc/include/mach/mx35.h
+++ b/arch/arm/plat-mxc/include/mach/mx35.h
@@ -197,8 +197,6 @@
 /* these should go away */
 #define MXC_FEC_BASE_ADDR MX35_FEC_BASE_ADDR
 #define MXC_INT_OWIRE MX35_INT_OWIRE
-#define MXC_INT_MMC_SDHC2 MX35_INT_MMC_SDHC2
-#define MXC_INT_MMC_SDHC3 MX35_INT_MMC_SDHC3
 #define MXC_INT_GPU2D MX35_INT_GPU2D
 #define MXC_INT_ASRC MX35_INT_ASRC
 #define MXC_INT_USBHS MX35_INT_USBHS
-- 
1.7.2.3

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

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

* [PATCH v4] imx-esdhc: update devices registration
  2010-10-20 15:44                     ` Uwe Kleine-König
@ 2010-10-21 19:47                       ` Eric Bénard
  2010-10-22  7:20                         ` [PATCH v2] ARM: mx3: fix build failure concerning MXC_INT_MMC_SDHC2 Uwe Kleine-König
  0 siblings, 1 reply; 21+ messages in thread
From: Eric Bénard @ 2010-10-21 19:47 UTC (permalink / raw)
  To: linux-arm-kernel

Le 20/10/2010 17:44, Uwe Kleine-K?nig a ?crit :
> ARM: mx3: fix build failure concerning MXC_INT_MMC_SDHC2
>
> From: Uwe Kleine-K?nig<u.kleine-koenig@pengutronix.de>
>
> Commit c074512 (imx-esdhc: update devices registration) renamed
> MX35_INT_MMC_SDHC2 to MX35_INT_ESDHC2 which broke expansion of the
> MXC_INT_MMC_SDHC2 macro.
> As  (the only user of MXC_INT_MMC_SDHC2) is only used on
> mx31 use the MX31 prefixed symbol to define its resources.  Moreover to
> reduce further confusion mxcsdhc_device0 is fixed accordingly and the MXC
> prefixed symbols are removed.
>
> Signed-off-by: Uwe Kleine-K?nig<u.kleine-koenig@pengutronix.de>

Tested-by: Eric B?nard <eric@eukrea.com>

This allow mx3_defconfig to compile (using the updated one from my defconfig 
patch serie).

Eric

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

* [PATCH v2] ARM: mx3: fix build failure concerning MXC_INT_MMC_SDHC2
  2010-10-21 19:47                       ` Eric Bénard
@ 2010-10-22  7:20                         ` Uwe Kleine-König
  2010-10-22  9:56                           ` Fabio Estevam
  0 siblings, 1 reply; 21+ messages in thread
From: Uwe Kleine-König @ 2010-10-22  7:20 UTC (permalink / raw)
  To: linux-arm-kernel

Commit c074512 (imx-esdhc: update devices registration) renamed
MX35_INT_MMC_SDHC2 to MX35_INT_ESDHC2 which broke expansion of the
MXC_INT_MMC_SDHC2 macro.
As mxcsdhc_device1 (the only user of MXC_INT_MMC_SDHC2) is only used on
mx31 use the MX31 prefixed symbol to define its resources.  Moreover to
reduce further confusion mxcsdhc_device0 is fixed accordingly and the MXC
prefixed symbols are removed.

Tested-by: Eric B?nard <eric@eukrea.com>
Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
changes since v1:

 - add a missing word in commit log
 - also remove MMC_SDHC[12]_BASE_ADDR

I still kept the Tested-by: Eric, assuming this is OK.

Best regards
Uwe

 arch/arm/mach-mx3/devices.c           |   16 ++++++++--------
 arch/arm/plat-mxc/include/mach/mx31.h |    3 ---
 arch/arm/plat-mxc/include/mach/mx35.h |    2 --
 3 files changed, 8 insertions(+), 13 deletions(-)

diff --git a/arch/arm/mach-mx3/devices.c b/arch/arm/mach-mx3/devices.c
index f4dff11..d4da949 100644
--- a/arch/arm/mach-mx3/devices.c
+++ b/arch/arm/mach-mx3/devices.c
@@ -72,24 +72,24 @@ struct platform_device mxc_w1_master_device = {
 #ifdef CONFIG_ARCH_MX31
 static struct resource mxcsdhc0_resources[] = {
 	{
-		.start = MMC_SDHC1_BASE_ADDR,
-		.end = MMC_SDHC1_BASE_ADDR + SZ_16K - 1,
+		.start = MX31_MMC_SDHC1_BASE_ADDR,
+		.end = MX31_MMC_SDHC1_BASE_ADDR + SZ_16K - 1,
 		.flags = IORESOURCE_MEM,
 	}, {
-		.start = MXC_INT_MMC_SDHC1,
-		.end = MXC_INT_MMC_SDHC1,
+		.start = MX31_INT_MMC_SDHC1,
+		.end = MX31_INT_MMC_SDHC1,
 		.flags = IORESOURCE_IRQ,
 	},
 };
 
 static struct resource mxcsdhc1_resources[] = {
 	{
-		.start = MMC_SDHC2_BASE_ADDR,
-		.end = MMC_SDHC2_BASE_ADDR + SZ_16K - 1,
+		.start = MX31_MMC_SDHC2_BASE_ADDR,
+		.end = MX31_MMC_SDHC2_BASE_ADDR + SZ_16K - 1,
 		.flags = IORESOURCE_MEM,
 	}, {
-		.start = MXC_INT_MMC_SDHC2,
-		.end = MXC_INT_MMC_SDHC2,
+		.start = MX31_INT_MMC_SDHC2,
+		.end = MX31_INT_MMC_SDHC2,
 		.flags = IORESOURCE_IRQ,
 	},
 };
diff --git a/arch/arm/plat-mxc/include/mach/mx31.h b/arch/arm/plat-mxc/include/mach/mx31.h
index 03e2afa..1cf29c2 100644
--- a/arch/arm/plat-mxc/include/mach/mx31.h
+++ b/arch/arm/plat-mxc/include/mach/mx31.h
@@ -229,8 +229,6 @@ static inline void mx31_setup_weimcs(size_t cs,
 #define ATA_BASE_ADDR MX31_ATA_BASE_ADDR
 #define UART4_BASE_ADDR MX31_UART4_BASE_ADDR
 #define UART5_BASE_ADDR MX31_UART5_BASE_ADDR
-#define MMC_SDHC1_BASE_ADDR MX31_MMC_SDHC1_BASE_ADDR
-#define MMC_SDHC2_BASE_ADDR MX31_MMC_SDHC2_BASE_ADDR
 #define SIM1_BASE_ADDR MX31_SIM1_BASE_ADDR
 #define IIM_BASE_ADDR MX31_IIM_BASE_ADDR
 #define CSPI3_BASE_ADDR MX31_CSPI3_BASE_ADDR
@@ -240,7 +238,6 @@ static inline void mx31_setup_weimcs(size_t cs,
 #define MPEG4_ENC_BASE_ADDR MX31_MPEG4_ENC_BASE_ADDR
 #define MXC_INT_MPEG4_ENCODER MX31_INT_MPEG4_ENCODER
 #define MXC_INT_FIRI MX31_INT_FIRI
-#define MXC_INT_MMC_SDHC1 MX31_INT_MMC_SDHC1
 #define MXC_INT_MBX MX31_INT_MBX
 #define MXC_INT_CSPI3 MX31_INT_CSPI3
 #define MXC_INT_SIM2 MX31_INT_SIM2
diff --git a/arch/arm/plat-mxc/include/mach/mx35.h b/arch/arm/plat-mxc/include/mach/mx35.h
index ff905cb..6267cff 100644
--- a/arch/arm/plat-mxc/include/mach/mx35.h
+++ b/arch/arm/plat-mxc/include/mach/mx35.h
@@ -197,8 +197,6 @@
 /* these should go away */
 #define MXC_FEC_BASE_ADDR MX35_FEC_BASE_ADDR
 #define MXC_INT_OWIRE MX35_INT_OWIRE
-#define MXC_INT_MMC_SDHC2 MX35_INT_MMC_SDHC2
-#define MXC_INT_MMC_SDHC3 MX35_INT_MMC_SDHC3
 #define MXC_INT_GPU2D MX35_INT_GPU2D
 #define MXC_INT_ASRC MX35_INT_ASRC
 #define MXC_INT_USBHS MX35_INT_USBHS
-- 
1.7.2.3

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

* [PATCH v2] ARM: mx3: fix build failure concerning MXC_INT_MMC_SDHC2
  2010-10-22  7:20                         ` [PATCH v2] ARM: mx3: fix build failure concerning MXC_INT_MMC_SDHC2 Uwe Kleine-König
@ 2010-10-22  9:56                           ` Fabio Estevam
  0 siblings, 0 replies; 21+ messages in thread
From: Fabio Estevam @ 2010-10-22  9:56 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Uwe,

On Fri, Oct 22, 2010 at 5:20 AM, Uwe Kleine-K?nig
<u.kleine-koenig@pengutronix.de> wrote:
> Commit c074512 (imx-esdhc: update devices registration) renamed
> MX35_INT_MMC_SDHC2 to MX35_INT_ESDHC2 which broke expansion of the
> MXC_INT_MMC_SDHC2 macro.
> As mxcsdhc_device1 (the only user of MXC_INT_MMC_SDHC2) is only used on
> mx31 use the MX31 prefixed symbol to define its resources. ?Moreover to
> reduce further confusion mxcsdhc_device0 is fixed accordingly and the MXC
> prefixed symbols are removed.
>
> Tested-by: Eric B?nard <eric@eukrea.com>
> Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
> ---
> changes since v1:
>
> ?- add a missing word in commit log
> ?- also remove MMC_SDHC[12]_BASE_ADDR

Your v1 version is already in Sascha's git tree now.

Regards,

Fabio Estevam

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

end of thread, other threads:[~2010-10-22  9:56 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-10-12 12:23 [PATCH 1/3] imx-esdhc: update devices registration Eric Bénard
2010-10-12 12:23 ` [PATCH 2/3] mx25: fix compile error in platform-imx-dma.c Eric Bénard
2010-10-12 12:35   ` Uwe Kleine-König
2010-10-12 12:23 ` [PATCH 3/3] iomux-mx51: fix GPIO_1_xx 's IOMUX configuration Eric Bénard
2010-10-12 12:31 ` [PATCH v2 1/3] imx-esdhc: update devices registration Eric Bénard
2010-10-12 12:33 ` [PATCH " Uwe Kleine-König
2010-10-12 12:57   ` Eric Bénard
2010-10-12 13:04     ` Uwe Kleine-König
2010-10-12 14:58       ` [PATCH v3] " Eric Bénard
2010-10-12 15:08         ` Uwe Kleine-König
2010-10-12 15:16           ` Eric Bénard
2010-10-12 15:31             ` Wolfram Sang
2010-10-12 17:33               ` [PATCH v4] " Eric Bénard
2010-10-15  9:01                 ` Uwe Kleine-König
2010-10-15  9:16                   ` Eric Bénard
2010-10-20 14:55                 ` Uwe Kleine-König
2010-10-20 15:05                   ` Eric Bénard
2010-10-20 15:44                     ` Uwe Kleine-König
2010-10-21 19:47                       ` Eric Bénard
2010-10-22  7:20                         ` [PATCH v2] ARM: mx3: fix build failure concerning MXC_INT_MMC_SDHC2 Uwe Kleine-König
2010-10-22  9:56                           ` Fabio Estevam

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.