summaryrefslogtreecommitdiff
path: root/cleopatre/linux-2.6.25.10-spc300/arch
diff options
context:
space:
mode:
authorMSE500 Team2011-12-02 11:35:57 +0100
committerNicolas Schodet2012-05-09 10:41:15 +0200
commitedc9957c99d3aca147616345f13978da423f4226 (patch)
tree3d94f5c91911521fe79a22ef2f330224afa87c33 /cleopatre/linux-2.6.25.10-spc300/arch
parentd7eccf918c1b3f63e66464234e3b0582ad90a206 (diff)
cleo/linux: add board spc300dini (2), refs #2759
Diffstat (limited to 'cleopatre/linux-2.6.25.10-spc300/arch')
-rw-r--r--cleopatre/linux-2.6.25.10-spc300/arch/arm/mach-spc300/Kconfig37
-rw-r--r--cleopatre/linux-2.6.25.10-spc300/arch/arm/mach-spc300/Makefile1
-rw-r--r--cleopatre/linux-2.6.25.10-spc300/arch/arm/mach-spc300/board-spc300dini.c28
-rw-r--r--cleopatre/linux-2.6.25.10-spc300/arch/arm/mach-spc300/spc300-devices.c12
-rw-r--r--cleopatre/linux-2.6.25.10-spc300/arch/arm/mach-spc300/spc300-devices.h6
5 files changed, 70 insertions, 14 deletions
diff --git a/cleopatre/linux-2.6.25.10-spc300/arch/arm/mach-spc300/Kconfig b/cleopatre/linux-2.6.25.10-spc300/arch/arm/mach-spc300/Kconfig
index c8440e0065..fd4762c0c4 100644
--- a/cleopatre/linux-2.6.25.10-spc300/arch/arm/mach-spc300/Kconfig
+++ b/cleopatre/linux-2.6.25.10-spc300/arch/arm/mach-spc300/Kconfig
@@ -66,6 +66,14 @@ config MACH_ARIZONA
help
Include support for SPiDCOM spc300 Prototype board platform (FCM3).
+config MACH_SPC300DINI
+ bool "Support SPC300 Dini platform"
+ select CHIP_SPC300DINI
+ select HAVE_SPC300_GPIO_USABLE_ALL
+ select HAVE_MTD_SPC300_MEDIUM
+ help
+ Include support for SPiDCOM spc300 Prototype board platform (DINI).
+
endchoice
# Chips (CHIP_*)
@@ -76,9 +84,24 @@ endchoice
# select CHIP_FEATURE_* according to embedded peripherals.
config CHIP_SPC300
def_bool n
+ select CHIP_FEATURE_INT_MAP_V1
+ select CHIP_FEATURE_SDRAM_CTRL
select CHIP_FEATURE_SYNOP3504
+ select CHIP_FEATURE_MPEGTS
+ select CHIP_FEATURE_I2S
+ select CHIP_FEATURE_PCM
config CHIP_SPC300ARIZONA
def_bool n
+ select CHIP_FEATURE_INT_MAP_V1
+ select CHIP_FEATURE_SDRAM_CTRL
+ select CHIP_FEATURE_SYNOP3504
+ select CHIP_FEATURE_MPEGTS
+ select CHIP_FEATURE_I2S
+ select CHIP_FEATURE_PCM
+config CHIP_SPC300DINI
+ def_bool n
+ select CHIP_FEATURE_INT_MAP_V2
+ select CHIP_FEATURE_MIU_CTRL
select CHIP_FEATURE_SYNOP3504
# Chip features (CHIP_FEATURE_*)
@@ -87,9 +110,23 @@ config CHIP_SPC300ARIZONA
# This is not shown to the user, features should be selected by the chip.
# Each chip feature corresponds to a embedded peripheral, a chip specificity
# or workaround.
+config CHIP_FEATURE_INT_MAP_V1
+ def_bool n
+config CHIP_FEATURE_INT_MAP_V2
+ def_bool n
+config CHIP_FEATURE_SDRAM_CTRL
+ def_bool n
+config CHIP_FEATURE_MIU_CTRL
+ def_bool n
config CHIP_FEATURE_SYNOP3504
def_bool n
select HAVE_SYNOP3504
+config CHIP_FEATURE_MPEGTS
+ def_bool n
+config CHIP_FEATURE_I2S
+ def_bool n
+config CHIP_FEATURE_PCM
+ def_bool n
source "arch/arm/mach-spc300/Kconfig.flash"
diff --git a/cleopatre/linux-2.6.25.10-spc300/arch/arm/mach-spc300/Makefile b/cleopatre/linux-2.6.25.10-spc300/arch/arm/mach-spc300/Makefile
index 27d0f0825e..eade13b712 100644
--- a/cleopatre/linux-2.6.25.10-spc300/arch/arm/mach-spc300/Makefile
+++ b/cleopatre/linux-2.6.25.10-spc300/arch/arm/mach-spc300/Makefile
@@ -12,3 +12,4 @@ obj-$(CONFIG_MACH_SPK310) += board-spk310.o
obj-$(CONFIG_MACH_SCR310) += board-scr310.o
obj-$(CONFIG_MACH_SPR300) += board-spr300.o
obj-$(CONFIG_MACH_SPR310) += board-spr310.o
+obj-$(CONFIG_MACH_SPC300DINI) += board-spc300dini.o
diff --git a/cleopatre/linux-2.6.25.10-spc300/arch/arm/mach-spc300/board-spc300dini.c b/cleopatre/linux-2.6.25.10-spc300/arch/arm/mach-spc300/board-spc300dini.c
index fb59804c64..25f9caa2c3 100644
--- a/cleopatre/linux-2.6.25.10-spc300/arch/arm/mach-spc300/board-spc300dini.c
+++ b/cleopatre/linux-2.6.25.10-spc300/arch/arm/mach-spc300/board-spc300dini.c
@@ -1,5 +1,5 @@
/*
- * arch/arm/mach-spc300/board-spr300.c
+ * arch/arm/mach-spc300/board-spc300dini.c
*
* (C) Copyright 2009 SPiDCOM Technologies
*
@@ -173,7 +173,7 @@ static struct mtd_partition spc300_flash_partitions[] = {
struct spc300_flash_spi_dev flash_chip __initdata = {
.name = "m25p32",
.cs = 0,
- .speed = 20000000,
+ .speed = 10000000,
.spimode = SPI_MODE_0,
.parts = spc300_flash_partitions,
.nb_parts = ARRAY_SIZE(spc300_flash_partitions),
@@ -186,9 +186,9 @@ struct spc300_afe_spi_dev afe_chip __initdata = {
};
/**
- * Initialize SPR300 GIC.
+ * Initialize SPC300 DINI GIC.
*/
-static void spr300_init_irq(void)
+static void spc300dini_init_irq(void)
{
spc300_init_irq();
}
@@ -196,13 +196,13 @@ static void spr300_init_irq(void)
/**
* New mapping for IOs after MMU starting.
*/
-static void __init spr300_map_io(void)
+static void __init spc300dini_map_io(void)
{
spc300_map_io();
}
/**
- * Second SPR300 initialisation,
+ * Second SPC300 DINI initialisation,
* just before memory_init.
*
* \param desc machine descriptor.
@@ -210,15 +210,15 @@ static void __init spr300_map_io(void)
* \param cmdline command line.
* \param mi memory informations.
*/
-static void __init spr300_fixup(struct machine_desc *desc, struct tag *tags, char **cmdline, struct meminfo *mi)
+static void __init spc300dini_fixup(struct machine_desc *desc, struct tag *tags, char **cmdline, struct meminfo *mi)
{
spc300_fixup(desc, tags, cmdline, mi);
}
/**
- * Initialize SPR300
+ * Initialize SPC300 DINI
*/
-static void __init spr300_init(void)
+static void __init spc300dini_init(void)
{
spc300_init();
spc300_add_device_uart0();
@@ -230,15 +230,15 @@ static void __init spr300_init(void)
spc300_add_device_wdt();
}
-MACHINE_START(SPC300, "SPR300 - ARM SPC300 based board")
+MACHINE_START(SPC300, "SPC300 DINI - ARM SPC300 based board")
/* Maintainer: SPiDCOM Technologies */
.phys_io = ARM_APB_BASE,
.io_pg_offst = ((IO_ADDRESS(ARM_APB_BASE)) >> 18) & 0xfffc,
.boot_params = SDRAM_BASE + 0x100,
- .fixup = spr300_fixup,
- .map_io = spr300_map_io,
+ .fixup = spc300dini_fixup,
+ .map_io = spc300dini_map_io,
.timer = &spc300_timer,
- .init_irq = spr300_init_irq,
- .init_machine = spr300_init,
+ .init_irq = spc300dini_init_irq,
+ .init_machine = spc300dini_init,
MACHINE_END
diff --git a/cleopatre/linux-2.6.25.10-spc300/arch/arm/mach-spc300/spc300-devices.c b/cleopatre/linux-2.6.25.10-spc300/arch/arm/mach-spc300/spc300-devices.c
index 80c9a6be41..2c2e049606 100644
--- a/cleopatre/linux-2.6.25.10-spc300/arch/arm/mach-spc300/spc300-devices.c
+++ b/cleopatre/linux-2.6.25.10-spc300/arch/arm/mach-spc300/spc300-devices.c
@@ -279,6 +279,7 @@ static struct platform_device spc300_gpdma_device = {
/**
* I2S Device Structure.
*/
+#ifdef CONFIG_CHIP_FEATURE_I2S
static struct resource spc300_i2s_resource[] = {
[0] = {
.start = I2S_BASE,
@@ -305,11 +306,13 @@ static struct platform_device spc300_i2s_device = {
.num_resources = ARRAY_SIZE(spc300_i2s_resource),
.resource = spc300_i2s_resource
};
+#endif
/**
* MPEGTS Device Structure.
*/
+#ifdef CONFIG_CHIP_FEATURE_MPEGTS
static struct resource spc300_mpegts_resource[] = {
[0] = {
.start = MPEG_TS_BASE,
@@ -331,11 +334,13 @@ static struct platform_device spc300_mpegts_device = {
.num_resources = ARRAY_SIZE(spc300_mpegts_resource),
.resource = spc300_mpegts_resource
};
+#endif
/**
* PCM Device Structure.
*/
+#ifdef CONFIG_CHIP_FEATURE_PCM
static struct resource spc300_pcm_resource[] = {
[0] = {
.start = PCM_BASE,
@@ -357,6 +362,7 @@ static struct platform_device spc300_pcm_device = {
.num_resources = ARRAY_SIZE(spc300_pcm_resource),
.resource = spc300_pcm_resource
};
+#endif
@@ -482,6 +488,7 @@ void spc300_add_device_gpdma(void)
platform_device_register(&spc300_gpdma_device);
}
+#ifdef CONFIG_CHIP_FEATURE_I2S
/**
* Register I2S device.
*/
@@ -489,7 +496,9 @@ void spc300_add_device_i2s(void)
{
platform_device_register(&spc300_i2s_device);
}
+#endif
+#ifdef CONFIG_CHIP_FEATURE_MPEGTS
/**
* Register MPEG-TS device.
*/
@@ -497,7 +506,9 @@ void spc300_add_device_mpegts(void)
{
platform_device_register(&spc300_mpegts_device);
}
+#endif
+#ifdef CONFIG_CHIP_FEATURE_PCM
/**
* Register PCM device.
*/
@@ -505,4 +516,5 @@ void spc300_add_device_pcm(void)
{
platform_device_register(&spc300_pcm_device);
}
+#endif
diff --git a/cleopatre/linux-2.6.25.10-spc300/arch/arm/mach-spc300/spc300-devices.h b/cleopatre/linux-2.6.25.10-spc300/arch/arm/mach-spc300/spc300-devices.h
index e5a0638268..d8b530d110 100644
--- a/cleopatre/linux-2.6.25.10-spc300/arch/arm/mach-spc300/spc300-devices.h
+++ b/cleopatre/linux-2.6.25.10-spc300/arch/arm/mach-spc300/spc300-devices.h
@@ -77,19 +77,25 @@ void spc300_add_device_wdt(void);
*/
void spc300_add_device_gpdma(void);
+#ifdef CONFIG_CHIP_FEATURE_I2S
/**
* Register I2S device.
*/
void spc300_add_device_i2s(void);
+#endif
+#ifdef CONFIG_CHIP_FEATURE_MPEGTS
/**
* Register MPEG-TS device.
*/
void spc300_add_device_mpegts(void);
+#endif
+#ifdef CONFIG_CHIP_FEATURE_PCM
/**
* Register PCM device.
*/
void spc300_add_device_pcm(void);
+#endif
#endif /* __ARCH_ARM_MACH_SPC300_DEVICES_H */