select HAVE_CLK
        select HAVE_SMP
        select MIGHT_HAVE_CACHE_L2X0
 -      select NEED_MACH_IO_H if PCI
        select ARCH_HAS_CPUFREQ
        select USE_OF
+       select COMMON_CLK
        help
          This enables support for NVIDIA Tegra based systems (Tegra APX,
          Tegra 6xx and Tegra 2 series).
 
        &i2c4_device,
        &dma0_device,
        &mpdma0_device,
+       &pmu_device,
  };
  
 -#define SRCR2          0xe61580b0
 +#define SRCR2          IOMEM(0xe61580b0)
  
  void __init sh73a0_add_standard_devices(void)
  {
 
        void __iomem *dist_base;
        void __iomem *cpu_base;
  
-       if (cpu_is_u8500_family()) {
 +      gic_arch_extn.flags = IRQCHIP_SKIP_SET_WAKE | IRQCHIP_MASK_ON_SUSPEND;
 +
+       if (cpu_is_u8500_family() || cpu_is_ux540_family()) {
                dist_base = __io_address(U8500_GIC_DIST_BASE);
                cpu_base = __io_address(U8500_GIC_CPU_BASE);
        } else
 
  
  int clk_set_rate(struct clk *clk, unsigned long rate)
  {
 +      unsigned long flags;
        int ret;
  
-       if (IS_ERR(clk))
+       if (IS_ERR_OR_NULL(clk))
                return -EINVAL;
  
        /* We do not default just do a clk->rate = rate as
  
  int clk_set_parent(struct clk *clk, struct clk *parent)
  {
 +      unsigned long flags;
        int ret = 0;
  
-       if (IS_ERR(clk))
+       if (IS_ERR_OR_NULL(clk) || IS_ERR_OR_NULL(parent))
                return -EINVAL;
  
 -      spin_lock(&clocks_lock);
 +      spin_lock_irqsave(&clocks_lock, flags);
  
        if (clk->ops && clk->ops->set_parent)
                ret = (clk->ops->set_parent)(clk, parent);
 
  obj-$(CONFIG_DW_APB_TIMER_OF) += dw_apb_timer_of.o
  obj-$(CONFIG_CLKSRC_DBX500_PRCMU)     += clksrc-dbx500-prcmu.o
  obj-$(CONFIG_ARMADA_370_XP_TIMER)     += time-armada-370-xp.o
 +obj-$(CONFIG_CLKSRC_ARM_GENERIC)      += arm_generic.o
+ obj-$(CONFIG_ARCH_BCM2835)    += bcm2835_timer.o