Skip to contentSkip to conversation

Renesas ARM-based SoC board updates for v3.12

PATCH New Simon Horman 4 participants 13 messages Jul 30, 2013 – Aug 14, 2013

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

cover Renesas ARM-based SoC board updates for v3.12

Hi Olof, Hi Arnd,

please consider these Renesas ARM-based SoC board updates for v3.12. This pull-request is based on renesas-soc-for-v3.12 which I have previously sent a pull-request for.

The following changes since commit 81b9d5351fa96caad4accc6711bc1b9342927d4a:

ARM: shmobile: Setup r8a7790 arch timer based on MD pins (2013-07-17 14:26:56 +0900)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas.git boards

for you to fetch changes up to f79d68da510bf1b95beff4d556b78d06801f11dc:

ARM: shmobile: ape6evm: add SDHI interfaces (2013-07-25 14:46:38 +0900)

----------------------------------------------------------------
Renesas ARM-based SoC board updates for v3.12

* ape6evm: Add SDHI and MMCIF support
* lager: Add MMCIF support
* armadillo800eva: Add DMA support for MMCIF

----------------------------------------------------------------
Guennadi Liakhovetski (4):
ARM: shmobile: armadillo800eva: add DMA support to MMCIF
ARM: shmobile: lager: add MMCIF support
ARM: shmobile: ape6evm: add MMCIF support
ARM: shmobile: ape6evm: add SDHI interfaces

Kuninori Morimoto (1):
ARM: shmobile: select the fixed regulator driver on BockW

 arch/arm/mach-shmobile/Kconfig                 |  1 +
 arch/arm/mach-shmobile/board-ape6evm.c         | 79 ++++++++++++++++++++++++++
 arch/arm/mach-shmobile/board-armadillo800eva.c |  2 +
 arch/arm/mach-shmobile/board-lager.c           | 31 ++++++++++
 4 files changed, 113 insertions(+)
#1 lore raw

PATCH 1/5 ARM: shmobile: armadillo800eva: add DMA support to MMCIF

From: Guennadi Liakhovetski <[email protected]>

Add DMA slave IDs to MMCIF Tx and Rx channels.

---
 arch/arm/mach-shmobile/board-armadillo800eva.c | 2 ++
 1 file changed, 2 insertions(+)
arch/arm/mach-shmobile/board-armadillo800eva.c +2 -0
index 66cfd56..4432f05 100644
@@ -779,6 +779,8 @@ static struct sh_mmcif_plat_data sh_mmcif_plat = {
 	.caps		= MMC_CAP_4_BIT_DATA |
 			  MMC_CAP_8_BIT_DATA |
 			  MMC_CAP_NONREMOVABLE,
+	.slave_id_tx	= SHDMA_SLAVE_MMCIF_TX,
+	.slave_id_rx	= SHDMA_SLAVE_MMCIF_RX,
 };
 
 static struct resource sh_mmcif_resources[] = {
Signature · 1 line
1.8.3.2
#2 lore raw

PATCH 2/5 ARM: shmobile: lager: add MMCIF support

In reply to Simon Horman

From: Guennadi Liakhovetski <[email protected]>

Add support for the MMCIF1 interface on Lager.

---
 arch/arm/mach-shmobile/board-lager.c | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)
arch/arm/mach-shmobile/board-lager.c +31 -0
index d0da052..3c67b2a 100644
@@ -24,10 +24,15 @@
 #include <linux/interrupt.h>
 #include <linux/kernel.h>
 #include <linux/leds.h>
+#include <linux/mmc/host.h>
+#include <linux/mmc/sh_mmcif.h>
 #include <linux/pinctrl/machine.h>
 #include <linux/platform_data/gpio-rcar.h>
 #include <linux/platform_device.h>
+#include <linux/regulator/fixed.h>
+#include <linux/regulator/machine.h>
 #include <mach/common.h>
+#include <mach/irqs.h>
 #include <mach/r8a7790.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
@@ -70,6 +75,22 @@ static __initdata struct gpio_keys_platform_data lager_keys_pdata = {
 	.nbuttons	= ARRAY_SIZE(gpio_buttons),
 };
 
+/* Fixed 3.3V regulator to be used by MMCIF */
+static struct regulator_consumer_supply fixed3v3_power_consumers[] =
+{
+	REGULATOR_SUPPLY("vmmc", "sh_mmcif.1"),
+};
+
+/* MMCIF */
+static struct sh_mmcif_plat_data mmcif1_pdata = {
+	.caps		= MMC_CAP_8_BIT_DATA | MMC_CAP_NONREMOVABLE,
+};
+
+static struct resource mmcif1_resources[] = {
+	DEFINE_RES_MEM_NAMED(0xee220000, 0x80, "MMCIF1"),
+	DEFINE_RES_IRQ(gic_spi(170)),
+};
+
 static const struct pinctrl_map lager_pinctrl_map[] = {
 	/* SCIF0 (CN19: DEBUG SERIAL0) */
 	PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.6", "pfc-r8a7790",
@@ -77,6 +98,11 @@ static const struct pinctrl_map lager_pinctrl_map[] = {
 	/* SCIF1 (CN20: DEBUG SERIAL1) */
 	PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.7", "pfc-r8a7790",
 				  "scif1_data", "scif1"),
+	/* MMCIF1 */
+	PIN_MAP_MUX_GROUP_DEFAULT("sh_mmcif.1", "pfc-r8a7790",
+				  "mmc1_data8", "mmc1"),
+	PIN_MAP_MUX_GROUP_DEFAULT("sh_mmcif.1", "pfc-r8a7790",
+				  "mmc1_ctrl", "mmc1"),
 };
 
 static void __init lager_add_standard_devices(void)
@@ -94,6 +120,11 @@ static void __init lager_add_standard_devices(void)
 	platform_device_register_data(&platform_bus, "gpio-keys", -1,
 				      &lager_keys_pdata,
 				      sizeof(lager_keys_pdata));
+	regulator_register_always_on(0, "fixed-3.3V", fixed3v3_power_consumers,
+				     ARRAY_SIZE(fixed3v3_power_consumers), 3300000);
+	platform_device_register_resndata(&platform_bus, "sh_mmcif", 1,
+					  mmcif1_resources, ARRAY_SIZE(mmcif1_resources),
+					  &mmcif1_pdata, sizeof(mmcif1_pdata));
 }
 
 static const char *lager_boards_compat_dt[] __initdata = {
Signature · 1 line
1.8.3.2
#3 lore raw

PATCH 3/5 ARM: shmobile: select the fixed regulator driver on BockW

In reply to Simon Horman

From: Kuninori Morimoto <[email protected]>

34767f8dccc326026f97cd63f759dd36bd83502d
(ARM: mach-shmobile: select the fixed regulator driver on several boards) decided to select fixed regulator driver on Kconfig.
BockW follows same style.

[horms+renesas at verge.net.au: Change mach-shmobile to shmobile in changelog]
---
 arch/arm/mach-shmobile/Kconfig | 1 +
 1 file changed, 1 insertion(+)
arch/arm/mach-shmobile/Kconfig +1 -0
index dd80f21..f76fca6 100644
@@ -124,6 +124,7 @@ config MACH_BOCKW
 	depends on ARCH_R8A7778
 	select ARCH_REQUIRE_GPIOLIB
 	select RENESAS_INTC_IRQPIN
+	select REGULATOR_FIXED_VOLTAGE if REGULATOR
 	select USE_OF
 
 config MACH_MARZEN
Signature · 1 line
1.8.3.2
#4 lore raw

PATCH 4/5 ARM: shmobile: ape6evm: add MMCIF support

In reply to Simon Horman

From: Guennadi Liakhovetski <[email protected]>

Add MMCIF support to the APE6EVM board in PIO mode only. Power supply is fixed for now, eventually support for the tps80032 regulator, also supplying both VDD and VccQ to the MMCIF slot should be added to APE6EVM.

---
 arch/arm/mach-shmobile/board-ape6evm.c | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)
arch/arm/mach-shmobile/board-ape6evm.c +31 -0
index af6dd39..8c7529c 100644
@@ -21,6 +21,8 @@
 #include <linux/gpio.h>
 #include <linux/interrupt.h>
 #include <linux/kernel.h>
+#include <linux/mmc/host.h>
+#include <linux/mmc/sh_mmcif.h>
 #include <linux/pinctrl/machine.h>
 #include <linux/platform_device.h>
 #include <linux/regulator/fixed.h>
@@ -54,6 +56,25 @@ static const struct smsc911x_platform_config lan9220_data = {
 	.irq_polarity	= SMSC911X_IRQ_POLARITY_ACTIVE_HIGH,
 };
 
+/*
+ * On APE6EVM power is supplied to MMCIF by a tps80032 regulator. For now we
+ * model a VDD supply to MMCIF, using a fixed 3.3V regulator.
+ */
+static struct regulator_consumer_supply fixed3v3_power_consumers[] =
+{
+	REGULATOR_SUPPLY("vmmc", "sh_mmcif.0"),
+};
+
+/* MMCIF */
+static struct sh_mmcif_plat_data mmcif0_pdata = {
+	.caps		= MMC_CAP_8_BIT_DATA | MMC_CAP_NONREMOVABLE,
+};
+
+static struct resource mmcif0_resources[] = {
+	DEFINE_RES_MEM_NAMED(0xee200000, 0x100, "MMCIF0"),
+	DEFINE_RES_IRQ(gic_spi(169)),
+};
+
 static const struct pinctrl_map ape6evm_pinctrl_map[] = {
 	/* SCIFA0 console */
 	PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.0", "pfc-r8a73a4",
@@ -61,6 +82,11 @@ static const struct pinctrl_map ape6evm_pinctrl_map[] = {
 	/* SMSC */
 	PIN_MAP_MUX_GROUP_DEFAULT("smsc911x", "pfc-r8a73a4",
 				  "irqc_irq40", "irqc"),
+	/* MMCIF0 */
+	PIN_MAP_MUX_GROUP_DEFAULT("sh_mmcif.0", "pfc-r8a73a4",
+				  "mmc0_data8", "mmc0"),
+	PIN_MAP_MUX_GROUP_DEFAULT("sh_mmcif.0", "pfc-r8a73a4",
+				  "mmc0_ctrl", "mmc0"),
 };
 
 static void __init ape6evm_add_standard_devices(void)
@@ -93,6 +119,11 @@ static void __init ape6evm_add_standard_devices(void)
 	platform_device_register_resndata(&platform_bus, "smsc911x", -1,
 					  lan9220_res, ARRAY_SIZE(lan9220_res),
 					  &lan9220_data, sizeof(lan9220_data));
+	regulator_register_always_on(1, "fixed-3.3V", fixed3v3_power_consumers,
+				     ARRAY_SIZE(fixed3v3_power_consumers), 3300000);
+	platform_device_register_resndata(&platform_bus, "sh_mmcif", 0,
+					  mmcif0_resources, ARRAY_SIZE(mmcif0_resources),
+					  &mmcif0_pdata, sizeof(mmcif0_pdata));
 }
 
 static const char *ape6evm_boards_compat_dt[] __initdata = {
Signature · 1 line
1.8.3.2
#5 lore raw

PATCH 4/5 ARM: shmobile: ape6evm: add MMCIF support

Hello.

Quoted 17 lines · Simon Horman

From: Guennadi Liakhovetski <[email protected]>

Add MMCIF support to the APE6EVM board in PIO mode only. Power supply is fixed for now, eventually support for the tps80032 regulator, also supplying both VDD and VccQ to the MMCIF slot should be added to APE6EVM.

---
  arch/arm/mach-shmobile/board-ape6evm.c | 31 +++++++++++++++++++++++++++++++
  1 file changed, 31 insertions(+)
arch/arm/mach-shmobile/board-ape6evm.c +0 -0
index af6dd39..8c7529c 100644

[...]

Quoted 1 line
arch/arm/mach-shmobile/board-ape6evm.c +0 -0
@@ -54,6 +56,25 @@ static const struct smsc911x_platform_config lan9220_data = {

[...]

arch/arm/mach-shmobile/board-ape6evm.c static const struct smsc911x_platform_config lan9220_data = { · line 77

Quoted 10 lines
arch/arm/mach-shmobile/board-ape6evm.c +10 -0
+/* MMCIF */
+static struct sh_mmcif_plat_data mmcif0_pdata = {
+	.caps		= MMC_CAP_8_BIT_DATA | MMC_CAP_NONREMOVABLE,
+};
+
+static struct resource mmcif0_resources[] = {
+	DEFINE_RES_MEM_NAMED(0xee200000, 0x100, "MMCIF0"),
+	DEFINE_RES_IRQ(gic_spi(169)),
+};
+

The above needed '__initdata' too. And I have only noticed...

Quoted 3 lines
  static const struct pinctrl_map ape6evm_pinctrl_map[] = {
  	/* SCIFA0 console */
  	PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.0", "pfc-r8a73a4",

[...]

arch/arm/mach-shmobile/board-ape6evm.c static void __init ape6evm_add_standard_devices(void) · line 127

Quoted 10 lines
arch/arm/mach-shmobile/board-ape6evm.c +5 -0
@@ -93,6 +119,11 @@ static void __init ape6evm_add_standard_devices(void)
  	platform_device_register_resndata(&platform_bus, "smsc911x", -1,
  					  lan9220_res, ARRAY_SIZE(lan9220_res),
  					  &lan9220_data, sizeof(lan9220_data));
+	regulator_register_always_on(1, "fixed-3.3V", fixed3v3_power_consumers,
+				     ARRAY_SIZE(fixed3v3_power_consumers), 3300000);
+	platform_device_register_resndata(&platform_bus, "sh_mmcif", 0,
+					  mmcif0_resources, ARRAY_SIZE(mmcif0_resources),
+					  &mmcif0_pdata, sizeof(mmcif0_pdata));
  }

WBR, Sergei

#6 lore raw

PATCH 4/5 ARM: shmobile: ape6evm: add MMCIF support

Quoted 24 lines · Sergei Shtylyov

Hello.

Quoted 17 lines · Simon Horman

From: Guennadi Liakhovetski <[email protected]>

Add MMCIF support to the APE6EVM board in PIO mode only. Power supply is fixed for now, eventually support for the tps80032 regulator, also supplying both VDD and VccQ to the MMCIF slot should be added to APE6EVM.

---
 arch/arm/mach-shmobile/board-ape6evm.c | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)
arch/arm/mach-shmobile/board-ape6evm.c +0 -0
index af6dd39..8c7529c 100644

[...]

Quoted 1 line
arch/arm/mach-shmobile/board-ape6evm.c +0 -0
@@ -54,6 +56,25 @@ static const struct smsc911x_platform_config lan9220_data = {

[...]

Quoted 12 lines

arch/arm/mach-shmobile/board-ape6evm.c static const struct smsc911x_platform_config lan9220_data = { · line 77

Quoted 10 lines
arch/arm/mach-shmobile/board-ape6evm.c +10 -0
+/* MMCIF */
+static struct sh_mmcif_plat_data mmcif0_pdata = {
+	.caps		= MMC_CAP_8_BIT_DATA | MMC_CAP_NONREMOVABLE,
+};
+
+static struct resource mmcif0_resources[] = {
+	DEFINE_RES_MEM_NAMED(0xee200000, 0x100, "MMCIF0"),
+	DEFINE_RES_IRQ(gic_spi(169)),
+};
+

The above needed '__initdata' too. And I have only noticed...

Thanks again Sergei.

Guennadi,

as I have already queued-up this patch could you please
make an incremental patch that adds __initdata to the above structures?

Quoted 22 lines
Quoted 3 lines

static const struct pinctrl_map ape6evm_pinctrl_map[] = {

arch/arm/mach-shmobile/board-ape6evm.c +0 -0
 	/* SCIFA0 console */
 	PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.0", "pfc-r8a73a4",

[...]

arch/arm/mach-shmobile/board-ape6evm.c static void __init ape6evm_add_standard_devices(void) · line 127

Quoted 10 lines
arch/arm/mach-shmobile/board-ape6evm.c +5 -0
@@ -93,6 +119,11 @@ static void __init ape6evm_add_standard_devices(void)
 	platform_device_register_resndata(&platform_bus, "smsc911x", -1,
 					  lan9220_res, ARRAY_SIZE(lan9220_res),
 					  &lan9220_data, sizeof(lan9220_data));
+	regulator_register_always_on(1, "fixed-3.3V", fixed3v3_power_consumers,
+				     ARRAY_SIZE(fixed3v3_power_consumers), 3300000);
+	platform_device_register_resndata(&platform_bus, "sh_mmcif", 0,
+					  mmcif0_resources, ARRAY_SIZE(mmcif0_resources),
+					  &mmcif0_pdata, sizeof(mmcif0_pdata));
 }

WBR, Sergei

--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html

#7 lore raw

PATCH 5/5 ARM: shmobile: ape6evm: add SDHI interfaces

In reply to Simon Horman

From: Guennadi Liakhovetski <[email protected]>

Add support for SDHI0 and SDHI1 on APE6EVM in PIO mode only.

---
 arch/arm/mach-shmobile/board-ape6evm.c | 50 +++++++++++++++++++++++++++++++++-
 1 file changed, 49 insertions(+), 1 deletion(-)
arch/arm/mach-shmobile/board-ape6evm.c +49 -1
index 8c7529c..ccf8b04 100644
@@ -21,8 +21,10 @@
 #include <linux/gpio.h>
 #include <linux/interrupt.h>
 #include <linux/kernel.h>
+#include <linux/mfd/tmio.h>
 #include <linux/mmc/host.h>
 #include <linux/mmc/sh_mmcif.h>
+#include <linux/mmc/sh_mobile_sdhi.h>
 #include <linux/pinctrl/machine.h>
 #include <linux/platform_device.h>
 #include <linux/regulator/fixed.h>
@@ -58,11 +60,16 @@ static const struct smsc911x_platform_config lan9220_data = {
 
 /*
  * On APE6EVM power is supplied to MMCIF by a tps80032 regulator. For now we
- * model a VDD supply to MMCIF, using a fixed 3.3V regulator.
+ * model a VDD supply to MMCIF, using a fixed 3.3V regulator. Also use the
+ * static power supply for SDHI0 and SDHI1, whereas SDHI0's VccQ is also
+ * supplied by the same tps80032 regulator and thus can also be adjusted
+ * dynamically.
  */
 static struct regulator_consumer_supply fixed3v3_power_consumers[] =
 {
 	REGULATOR_SUPPLY("vmmc", "sh_mmcif.0"),
+	REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.0"),
+	REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.1"),
 };
 
 /* MMCIF */
@@ -75,6 +82,29 @@ static struct resource mmcif0_resources[] = {
 	DEFINE_RES_IRQ(gic_spi(169)),
 };
 
+/* SDHI0 */
+static struct sh_mobile_sdhi_info sdhi0_pdata = {
+	.tmio_flags	= TMIO_MMC_HAS_IDLE_WAIT | TMIO_MMC_WRPROTECT_DISABLE,
+	.tmio_caps	= MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ,
+};
+
+static struct resource sdhi0_resources[] = {
+	DEFINE_RES_MEM_NAMED(0xee100000, 0x100, "SDHI0"),
+	DEFINE_RES_IRQ(gic_spi(165)),
+};
+
+/* SDHI1 */
+static struct sh_mobile_sdhi_info sdhi1_pdata = {
+	.tmio_flags	= TMIO_MMC_HAS_IDLE_WAIT | TMIO_MMC_WRPROTECT_DISABLE,
+	.tmio_caps	= MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ |
+			  MMC_CAP_NEEDS_POLL,
+};
+
+static struct resource sdhi1_resources[] = {
+	DEFINE_RES_MEM_NAMED(0xee120000, 0x100, "SDHI1"),
+	DEFINE_RES_IRQ(gic_spi(166)),
+};
+
 static const struct pinctrl_map ape6evm_pinctrl_map[] = {
 	/* SCIFA0 console */
 	PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.0", "pfc-r8a73a4",
@@ -87,6 +117,18 @@ static const struct pinctrl_map ape6evm_pinctrl_map[] = {
 				  "mmc0_data8", "mmc0"),
 	PIN_MAP_MUX_GROUP_DEFAULT("sh_mmcif.0", "pfc-r8a73a4",
 				  "mmc0_ctrl", "mmc0"),
+	/* SDHI0: uSD: no WP */
+	PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-r8a73a4",
+				  "sdhi0_data4", "sdhi0"),
+	PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-r8a73a4",
+				  "sdhi0_ctrl", "sdhi0"),
+	PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-r8a73a4",
+				  "sdhi0_cd", "sdhi0"),
+	/* SDHI1 */
+	PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.1", "pfc-r8a73a4",
+				  "sdhi1_data4", "sdhi1"),
+	PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.1", "pfc-r8a73a4",
+				  "sdhi1_ctrl", "sdhi1"),
 };
 
 static void __init ape6evm_add_standard_devices(void)
@@ -124,6 +166,12 @@ static void __init ape6evm_add_standard_devices(void)
 	platform_device_register_resndata(&platform_bus, "sh_mmcif", 0,
 					  mmcif0_resources, ARRAY_SIZE(mmcif0_resources),
 					  &mmcif0_pdata, sizeof(mmcif0_pdata));
+	platform_device_register_resndata(&platform_bus, "sh_mobile_sdhi", 0,
+					  sdhi0_resources, ARRAY_SIZE(sdhi0_resources),
+					  &sdhi0_pdata, sizeof(sdhi0_pdata));
+	platform_device_register_resndata(&platform_bus, "sh_mobile_sdhi", 1,
+					  sdhi1_resources, ARRAY_SIZE(sdhi1_resources),
+					  &sdhi1_pdata, sizeof(sdhi1_pdata));
 }
 
 static const char *ape6evm_boards_compat_dt[] __initdata = {
Signature · 1 line
1.8.3.2
#8 lore raw

PATCH 5/5 ARM: shmobile: ape6evm: add SDHI interfaces

Hello.

Quoted 14 lines · Simon Horman

From: Guennadi Liakhovetski <[email protected]>

Add support for SDHI0 and SDHI1 on APE6EVM in PIO mode only.

---
  arch/arm/mach-shmobile/board-ape6evm.c | 50 +++++++++++++++++++++++++++++++++-
  1 file changed, 49 insertions(+), 1 deletion(-)
arch/arm/mach-shmobile/board-ape6evm.c +0 -0
index 8c7529c..ccf8b04 100644

[...]

Quoted 17 lines
arch/arm/mach-shmobile/board-ape6evm.c +13 -0
@@ -75,6 +82,29 @@ static struct resource mmcif0_resources[] = {
  	DEFINE_RES_IRQ(gic_spi(169)),
  };
 
+/* SDHI0 */
+static struct sh_mobile_sdhi_info sdhi0_pdata = {
+	.tmio_flags	= TMIO_MMC_HAS_IDLE_WAIT | TMIO_MMC_WRPROTECT_DISABLE,
+	.tmio_caps	= MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ,
+};
+
+static struct resource sdhi0_resources[] = {
+	DEFINE_RES_MEM_NAMED(0xee100000, 0x100, "SDHI0"),
+	DEFINE_RES_IRQ(gic_spi(165)),
+};
+
+/* SDHI1 */
+static struct sh_mobile_sdhi_info sdhi1_pdata = {

arch/arm/mach-shmobile/board-ape6evm.c static struct resource mmcif0_resources[] = { · line 107

Quoted 10 lines
arch/arm/mach-shmobile/board-ape6evm.c +10 -0
+	.tmio_flags	= TMIO_MMC_HAS_IDLE_WAIT | TMIO_MMC_WRPROTECT_DISABLE,
+	.tmio_caps	= MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ |
+			  MMC_CAP_NEEDS_POLL,
+};
+
+static struct resource sdhi1_resources[] = {
+	DEFINE_RES_MEM_NAMED(0xee120000, 0x100, "SDHI1"),
+	DEFINE_RES_IRQ(gic_spi(166)),
+};
+

All of the above are lacking '__initdata' annothation (the resources and
platform data will be kmemdup()'ed when registering the platform devices). Too bad I've noticed this too late...

arch/arm/mach-shmobile/board-ape6evm.c static void __init ape6evm_add_standard_devices(void) · line 175

Quoted 11 lines
arch/arm/mach-shmobile/board-ape6evm.c +6 -0
@@ -124,6 +166,12 @@ static void __init ape6evm_add_standard_devices(void)
  	platform_device_register_resndata(&platform_bus, "sh_mmcif", 0,
  					  mmcif0_resources, ARRAY_SIZE(mmcif0_resources),
  					  &mmcif0_pdata, sizeof(mmcif0_pdata));
+	platform_device_register_resndata(&platform_bus, "sh_mobile_sdhi", 0,
+					  sdhi0_resources, ARRAY_SIZE(sdhi0_resources),
+					  &sdhi0_pdata, sizeof(sdhi0_pdata));
+	platform_device_register_resndata(&platform_bus, "sh_mobile_sdhi", 1,
+					  sdhi1_resources, ARRAY_SIZE(sdhi1_resources),
+					  &sdhi1_pdata, sizeof(sdhi1_pdata));
  }

WBR, Sergei

#9 lore raw

PATCH 5/5 ARM: shmobile: ape6evm: add SDHI interfaces

Quoted 42 lines · Sergei Shtylyov

Hello.

Quoted 14 lines · Simon Horman

From: Guennadi Liakhovetski <[email protected]>

Add support for SDHI0 and SDHI1 on APE6EVM in PIO mode only.

---
 arch/arm/mach-shmobile/board-ape6evm.c | 50 +++++++++++++++++++++++++++++++++-
 1 file changed, 49 insertions(+), 1 deletion(-)
arch/arm/mach-shmobile/board-ape6evm.c +0 -0
index 8c7529c..ccf8b04 100644

[...]

Quoted 23 lines
arch/arm/mach-shmobile/board-ape6evm.c +19 -0
@@ -75,6 +82,29 @@ static struct resource mmcif0_resources[] = {
 	DEFINE_RES_IRQ(gic_spi(169)),
 };
 
+/* SDHI0 */
+static struct sh_mobile_sdhi_info sdhi0_pdata = {
+	.tmio_flags	= TMIO_MMC_HAS_IDLE_WAIT | TMIO_MMC_WRPROTECT_DISABLE,
+	.tmio_caps	= MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ,
+};
+
+static struct resource sdhi0_resources[] = {
+	DEFINE_RES_MEM_NAMED(0xee100000, 0x100, "SDHI0"),
+	DEFINE_RES_IRQ(gic_spi(165)),
+};
+
+/* SDHI1 */
+static struct sh_mobile_sdhi_info sdhi1_pdata = {
+	.tmio_flags	= TMIO_MMC_HAS_IDLE_WAIT | TMIO_MMC_WRPROTECT_DISABLE,
+	.tmio_caps	= MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ |
+			  MMC_CAP_NEEDS_POLL,
+};
+
+static struct resource sdhi1_resources[] = {
Quoted 8 lines

arch/arm/mach-shmobile/board-ape6evm.c static struct resource mmcif0_resources[] = { · line 107

Quoted 4 lines
arch/arm/mach-shmobile/board-ape6evm.c +4 -0
+	DEFINE_RES_MEM_NAMED(0xee120000, 0x100, "SDHI1"),
+	DEFINE_RES_IRQ(gic_spi(166)),
+};
+

All of the above are lacking '__initdata' annothation (the
resources and platform data will be kmemdup()'ed when registering the platform devices). Too bad I've noticed this too late...

Thanks Sergei.

Guennadi,

as I have already queued-up this patch could you please
make an incremental patch that adds __initdata to the above structures?

Quoted 20 lines

arch/arm/mach-shmobile/board-ape6evm.c static void __init ape6evm_add_standard_devices(void) · line 175

Quoted 12 lines
arch/arm/mach-shmobile/board-ape6evm.c +6 -0
@@ -124,6 +166,12 @@ static void __init ape6evm_add_standard_devices(void)
 	platform_device_register_resndata(&platform_bus, "sh_mmcif", 0,
 					  mmcif0_resources, ARRAY_SIZE(mmcif0_resources),
 					  &mmcif0_pdata, sizeof(mmcif0_pdata));
+	platform_device_register_resndata(&platform_bus, "sh_mobile_sdhi", 0,
+					  sdhi0_resources, ARRAY_SIZE(sdhi0_resources),
+					  &sdhi0_pdata, sizeof(sdhi0_pdata));
+	platform_device_register_resndata(&platform_bus, "sh_mobile_sdhi", 1,
+					  sdhi1_resources, ARRAY_SIZE(sdhi1_resources),
+					  &sdhi1_pdata, sizeof(sdhi1_pdata));
 }

WBR, Sergei

--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html

#10 lore raw

cover Renesas ARM-based SoC board updates for v3.12

In reply to Simon Horman
Quoted 6 lines · Simon Horman

Hi Olof, Hi Arnd,

please consider these Renesas ARM-based SoC board updates for v3.12. This pull-request is based on renesas-soc-for-v3.12 which I have previously sent a pull-request for.

Quoted 7 lines

The following changes since commit 81b9d5351fa96caad4accc6711bc1b9342927d4a:

ARM: shmobile: Setup r8a7790 arch timer based on MD pins (2013-07-17 14:26:56 +0900)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas.git boards

Hi, can I get a tag for this please?

Also, your subject says [PATCH 0/5], which might make me miss it. Please label it [GIT PULL] if you don't mind?

-Olof

#11 lore raw

cover Renesas ARM-based SoC board updates for v3.12

Quoted 9 lines · Olof Johansson
Quoted 8 lines · Simon Horman

Hi Olof, Hi Arnd,

please consider these Renesas ARM-based SoC board updates for v3.12. This pull-request is based on renesas-soc-for-v3.12 which I have previously sent a pull-request for.

The following changes since commit 81b9d5351fa96caad4accc6711bc1b9342927d4a:

Quoted 7 lines
Quoted 5 lines

ARM: shmobile: Setup r8a7790 arch timer based on MD pins (2013-07-17 14:26:56 +0900)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas.git boards

Hi, can I get a tag for this please?

Sorry for not posing that the first time around.
It is renesas-boards-for-v3.12.

Quoted 2 lines

Also, your subject says [PATCH 0/5], which might make me miss it. Please label it [GIT PULL] if you don't mind?

Sure, will do.

#12 lore raw

cover Renesas ARM-based SoC board updates for v3.12

Quoted 12 lines · Simon Horman
Quoted 11 lines · Olof Johansson
Quoted 10 lines · Simon Horman

Hi Olof, Hi Arnd,

please consider these Renesas ARM-based SoC board updates for v3.12. This pull-request is based on renesas-soc-for-v3.12 which I have previously sent a pull-request for.

The following changes since commit 81b9d5351fa96caad4accc6711bc1b9342927d4a:

ARM: shmobile: Setup r8a7790 arch timer based on MD pins (2013-07-17 14:26:56 +0900)

Quoted 8 lines
Quoted 5 lines
Quoted 3 lines

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas.git boards

Hi, can I get a tag for this please?

Sorry for not posing that the first time around.
It is renesas-boards-for-v3.12.

Pulled.

-Olof