From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH V2 3/4] ARM: shmobile: koelsch: Add QSPI support Date: Sun, 12 Jan 2014 22:46:40 +0100 Message-ID: <30881023.1VWPBCH6CR@avalon> References: <1389524433-2823-1-git-send-email-geert@linux-m68k.org> <1389524433-2823-4-git-send-email-geert@linux-m68k.org> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7Bit Cc: Simon Horman , Magnus Damm , linux-sh@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-spi@vger.kernel.org, Geert Uytterhoeven To: Geert Uytterhoeven Return-path: In-Reply-To: <1389524433-2823-4-git-send-email-geert@linux-m68k.org> Sender: linux-sh-owner@vger.kernel.org List-Id: linux-spi.vger.kernel.org Hi Geert, Thank you for the patch. On Sunday 12 January 2014 12:00:32 Geert Uytterhoeven wrote: > From: Geert Uytterhoeven > > Enable support for the Spansion s25fl512s SPI FLASH on the Koelsch board: > - Add QSPI platform device, resources, platform data, and pinmux, > - Add FLASH data and MTD partitions. > > Signed-off-by: Geert Uytterhoeven Acked-by: Laurent Pinchart > --- > V2: > - Split in 2 groups (qspi_ctrl/qspi_data4) > > arch/arm/mach-shmobile/board-koelsch.c | 64 > ++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) > > diff --git a/arch/arm/mach-shmobile/board-koelsch.c > b/arch/arm/mach-shmobile/board-koelsch.c index de7cc64b1f37..37e4a6fd36b3 > 100644 > --- a/arch/arm/mach-shmobile/board-koelsch.c > +++ b/arch/arm/mach-shmobile/board-koelsch.c > @@ -25,12 +25,17 @@ > #include > #include > #include > +#include > +#include > #include > #include > #include > #include > #include > #include > +#include > +#include > +#include > #include > #include > #include > @@ -148,6 +153,55 @@ static const struct gpio_keys_platform_data > koelsch_keys_pdata __initconst = { .nbuttons = ARRAY_SIZE(gpio_buttons), > }; > > +/* QSPI */ > +static const struct resource qspi_resources[] __initconst = { > + DEFINE_RES_MEM(0xe6b10000, 0x1000), > + DEFINE_RES_IRQ(gic_spi(184)), > +}; > + > +static const struct rspi_plat_data qspi_pdata __initconst = { > + .num_chipselect = 1, > +}; > + > +/* SPI Flash memory (Spansion S25FL512SAGMFIG11 64 MiB) */ > +static struct mtd_partition spi_flash_part[] = { > + { > + .name = "loader", > + .offset = 0x00000000, > + .size = 512 * 1024, > + .mask_flags = MTD_WRITEABLE, > + }, > + { > + .name = "bootenv", > + .offset = MTDPART_OFS_APPEND, > + .size = 512 * 1024, > + .mask_flags = MTD_WRITEABLE, > + }, > + { > + .name = "data", > + .offset = MTDPART_OFS_APPEND, > + .size = MTDPART_SIZ_FULL, > + }, > +}; > + > +static const struct flash_platform_data spi_flash_data = { > + .name = "m25p80", > + .parts = spi_flash_part, > + .nr_parts = ARRAY_SIZE(spi_flash_part), > + .type = "s25fl512s", > +}; > + > +static const struct spi_board_info spi_info[] __initconst = { > + { > + .modalias = "m25p80", > + .platform_data = &spi_flash_data, > + .mode = SPI_MODE_0, > + .max_speed_hz = 30000000, > + .bus_num = 0, > + .chip_select = 0, > + }, > +}; > + > static const struct pinctrl_map koelsch_pinctrl_map[] = { > /* DU */ > PIN_MAP_MUX_GROUP_DEFAULT("rcar-du-r8a7791", "pfc-r8a7791", > @@ -165,6 +219,11 @@ static const struct pinctrl_map koelsch_pinctrl_map[] = > { "eth_rmii", "eth"), > PIN_MAP_MUX_GROUP_DEFAULT("r8a7791-ether", "pfc-r8a7791", > "intc_irq0", "intc"), > + /* QSPI */ > + PIN_MAP_MUX_GROUP_DEFAULT("qspi.0", "pfc-r8a7791", > + "qspi_ctrl", "qspi"), > + PIN_MAP_MUX_GROUP_DEFAULT("qspi.0", "pfc-r8a7791", > + "qspi_data4", "qspi"), > /* SCIF0 (CN19: DEBUG SERIAL0) */ > PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.6", "pfc-r8a7791", > "scif0_data_d", "scif0"), > @@ -190,6 +249,11 @@ static void __init koelsch_add_standard_devices(void) > platform_device_register_data(&platform_bus, "gpio-keys", -1, > &koelsch_keys_pdata, > sizeof(koelsch_keys_pdata)); > + platform_device_register_resndata(&platform_bus, "qspi", 0, > + qspi_resources, > + ARRAY_SIZE(qspi_resources), > + &qspi_pdata, sizeof(qspi_pdata)); > + spi_register_board_info(spi_info, ARRAY_SIZE(spi_info)); > > koelsch_add_du_device(); > } -- Regards, Laurent Pinchart