mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-02-19 04:36:32 +07:00
ARM: shmobile: Lager:add SPI FLASH support on QSPI
This patch enables Spansion S25FL512SAGMFIG11 chip on QSPI, Add support for the QSPI interface on Lager. Signed-off-by: Hiep Cao Minh <cm-hiep@jinso.co.jp> Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
This commit is contained in:
parent
90d423faa0
commit
24cf82f442
@ -39,6 +39,11 @@
|
|||||||
#include <mach/r8a7790.h>
|
#include <mach/r8a7790.h>
|
||||||
#include <asm/mach-types.h>
|
#include <asm/mach-types.h>
|
||||||
#include <asm/mach/arch.h>
|
#include <asm/mach/arch.h>
|
||||||
|
#include <linux/mtd/partitions.h>
|
||||||
|
#include <linux/mtd/mtd.h>
|
||||||
|
#include <linux/spi/flash.h>
|
||||||
|
#include <linux/spi/rspi.h>
|
||||||
|
#include <linux/spi/spi.h>
|
||||||
|
|
||||||
/* DU */
|
/* DU */
|
||||||
static struct rcar_du_encoder_data lager_du_encoders[] = {
|
static struct rcar_du_encoder_data lager_du_encoders[] = {
|
||||||
@ -166,6 +171,59 @@ static const struct resource ether_resources[] __initconst = {
|
|||||||
DEFINE_RES_IRQ(gic_spi(162)),
|
DEFINE_RES_IRQ(gic_spi(162)),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* SPI Flash memory (Spansion S25FL512SAGMFIG11 64Mb) */
|
||||||
|
static struct mtd_partition spi_flash_part[] = {
|
||||||
|
/* Reserved for user loader program, read-only */
|
||||||
|
{
|
||||||
|
.name = "loader",
|
||||||
|
.offset = 0,
|
||||||
|
.size = SZ_256K,
|
||||||
|
.mask_flags = MTD_WRITEABLE,
|
||||||
|
},
|
||||||
|
/* Reserved for user program, read-only */
|
||||||
|
{
|
||||||
|
.name = "user",
|
||||||
|
.offset = MTDPART_OFS_APPEND,
|
||||||
|
.size = SZ_4M,
|
||||||
|
.mask_flags = MTD_WRITEABLE,
|
||||||
|
},
|
||||||
|
/* All else is writable (e.g. JFFS2) */
|
||||||
|
{
|
||||||
|
.name = "flash",
|
||||||
|
.offset = MTDPART_OFS_APPEND,
|
||||||
|
.size = MTDPART_SIZ_FULL,
|
||||||
|
.mask_flags = 0,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
static 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 rspi_plat_data qspi_pdata __initconst = {
|
||||||
|
.num_chipselect = 1,
|
||||||
|
};
|
||||||
|
|
||||||
|
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,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
/* QSPI resource */
|
||||||
|
static const struct resource qspi_resources[] __initconst = {
|
||||||
|
DEFINE_RES_MEM(0xe6b10000, 0x1000),
|
||||||
|
DEFINE_RES_IRQ(gic_spi(184)),
|
||||||
|
};
|
||||||
|
|
||||||
static const struct pinctrl_map lager_pinctrl_map[] = {
|
static const struct pinctrl_map lager_pinctrl_map[] = {
|
||||||
/* DU (CN10: ARGB0, CN13: LVDS) */
|
/* DU (CN10: ARGB0, CN13: LVDS) */
|
||||||
PIN_MAP_MUX_GROUP_DEFAULT("rcar-du-r8a7790", "pfc-r8a7790",
|
PIN_MAP_MUX_GROUP_DEFAULT("rcar-du-r8a7790", "pfc-r8a7790",
|
||||||
@ -223,6 +281,12 @@ static void __init lager_add_standard_devices(void)
|
|||||||
ðer_pdata, sizeof(ether_pdata));
|
ðer_pdata, sizeof(ether_pdata));
|
||||||
|
|
||||||
lager_add_du_device();
|
lager_add_du_device();
|
||||||
|
|
||||||
|
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));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user