int
        default 1024 if ARCH_SHMOBILE || ARCH_TEGRA
        default 512 if SOC_OMAP5
 -      default 355 if ARCH_U8500
 +      default 392 if ARCH_U8500
-       default 288 if ARCH_VT8500 || ARCH_SUNXI
+       default 352 if ARCH_VT8500
+       default 288 if ARCH_SUNXI
        default 264 if MACH_H4700
        default 0
        help
 
        bool "Samsung Exynos4 Machine using device tree"
        depends on ARCH_EXYNOS4
        select ARM_AMBA
+       select CLKSRC_OF
        select CPU_EXYNOS4210
 -      select HAVE_SAMSUNG_KEYPAD if INPUT_KEYBOARD
 +      select KEYBOARD_SAMSUNG if INPUT_KEYBOARD
        select PINCTRL
        select PINCTRL_EXYNOS
+       select S5P_DEV_MFC
        select USE_OF
        help
          Machine support for Samsung Exynos4 machine with device tree enabled.
 
  #include <linux/of_irq.h>
  #include <linux/export.h>
  #include <linux/irqdomain.h>
 -#include <linux/irqchip.h>
  #include <linux/of_address.h>
+ #include <linux/clocksource.h>
+ #include <linux/clk-provider.h>
  #include <linux/irqchip/arm-gic.h>
 +#include <linux/irqchip/chained_irq.h>
  
  #include <asm/proc-fns.h>
  #include <asm/exception.h>
 
  #include <plat/cpu.h>
  #include <plat/devs.h>
  #include <plat/pm.h>
 -#include <plat/regs-iic.h>
  #include <plat/regs-serial.h>
+ #include <plat/samsung-time.h>
  
  #include "common.h"
  #include "h1940.h"
 
  obj-$(CONFIG_CLKSRC_DBX500_PRCMU)     += clksrc-dbx500-prcmu.o
  obj-$(CONFIG_ARMADA_370_XP_TIMER)     += time-armada-370-xp.o
  obj-$(CONFIG_ARCH_BCM2835)    += bcm2835_timer.o
 -obj-$(CONFIG_SUNXI_TIMER)     += sunxi_timer.o
 +obj-$(CONFIG_ARCH_MARCO)      += timer-marco.o
 +obj-$(CONFIG_ARCH_MXS)                += mxs_timer.o
 +obj-$(CONFIG_ARCH_PRIMA2)     += timer-prima2.o
 +obj-$(CONFIG_SUN4I_TIMER)     += sun4i_timer.o
  obj-$(CONFIG_ARCH_TEGRA)      += tegra20_timer.o
  obj-$(CONFIG_VT8500_TIMER)    += vt8500_timer.o
 +obj-$(CONFIG_ARCH_BCM)                += bcm_kona_timer.o
+ obj-$(CONFIG_CADENCE_TTC_TIMER)       += cadence_ttc_timer.o
+ obj-$(CONFIG_CLKSRC_EXYNOS_MCT)       += exynos_mct.o
  
  obj-$(CONFIG_ARM_ARCH_TIMER)          += arm_arch_timer.o
  obj-$(CONFIG_CLKSRC_METAG_GENERIC)    += metag_generic.o
 
  
  obj-$(CONFIG_ARCH_BCM2835)            += irq-bcm2835.o
  obj-$(CONFIG_ARCH_EXYNOS)             += exynos-combiner.o
 +obj-$(CONFIG_ARCH_MXS)                        += irq-mxs.o
+ obj-$(CONFIG_ARCH_S3C24XX)            += irq-s3c24xx.o
  obj-$(CONFIG_METAG)                   += irq-metag-ext.o
  obj-$(CONFIG_METAG_PERFCOUNTER_IRQS)  += irq-metag.o
 -obj-$(CONFIG_ARCH_SUNXI)              += irq-sunxi.o
 +obj-$(CONFIG_ARCH_SUNXI)              += irq-sun4i.o
  obj-$(CONFIG_ARCH_SPEAR3XX)           += spear-shirq.o
  obj-$(CONFIG_ARM_GIC)                 += irq-gic.o
  obj-$(CONFIG_ARM_VIC)                 += irq-vic.o
 +obj-$(CONFIG_SIRF_IRQ)                        += irq-sirfsoc.o
+ obj-$(CONFIG_RENESAS_INTC_IRQPIN)     += irq-renesas-intc-irqpin.o
+ obj-$(CONFIG_RENESAS_IRQC)            += irq-renesas-irqc.o
  obj-$(CONFIG_VERSATILE_FPGA_IRQ)      += irq-versatile-fpga.o
+ obj-$(CONFIG_ARCH_VT8500)             += irq-vt8500.o
 
  #include <linux/ioport.h>
  #include <linux/device.h>
  #include <linux/irqdomain.h>
 +#include <linux/irqchip/chained_irq.h>
+ #include <linux/of.h>
+ #include <linux/of_irq.h>
+ #include <linux/of_address.h>
  
+ #include <asm/exception.h>
  #include <asm/mach/irq.h>
  
  #include <mach/regs-irq.h>
                base = (void *)0xfd000000;
  
                intc->reg_mask = base + 0xa4;
 -              intc->reg_pending = base + 0x08;
 +              intc->reg_pending = base + 0xa8;
-               irq_num = 20;
+               irq_num = 24;
                irq_start = S3C2410_IRQ(32);
-               irq_offset = 4;
                break;
        default:
                pr_err("irq: unsupported controller address\n");
 
                .data = (void *)exynos4210_pin_ctrl },
        { .compatible = "samsung,exynos4x12-pinctrl",
                .data = (void *)exynos4x12_pin_ctrl },
+       { .compatible = "samsung,exynos5250-pinctrl",
+               .data = (void *)exynos5250_pin_ctrl },
 +#endif
 +#ifdef CONFIG_PINCTRL_S3C64XX
 +      { .compatible = "samsung,s3c64xx-pinctrl",
 +              .data = s3c64xx_pin_ctrl },
 +#endif
        {},
  };
  MODULE_DEVICE_TABLE(of, samsung_pinctrl_dt_match);
 
  /* list of all exported SoC specific data */
  extern struct samsung_pin_ctrl exynos4210_pin_ctrl[];
  extern struct samsung_pin_ctrl exynos4x12_pin_ctrl[];
+ extern struct samsung_pin_ctrl exynos5250_pin_ctrl[];
 +extern struct samsung_pin_ctrl s3c64xx_pin_ctrl[];
  
  #endif /* __PINCTRL_SAMSUNG_H */