* [PATCH] ARM: mach-shmobile: G3EVM FLCTL platform data
@ 2010-02-19 9:54 Magnus Damm
2010-02-22 10:31 ` Paul Mundt
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Magnus Damm @ 2010-02-19 9:54 UTC (permalink / raw)
To: linux-sh
From: Magnus Damm <damm@opensource.se>
This patch adds FLCTL platform data for the G3EVM board.
Signed-off-by: Magnus Damm <damm@opensource.se>
---
Depends on FLCTL patches in the sh-2.6 git tree
Builds on top of the G3EVM KEYSC platform data patch.
The sh_flctl cannot be selected by Kconfig at this point,
will submit a separate patch to fix that.
arch/arm/mach-shmobile/board-g3evm.c | 67 ++++++++++++++++++++++++++++++++++
1 file changed, 67 insertions(+)
--- 0003/arch/arm/mach-shmobile/board-g3evm.c
+++ work/arch/arm/mach-shmobile/board-g3evm.c 2010-02-19 18:50:03.000000000 +0900
@@ -26,6 +26,7 @@
#include <linux/mtd/mtd.h>
#include <linux/mtd/partitions.h>
#include <linux/mtd/physmap.h>
+#include <linux/mtd/sh_flctl.h>
#include <linux/usb/r8a66597.h>
#include <linux/io.h>
#include <linux/gpio.h>
@@ -166,10 +167,53 @@ static struct platform_device keysc_devi
},
};
+static struct mtd_partition nand_partition_info[] = {
+ {
+ .name = "system",
+ .offset = 0,
+ .size = 64 * 1024 * 1024,
+ },
+ {
+ .name = "userdata",
+ .offset = MTDPART_OFS_APPEND,
+ .size = 128 * 1024 * 1024,
+ },
+ {
+ .name = "cache",
+ .offset = MTDPART_OFS_APPEND,
+ .size = 64 * 1024 * 1024,
+ },
+};
+
+static struct resource nand_flash_resources[] = {
+ [0] = {
+ .start = 0xe6a30000,
+ .end = 0xe6a3009b,
+ .flags = IORESOURCE_MEM,
+ }
+};
+
+static struct sh_flctl_platform_data nand_flash_data = {
+ .parts = nand_partition_info,
+ .nr_parts = ARRAY_SIZE(nand_partition_info),
+ .flcmncr_val = QTSEL_E | FCKSEL_E | TYPESEL_SET | NANWF_E
+ | SHBUSSEL | SEL_16BIT,
+};
+
+static struct platform_device nand_flash_device = {
+ .name = "sh_flctl",
+ .resource = nand_flash_resources,
+ .num_resources = ARRAY_SIZE(nand_flash_resources),
+ .dev = {
+ .platform_data = &nand_flash_data,
+ },
+};
+
static struct platform_device *g3evm_devices[] __initdata = {
&nor_flash_device,
&usb_host_device,
&keysc_device,
+ &nand_flash_device,
};
static struct map_desc g3evm_io_desc[] __initdata = {
@@ -251,6 +295,29 @@ static void __init g3evm_init(void)
gpio_request(GPIO_FN_PORT57_KEYIN5_PU, NULL);
gpio_request(GPIO_FN_PORT58_KEYIN6_PU, NULL);
+ /* FLCTL */
+ gpio_request(GPIO_FN_FCE0, NULL);
+ gpio_request(GPIO_FN_D0_ED0_NAF0, NULL);
+ gpio_request(GPIO_FN_D1_ED1_NAF1, NULL);
+ gpio_request(GPIO_FN_D2_ED2_NAF2, NULL);
+ gpio_request(GPIO_FN_D3_ED3_NAF3, NULL);
+ gpio_request(GPIO_FN_D4_ED4_NAF4, NULL);
+ gpio_request(GPIO_FN_D5_ED5_NAF5, NULL);
+ gpio_request(GPIO_FN_D6_ED6_NAF6, NULL);
+ gpio_request(GPIO_FN_D7_ED7_NAF7, NULL);
+ gpio_request(GPIO_FN_D8_ED8_NAF8, NULL);
+ gpio_request(GPIO_FN_D9_ED9_NAF9, NULL);
+ gpio_request(GPIO_FN_D10_ED10_NAF10, NULL);
+ gpio_request(GPIO_FN_D11_ED11_NAF11, NULL);
+ gpio_request(GPIO_FN_D12_ED12_NAF12, NULL);
+ gpio_request(GPIO_FN_D13_ED13_NAF13, NULL);
+ gpio_request(GPIO_FN_D14_ED14_NAF14, NULL);
+ gpio_request(GPIO_FN_D15_ED15_NAF15, NULL);
+ gpio_request(GPIO_FN_WE0_XWR0_FWE, NULL);
+ gpio_request(GPIO_FN_FRB, NULL);
+ /* FOE, FCDE, FSC on dedicated pins */
+ __raw_writel(__raw_readl(0xe6158048) & ~(1 << 15), 0xe6158048);
+
sh7367_add_standard_devices();
platform_add_devices(g3evm_devices, ARRAY_SIZE(g3evm_devices));
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] ARM: mach-shmobile: G3EVM FLCTL platform data
2010-02-19 9:54 [PATCH] ARM: mach-shmobile: G3EVM FLCTL platform data Magnus Damm
@ 2010-02-22 10:31 ` Paul Mundt
2010-02-23 5:49 ` Magnus Damm
2010-05-20 3:36 ` Paul Mundt
2 siblings, 0 replies; 4+ messages in thread
From: Paul Mundt @ 2010-02-22 10:31 UTC (permalink / raw)
To: linux-sh
On Fri, Feb 19, 2010 at 06:54:06PM +0900, Magnus Damm wrote:
> +static struct mtd_partition nand_partition_info[] = {
> + {
> + .name = "system",
> + .offset = 0,
> + .size = 64 * 1024 * 1024,
> + },
> + {
> + .name = "userdata",
> + .offset = MTDPART_OFS_APPEND,
> + .size = 128 * 1024 * 1024,
> + },
> + {
> + .name = "cache",
> + .offset = MTDPART_OFS_APPEND,
> + .size = 64 * 1024 * 1024,
> + },
> +};
> +
You may want to #include <asm/sizes.h> here and use the SZ_ helpers
instead. There is far too much existing ambiguity with sz vs sz - 1 for
resource length that consolidating on common helpers at least makes the
intent more immediately apparent.
> +static struct resource nand_flash_resources[] = {
> + [0] = {
> + .start = 0xe6a30000,
> + .end = 0xe6a3009b,
> + .flags = IORESOURCE_MEM,
> + }
> +};
> +
> +static struct sh_flctl_platform_data nand_flash_data = {
> + .parts = nand_partition_info,
> + .nr_parts = ARRAY_SIZE(nand_partition_info),
> + .flcmncr_val = QTSEL_E | FCKSEL_E | TYPESEL_SET | NANWF_E
> + | SHBUSSEL | SEL_16BIT,
> +};
This is also a bit special, |'s usually are at the end of the previous
line, not the beginning of the second one.
> + /* FOE, FCDE, FSC on dedicated pins */
> + __raw_writel(__raw_readl(0xe6158048) & ~(1 << 15), 0xe6158048);
> +
This looks suspiciously like an obfuscated MSTP toggle that the clock
framework needs to be handling. I thought I was already pretty clear when
I said I wouldn't be applying any more of these sorts of patches until
some basic clock framework support was in place?
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] ARM: mach-shmobile: G3EVM FLCTL platform data
2010-02-19 9:54 [PATCH] ARM: mach-shmobile: G3EVM FLCTL platform data Magnus Damm
2010-02-22 10:31 ` Paul Mundt
@ 2010-02-23 5:49 ` Magnus Damm
2010-05-20 3:36 ` Paul Mundt
2 siblings, 0 replies; 4+ messages in thread
From: Magnus Damm @ 2010-02-23 5:49 UTC (permalink / raw)
To: linux-sh
On Mon, Feb 22, 2010 at 7:31 PM, Paul Mundt <lethal@linux-sh.org> wrote:
> On Fri, Feb 19, 2010 at 06:54:06PM +0900, Magnus Damm wrote:
>> +static struct mtd_partition nand_partition_info[] = {
>> + {
>> + .name = "system",
>> + .offset = 0,
>> + .size = 64 * 1024 * 1024,
>> + },
>> + {
>> + .name = "userdata",
>> + .offset = MTDPART_OFS_APPEND,
>> + .size = 128 * 1024 * 1024,
>> + },
>> + {
>> + .name = "cache",
>> + .offset = MTDPART_OFS_APPEND,
>> + .size = 64 * 1024 * 1024,
>> + },
>> +};
>> +
> You may want to #include <asm/sizes.h> here and use the SZ_ helpers
> instead. There is far too much existing ambiguity with sz vs sz - 1 for
> resource length that consolidating on common helpers at least makes the
> intent more immediately apparent.
Sounds like a good plan. I guess the existing NOR flash code needs an
update as well then.
>> +static struct resource nand_flash_resources[] = {
>> + [0] = {
>> + .start = 0xe6a30000,
>> + .end = 0xe6a3009b,
>> + .flags = IORESOURCE_MEM,
>> + }
>> +};
>> +
>> +static struct sh_flctl_platform_data nand_flash_data = {
>> + .parts = nand_partition_info,
>> + .nr_parts = ARRAY_SIZE(nand_partition_info),
>> + .flcmncr_val = QTSEL_E | FCKSEL_E | TYPESEL_SET | NANWF_E
>> + | SHBUSSEL | SEL_16BIT,
>> +};
>
> This is also a bit special, |'s usually are at the end of the previous
> line, not the beginning of the second one.
Ok, let's not be special!
>> + /* FOE, FCDE, FSC on dedicated pins */
>> + __raw_writel(__raw_readl(0xe6158048) & ~(1 << 15), 0xe6158048);
>> +
> This looks suspiciously like an obfuscated MSTP toggle that the clock
> framework needs to be handling. I thought I was already pretty clear when
> I said I wouldn't be applying any more of these sorts of patches until
> some basic clock framework support was in place?
I didn't ask you to apply the patch, just wanted to post it so other
people can get the code.
Cheers,
/ magnus
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] ARM: mach-shmobile: G3EVM FLCTL platform data
2010-02-19 9:54 [PATCH] ARM: mach-shmobile: G3EVM FLCTL platform data Magnus Damm
2010-02-22 10:31 ` Paul Mundt
2010-02-23 5:49 ` Magnus Damm
@ 2010-05-20 3:36 ` Paul Mundt
2 siblings, 0 replies; 4+ messages in thread
From: Paul Mundt @ 2010-05-20 3:36 UTC (permalink / raw)
To: linux-sh
On Tue, Feb 23, 2010 at 02:49:46PM +0900, Magnus Damm wrote:
> On Mon, Feb 22, 2010 at 7:31 PM, Paul Mundt <lethal@linux-sh.org> wrote:
> >> + ? ? /* FOE, FCDE, FSC on dedicated pins */
> >> + ? ? __raw_writel(__raw_readl(0xe6158048) & ~(1 << 15), 0xe6158048);
> >> +
> > This looks suspiciously like an obfuscated MSTP toggle that the clock
> > framework needs to be handling. I thought I was already pretty clear when
> > I said I wouldn't be applying any more of these sorts of patches until
> > some basic clock framework support was in place?
>
> I didn't ask you to apply the patch, just wanted to post it so other
> people can get the code.
>
I suppose you are going to respin this once the G3 clkdev stuff is
posted?
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2010-05-20 3:36 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-02-19 9:54 [PATCH] ARM: mach-shmobile: G3EVM FLCTL platform data Magnus Damm
2010-02-22 10:31 ` Paul Mundt
2010-02-23 5:49 ` Magnus Damm
2010-05-20 3:36 ` Paul Mundt
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).