[ARM] S3C: Move HSMMC device definition to plat-s3ec

Move the definition for the hsmmc device to plat-s3c
to be shared between the s3c24xx and s3c64xx platforms.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
This commit is contained in:
Ben Dooks 2008-10-31 16:14:28 +00:00
parent 8cdf47cb4b
commit 5b323c7beb
11 changed files with 78 additions and 33 deletions

View File

@ -134,6 +134,8 @@
#define IRQ_S3C2443_HSMMC S3C2410_IRQ(20) /* IRQ_SDI */ #define IRQ_S3C2443_HSMMC S3C2410_IRQ(20) /* IRQ_SDI */
#define IRQ_S3C2443_NAND S3C2410_IRQ(24) /* reserved */ #define IRQ_S3C2443_NAND S3C2410_IRQ(24) /* reserved */
#define IRQ_HSMMC0 IRQ_S3C2443_HSMMC
#define IRQ_S3C2443_LCD1 S3C2410_IRQSUB(14) #define IRQ_S3C2443_LCD1 S3C2410_IRQSUB(14)
#define IRQ_S3C2443_LCD2 S3C2410_IRQSUB(15) #define IRQ_S3C2443_LCD2 S3C2410_IRQSUB(15)
#define IRQ_S3C2443_LCD3 S3C2410_IRQSUB(16) #define IRQ_S3C2443_LCD3 S3C2410_IRQSUB(16)

View File

@ -102,5 +102,6 @@
#define S3C24XX_PA_NAND S3C2410_PA_NAND #define S3C24XX_PA_NAND S3C2410_PA_NAND
#define S3C_PA_UART S3C24XX_PA_UART #define S3C_PA_UART S3C24XX_PA_UART
#define S3C_PA_HSMMC0 S3C2443_PA_HSMMC
#endif /* __ASM_ARCH_MAP_H */ #endif /* __ASM_ARCH_MAP_H */

View File

@ -24,6 +24,7 @@ config MACH_SMDK2443
bool "SMDK2443" bool "SMDK2443"
select CPU_S3C2443 select CPU_S3C2443
select MACH_SMDK select MACH_SMDK
select S3C_DEV_HSMMC
help help
Say Y here if you are using an SMDK2443 Say Y here if you are using an SMDK2443

View File

@ -104,7 +104,7 @@ static struct s3c2410_uartcfg smdk2443_uartcfgs[] __initdata = {
static struct platform_device *smdk2443_devices[] __initdata = { static struct platform_device *smdk2443_devices[] __initdata = {
&s3c_device_wdt, &s3c_device_wdt,
&s3c_device_i2c, &s3c_device_i2c,
&s3c_device_hsmmc, &s3c_device_hsmmc0,
}; };
static void __init smdk2443_map_io(void) static void __init smdk2443_map_io(void)

View File

@ -17,6 +17,12 @@
#include <plat/map-base.h> #include <plat/map-base.h>
/* HSMMC units */
#define S3C64XX_PA_HSMMC(x) (0x7C200000 + ((x) * 0x100000))
#define S3C64XX_PA_HSMMC0 S3C64XX_PA_HSMMC(0)
#define S3C64XX_PA_HSMMC1 S3C64XX_PA_HSMMC(1)
#define S3C64XX_PA_HSMMC2 S3C64XX_PA_HSMMC(2)
#define S3C_PA_UART (0x7F005000) #define S3C_PA_UART (0x7F005000)
#define S3C_PA_UART0 (S3C_PA_UART + 0x00) #define S3C_PA_UART0 (S3C_PA_UART + 0x00)
#define S3C_PA_UART1 (S3C_PA_UART + 0x400) #define S3C_PA_UART1 (S3C_PA_UART + 0x400)
@ -49,5 +55,8 @@
/* compatibiltiy defines. */ /* compatibiltiy defines. */
#define S3C_PA_TIMER S3C64XX_PA_TIMER #define S3C_PA_TIMER S3C64XX_PA_TIMER
#define S3C_PA_HSMMC0 S3C64XX_PA_HSMMC0
#define S3C_PA_HSMMC1 S3C64XX_PA_HSMMC1
#define S3C_PA_HSMMC2 S3C64XX_PA_HSMMC2
#endif /* __ASM_ARCH_6400_MAP_H */ #endif /* __ASM_ARCH_6400_MAP_H */

View File

@ -17,5 +17,6 @@ config CPU_S3C6410
config MACH_SMDK6410 config MACH_SMDK6410
bool "SMDK6410" bool "SMDK6410"
select CPU_S3C6410 select CPU_S3C6410
select S3C_DEV_HSMMC
help help
Machine support for the Samsung SMDK6410 Machine support for the Samsung SMDK6410

View File

@ -102,3 +102,11 @@ config S3C_LOWLEVEL_UART_PORT
such as the `Uncompressing...` at start time. The value of such as the `Uncompressing...` at start time. The value of
this configuration should be between zero and two. The port this configuration should be between zero and two. The port
must have been initialised by the boot-loader before use. must have been initialised by the boot-loader before use.
# device definitions to compile in
config S3C_DEV_HSMMC
bool
depends on PLAT_S3C
help
Compile in platform device definitions for HSMMC code

View File

@ -14,4 +14,8 @@ obj- :=
obj-y += init.o obj-y += init.o
obj-y += time.o obj-y += time.o
obj-y += clock.o obj-y += clock.o
obj-y += pwm-clock.o obj-y += pwm-clock.o
# devices
obj-$(CONFIG_S3C_DEV_HSMMC) += dev-hsmmc.o

View File

@ -0,0 +1,47 @@
/* linux/arch/arm/plat-s3c/dev-hsmmc.c
*
* Copyright (c) 2008 Simtec Electronics
* Ben Dooks <ben@simtec.co.uk>
* http://armlinux.simtec.co.uk/
*
* S3C series device definition for hsmmc devices
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#include <linux/kernel.h>
#include <linux/platform_device.h>
#include <mach/map.h>
#include <plat/devs.h>
#include <plat/cpu.h>
#define S3C_SZ_HSMMC (0x1000)
static struct resource s3c_hsmmc_resource[] = {
[0] = {
.start = S3C_PA_HSMMC0,
.end = S3C_PA_HSMMC0 + S3C_SZ_HSMMC - 1,
.flags = IORESOURCE_MEM,
},
[1] = {
.start = IRQ_HSMMC0,
.end = IRQ_HSMMC0,
.flags = IORESOURCE_IRQ,
}
};
static u64 s3c_device_hsmmc_dmamask = 0xffffffffUL;
struct platform_device s3c_device_hsmmc0 = {
.name = "s3c-sdhci",
.id = 0,
.num_resources = ARRAY_SIZE(s3c_hsmmc_resource),
.resource = s3c_hsmmc_resource,
.dev = {
.dma_mask = &s3c_device_hsmmc_dmamask,
.coherent_dma_mask = 0xffffffffUL
}
};

View File

@ -32,7 +32,9 @@ extern struct platform_device s3c_device_iis;
extern struct platform_device s3c_device_rtc; extern struct platform_device s3c_device_rtc;
extern struct platform_device s3c_device_adc; extern struct platform_device s3c_device_adc;
extern struct platform_device s3c_device_sdi; extern struct platform_device s3c_device_sdi;
extern struct platform_device s3c_device_hsmmc; extern struct platform_device s3c_device_hsmmc0;
extern struct platform_device s3c_device_hsmmc1;
extern struct platform_device s3c_device_hsmmc2;
extern struct platform_device s3c_device_spi0; extern struct platform_device s3c_device_spi0;
extern struct platform_device s3c_device_spi1; extern struct platform_device s3c_device_spi1;

View File

@ -403,36 +403,6 @@ struct platform_device s3c_device_sdi = {
EXPORT_SYMBOL(s3c_device_sdi); EXPORT_SYMBOL(s3c_device_sdi);
/* High-speed MMC/SD */
static struct resource s3c_hsmmc_resource[] = {
[0] = {
.start = S3C2443_PA_HSMMC,
.end = S3C2443_PA_HSMMC + S3C2443_SZ_HSMMC - 1,
.flags = IORESOURCE_MEM,
},
[1] = {
.start = IRQ_S3C2443_HSMMC,
.end = IRQ_S3C2443_HSMMC,
.flags = IORESOURCE_IRQ,
}
};
static u64 s3c_device_hsmmc_dmamask = 0xffffffffUL;
struct platform_device s3c_device_hsmmc = {
.name = "s3c-sdhci",
.id = -1,
.num_resources = ARRAY_SIZE(s3c_hsmmc_resource),
.resource = s3c_hsmmc_resource,
.dev = {
.dma_mask = &s3c_device_hsmmc_dmamask,
.coherent_dma_mask = 0xffffffffUL
}
};
/* SPI (0) */ /* SPI (0) */
static struct resource s3c_spi0_resource[] = { static struct resource s3c_spi0_resource[] = {