[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:
parent
8cdf47cb4b
commit
5b323c7beb
@ -134,6 +134,8 @@
|
||||
#define IRQ_S3C2443_HSMMC S3C2410_IRQ(20) /* IRQ_SDI */
|
||||
#define IRQ_S3C2443_NAND S3C2410_IRQ(24) /* reserved */
|
||||
|
||||
#define IRQ_HSMMC0 IRQ_S3C2443_HSMMC
|
||||
|
||||
#define IRQ_S3C2443_LCD1 S3C2410_IRQSUB(14)
|
||||
#define IRQ_S3C2443_LCD2 S3C2410_IRQSUB(15)
|
||||
#define IRQ_S3C2443_LCD3 S3C2410_IRQSUB(16)
|
||||
|
@ -102,5 +102,6 @@
|
||||
#define S3C24XX_PA_NAND S3C2410_PA_NAND
|
||||
|
||||
#define S3C_PA_UART S3C24XX_PA_UART
|
||||
#define S3C_PA_HSMMC0 S3C2443_PA_HSMMC
|
||||
|
||||
#endif /* __ASM_ARCH_MAP_H */
|
||||
|
@ -24,6 +24,7 @@ config MACH_SMDK2443
|
||||
bool "SMDK2443"
|
||||
select CPU_S3C2443
|
||||
select MACH_SMDK
|
||||
select S3C_DEV_HSMMC
|
||||
help
|
||||
Say Y here if you are using an SMDK2443
|
||||
|
||||
|
@ -104,7 +104,7 @@ static struct s3c2410_uartcfg smdk2443_uartcfgs[] __initdata = {
|
||||
static struct platform_device *smdk2443_devices[] __initdata = {
|
||||
&s3c_device_wdt,
|
||||
&s3c_device_i2c,
|
||||
&s3c_device_hsmmc,
|
||||
&s3c_device_hsmmc0,
|
||||
};
|
||||
|
||||
static void __init smdk2443_map_io(void)
|
||||
|
@ -17,6 +17,12 @@
|
||||
|
||||
#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_UART0 (S3C_PA_UART + 0x00)
|
||||
#define S3C_PA_UART1 (S3C_PA_UART + 0x400)
|
||||
@ -49,5 +55,8 @@
|
||||
|
||||
/* compatibiltiy defines. */
|
||||
#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 */
|
||||
|
@ -17,5 +17,6 @@ config CPU_S3C6410
|
||||
config MACH_SMDK6410
|
||||
bool "SMDK6410"
|
||||
select CPU_S3C6410
|
||||
select S3C_DEV_HSMMC
|
||||
help
|
||||
Machine support for the Samsung SMDK6410
|
||||
|
@ -102,3 +102,11 @@ config S3C_LOWLEVEL_UART_PORT
|
||||
such as the `Uncompressing...` at start time. The value of
|
||||
this configuration should be between zero and two. The port
|
||||
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
|
||||
|
@ -15,3 +15,7 @@ obj-y += init.o
|
||||
obj-y += time.o
|
||||
obj-y += clock.o
|
||||
obj-y += pwm-clock.o
|
||||
|
||||
# devices
|
||||
|
||||
obj-$(CONFIG_S3C_DEV_HSMMC) += dev-hsmmc.o
|
||||
|
47
arch/arm/plat-s3c/dev-hsmmc.c
Normal file
47
arch/arm/plat-s3c/dev-hsmmc.c
Normal 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
|
||||
}
|
||||
};
|
@ -32,7 +32,9 @@ extern struct platform_device s3c_device_iis;
|
||||
extern struct platform_device s3c_device_rtc;
|
||||
extern struct platform_device s3c_device_adc;
|
||||
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_spi1;
|
||||
|
@ -403,36 +403,6 @@ struct platform_device 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) */
|
||||
|
||||
static struct resource s3c_spi0_resource[] = {
|
||||
|
Loading…
Reference in New Issue
Block a user