help
          Enable EXYNOS5440 SoC support
  
+ config SOC_EXYNOS5800
+       bool "SAMSUNG EXYNOS5800"
+       default y
+       depends on SOC_EXYNOS5420
+ 
  endmenu
  
 +config EXYNOS5420_MCPM
 +      bool "Exynos5420 Multi-Cluster PM support"
 +      depends on MCPM && SOC_EXYNOS5420
 +      select ARM_CCI
 +      help
 +        This is needed to provide CPU and cluster power management
 +        on Exynos5420 implementing big.LITTLE.
 +
  endif
 
  
  obj-$(CONFIG_PM_SLEEP)                += pm.o sleep.o
  obj-$(CONFIG_PM_GENERIC_DOMAINS) += pm_domains.o
 -obj-$(CONFIG_CPU_IDLE)                += cpuidle.o
  
- obj-$(CONFIG_ARCH_EXYNOS)     += pmu.o
- 
  obj-$(CONFIG_SMP)             += platsmp.o headsmp.o
  
  obj-$(CONFIG_HOTPLUG_CPU)     += hotplug.o
  
- obj-$(CONFIG_ARCH_EXYNOS)     += exynos-smc.o
- obj-$(CONFIG_ARCH_EXYNOS)     += firmware.o
- 
  plus_sec := $(call as-instr,.arch_extension sec,+sec)
  AFLAGS_exynos-smc.o           :=-Wa,-march=armv7-a$(plus_sec)
 +
 +obj-$(CONFIG_EXYNOS5420_MCPM) += mcpm-exynos.o
 
  };
  
  extern void exynos_sys_powerdown_conf(enum sys_powerdown mode);
 +extern void exynos_cpu_power_down(int cpu);
 +extern void exynos_cpu_power_up(int cpu);
 +extern int  exynos_cpu_power_state(int cpu);
 +extern void exynos_cluster_power_down(int cluster);
 +extern void exynos_cluster_power_up(int cluster);
 +extern int  exynos_cluster_power_state(int cluster);
 +extern void exynos_enter_aftr(void);
  
+ extern void s5p_init_cpu(void __iomem *cpuid_addr);
+ extern unsigned int samsung_rev(void);
+ 
  #endif /* __ARCH_ARM_MACH_EXYNOS_COMMON_H */
 
  
  static int exynos_set_cpu_boot_addr(int cpu, unsigned long boot_addr)
  {
 -      void __iomem *boot_reg = S5P_VA_SYSRAM_NS + 0x1c;
 +      void __iomem *boot_reg;
 +
 +      if (!sysram_ns_base_addr)
 +              return -ENODEV;
 +
-       boot_reg = sysram_ns_base_addr + 0x1c + 4*cpu;
++      boot_reg = sysram_ns_base_addr + 0x1c;
+ 
+       if (!soc_is_exynos4212() && !soc_is_exynos3250())
+               boot_reg += 4*cpu;
  
        __raw_writel(boot_addr, boot_reg);
        return 0;
 
        void __iomem *boot_reg;
  
        boot_reg = cpu_boot_reg_base();
 +      if (!boot_reg)
 +              return ERR_PTR(-ENODEV);
        if (soc_is_exynos4412())
                boot_reg += 4*cpu;
-       else if (soc_is_exynos5420())
+       else if (soc_is_exynos5420() || soc_is_exynos5800())
                boot_reg += 4;
        return boot_reg;
  }