diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index feccc1d37ecf8cc0d1ee52b00813fccd0aeba098..c1e5f07fab938742a5d1b2742b089ceec3e82aab 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1459,8 +1459,6 @@ endmenu
 
 menu "Kernel Features"
 
-source "kernel/time/Kconfig"
-
 config HAVE_SMP
 	bool
 	help
diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig
index 0bd13ab9f43be69011c5c0f02584dfe36ee88c5a..f8bc2d27d1488ec18771aa7c49e62035ccf0f82b 100644
--- a/arch/avr32/Kconfig
+++ b/arch/avr32/Kconfig
@@ -61,8 +61,6 @@ source "kernel/Kconfig.freezer"
 
 menu "System Type and features"
 
-source "kernel/time/Kconfig"
-
 config SUBARCH_AVR32B
 	bool
 config MMU
diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig
index bc21de2e8fedc0ac3e2e4ca948224a722c961769..f7897eefa630515b79b1446ffdefc4930d2e0435 100644
--- a/arch/blackfin/Kconfig
+++ b/arch/blackfin/Kconfig
@@ -631,8 +631,6 @@ config GPTMR0_CLOCKSOURCE
 	depends on !TICKSOURCE_GPTMR0
 endmenu
 
-source kernel/time/Kconfig
-
 comment "Misc"
 
 choice
diff --git a/arch/c6x/Kconfig b/arch/c6x/Kconfig
index 30c04c658b9e4319c683973c3a6c0c32d2a6cff2..9d446eff2c04bc03b282e81c07231e41c81ffa31 100644
--- a/arch/c6x/Kconfig
+++ b/arch/c6x/Kconfig
@@ -132,7 +132,6 @@ source "mm/Kconfig"
 source "kernel/Kconfig.preempt"
 
 source "kernel/Kconfig.hz"
-source "kernel/time/Kconfig"
 
 endmenu
 
diff --git a/arch/h8300/Kconfig.cpu b/arch/h8300/Kconfig.cpu
index 15c22286ae7951534cf24aa1950de38c26d1bc17..321f3922728b97b035bb44bd27a9d9756bbaba64 100644
--- a/arch/h8300/Kconfig.cpu
+++ b/arch/h8300/Kconfig.cpu
@@ -1,7 +1,5 @@
 menu "Processor type and features"
 
-source "kernel/time/Kconfig"
-
 choice
 	prompt "H8/300 platform"
 	default H8300H_GENERIC
diff --git a/arch/hexagon/Kconfig b/arch/hexagon/Kconfig
index 7727ed9d2bf3aad270026bab9d66ad3d5c09e8b0..35f6c32d040cbb25eb8976ea6d589e5904f651da 100644
--- a/arch/hexagon/Kconfig
+++ b/arch/hexagon/Kconfig
@@ -183,7 +183,6 @@ endchoice
 source "mm/Kconfig"
 
 source "kernel/Kconfig.hz"
-source "kernel/time/Kconfig"
 
 config GENERIC_GPIO
 	bool "Generic GPIO support"
diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig
index 2f4b0f0610d6fefc6e092c95617902eeeb513ed2..cac5b6be572a8b83c8331ba5aa83bf84f3f83159 100644
--- a/arch/m68k/Kconfig
+++ b/arch/m68k/Kconfig
@@ -106,10 +106,6 @@ if COLDFIRE
 source "kernel/Kconfig.preempt"
 endif
 
-if !MMU || COLDFIRE
-source "kernel/time/Kconfig"
-endif
-
 source "mm/Kconfig"
 
 endmenu
diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig
index 3e786ac9a655977be68bd653956b17b929080a00..83460468998d5e56aee700ea5d2c219d9489b28f 100644
--- a/arch/microblaze/Kconfig
+++ b/arch/microblaze/Kconfig
@@ -74,8 +74,6 @@ source "arch/microblaze/platform/Kconfig.platform"
 
 menu "Processor type and features"
 
-source "kernel/time/Kconfig"
-
 source "kernel/Kconfig.preempt"
 
 source "kernel/Kconfig.hz"
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index c9c330bc4e768c199b3772b1eed4d1eaa4bf9ce2..b65a730cba75a35a8526fcca44282fd133507155 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -2205,8 +2205,6 @@ config NR_CPUS
 	  performance should round up your number of processors to the next
 	  power of two.
 
-source "kernel/time/Kconfig"
-
 #
 # Timer Interrupt Frequency Configuration
 #
diff --git a/arch/mn10300/Kconfig b/arch/mn10300/Kconfig
index 7f78057af2f5fb2cf5622bf90ec2e061313e14e1..687f9b4a2ed6cc5fba93f7eda6288a6d10fc7b57 100644
--- a/arch/mn10300/Kconfig
+++ b/arch/mn10300/Kconfig
@@ -226,7 +226,6 @@ config MN10300_USING_JTAG
 	  single-stepping, which are taken over completely by the JTAG unit.
 
 source "kernel/Kconfig.hz"
-source "kernel/time/Kconfig"
 
 config MN10300_RTC
 	bool "Using MN10300 RTC"
diff --git a/arch/openrisc/Kconfig b/arch/openrisc/Kconfig
index be04485431fe30f256ee12aa85d3847c9eea76d7..70653039e79b48c36aea674194a5da145dfcb5ef 100644
--- a/arch/openrisc/Kconfig
+++ b/arch/openrisc/Kconfig
@@ -106,7 +106,6 @@ config OPENRISC_HAVE_INST_DIV
 endmenu
 
 
-source "kernel/time/Kconfig"
 source kernel/Kconfig.hz
 source kernel/Kconfig.preempt
 source "mm/Kconfig"
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 901215f7a2f22cba44463830087319d9689d2376..d47cf7ffa792af80be09d1c35b1ffb4f4b5ba503 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -278,7 +278,6 @@ config HIGHMEM
 	bool "High memory support"
 	depends on PPC32
 
-source kernel/time/Kconfig
 source kernel/Kconfig.hz
 source kernel/Kconfig.preempt
 source "fs/Kconfig.binfmt"
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index f9edb9303a7e20ec7adfd7834357ab0139a6e72b..d0325d9ae21f1b8a03d6815bca603954f5d01c50 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -131,8 +131,6 @@ menu "Base setup"
 
 comment "Processor type and features"
 
-source "kernel/time/Kconfig"
-
 config 64BIT
 	def_bool y
 	prompt "64 bit kernel"
diff --git a/arch/score/Kconfig b/arch/score/Kconfig
index f5d3b3237419e77ab29720aa16f6d4649bd92cb3..ba0f412920befb05cdd0a26c6a707e2b91289954 100644
--- a/arch/score/Kconfig
+++ b/arch/score/Kconfig
@@ -66,7 +66,6 @@ config MEMORY_START
 	hex
 	default	0xa0000000
 
-source "kernel/time/Kconfig"
 source "kernel/Kconfig.hz"
 source "kernel/Kconfig.preempt"
 
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
index cffd8b0082d5f9c2d6fd6adfb9616fc88590efd1..820dfe3c7b69190e08a99399a18b2cfd2ef1ec45 100644
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@ -577,9 +577,6 @@ config SH_CLK_CPG_LEGACY
 	depends on SH_CLK_CPG
 	def_bool y if !CPU_SUBTYPE_SH7785 && !ARCH_SHMOBILE && \
 		      !CPU_SHX3 && !CPU_SUBTYPE_SH7757
-
-source "kernel/time/Kconfig"
-
 endmenu
 
 menu "CPU Frequency scaling"
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index 33399d3d90bc658ca3bd1a84be0e50c77f8f0c34..b5a035a5c53ab33c6b794ed95257c8746a373459 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -266,8 +266,6 @@ config HOTPLUG_CPU
 	  can be controlled through /sys/devices/system/cpu/cpu#.
 	  Say N if you want to disable CPU hotplug.
 
-source "kernel/time/Kconfig"
-
 if SPARC64
 source "drivers/cpufreq/Kconfig"
 
diff --git a/arch/tile/Kconfig b/arch/tile/Kconfig
index b56772cac5d22d734beff76d3c199c6a782bf156..4eec3a1a72c05bd41784825e7888acde0b2da024 100644
--- a/arch/tile/Kconfig
+++ b/arch/tile/Kconfig
@@ -136,8 +136,6 @@ config NR_CPUS
 	  smaller kernel memory footprint results from using a smaller
 	  value on chips with fewer tiles.
 
-source "kernel/time/Kconfig"
-
 source "kernel/Kconfig.hz"
 
 config KEXEC
diff --git a/arch/um/Kconfig.um b/arch/um/Kconfig.um
index 70fd690964e4ef0e71b21817dcffc1827ce402dd..bf87f25eb2dee05c45cad3462541a133f5d2fb74 100644
--- a/arch/um/Kconfig.um
+++ b/arch/um/Kconfig.um
@@ -10,7 +10,6 @@ config STATIC_LINK
 	  2.75G) for UML.
 
 source "mm/Kconfig"
-source "kernel/time/Kconfig"
 
 config LD_SCRIPT_STATIC
 	bool
diff --git a/arch/unicore32/Kconfig b/arch/unicore32/Kconfig
index a25ca7606beadbfe2a159d6e5e80c7df17b7a6ab..47ad5210606f49cddde762ed6e12a6361158f843 100644
--- a/arch/unicore32/Kconfig
+++ b/arch/unicore32/Kconfig
@@ -143,8 +143,6 @@ endmenu
 
 menu "Kernel Features"
 
-source "kernel/time/Kconfig"
-
 source "kernel/Kconfig.preempt"
 
 source "kernel/Kconfig.hz"
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 3b0a9217836abaef81948becad7638c44798b4f9..1b1e0493ef7f097b89dc3c76aea956f7a00e2c02 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -241,8 +241,6 @@ config ZONE_DMA
 
 	  If unsure, say Y.
 
-source "kernel/time/Kconfig"
-
 config SMP
 	bool "Symmetric multi-processing support"
 	---help---
diff --git a/init/Kconfig b/init/Kconfig
index 6cfd71d064637a0335677e7e2f7d73d941c50fe4..528a0c4111ccb5cac4cfb46414f3cf4191c4417c 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -387,6 +387,7 @@ config AUDIT_LOGINUID_IMMUTABLE
 	  but may not be backwards compatible with older init systems.
 
 source "kernel/irq/Kconfig"
+source "kernel/time/Kconfig"
 
 menu "RCU Subsystem"
 
diff --git a/kernel/time/Kconfig b/kernel/time/Kconfig
index f6ebc4ff702ac17eab424ddb2ccf1943383328b8..fd42bd452b7528642495e6b619715ccb424b5e2e 100644
--- a/kernel/time/Kconfig
+++ b/kernel/time/Kconfig
@@ -2,38 +2,6 @@
 # Timer subsystem related configuration options
 #
 
-# Core internal switch. Selected by NO_HZ / HIGH_RES_TIMERS. This is
-# only related to the tick functionality. Oneshot clockevent devices
-# are supported independ of this.
-config TICK_ONESHOT
-	bool
-
-config NO_HZ
-	bool "Tickless System (Dynamic Ticks)"
-	depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
-	select TICK_ONESHOT
-	help
-	  This option enables a tickless system: timer interrupts will
-	  only trigger on an as-needed basis both when the system is
-	  busy and when the system is idle.
-
-config HIGH_RES_TIMERS
-	bool "High Resolution Timer Support"
-	depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
-	select TICK_ONESHOT
-	help
-	  This option enables high resolution timer support. If your
-	  hardware is not capable then this option only increases
-	  the size of the kernel image.
-
-config GENERIC_CLOCKEVENTS_BUILD
-	bool
-	default y
-	depends on GENERIC_CLOCKEVENTS
-
-config GENERIC_CLOCKEVENTS_MIN_ADJUST
-	bool
-
 # Options selectable by arch Kconfig
 
 # Watchdog function for clocksources to detect instabilities
@@ -60,11 +28,52 @@ config ARCH_USES_GETTIMEOFFSET
 config GENERIC_CLOCKEVENTS
 	bool
 
+# Migration helper. Builds, but does not invoke
+config GENERIC_CLOCKEVENTS_BUILD
+	bool
+	default y
+	depends on GENERIC_CLOCKEVENTS
+
 # Clockevents broadcasting infrastructure
 config GENERIC_CLOCKEVENTS_BROADCAST
 	bool
 	depends on GENERIC_CLOCKEVENTS
 
+# Automatically adjust the min. reprogramming time for
+# clock event device
+config GENERIC_CLOCKEVENTS_MIN_ADJUST
+	bool
+
 # Generic update of CMOS clock
 config GENERIC_CMOS_UPDATE
 	bool
+
+if GENERIC_CLOCKEVENTS
+menu "Timers subsystem"
+
+# Core internal switch. Selected by NO_HZ / HIGH_RES_TIMERS. This is
+# only related to the tick functionality. Oneshot clockevent devices
+# are supported independ of this.
+config TICK_ONESHOT
+	bool
+
+config NO_HZ
+	bool "Tickless System (Dynamic Ticks)"
+	depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
+	select TICK_ONESHOT
+	help
+	  This option enables a tickless system: timer interrupts will
+	  only trigger on an as-needed basis both when the system is
+	  busy and when the system is idle.
+
+config HIGH_RES_TIMERS
+	bool "High Resolution Timer Support"
+	depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
+	select TICK_ONESHOT
+	help
+	  This option enables high resolution timer support. If your
+	  hardware is not capable then this option only increases
+	  the size of the kernel image.
+
+endmenu
+endif