bool "Energy Micro efm32"
        depends on !MMU
        select ARCH_REQUIRE_GPIOLIB
 +      select AUTO_ZRELADDR
        select ARM_NVIC
-       # CLKSRC_MMIO is wrong here, but needed until a proper fix is merged,
-       # i.e. CLKSRC_EFM32 selecting CLKSRC_MMIO
-       select CLKSRC_MMIO
        select CLKSRC_OF
        select COMMON_CLK
        select CPU_V7M
 
  config ARCH_MOXART
 -      bool "MOXA ART SoC" if ARCH_MULTI_V4T
 +      bool "MOXA ART SoC" if ARCH_MULTI_V4
        select CPU_FA526
        select ARM_DMA_MEM_BUFFERABLE
-       select USE_OF
-       select CLKSRC_OF
        select CLKSRC_MMIO
-       select HAVE_CLK
-       select COMMON_CLK
        select GENERIC_IRQ_CHIP
        select ARCH_REQUIRE_GPIOLIB
-       select GENERIC_CLOCKEVENTS
        select PHYLIB if NETDEVICES
        help
          Say Y here if you want to run your kernel on hardware with a
 
        bool "TI OMAP5"
        depends on ARCH_MULTI_V7
        select ARCH_OMAP2PLUS
 +      select ARCH_HAS_OPP
        select ARM_CPU_SUSPEND if PM
        select ARM_GIC
-       select CPU_V7
        select HAVE_ARM_SCU if SMP
        select HAVE_ARM_TWD if SMP
-       select HAVE_SMP
        select HAVE_ARM_ARCH_TIMER
        select ARM_ERRATA_798181 if SMP
  
        bool "TI AM33XX"
        depends on ARCH_MULTI_V7
        select ARCH_OMAP2PLUS
 +      select ARCH_HAS_OPP
        select ARM_CPU_SUSPEND if PM
-       select CPU_V7
-       select MULTI_IRQ_HANDLER
  
  config SOC_AM43XX
        bool "TI AM43x"
        depends on ARCH_MULTI_V7
-       select CPU_V7
        select ARCH_OMAP2PLUS
-       select MULTI_IRQ_HANDLER
 +      select ARCH_HAS_OPP
        select ARM_GIC
        select MACH_OMAP_GENERIC
  
        bool "TI DRA7XX"
        depends on ARCH_MULTI_V7
        select ARCH_OMAP2PLUS
 +      select ARCH_HAS_OPP
        select ARM_CPU_SUSPEND if PM
        select ARM_GIC
-       select CPU_V7
-       select HAVE_SMP
        select HAVE_ARM_ARCH_TIMER
  
  config ARCH_OMAP2PLUS
        select MACH_OMAP_GENERIC
        select OMAP_DM_TIMER
        select PINCTRL
 -      select PROC_DEVICETREE if PROC_FS
        select SOC_BUS
-       select SPARSE_IRQ
        select TI_PRIV_EDMA
-       select USE_OF
        help
          Systems based on OMAP2, OMAP3, OMAP4 or OMAP5
  
 
  config MACH_SPEAR600
        def_bool y
        depends on ARCH_SPEAR6XX
-       select USE_OF
        help
 -        Supports ST SPEAr600 boards configured via the device-treesource "arch/arm/mach-spear6xx/Kconfig"
 +        Supports ST SPEAr600 boards configured via the device-tree
  
  config ARCH_SPEAR_AUTO
        def_bool PLAT_SPEAR_SINGLE
 
        select ARCH_HAS_RESET_CONTROLLER
        select RESET_CONTROLLER
        select SOC_BUS
-       select SPARSE_IRQ
 -      select USB_ARCH_HAS_EHCI if USB_SUPPORT
        select USB_ULPI if USB_PHY
        select USB_ULPI_VIEWPORT if USB_PHY
-       select USE_OF
        help
          This enables support for NVIDIA Tegra based systems.
  
 
        bool "Xilinx Zynq ARM Cortex A9 Platform" if ARCH_MULTI_V7
        select ARM_AMBA
        select ARM_GIC
-       select COMMON_CLK
-       select CPU_V7
-       select GENERIC_CLOCKEVENTS
 +      select ARCH_HAS_CPUFREQ
 +      select ARCH_HAS_OPP
        select HAVE_ARM_SCU if SMP
        select HAVE_ARM_TWD if SMP
        select ICST
-       select MIGHT_HAVE_CACHE_L2X0
-       select USE_OF
-       select HAVE_SMP
-       select SPARSE_IRQ
        select CADENCE_TTC_TIMER
 -      select ARM_GLOBAL_TIMER
 +      select ARM_GLOBAL_TIMER if !CPU_FREQ
        help
          Support for Xilinx Zynq ARM Cortex A9 Platform
 
        help
          Support for Period Interrupt Timer on Freescale Vybrid Family SoCs.
  
 +config SYS_SUPPORTS_SH_CMT
 +        bool
 +
 +config SYS_SUPPORTS_SH_MTU2
 +        bool
 +
 +config SYS_SUPPORTS_SH_TMU
 +        bool
 +
 +config SYS_SUPPORTS_EM_STI
 +        bool
 +
 +config SH_TIMER_CMT
 +      bool "Renesas CMT timer driver" if COMPILE_TEST
 +      depends on GENERIC_CLOCKEVENTS
 +      default SYS_SUPPORTS_SH_CMT
 +      help
 +        This enables build of a clocksource and clockevent driver for
 +        the Compare Match Timer (CMT) hardware available in 16/32/48-bit
 +        variants on a wide range of Mobile and Automotive SoCs from Renesas.
 +
 +config SH_TIMER_MTU2
 +      bool "Renesas MTU2 timer driver" if COMPILE_TEST
 +      depends on GENERIC_CLOCKEVENTS
 +      default SYS_SUPPORTS_SH_MTU2
 +      help
 +        This enables build of a clockevent driver for the Multi-Function
 +        Timer Pulse Unit 2 (TMU2) hardware available on SoCs from Renesas.
 +        This hardware comes with 16 bit-timer registers.
 +
 +config SH_TIMER_TMU
 +      bool "Renesas TMU timer driver" if COMPILE_TEST
 +      depends on GENERIC_CLOCKEVENTS
 +      default SYS_SUPPORTS_SH_TMU
 +      help
 +        This enables build of a clocksource and clockevent driver for
 +        the 32-bit Timer Unit (TMU) hardware available on a wide range
 +        SoCs from Renesas.
 +
 +config EM_TIMER_STI
 +      bool "Renesas STI timer driver" if COMPILE_TEST
 +      depends on GENERIC_CLOCKEVENTS
 +      default SYS_SUPPORTS_EM_STI
 +      help
 +        This enables build of a clocksource and clockevent driver for
 +        the 48-bit System Timer (STI) hardware available on a SoCs
 +        such as EMEV2 from former NEC Electronics.
++
+ config CLKSRC_QCOM
+       bool