public inbox for linux-sh@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ARM: mach-shmobile: ap4evb SDHI0 platform data
@ 2010-03-10  7:15 Magnus Damm
  2010-03-10  7:36 ` Paul Mundt
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Magnus Damm @ 2010-03-10  7:15 UTC (permalink / raw)
  To: linux-sh

From: Magnus Damm <damm@opensource.se>

Add SDHI0 platform data for the AP4EVB board.

Signed-off-by: Magnus Damm <damm@opensource.se>
---

 Depends on "ARM: mach-shmobile: sh7372 SDHI vector merge".

 arch/arm/mach-shmobile/board-ap4evb.c |   39 +++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

--- 0001/arch/arm/mach-shmobile/board-ap4evb.c
+++ work/arch/arm/mach-shmobile/board-ap4evb.c	2010-03-10 16:11:27.000000000 +0900
@@ -31,6 +31,7 @@
 #include <linux/gpio.h>
 #include <linux/input.h>
 #include <linux/input/sh_keysc.h>
+#include <linux/mfd/sh_mobile_sdhi.h>
 #include <mach/common.h>
 #include <mach/sh7372.h>
 #include <asm/mach-types.h>
@@ -206,10 +207,38 @@ static struct platform_device keysc_devi
 	},
 };
 
+/* SDHI0 */
+static struct sh_mobile_sdhi_info sdhi0_info = {
+};
+
+static struct resource sdhi0_resources[] = {
+	[0] = {
+		.name	= "SDHI0",
+		.start  = 0xe6850000,
+		.end    = 0xe68501ff,
+		.flags  = IORESOURCE_MEM,
+	},
+	[1] = {
+		.start  = 96,
+		.flags  = IORESOURCE_IRQ,
+	},
+};
+
+static struct platform_device sdhi0_device = {
+	.name           = "sh_mobile_sdhi",
+	.num_resources  = ARRAY_SIZE(sdhi0_resources),
+	.resource       = sdhi0_resources,
+	.id             = 0,
+	.dev	= {
+		.platform_data	= &sdhi0_info,
+	},
+};
+
 static struct platform_device *ap4evb_devices[] __initdata = {
 	&nor_flash_device,
 	&smc911x_device,
 	&keysc_device,
+	&sdhi0_device,
 };
 
 static struct map_desc ap4evb_io_desc[] __initdata = {
@@ -286,6 +315,16 @@ static void __init ap4evb_init(void)
 	gpio_request(GPIO_FN_KEYIN3_133, NULL);
 	gpio_request(GPIO_FN_KEYIN4,     NULL);
 
+	/* SDHI0 */
+	gpio_request(GPIO_FN_SDHICD0, NULL);
+	gpio_request(GPIO_FN_SDHIWP0, NULL);
+	gpio_request(GPIO_FN_SDHICMD0, NULL);
+	gpio_request(GPIO_FN_SDHICLK0, NULL);
+	gpio_request(GPIO_FN_SDHID0_3, NULL);
+	gpio_request(GPIO_FN_SDHID0_2, NULL);
+	gpio_request(GPIO_FN_SDHID0_1, NULL);
+	gpio_request(GPIO_FN_SDHID0_0, NULL);
+
 	sh7372_add_standard_devices();
 
 	platform_add_devices(ap4evb_devices, ARRAY_SIZE(ap4evb_devices));

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

* Re: [PATCH] ARM: mach-shmobile: ap4evb SDHI0 platform data
  2010-03-10  7:15 [PATCH] ARM: mach-shmobile: ap4evb SDHI0 platform data Magnus Damm
@ 2010-03-10  7:36 ` Paul Mundt
  2010-03-10  7:49 ` Magnus Damm
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Paul Mundt @ 2010-03-10  7:36 UTC (permalink / raw)
  To: linux-sh

On Wed, Mar 10, 2010 at 04:15:28PM +0900, Magnus Damm wrote:
> @@ -206,10 +207,38 @@ static struct platform_device keysc_devi
>  	},
>  };
>  
> +/* SDHI0 */
> +static struct sh_mobile_sdhi_info sdhi0_info = {
> +};
> +
Try again?

> +static struct resource sdhi0_resources[] = {
> +	[0] = {
> +		.name	= "SDHI0",
> +		.start  = 0xe6850000,
> +		.end    = 0xe68501ff,
> +		.flags  = IORESOURCE_MEM,

If you aren't going to use a useful name for the resource, then the
name can just be left unset, this will ensure that the driver core
assigns the resource a name matching the device name/id pair.

So if left unset you would end up with "sh_mobile_sdhi.0" in /proc/iomem,
which could be more intuitive.

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

* Re: [PATCH] ARM: mach-shmobile: ap4evb SDHI0 platform data
  2010-03-10  7:15 [PATCH] ARM: mach-shmobile: ap4evb SDHI0 platform data Magnus Damm
  2010-03-10  7:36 ` Paul Mundt
@ 2010-03-10  7:49 ` Magnus Damm
  2010-03-10  7:58 ` Paul Mundt
  2010-03-10  9:26 ` [PATCH] ARM: mach-shmobile: ap4evb SDHI0 platform data V2 Magnus Damm
  3 siblings, 0 replies; 5+ messages in thread
From: Magnus Damm @ 2010-03-10  7:49 UTC (permalink / raw)
  To: linux-sh

On Wed, Mar 10, 2010 at 4:36 PM, Paul Mundt <lethal@linux-sh.org> wrote:
> On Wed, Mar 10, 2010 at 04:15:28PM +0900, Magnus Damm wrote:
>> @@ -206,10 +207,38 @@ static struct platform_device keysc_devi
>>       },
>>  };
>>
>> +/* SDHI0 */
>> +static struct sh_mobile_sdhi_info sdhi0_info = {
>> +};
>> +
> Try again?

The sh_mobile_sdhi driver allows omitting the platform data, so
perhaps that's a better idea.

>> +static struct resource sdhi0_resources[] = {
>> +     [0] = {
>> +             .name   = "SDHI0",
>> +             .start  = 0xe6850000,
>> +             .end    = 0xe68501ff,
>> +             .flags  = IORESOURCE_MEM,
>
> If you aren't going to use a useful name for the resource, then the
> name can just be left unset, this will ensure that the driver core
> assigns the resource a name matching the device name/id pair.

The data sheet refers to this hardware block as SDHI0.

> So if left unset you would end up with "sh_mobile_sdhi.0" in /proc/iomem,
> which could be more intuitive.

Sure, that's also an option. For sh7724 (and perhaps earlier
SH-Mobile) most resources use the data sheet name for /proc/iomem.

/ magnus

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

* Re: [PATCH] ARM: mach-shmobile: ap4evb SDHI0 platform data
  2010-03-10  7:15 [PATCH] ARM: mach-shmobile: ap4evb SDHI0 platform data Magnus Damm
  2010-03-10  7:36 ` Paul Mundt
  2010-03-10  7:49 ` Magnus Damm
@ 2010-03-10  7:58 ` Paul Mundt
  2010-03-10  9:26 ` [PATCH] ARM: mach-shmobile: ap4evb SDHI0 platform data V2 Magnus Damm
  3 siblings, 0 replies; 5+ messages in thread
From: Paul Mundt @ 2010-03-10  7:58 UTC (permalink / raw)
  To: linux-sh

On Wed, Mar 10, 2010 at 04:49:24PM +0900, Magnus Damm wrote:
> On Wed, Mar 10, 2010 at 4:36 PM, Paul Mundt <lethal@linux-sh.org> wrote:
> > On Wed, Mar 10, 2010 at 04:15:28PM +0900, Magnus Damm wrote:
> >> @@ -206,10 +207,38 @@ static struct platform_device keysc_devi
> >> ? ? ? },
> >> ?};
> >>
> >> +/* SDHI0 */
> >> +static struct sh_mobile_sdhi_info sdhi0_info = {
> >> +};
> >> +
> > Try again?
> 
> The sh_mobile_sdhi driver allows omitting the platform data, so
> perhaps that's a better idea.
> 
If the driver didn't allow for omitting platform data it would be crap,
and broken. We do not condone silly driver behaviour.

> >> +static struct resource sdhi0_resources[] = {
> >> + ? ? [0] = {
> >> + ? ? ? ? ? ? .name ? = "SDHI0",
> >> + ? ? ? ? ? ? .start ?= 0xe6850000,
> >> + ? ? ? ? ? ? .end ? ?= 0xe68501ff,
> >> + ? ? ? ? ? ? .flags ?= IORESOURCE_MEM,
> >
> > If you aren't going to use a useful name for the resource, then the
> > name can just be left unset, this will ensure that the driver core
> > assigns the resource a name matching the device name/id pair.
> 
> The data sheet refers to this hardware block as SDHI0.
> 
> > So if left unset you would end up with "sh_mobile_sdhi.0" in /proc/iomem,
> > which could be more intuitive.
> 
> Sure, that's also an option. For sh7724 (and perhaps earlier
> SH-Mobile) most resources use the data sheet name for /proc/iomem.
> 
Leaving it as it is in the data sheet is of course fine, but many of
these blocks have absurdly generic names. Also note that in this case
/proc/iomem and /proc/interrupts and so on will have an inconsistency
between the naming, so we have a mixture of SDHI0 and sh_mobile_sdhi.0.

Perhaps some people find this separation useful, but it quickly turns in
to a mess with things like 12 TMU channels all using slightly different
naming conventions.

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

* [PATCH] ARM: mach-shmobile: ap4evb SDHI0 platform data V2
  2010-03-10  7:15 [PATCH] ARM: mach-shmobile: ap4evb SDHI0 platform data Magnus Damm
                   ` (2 preceding siblings ...)
  2010-03-10  7:58 ` Paul Mundt
@ 2010-03-10  9:26 ` Magnus Damm
  3 siblings, 0 replies; 5+ messages in thread
From: Magnus Damm @ 2010-03-10  9:26 UTC (permalink / raw)
  To: linux-sh

From: Magnus Damm <damm@opensource.se>

Add SDHI0 platform data for the AP4EVB board V2.

Signed-off-by: Magnus Damm <damm@opensource.se>
---

 Depends on "ARM: mach-shmobile: sh7372 SDHI vector merge".

 Changes since V1:
 - dropped empty platform data structure

 arch/arm/mach-shmobile/board-ap4evb.c |   32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

--- 0001/arch/arm/mach-shmobile/board-ap4evb.c
+++ work/arch/arm/mach-shmobile/board-ap4evb.c	2010-03-10 17:20:33.000000000 +0900
@@ -206,10 +206,32 @@ static struct platform_device keysc_devi
 	},
 };
 
+/* SDHI0 */
+static struct resource sdhi0_resources[] = {
+	[0] = {
+		.name	= "SDHI0",
+		.start  = 0xe6850000,
+		.end    = 0xe68501ff,
+		.flags  = IORESOURCE_MEM,
+	},
+	[1] = {
+		.start  = 96,
+		.flags  = IORESOURCE_IRQ,
+	},
+};
+
+static struct platform_device sdhi0_device = {
+	.name           = "sh_mobile_sdhi",
+	.num_resources  = ARRAY_SIZE(sdhi0_resources),
+	.resource       = sdhi0_resources,
+	.id             = 0,
+};
+
 static struct platform_device *ap4evb_devices[] __initdata = {
 	&nor_flash_device,
 	&smc911x_device,
 	&keysc_device,
+	&sdhi0_device,
 };
 
 static struct map_desc ap4evb_io_desc[] __initdata = {
@@ -286,6 +308,16 @@ static void __init ap4evb_init(void)
 	gpio_request(GPIO_FN_KEYIN3_133, NULL);
 	gpio_request(GPIO_FN_KEYIN4,     NULL);
 
+	/* SDHI0 */
+	gpio_request(GPIO_FN_SDHICD0, NULL);
+	gpio_request(GPIO_FN_SDHIWP0, NULL);
+	gpio_request(GPIO_FN_SDHICMD0, NULL);
+	gpio_request(GPIO_FN_SDHICLK0, NULL);
+	gpio_request(GPIO_FN_SDHID0_3, NULL);
+	gpio_request(GPIO_FN_SDHID0_2, NULL);
+	gpio_request(GPIO_FN_SDHID0_1, NULL);
+	gpio_request(GPIO_FN_SDHID0_0, NULL);
+
 	sh7372_add_standard_devices();
 
 	platform_add_devices(ap4evb_devices, ARRAY_SIZE(ap4evb_devices));

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

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

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-10  7:15 [PATCH] ARM: mach-shmobile: ap4evb SDHI0 platform data Magnus Damm
2010-03-10  7:36 ` Paul Mundt
2010-03-10  7:49 ` Magnus Damm
2010-03-10  7:58 ` Paul Mundt
2010-03-10  9:26 ` [PATCH] ARM: mach-shmobile: ap4evb SDHI0 platform data V2 Magnus Damm

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox