]> err.no Git - linux-2.6/blobdiff - arch/arm/mach-s3c2440/mach-osiris.c
Merge branch 'irq-fix' of git://www.modarm9.com/gitsrc/pub/people/ukleinek/linux...
[linux-2.6] / arch / arm / mach-s3c2440 / mach-osiris.c
index be5377f128c473d7bb37ff4e8c449b1aa4b13074..8a8acdbd072da9854d99aeccae9a7af20dec3eda 100644 (file)
@@ -18,6 +18,7 @@
 #include <linux/device.h>
 #include <linux/sysdev.h>
 #include <linux/serial_core.h>
+#include <linux/clk.h>
 
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
@@ -287,6 +288,10 @@ static int osiris_pm_suspend(struct sys_device *sd, pm_message_t state)
 
        __raw_writeb(tmp, OSIRIS_VA_CTRL0);
 
+       /* ensure that an nRESET is not generated on resume. */
+       s3c2410_gpio_setpin(S3C2410_GPA21, 1);
+       s3c2410_gpio_cfgpin(S3C2410_GPA21, S3C2410_GPA21_OUT);
+
        return 0;
 }
 
@@ -297,6 +302,8 @@ static int osiris_pm_resume(struct sys_device *sd)
 
        __raw_writeb(pm_osiris_ctrl0, OSIRIS_VA_CTRL0);
 
+       s3c2410_gpio_cfgpin(S3C2410_GPA21, S3C2410_GPA21_nRSTOUT);
+
        return 0;
 }
 
@@ -306,7 +313,7 @@ static int osiris_pm_resume(struct sys_device *sd)
 #endif
 
 static struct sysdev_class osiris_pm_sysclass = {
-       set_kset_name("mach-osiris"),
+       .name           = "mach-osiris",
        .suspend        = osiris_pm_suspend,
        .resume         = osiris_pm_resume,
 };
@@ -338,10 +345,10 @@ static void __init osiris_map_io(void)
 
        /* initialise the clocks */
 
-       s3c24xx_dclk0.parent = NULL;
+       s3c24xx_dclk0.parent = &clk_upll;
        s3c24xx_dclk0.rate   = 12*1000*1000;
 
-       s3c24xx_dclk1.parent = NULL;
+       s3c24xx_dclk1.parent = &clk_upll;
        s3c24xx_dclk1.rate   = 24*1000*1000;
 
        s3c24xx_clkout0.parent  = &s3c24xx_dclk0;