--- linux-2.6.20-rmk-12feb2007-s3c2443-4/include/asm-arm/arch-s3c2410/regs-s3c2443-clock.h 2007-02-15 11:40:29.000000000 +0000 +++ linux-2.6.20-rmk-12feb2007-s3c2443-5/include/asm-arm/arch-s3c2410/regs-s3c2443-clock.h 2007-02-15 21:43:53.000000000 +0000 @@ -38,6 +38,8 @@ #define S3C2443_PWRCFG S3C2443_CLKREG(0x60) #define S3C2443_RSTCON S3C2443_CLKREG(0x64) +#define S3C2443_SWRST_RESET (0x533c2443) + #define S3C2443_PLLCON_OFF (1<<24) #define S3C2443_CLKSRC_I2S_EXT (1<<14) --- linux-2.6.20-rmk-12feb2007-s3c2443-4/arch/arm/mach-s3c2443/s3c2443.c 2007-02-15 21:24:37.000000000 +0000 +++ linux-2.6.20-rmk-12feb2007-s3c2443-5/arch/arm/mach-s3c2443/s3c2443.c 2007-02-15 21:45:13.000000000 +0000 @@ -29,7 +29,8 @@ #include #include -#include +#include +#include #include #include @@ -49,10 +50,17 @@ static struct sys_device s3c2443_sysdev .cls = &s3c2443_sysclass, }; +static void s3c2443_hard_reset(void) +{ + __raw_writel(S3C2443_SWRST_RESET, S3C2443_SWRST); +} + int __init s3c2443_init(void) { printk("S3C2443: Initialising architecture\n"); + s3c24xx_reset_hook = s3c2443_hard_reset; + s3c_device_nand.name = "s3c2412-nand"; return sysdev_register(&s3c2443_sysdev);