--- linux-2.6.22-rc2/arch/arm/mach-s3c2443/mach-smdk2443.c 2007-05-20 11:30:11.000000000 +0100 +++ linux-2.6.22-rc2-hsmmc/arch/arm/mach-s3c2443/mach-smdk2443.c 2007-05-20 17:35:44.000000000 +0100 @@ -104,6 +104,7 @@ static struct s3c2410_uartcfg smdk2443_u static struct platform_device *smdk2443_devices[] __initdata = { &s3c_device_wdt, &s3c_device_i2c, + &s3c_device_hsmmc, }; static void __init smdk2443_map_io(void) --- linux-2.6.22-rc2/arch/arm/plat-s3c24xx/devs.c 2007-04-26 04:08:32.000000000 +0100 +++ linux-2.6.22-rc2-hsmmc/arch/arm/plat-s3c24xx/devs.c 2007-05-20 17:39:15.000000000 +0100 @@ -402,6 +402,36 @@ 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[] = { --- linux-2.6.22-rc2/include/asm-arm/plat-s3c24xx/devs.h 2007-04-26 04:08:32.000000000 +0100 +++ linux-2.6.22-rc2-hsmmc/include/asm-arm/plat-s3c24xx/devs.h 2007-05-20 17:36:08.000000000 +0100 @@ -29,6 +29,7 @@ extern struct platform_device s3c_device 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_spi0; extern struct platform_device s3c_device_spi1;