Skip to contentSkip to conversation

clocksource: Consolidate SH and ARM mach-shmobile Kconfig bits

PATCH Superseded Magnus Damm 2 participants 7 messages Dec 4, 2013 – Dec 5, 2013

Subsystems (5)

v3 of 5 Superseded Latest is v5 →

lore
Share & tools
lore

Magnus Damm

author maintainer
#0 lore raw

v3 cover clocksource: Consolidate SH and ARM mach-shmobile Kconfig bits

clocksource: Consolidate SH and ARM mach-shmobile Kconfig bits (v3)

[PATCH v3 01/03] clocksource: Add Kconfig entries for CMT, MTU2, TMU and STI [PATCH v3 02/03] ARM: shmobile: Remove CMT, TMU and STI Kconfig entries [PATCH v2 03/03] sh: Remove Kconfig entries for TMU, CMT and MTU2

This is V3 of the SH and ARM mach-shmobile clocksource Kconfig consolidation series.

By sharing Kconfig entires in drivers/clocksource/Kconfig we can get rid of duplicated bits that do not belong under arch/.

With this series applied it is possible to build the timer drivers for CMT, MTU2, TMU and STI in case of SH or ARM. The timer drivers are automatically selected by default. It is also possible to select and/or deselect freely when COMPILE_TEST has been selected.

Since last time this has been broken out into 3 separate patches, where [PATCH v3 01/03] needs to go first, and the other patches can be merged any time after without any build or configuration issues.

Thanks to Daniel, John and Arnd for feedback!

This version tries to find a middle ground by:
- Not allowing user selection of timers by default
- Automaticlally select available drivers using SYS_SUPPORTS_xxx.
- Allow manual override in case of COMPILE_TEST (select and deselect)
- The system will boot regardless of these settigns
- In this version the special case menu tand if have been dropped

Slightly different and/or not really handled in this version:
- The acronym soup is kept as-is for now
- Allow select _and_ deselect in case of COMPILE_TEST (not only select)
- Follow same style as SH and select per-SoC SYS_SUPPORTS_xxx

---

Written against renesas.git tag renesas-devel-v3.13-rc2-20131202

 arch/arm/mach-shmobile/Kconfig |   35 +++++++++++++++++------------------
 arch/sh/Kconfig                |   21 ---------------------
 drivers/clocksource/Kconfig    |   36 ++++++++++++++++++++++++++++++++++++
 3 files changed, 53 insertions(+), 39 deletions(-)
author maintainer
#1 lore raw

PATCH v3 1/3 clocksource: Add Kconfig entries for CMT, MTU2, TMU and STI

From: Magnus Damm <[email protected]>

Add Kconfig entries for CMT, MTU2, TMU and STI to drivers/clocksource/Kconfig. This will allow us to get rid of duplicated entires in architecture code such as arch/sh and arch/arm/mach-shmobile.

---

 drivers/clocksource/Kconfig |   36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)
drivers/clocksource/Kconfig +36 -0
@@ -134,3 +134,39 @@ config VF_PIT_TIMER
 	bool
 	help
 	  Support for Period Interrupt Timer on Freescale Vybrid Family SoCs.
+
+config SYS_SUPPORTS_CMT
+        bool
+
+config SYS_SUPPORTS_TMU
+        bool
+
+config SYS_SUPPORTS_MTU2
+        bool
+
+config SYS_SUPPORTS_STI
+        bool
+
+config SH_TIMER_CMT
+	bool "Renesas CMT timer driver" if COMPILE_TEST
+	default SYS_SUPPORTS_CMT
+	help
+	  This enables build of the CMT timer driver.
+
+config SH_TIMER_MTU2
+	bool "Renesas MTU2 timer driver" if COMPILE_TEST
+	default SYS_SUPPORTS_MTU2
+	help
+	  This enables build of the MTU2 timer driver.
+
+config SH_TIMER_TMU
+	bool "Renesas TMU timer driver" if COMPILE_TEST
+	default SYS_SUPPORTS_TMU
+	help
+	  This enables build of the TMU timer driver.
+
+config EM_TIMER_STI
+	bool "Renesas STI timer driver" if COMPILE_TEST
+	default SYS_SUPPORTS_STI
+	help
+	  This enables build of the STI timer driver.
#2 lore raw

Re: [PATCH v3 01/03] clocksource: Add Kconfig entries for CMT, MTU2, TMU and STI

Quoted 28 lines · Magnus Damm

From: Magnus Damm <[email protected]>

Add Kconfig entries for CMT, MTU2, TMU and STI to drivers/clocksource/Kconfig. This will allow us to get rid of duplicated entires in architecture code such as arch/sh and arch/arm/mach-shmobile.

---

 drivers/clocksource/Kconfig |   36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)
drivers/clocksource/Kconfig +9 -0
@@ -134,3 +134,39 @@ config VF_PIT_TIMER
 	bool
 	help
 	  Support for Period Interrupt Timer on Freescale Vybrid Family SoCs.
+
+config SYS_SUPPORTS_CMT
+        bool
+
+config SYS_SUPPORTS_TMU
+        bool
+
+config SYS_SUPPORTS_MTU2
+        bool

drivers/clocksource/Kconfig config VF_PIT_TIMER · line 155

Quoted 10 lines
drivers/clocksource/Kconfig +10 -0
+
+config SYS_SUPPORTS_STI
+        bool
+
+config SH_TIMER_CMT
+	bool "Renesas CMT timer driver" if COMPILE_TEST
+	default SYS_SUPPORTS_CMT
+	help
+	  This enables build of the CMT timer driver.
+

So again, I'd say if this is a non-conflicting COMPILE_TEST option (ie, enabling it doesn't for anything else to be disabled), you might as well enable it without a prompt on COMPILE_TEST. But that's just me. :)

If folks really disagree, and there is to be a user prompt, can we get just a little more detail in the help text?
So what is the CMT hardware? Maybe what does CMT stand for? What hardware is it frequently found on?

thanks
-john

author maintainer
#3 lore raw

PATCH v3 2/3 ARM: shmobile: Remove CMT, TMU and STI Kconfig entries

In reply to Magnus Damm

From: Magnus Damm <[email protected]>

Now when drivers/clocksource/Kconfig has been
updated with entires for CMT, TMU and STI
it is safe to remove these from mach-shmobile.

Also select timers per SoC via SYS_SUPPORTS_xxx.

---

 arch/arm/mach-shmobile/Kconfig |   35 +++++++++++++++++------------------
 1 file changed, 17 insertions(+), 18 deletions(-)
arch/arm/mach-shmobile/Kconfig +17 -18
@@ -23,13 +23,16 @@ comment "SH-Mobile System Type"
 
 config ARCH_EMEV2
 	bool "Emma Mobile EV2"
+	select SYS_SUPPORTS_STI
 
 config ARCH_R7S72100
 	bool "RZ/A1H (R7S72100)"
+	select SYS_SUPPORTS_MTU2
 
 config ARCH_R8A7791
 	bool "R-Car M2 (R8A77910)"
 	select RENESAS_IRQC
+	select SYS_SUPPORTS_CMT
 
 comment "SH-Mobile Board Type"
 
@@ -59,6 +62,8 @@ config ARCH_SH7372
 	select ARM_CPU_SUSPEND if PM || CPU_IDLE
 	select CPU_V7
 	select SH_CLK_CPG
+	select SYS_SUPPORTS_CMT
+	select SYS_SUPPORTS_TMU
 
 config ARCH_SH73A0
 	bool "SH-Mobile AG5 (R8A73A00)"
@@ -68,6 +73,8 @@ config ARCH_SH73A0
 	select I2C
 	select SH_CLK_CPG
 	select RENESAS_INTC_IRQPIN
+	select SYS_SUPPORTS_CMT
+	select SYS_SUPPORTS_TMU
 
 config ARCH_R8A73A4
 	bool "R-Mobile APE6 (R8A73A40)"
@@ -78,6 +85,8 @@ config ARCH_R8A73A4
 	select RENESAS_IRQC
 	select ARCH_HAS_CPUFREQ
 	select ARCH_HAS_OPP
+	select SYS_SUPPORTS_CMT
+	select SYS_SUPPORTS_TMU
 
 config ARCH_R8A7740
 	bool "R-Mobile A1 (R8A77400)"
@@ -86,6 +95,8 @@ config ARCH_R8A7740
 	select CPU_V7
 	select SH_CLK_CPG
 	select RENESAS_INTC_IRQPIN
+	select SYS_SUPPORTS_CMT
+	select SYS_SUPPORTS_TMU
 
 config ARCH_R8A7778
 	bool "R-Car M1A (R8A77781)"
@@ -95,6 +106,7 @@ config ARCH_R8A7778
 	select ARM_GIC
 	select USB_ARCH_HAS_EHCI
 	select USB_ARCH_HAS_OHCI
+	select SYS_SUPPORTS_TMU
 
 config ARCH_R8A7779
 	bool "R-Car H1 (R8A77790)"
@@ -105,6 +117,7 @@ config ARCH_R8A7779
 	select USB_ARCH_HAS_EHCI
 	select USB_ARCH_HAS_OHCI
 	select RENESAS_INTC_IRQPIN
+	select SYS_SUPPORTS_TMU
 
 config ARCH_R8A7790
 	bool "R-Car H2 (R8A77900)"
@@ -113,6 +126,7 @@ config ARCH_R8A7790
 	select CPU_V7
 	select SH_CLK_CPG
 	select RENESAS_IRQC
+	select SYS_SUPPORTS_CMT
 
 config ARCH_R8A7791
 	bool "R-Car M2 (R8A77910)"
@@ -121,6 +135,7 @@ config ARCH_R8A7791
 	select CPU_V7
 	select SH_CLK_CPG
 	select RENESAS_IRQC
+	select SYS_SUPPORTS_CMT
 
 config ARCH_EMEV2
 	bool "Emma Mobile EV2"
@@ -128,6 +143,7 @@ config ARCH_EMEV2
 	select ARM_GIC
 	select CPU_V7
 	select USE_OF
+	select SYS_SUPPORTS_STI
 
 config ARCH_R7S72100
 	bool "RZ/A1H (R7S72100)"
@@ -135,6 +151,7 @@ config ARCH_R7S72100
 	select ARM_GIC
 	select CPU_V7
 	select SH_CLK_CPG
+	select SYS_SUPPORTS_MTU2
 
 comment "SH-Mobile Board Type"
 
@@ -329,24 +346,6 @@ config SHMOBILE_TIMER_HZ
 	  to select a HZ value such as 128 that can evenly divide RCLK.
 	  A HZ value that does not divide evenly may cause timer drift.
 
-config SH_TIMER_CMT
-	bool "CMT timer driver"
-	default y
-	help
-	  This enables build of the CMT timer driver.
-
-config SH_TIMER_TMU
-	bool "TMU timer driver"
-	default y
-	help
-	  This enables build of the TMU timer driver.
-
-config EM_TIMER_STI
-	bool "STI timer driver"
-	default y
-	help
-	  This enables build of the STI timer driver.
-
 endmenu
 
 endif
Acked-by on v3 2/3
#4 lore raw

Re: [PATCH v3 02/03] ARM: shmobile: Remove CMT, TMU and STI Kconfig entries

Quoted 9 lines · Magnus Damm

From: Magnus Damm <[email protected]>

Now when drivers/clocksource/Kconfig has been
updated with entires for CMT, TMU and STI
it is safe to remove these from mach-shmobile.

Also select timers per SoC via SYS_SUPPORTS_xxx.

Looks ok to me. Sorry for all the review pain on this.

For what its worth:

author maintainer
#5 lore raw

PATCH v2 3/3 sh: Remove Kconfig entries for TMU, CMT and MTU2

In reply to Magnus Damm

From: Magnus Damm <[email protected]>

Now when drivers/clocksource/Kconfig has been
updated with entires for CMT, TMU and MTU2
it is safe to remove these from SH.

---

 arch/sh/Kconfig |   21 ---------------------
 1 file changed, 21 deletions(-)
arch/sh/Kconfig +0 -21
@@ -565,27 +565,6 @@ source "arch/sh/boards/Kconfig"
 
 menu "Timer and clock configuration"
 
-config SH_TIMER_TMU
-	bool "TMU timer driver"
-	depends on SYS_SUPPORTS_TMU
-	default y
-	help
-	  This enables the build of the TMU timer driver.
-
-config SH_TIMER_CMT
-	bool "CMT timer driver"
-	depends on SYS_SUPPORTS_CMT
-	default y
-	help
-	  This enables build of the CMT timer driver.
-
-config SH_TIMER_MTU2
-	bool "MTU2 timer driver"
-	depends on SYS_SUPPORTS_MTU2
-	default y
-	help
-	  This enables build of the MTU2 timer driver.
-
 config SH_PCLK_FREQ
 	int "Peripheral clock frequency (in Hz)"
 	depends on SH_CLK_CPG_LEGACY