linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] ARM: EXYNOS: Kconfig cleanup
@ 2012-10-08 13:02 Tomasz Figa
  2012-10-08 13:02 ` [PATCH 1/4] ARM: EXYNOS: Kconfig: Rename CPU_EXYNOS4210 to SOC_EXYNOS4210 Tomasz Figa
                   ` (3 more replies)
  0 siblings, 4 replies; 13+ messages in thread
From: Tomasz Figa @ 2012-10-08 13:02 UTC (permalink / raw)
  To: linux-arm-kernel

This patch series aims to consolidate low level Kconfig entries for Exynos
SoC series by adding missing or removing wrong dependencies, renaming
entries to match a single naming convention and introducing a common
parent entry for EXYNOS4212 and EXYNOS4412.

See particular patches for more detailed descriptions.

Tomasz Figa (4):
  ARM: EXYNOS: Kconfig: Rename CPU_EXYNOS4210 to SOC_EXYNOS4210
  ARM: EXYNOS: Kconfig: Sort out dependencies between options
  ARM: EXYNOS: Kconfig: Group EXYNOS{4212,4412} into EXYNOS4X12
  ARM: EXYNOS: Kconfig: Remove dependencies on particular SoCs from DT
    machines

 arch/arm/mach-exynos/Kconfig             | 42 +++++++++++++++-----------------
 arch/arm/mach-exynos/Makefile            |  4 +--
 arch/arm/mach-exynos/common.h            |  4 +--
 arch/arm/plat-samsung/include/plat/cpu.h |  2 +-
 drivers/cpufreq/Kconfig.arm              |  4 +--
 drivers/devfreq/Kconfig                  |  2 +-
 drivers/mmc/host/sdhci-s3c.c             |  2 +-
 drivers/tty/serial/samsung.c             |  3 +--
 8 files changed, 30 insertions(+), 33 deletions(-)

-- 
1.7.12

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH 1/4] ARM: EXYNOS: Kconfig: Rename CPU_EXYNOS4210 to SOC_EXYNOS4210
  2012-10-08 13:02 [PATCH 0/4] ARM: EXYNOS: Kconfig cleanup Tomasz Figa
@ 2012-10-08 13:02 ` Tomasz Figa
  2012-10-23 12:24   ` Kukjin Kim
  2012-10-08 13:02 ` [PATCH 2/4] ARM: EXYNOS: Kconfig: Sort out dependencies between options Tomasz Figa
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 13+ messages in thread
From: Tomasz Figa @ 2012-10-08 13:02 UTC (permalink / raw)
  To: linux-arm-kernel

This patch renames CONFIG_CPU_EXYNOS4210 to CONFIG_SOC_EXYNOS4210 to
match the convention used by rest of Exynos SoCs and correctly represent
the reality (Exynos4210 is a SoC, not a CPU).

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
 arch/arm/mach-exynos/Kconfig             | 14 +++++++-------
 arch/arm/mach-exynos/Makefile            |  2 +-
 arch/arm/mach-exynos/common.h            |  2 +-
 arch/arm/plat-samsung/include/plat/cpu.h |  2 +-
 drivers/cpufreq/Kconfig.arm              |  2 +-
 drivers/devfreq/Kconfig                  |  2 +-
 drivers/mmc/host/sdhci-s3c.c             |  2 +-
 drivers/tty/serial/samsung.c             |  2 +-
 8 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
index 4372075..05dcd07 100644
--- a/arch/arm/mach-exynos/Kconfig
+++ b/arch/arm/mach-exynos/Kconfig
@@ -27,7 +27,7 @@ config ARCH_EXYNOS5
 
 comment "EXYNOS SoCs"
 
-config CPU_EXYNOS4210
+config SOC_EXYNOS4210
 	bool "SAMSUNG EXYNOS4210"
 	default y
 	depends on ARCH_EXYNOS4
@@ -188,7 +188,7 @@ config MACH_SMDKC210
 
 config MACH_SMDKV310
 	bool "SMDKV310"
-	select CPU_EXYNOS4210
+	select SOC_EXYNOS4210
 	select S5P_DEV_FIMD0
 	select S3C_DEV_RTC
 	select S3C_DEV_WDT
@@ -227,7 +227,7 @@ config MACH_SMDKV310
 
 config MACH_ARMLEX4210
 	bool "ARMLEX4210"
-	select CPU_EXYNOS4210
+	select SOC_EXYNOS4210
 	select S3C_DEV_RTC
 	select S3C_DEV_WDT
 	select S3C_DEV_HSMMC
@@ -241,7 +241,7 @@ config MACH_ARMLEX4210
 
 config MACH_UNIVERSAL_C210
 	bool "Mobile UNIVERSAL_C210 Board"
-	select CPU_EXYNOS4210
+	select SOC_EXYNOS4210
 	select S5P_HRT
 	select CLKSRC_MMIO
 	select HAVE_SCHED_CLOCK
@@ -282,7 +282,7 @@ config MACH_UNIVERSAL_C210
 
 config MACH_NURI
 	bool "Mobile NURI Board"
-	select CPU_EXYNOS4210
+	select SOC_EXYNOS4210
 	select S5P_GPIO_INT
 	select S3C_DEV_WDT
 	select S3C_DEV_RTC
@@ -323,7 +323,7 @@ config MACH_NURI
 
 config MACH_ORIGEN
 	bool "ORIGEN"
-	select CPU_EXYNOS4210
+	select SOC_EXYNOS4210
 	select S3C_DEV_RTC
 	select S3C_DEV_WDT
 	select S3C_DEV_HSMMC
@@ -404,7 +404,7 @@ comment "Flattened Device Tree based board for EXYNOS SoCs"
 config MACH_EXYNOS4_DT
 	bool "Samsung Exynos4 Machine using device tree"
 	depends on ARCH_EXYNOS4
-	select CPU_EXYNOS4210
+	select SOC_EXYNOS4210
 	select USE_OF
 	select ARM_AMBA
 	select HAVE_SAMSUNG_KEYPAD if INPUT_KEYBOARD
diff --git a/arch/arm/mach-exynos/Makefile b/arch/arm/mach-exynos/Makefile
index 9b58024..ceeb8c9 100644
--- a/arch/arm/mach-exynos/Makefile
+++ b/arch/arm/mach-exynos/Makefile
@@ -15,7 +15,7 @@ obj-				:=
 obj-$(CONFIG_ARCH_EXYNOS)	+= common.o
 obj-$(CONFIG_ARCH_EXYNOS4)	+= clock-exynos4.o
 obj-$(CONFIG_ARCH_EXYNOS5)	+= clock-exynos5.o
-obj-$(CONFIG_CPU_EXYNOS4210)	+= clock-exynos4210.o
+obj-$(CONFIG_SOC_EXYNOS4210)	+= clock-exynos4210.o
 obj-$(CONFIG_SOC_EXYNOS4212)	+= clock-exynos4212.o
 
 obj-$(CONFIG_PM)		+= pm.o
diff --git a/arch/arm/mach-exynos/common.h b/arch/arm/mach-exynos/common.h
index aed2eeb..054c786 100644
--- a/arch/arm/mach-exynos/common.h
+++ b/arch/arm/mach-exynos/common.h
@@ -45,7 +45,7 @@ void exynos5_setup_clocks(void);
 #define exynos5_setup_clocks()
 #endif
 
-#ifdef CONFIG_CPU_EXYNOS4210
+#ifdef CONFIG_SOC_EXYNOS4210
 void exynos4210_register_clocks(void);
 
 #else
diff --git a/arch/arm/plat-samsung/include/plat/cpu.h b/arch/arm/plat-samsung/include/plat/cpu.h
index ace4451..021fff0 100644
--- a/arch/arm/plat-samsung/include/plat/cpu.h
+++ b/arch/arm/plat-samsung/include/plat/cpu.h
@@ -102,7 +102,7 @@ IS_SAMSUNG_CPU(exynos5250, EXYNOS5250_SOC_ID, EXYNOS5_SOC_MASK)
 # define soc_is_s5pv210()	0
 #endif
 
-#if defined(CONFIG_CPU_EXYNOS4210)
+#if defined(CONFIG_SOC_EXYNOS4210)
 # define soc_is_exynos4210()	is_samsung_exynos4210()
 #else
 # define soc_is_exynos4210()	0
diff --git a/drivers/cpufreq/Kconfig.arm b/drivers/cpufreq/Kconfig.arm
index 5961e64..ca4ede3 100644
--- a/drivers/cpufreq/Kconfig.arm
+++ b/drivers/cpufreq/Kconfig.arm
@@ -60,7 +60,7 @@ config ARM_EXYNOS_CPUFREQ
 	  If in doubt, say N.
 
 config ARM_EXYNOS4210_CPUFREQ
-	def_bool CPU_EXYNOS4210
+	def_bool SOC_EXYNOS4210
 	help
 	  This adds the CPUFreq driver for Samsung EXYNOS4210
 	  SoC (S5PV310 or S5PC210).
diff --git a/drivers/devfreq/Kconfig b/drivers/devfreq/Kconfig
index f6b0a6e2..8545069 100644
--- a/drivers/devfreq/Kconfig
+++ b/drivers/devfreq/Kconfig
@@ -67,7 +67,7 @@ comment "DEVFREQ Drivers"
 
 config ARM_EXYNOS4_BUS_DEVFREQ
 	bool "ARM Exynos4210/4212/4412 Memory Bus DEVFREQ Driver"
-	depends on CPU_EXYNOS4210 || CPU_EXYNOS4212 || CPU_EXYNOS4412
+	depends on SOC_EXYNOS4210 || CPU_EXYNOS4212 || CPU_EXYNOS4412
 	select ARCH_HAS_OPP
 	select DEVFREQ_GOV_SIMPLE_ONDEMAND
 	help
diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c
index a50c205..b090415 100644
--- a/drivers/mmc/host/sdhci-s3c.c
+++ b/drivers/mmc/host/sdhci-s3c.c
@@ -716,7 +716,7 @@ static const struct dev_pm_ops sdhci_s3c_pmops = {
 #define SDHCI_S3C_PMOPS NULL
 #endif
 
-#if defined(CONFIG_CPU_EXYNOS4210) || defined(CONFIG_SOC_EXYNOS4212)
+#if defined(CONFIG_SOC_EXYNOS4210) || defined(CONFIG_SOC_EXYNOS4212)
 static struct sdhci_s3c_drv_data exynos4_sdhci_drv_data = {
 	.sdhci_quirks = SDHCI_QUIRK_NONSTANDARD_CLOCK,
 };
diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c
index 02d07bf..175ba6e 100644
--- a/drivers/tty/serial/samsung.c
+++ b/drivers/tty/serial/samsung.c
@@ -1594,7 +1594,7 @@ static struct s3c24xx_serial_drv_data s5pv210_serial_drv_data = {
 #define S5PV210_SERIAL_DRV_DATA	(kernel_ulong_t)NULL
 #endif
 
-#if defined(CONFIG_CPU_EXYNOS4210) || defined(CONFIG_SOC_EXYNOS4212) || \
+#if defined(CONFIG_SOC_EXYNOS4210) || defined(CONFIG_SOC_EXYNOS4212) || \
 	defined(CONFIG_SOC_EXYNOS4412) || defined(CONFIG_SOC_EXYNOS5250)
 static struct s3c24xx_serial_drv_data exynos4210_serial_drv_data = {
 	.info = &(struct s3c24xx_uart_info) {
-- 
1.7.12

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 2/4] ARM: EXYNOS: Kconfig: Sort out dependencies between options
  2012-10-08 13:02 [PATCH 0/4] ARM: EXYNOS: Kconfig cleanup Tomasz Figa
  2012-10-08 13:02 ` [PATCH 1/4] ARM: EXYNOS: Kconfig: Rename CPU_EXYNOS4210 to SOC_EXYNOS4210 Tomasz Figa
@ 2012-10-08 13:02 ` Tomasz Figa
  2012-10-23 12:35   ` Kukjin Kim
  2012-10-08 13:02 ` [PATCH 3/4] ARM: EXYNOS: Kconfig: Group EXYNOS{4212,4412} into EXYNOS4X12 Tomasz Figa
  2012-10-08 13:02 ` [PATCH 4/4] ARM: EXYNOS: Kconfig: Remove dependencies on particular SoCs from DT machines Tomasz Figa
  3 siblings, 1 reply; 13+ messages in thread
From: Tomasz Figa @ 2012-10-08 13:02 UTC (permalink / raw)
  To: linux-arm-kernel

This patch modifies the dependencies between Exynos-related Kconfig
options to represent the real dependencies between code units more
closely.

Originally it was possible to enable ARCH_EXYNOS{4,5} without any
SOC_EXYNOS_{4,5}.* enabled, which could end with compilation or link
errors. Now ARCH_EXYNOS{4,5} is only selected when there is a
SOC_EXYNOS_{4,5}.* enabled, which requires it.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
 arch/arm/mach-exynos/Kconfig | 15 ++++++---------
 drivers/devfreq/Kconfig      |  2 +-
 drivers/mmc/host/sdhci-s3c.c |  2 +-
 drivers/tty/serial/samsung.c |  3 +--
 4 files changed, 9 insertions(+), 13 deletions(-)

diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
index 05dcd07..9f91892 100644
--- a/arch/arm/mach-exynos/Kconfig
+++ b/arch/arm/mach-exynos/Kconfig
@@ -12,15 +12,14 @@ if ARCH_EXYNOS
 menu "SAMSUNG EXYNOS SoCs Support"
 
 config ARCH_EXYNOS4
-	bool "SAMSUNG EXYNOS4"
-	default y
+	def_bool n
 	select HAVE_SMP
 	select MIGHT_HAVE_CACHE_L2X0
 	help
 	  Samsung EXYNOS4 SoCs based systems
 
 config ARCH_EXYNOS5
-	bool "SAMSUNG EXYNOS5"
+	def_bool n
 	select HAVE_SMP
 	help
 	  Samsung EXYNOS5 (Cortex-A15) SoC based systems
@@ -30,7 +29,7 @@ comment "EXYNOS SoCs"
 config SOC_EXYNOS4210
 	bool "SAMSUNG EXYNOS4210"
 	default y
-	depends on ARCH_EXYNOS4
+	select ARCH_EXYNOS4
 	select SAMSUNG_DMADEV
 	select ARM_CPU_SUSPEND if PM
 	select S5P_PM if PM
@@ -42,7 +41,7 @@ config SOC_EXYNOS4210
 config SOC_EXYNOS4212
 	bool "SAMSUNG EXYNOS4212"
 	default y
-	depends on ARCH_EXYNOS4
+	select ARCH_EXYNOS4
 	select SAMSUNG_DMADEV
 	select S5P_PM if PM
 	select S5P_SLEEP if PM
@@ -51,6 +50,7 @@ config SOC_EXYNOS4212
 
 config SOC_EXYNOS4412
 	bool "SAMSUNG EXYNOS4412"
+	select ARCH_EXYNOS4
 	default y
 	depends on ARCH_EXYNOS4
 	select SAMSUNG_DMADEV
@@ -60,7 +60,7 @@ config SOC_EXYNOS4412
 config SOC_EXYNOS5250
 	bool "SAMSUNG EXYNOS5250"
 	default y
-	depends on ARCH_EXYNOS5
+	select ARCH_EXYNOS5
 	select SAMSUNG_DMADEV
 	select S5P_PM if PM
 	select S5P_SLEEP if PM
@@ -176,8 +176,6 @@ config EXYNOS_SETUP_SPI
 
 # machine support
 
-if ARCH_EXYNOS4
-
 comment "EXYNOS4210 Boards"
 
 config MACH_SMDKC210
@@ -397,7 +395,6 @@ config MACH_SMDK4412
 	select MACH_SMDK4212
 	help
 	  Machine support for Samsung SMDK4412
-endif
 
 comment "Flattened Device Tree based board for EXYNOS SoCs"
 
diff --git a/drivers/devfreq/Kconfig b/drivers/devfreq/Kconfig
index 8545069..c559609 100644
--- a/drivers/devfreq/Kconfig
+++ b/drivers/devfreq/Kconfig
@@ -67,7 +67,7 @@ comment "DEVFREQ Drivers"
 
 config ARM_EXYNOS4_BUS_DEVFREQ
 	bool "ARM Exynos4210/4212/4412 Memory Bus DEVFREQ Driver"
-	depends on SOC_EXYNOS4210 || CPU_EXYNOS4212 || CPU_EXYNOS4412
+	depends on ARCH_EXYNOS4
 	select ARCH_HAS_OPP
 	select DEVFREQ_GOV_SIMPLE_ONDEMAND
 	help
diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c
index b090415..5e2083b 100644
--- a/drivers/mmc/host/sdhci-s3c.c
+++ b/drivers/mmc/host/sdhci-s3c.c
@@ -716,7 +716,7 @@ static const struct dev_pm_ops sdhci_s3c_pmops = {
 #define SDHCI_S3C_PMOPS NULL
 #endif
 
-#if defined(CONFIG_SOC_EXYNOS4210) || defined(CONFIG_SOC_EXYNOS4212)
+#if defined(CONFIG_ARCH_EXYNOS4)
 static struct sdhci_s3c_drv_data exynos4_sdhci_drv_data = {
 	.sdhci_quirks = SDHCI_QUIRK_NONSTANDARD_CLOCK,
 };
diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c
index 175ba6e..c689091 100644
--- a/drivers/tty/serial/samsung.c
+++ b/drivers/tty/serial/samsung.c
@@ -1594,8 +1594,7 @@ static struct s3c24xx_serial_drv_data s5pv210_serial_drv_data = {
 #define S5PV210_SERIAL_DRV_DATA	(kernel_ulong_t)NULL
 #endif
 
-#if defined(CONFIG_SOC_EXYNOS4210) || defined(CONFIG_SOC_EXYNOS4212) || \
-	defined(CONFIG_SOC_EXYNOS4412) || defined(CONFIG_SOC_EXYNOS5250)
+#if defined(CONFIG_ARCH_EXYNOS4) || defined(CONFIG_ARCH_EXYNOS5)
 static struct s3c24xx_serial_drv_data exynos4210_serial_drv_data = {
 	.info = &(struct s3c24xx_uart_info) {
 		.name		= "Samsung Exynos4 UART",
-- 
1.7.12

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 3/4] ARM: EXYNOS: Kconfig: Group EXYNOS{4212,4412} into EXYNOS4X12
  2012-10-08 13:02 [PATCH 0/4] ARM: EXYNOS: Kconfig cleanup Tomasz Figa
  2012-10-08 13:02 ` [PATCH 1/4] ARM: EXYNOS: Kconfig: Rename CPU_EXYNOS4210 to SOC_EXYNOS4210 Tomasz Figa
  2012-10-08 13:02 ` [PATCH 2/4] ARM: EXYNOS: Kconfig: Sort out dependencies between options Tomasz Figa
@ 2012-10-08 13:02 ` Tomasz Figa
  2012-10-23 12:42   ` Kukjin Kim
  2012-10-08 13:02 ` [PATCH 4/4] ARM: EXYNOS: Kconfig: Remove dependencies on particular SoCs from DT machines Tomasz Figa
  3 siblings, 1 reply; 13+ messages in thread
From: Tomasz Figa @ 2012-10-08 13:02 UTC (permalink / raw)
  To: linux-arm-kernel

This patch adds CONFIG_EXYNOS4X12, which is automatically selected
whenever there is at least one SoC from Exynos4x12 line enabled. All the
shared dependencies of EXYNOS{4212,4412} are moved to this new
option.

This fixes build with Exynos4412 enabled and Exynos4212 and Exynos4210
disabled and also allows to simplify conditional compilation in several
places.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
 arch/arm/mach-exynos/Kconfig  | 15 +++++++++------
 arch/arm/mach-exynos/Makefile |  2 +-
 arch/arm/mach-exynos/common.h |  2 +-
 drivers/cpufreq/Kconfig.arm   |  2 +-
 4 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
index 9f91892..6ea95f0 100644
--- a/arch/arm/mach-exynos/Kconfig
+++ b/arch/arm/mach-exynos/Kconfig
@@ -38,22 +38,25 @@ config SOC_EXYNOS4210
 	help
 	  Enable EXYNOS4210 CPU support
 
-config SOC_EXYNOS4212
-	bool "SAMSUNG EXYNOS4212"
-	default y
+config SOC_EXYNOS4X12
+	def_bool n
 	select ARCH_EXYNOS4
 	select SAMSUNG_DMADEV
+	select ARM_CPU_SUSPEND if PM
 	select S5P_PM if PM
 	select S5P_SLEEP if PM
+
+config SOC_EXYNOS4212
+	bool "SAMSUNG EXYNOS4212"
+	select SOC_EXYNOS4X12
+	default y
 	help
 	  Enable EXYNOS4212 SoC support
 
 config SOC_EXYNOS4412
 	bool "SAMSUNG EXYNOS4412"
-	select ARCH_EXYNOS4
+	select SOC_EXYNOS4X12
 	default y
-	depends on ARCH_EXYNOS4
-	select SAMSUNG_DMADEV
 	help
 	  Enable EXYNOS4412 SoC support
 
diff --git a/arch/arm/mach-exynos/Makefile b/arch/arm/mach-exynos/Makefile
index ceeb8c9..f88fcb6 100644
--- a/arch/arm/mach-exynos/Makefile
+++ b/arch/arm/mach-exynos/Makefile
@@ -16,7 +16,7 @@ obj-$(CONFIG_ARCH_EXYNOS)	+= common.o
 obj-$(CONFIG_ARCH_EXYNOS4)	+= clock-exynos4.o
 obj-$(CONFIG_ARCH_EXYNOS5)	+= clock-exynos5.o
 obj-$(CONFIG_SOC_EXYNOS4210)	+= clock-exynos4210.o
-obj-$(CONFIG_SOC_EXYNOS4212)	+= clock-exynos4212.o
+obj-$(CONFIG_SOC_EXYNOS4X12)	+= clock-exynos4212.o
 
 obj-$(CONFIG_PM)		+= pm.o
 obj-$(CONFIG_PM_GENERIC_DOMAINS) += pm_domains.o
diff --git a/arch/arm/mach-exynos/common.h b/arch/arm/mach-exynos/common.h
index 054c786..a8cb3e6 100644
--- a/arch/arm/mach-exynos/common.h
+++ b/arch/arm/mach-exynos/common.h
@@ -52,7 +52,7 @@ void exynos4210_register_clocks(void);
 #define exynos4210_register_clocks()
 #endif
 
-#ifdef CONFIG_SOC_EXYNOS4212
+#ifdef CONFIG_SOC_EXYNOS4X12
 void exynos4212_register_clocks(void);
 
 #else
diff --git a/drivers/cpufreq/Kconfig.arm b/drivers/cpufreq/Kconfig.arm
index ca4ede3..d0ff91a 100644
--- a/drivers/cpufreq/Kconfig.arm
+++ b/drivers/cpufreq/Kconfig.arm
@@ -66,7 +66,7 @@ config ARM_EXYNOS4210_CPUFREQ
 	  SoC (S5PV310 or S5PC210).
 
 config ARM_EXYNOS4X12_CPUFREQ
-	def_bool (SOC_EXYNOS4212 || SOC_EXYNOS4412)
+	def_bool SOC_EXYNOS4X12
 	help
 	  This adds the CPUFreq driver for Samsung EXYNOS4X12
 	  SoC (EXYNOS4212 or EXYNOS4412).
-- 
1.7.12

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 4/4] ARM: EXYNOS: Kconfig: Remove dependencies on particular SoCs from DT machines
  2012-10-08 13:02 [PATCH 0/4] ARM: EXYNOS: Kconfig cleanup Tomasz Figa
                   ` (2 preceding siblings ...)
  2012-10-08 13:02 ` [PATCH 3/4] ARM: EXYNOS: Kconfig: Group EXYNOS{4212,4412} into EXYNOS4X12 Tomasz Figa
@ 2012-10-08 13:02 ` Tomasz Figa
  2012-10-23 13:27   ` Kukjin Kim
  3 siblings, 1 reply; 13+ messages in thread
From: Tomasz Figa @ 2012-10-08 13:02 UTC (permalink / raw)
  To: linux-arm-kernel

MACH_EXYNOS{4,5}_DT are used for whole SoC lines, so they should depend
on ARCH_EXYNOS{4,5} rather than on particular SoCs.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
 arch/arm/mach-exynos/Kconfig | 2 --
 1 file changed, 2 deletions(-)

diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
index 6ea95f0..2e82ce7 100644
--- a/arch/arm/mach-exynos/Kconfig
+++ b/arch/arm/mach-exynos/Kconfig
@@ -404,7 +404,6 @@ comment "Flattened Device Tree based board for EXYNOS SoCs"
 config MACH_EXYNOS4_DT
 	bool "Samsung Exynos4 Machine using device tree"
 	depends on ARCH_EXYNOS4
-	select SOC_EXYNOS4210
 	select USE_OF
 	select ARM_AMBA
 	select HAVE_SAMSUNG_KEYPAD if INPUT_KEYBOARD
@@ -419,7 +418,6 @@ config MACH_EXYNOS4_DT
 config MACH_EXYNOS5_DT
 	bool "SAMSUNG EXYNOS5 Machine using device tree"
 	depends on ARCH_EXYNOS5
-	select SOC_EXYNOS5250
 	select USE_OF
 	select ARM_AMBA
 	help
-- 
1.7.12

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 1/4] ARM: EXYNOS: Kconfig: Rename CPU_EXYNOS4210 to SOC_EXYNOS4210
  2012-10-08 13:02 ` [PATCH 1/4] ARM: EXYNOS: Kconfig: Rename CPU_EXYNOS4210 to SOC_EXYNOS4210 Tomasz Figa
@ 2012-10-23 12:24   ` Kukjin Kim
  2012-10-23 18:29     ` Tomasz Figa
  0 siblings, 1 reply; 13+ messages in thread
From: Kukjin Kim @ 2012-10-23 12:24 UTC (permalink / raw)
  To: linux-arm-kernel

Tomasz Figa wrote:
> 
> This patch renames CONFIG_CPU_EXYNOS4210 to CONFIG_SOC_EXYNOS4210 to
> match the convention used by rest of Exynos SoCs and correctly represent
> the reality (Exynos4210 is a SoC, not a CPU).
> 
> Signed-off-by: Tomasz Figa <t.figa@samsung.com>
> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>

Cc: Rafael J. Wysocki <rjw@sisk.pl>
Cc: MyungJoo Ham <myungjoo.ham@samsung.com>
Cc: Chris Ball <cjb@laptop.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Grant Likely <grant.likely@secretlab.ca>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Zhang Rui <rui.zhang@intel.com>

> ---
>  arch/arm/mach-exynos/Kconfig             | 14 +++++++-------
>  arch/arm/mach-exynos/Makefile            |  2 +-
>  arch/arm/mach-exynos/common.h            |  2 +-
>  arch/arm/plat-samsung/include/plat/cpu.h |  2 +-
>  drivers/cpufreq/Kconfig.arm              |  2 +-
>  drivers/devfreq/Kconfig                  |  2 +-
>  drivers/mmc/host/sdhci-s3c.c             |  2 +-
>  drivers/tty/serial/samsung.c             |  2 +-
>  8 files changed, 14 insertions(+), 14 deletions(-)
> 
> diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
> index 4372075..05dcd07 100644
> --- a/arch/arm/mach-exynos/Kconfig
> +++ b/arch/arm/mach-exynos/Kconfig
> @@ -27,7 +27,7 @@ config ARCH_EXYNOS5
> 
>  comment "EXYNOS SoCs"
> 
> -config CPU_EXYNOS4210
> +config SOC_EXYNOS4210
>  	bool "SAMSUNG EXYNOS4210"
>  	default y
>  	depends on ARCH_EXYNOS4
> @@ -188,7 +188,7 @@ config MACH_SMDKC210
> 
>  config MACH_SMDKV310
>  	bool "SMDKV310"
> -	select CPU_EXYNOS4210
> +	select SOC_EXYNOS4210
>  	select S5P_DEV_FIMD0
>  	select S3C_DEV_RTC
>  	select S3C_DEV_WDT
> @@ -227,7 +227,7 @@ config MACH_SMDKV310
> 
>  config MACH_ARMLEX4210
>  	bool "ARMLEX4210"
> -	select CPU_EXYNOS4210
> +	select SOC_EXYNOS4210
>  	select S3C_DEV_RTC
>  	select S3C_DEV_WDT
>  	select S3C_DEV_HSMMC
> @@ -241,7 +241,7 @@ config MACH_ARMLEX4210
> 
>  config MACH_UNIVERSAL_C210
>  	bool "Mobile UNIVERSAL_C210 Board"
> -	select CPU_EXYNOS4210
> +	select SOC_EXYNOS4210
>  	select S5P_HRT
>  	select CLKSRC_MMIO
>  	select HAVE_SCHED_CLOCK
> @@ -282,7 +282,7 @@ config MACH_UNIVERSAL_C210
> 
>  config MACH_NURI
>  	bool "Mobile NURI Board"
> -	select CPU_EXYNOS4210
> +	select SOC_EXYNOS4210
>  	select S5P_GPIO_INT
>  	select S3C_DEV_WDT
>  	select S3C_DEV_RTC
> @@ -323,7 +323,7 @@ config MACH_NURI
> 
>  config MACH_ORIGEN
>  	bool "ORIGEN"
> -	select CPU_EXYNOS4210
> +	select SOC_EXYNOS4210
>  	select S3C_DEV_RTC
>  	select S3C_DEV_WDT
>  	select S3C_DEV_HSMMC
> @@ -404,7 +404,7 @@ comment "Flattened Device Tree based board for EXYNOS
> SoCs"
>  config MACH_EXYNOS4_DT
>  	bool "Samsung Exynos4 Machine using device tree"
>  	depends on ARCH_EXYNOS4
> -	select CPU_EXYNOS4210
> +	select SOC_EXYNOS4210
>  	select USE_OF
>  	select ARM_AMBA
>  	select HAVE_SAMSUNG_KEYPAD if INPUT_KEYBOARD
> diff --git a/arch/arm/mach-exynos/Makefile b/arch/arm/mach-exynos/Makefile
> index 9b58024..ceeb8c9 100644
> --- a/arch/arm/mach-exynos/Makefile
> +++ b/arch/arm/mach-exynos/Makefile
> @@ -15,7 +15,7 @@ obj-				:=
>  obj-$(CONFIG_ARCH_EXYNOS)	+= common.o
>  obj-$(CONFIG_ARCH_EXYNOS4)	+= clock-exynos4.o
>  obj-$(CONFIG_ARCH_EXYNOS5)	+= clock-exynos5.o
> -obj-$(CONFIG_CPU_EXYNOS4210)	+= clock-exynos4210.o
> +obj-$(CONFIG_SOC_EXYNOS4210)	+= clock-exynos4210.o
>  obj-$(CONFIG_SOC_EXYNOS4212)	+= clock-exynos4212.o
> 
>  obj-$(CONFIG_PM)		+= pm.o
> diff --git a/arch/arm/mach-exynos/common.h b/arch/arm/mach-exynos/common.h
> index aed2eeb..054c786 100644
> --- a/arch/arm/mach-exynos/common.h
> +++ b/arch/arm/mach-exynos/common.h
> @@ -45,7 +45,7 @@ void exynos5_setup_clocks(void);
>  #define exynos5_setup_clocks()
>  #endif
> 
> -#ifdef CONFIG_CPU_EXYNOS4210
> +#ifdef CONFIG_SOC_EXYNOS4210
>  void exynos4210_register_clocks(void);
> 
>  #else
> diff --git a/arch/arm/plat-samsung/include/plat/cpu.h b/arch/arm/plat-
> samsung/include/plat/cpu.h
> index ace4451..021fff0 100644
> --- a/arch/arm/plat-samsung/include/plat/cpu.h
> +++ b/arch/arm/plat-samsung/include/plat/cpu.h
> @@ -102,7 +102,7 @@ IS_SAMSUNG_CPU(exynos5250, EXYNOS5250_SOC_ID,
> EXYNOS5_SOC_MASK)
>  # define soc_is_s5pv210()	0
>  #endif
> 
> -#if defined(CONFIG_CPU_EXYNOS4210)
> +#if defined(CONFIG_SOC_EXYNOS4210)
>  # define soc_is_exynos4210()	is_samsung_exynos4210()
>  #else
>  # define soc_is_exynos4210()	0
> diff --git a/drivers/cpufreq/Kconfig.arm b/drivers/cpufreq/Kconfig.arm
> index 5961e64..ca4ede3 100644
> --- a/drivers/cpufreq/Kconfig.arm
> +++ b/drivers/cpufreq/Kconfig.arm
> @@ -60,7 +60,7 @@ config ARM_EXYNOS_CPUFREQ
>  	  If in doubt, say N.
> 
>  config ARM_EXYNOS4210_CPUFREQ
> -	def_bool CPU_EXYNOS4210
> +	def_bool SOC_EXYNOS4210
>  	help
>  	  This adds the CPUFreq driver for Samsung EXYNOS4210
>  	  SoC (S5PV310 or S5PC210).
> diff --git a/drivers/devfreq/Kconfig b/drivers/devfreq/Kconfig
> index f6b0a6e2..8545069 100644
> --- a/drivers/devfreq/Kconfig
> +++ b/drivers/devfreq/Kconfig
> @@ -67,7 +67,7 @@ comment "DEVFREQ Drivers"
> 
>  config ARM_EXYNOS4_BUS_DEVFREQ
>  	bool "ARM Exynos4210/4212/4412 Memory Bus DEVFREQ Driver"
> -	depends on CPU_EXYNOS4210 || CPU_EXYNOS4212 || CPU_EXYNOS4412
> +	depends on SOC_EXYNOS4210 || CPU_EXYNOS4212 || CPU_EXYNOS4412

(+ MyungJoo Ham)

MyungJoo, should be fixed separately with this.

8<--------------------------------------

From: Kukjin Kim <kgene.kim@samsung.com>
Subject: PM / devfreq: fix the dependency for EXYNOS4212 and EXYNOS4412

The CPU_EXYNOS4212 and CPU_EXYNOS4412 should be fixed.

diff --git a/drivers/devfreq/Kconfig b/drivers/devfreq/Kconfig
index f6b0a6e2..e73cede 100644
--- a/drivers/devfreq/Kconfig
+++ b/drivers/devfreq/Kconfig
@@ -67,7 +67,7 @@ comment "DEVFREQ Drivers"
 
 config ARM_EXYNOS4_BUS_DEVFREQ
 	bool "ARM Exynos4210/4212/4412 Memory Bus DEVFREQ Driver"
-	depends on CPU_EXYNOS4210 || CPU_EXYNOS4212 || CPU_EXYNOS4412
+	depends on CPU_EXYNOS4210 || SOC_EXYNOS4212 || SOC_EXYNOS4412
 	select ARCH_HAS_OPP
 	select DEVFREQ_GOV_SIMPLE_ONDEMAND
 	help
8<--------------------------------------

>  	select ARCH_HAS_OPP
>  	select DEVFREQ_GOV_SIMPLE_ONDEMAND
>  	help
> diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c
> index a50c205..b090415 100644
> --- a/drivers/mmc/host/sdhci-s3c.c
> +++ b/drivers/mmc/host/sdhci-s3c.c
> @@ -716,7 +716,7 @@ static const struct dev_pm_ops sdhci_s3c_pmops = {
>  #define SDHCI_S3C_PMOPS NULL
>  #endif
> 
> -#if defined(CONFIG_CPU_EXYNOS4210) || defined(CONFIG_SOC_EXYNOS4212)
> +#if defined(CONFIG_SOC_EXYNOS4210) || defined(CONFIG_SOC_EXYNOS4212)
>  static struct sdhci_s3c_drv_data exynos4_sdhci_drv_data = {
>  	.sdhci_quirks = SDHCI_QUIRK_NONSTANDARD_CLOCK,
>  };
> diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c
> index 02d07bf..175ba6e 100644
> --- a/drivers/tty/serial/samsung.c
> +++ b/drivers/tty/serial/samsung.c
> @@ -1594,7 +1594,7 @@ static struct s3c24xx_serial_drv_data
> s5pv210_serial_drv_data = {
>  #define S5PV210_SERIAL_DRV_DATA	(kernel_ulong_t)NULL
>  #endif
> 
> -#if defined(CONFIG_CPU_EXYNOS4210) || defined(CONFIG_SOC_EXYNOS4212) || \
> +#if defined(CONFIG_SOC_EXYNOS4210) || defined(CONFIG_SOC_EXYNOS4212) || \
>  	defined(CONFIG_SOC_EXYNOS4412) || defined(CONFIG_SOC_EXYNOS5250)
>  static struct s3c24xx_serial_drv_data exynos4210_serial_drv_data = {
>  	.info = &(struct s3c24xx_uart_info) {
> --
> 1.7.12

Tomasz, looks ok to me but I think, accordingly, following should be updated
together?

8<--------------------------------

diff --git a/drivers/gpio/gpio-samsung.c b/drivers/gpio/gpio-samsung.c
index a006f0d..3a665ff 100644
--- a/drivers/gpio/gpio-samsung.c
+++ b/drivers/gpio/gpio-samsung.c
@@ -2790,7 +2790,7 @@ static __init void exynos_gpiolib_attach_ofnode(struct
samsung_gpio_chip *chip,
 
 static __init void exynos4_gpiolib_init(void)
 {
-#ifdef CONFIG_CPU_EXYNOS4210
+#ifdef CONFIG_SOC_EXYNOS4210
 	struct samsung_gpio_chip *chip;
 	int i, nr_chips;
 	void __iomem *gpio_base1, *gpio_base2, *gpio_base3;
@@ -2887,7 +2887,7 @@ static __init void exynos4_gpiolib_init(void)
 	samsung_gpiolib_add_4bit_chips(exynos4_gpios_3,
 				       nr_chips, gpio_base3);
 
-#if defined(CONFIG_CPU_EXYNOS4210) && defined(CONFIG_S5P_GPIO_INT)
+#if defined(CONFIG_SOC_EXYNOS4210) && defined(CONFIG_S5P_GPIO_INT)
 	s5p_register_gpioint_bank(IRQ_GPIO_XA, 0, IRQ_GPIO1_NR_GROUPS);
 	s5p_register_gpioint_bank(IRQ_GPIO_XB, IRQ_GPIO1_NR_GROUPS,
IRQ_GPIO2_NR_GROUPS);
 #endif
@@ -2900,7 +2900,7 @@ err_ioremap2:
 	iounmap(gpio_base1);
 err_ioremap1:
 	return;
-#endif	/* CONFIG_CPU_EXYNOS4210 */
+#endif	/* CONFIG_SOC_EXYNOS4210 */
 }
 
 static __init void exynos5_gpiolib_init(void)
diff --git a/drivers/thermal/exynos_thermal.c
b/drivers/thermal/exynos_thermal.c
index fd03e85..8be9282 100644
--- a/drivers/thermal/exynos_thermal.c
+++ b/drivers/thermal/exynos_thermal.c
@@ -728,7 +728,7 @@ static struct thermal_sensor_conf exynos_sensor_conf = {
 	.read_temperature	= (int (*)(void *))exynos_tmu_read,
 };
 
-#if defined(CONFIG_CPU_EXYNOS4210)
+#if defined(CONFIG_SOC_EXYNOS4210)
 static struct exynos_tmu_platform_data const exynos4210_default_tmu_data =
{
 	.threshold = 80,
 	.trigger_levels[0] = 5,
8<--------------------------------

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 2/4] ARM: EXYNOS: Kconfig: Sort out dependencies between options
  2012-10-08 13:02 ` [PATCH 2/4] ARM: EXYNOS: Kconfig: Sort out dependencies between options Tomasz Figa
@ 2012-10-23 12:35   ` Kukjin Kim
  2012-10-23 18:57     ` Tomasz Figa
  0 siblings, 1 reply; 13+ messages in thread
From: Kukjin Kim @ 2012-10-23 12:35 UTC (permalink / raw)
  To: linux-arm-kernel

Tomasz Figa wrote:
> 
> This patch modifies the dependencies between Exynos-related Kconfig
> options to represent the real dependencies between code units more
> closely.
> 
> Originally it was possible to enable ARCH_EXYNOS{4,5} without any
> SOC_EXYNOS_{4,5}.* enabled, which could end with compilation or link
> errors. Now ARCH_EXYNOS{4,5} is only selected when there is a
> SOC_EXYNOS_{4,5}.* enabled, which requires it.
> 
> Signed-off-by: Tomasz Figa <t.figa@samsung.com>
> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> ---
>  arch/arm/mach-exynos/Kconfig | 15 ++++++---------
>  drivers/devfreq/Kconfig      |  2 +-
>  drivers/mmc/host/sdhci-s3c.c |  2 +-
>  drivers/tty/serial/samsung.c |  3 +--
>  4 files changed, 9 insertions(+), 13 deletions(-)
> 
> diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
> index 05dcd07..9f91892 100644
> --- a/arch/arm/mach-exynos/Kconfig
> +++ b/arch/arm/mach-exynos/Kconfig
> @@ -12,15 +12,14 @@ if ARCH_EXYNOS
>  menu "SAMSUNG EXYNOS SoCs Support"
> 
>  config ARCH_EXYNOS4
> -	bool "SAMSUNG EXYNOS4"
> -	default y
> +	def_bool n
>  	select HAVE_SMP
>  	select MIGHT_HAVE_CACHE_L2X0
>  	help
>  	  Samsung EXYNOS4 SoCs based systems
> 
>  config ARCH_EXYNOS5
> -	bool "SAMSUNG EXYNOS5"
> +	def_bool n
>  	select HAVE_SMP
>  	help
>  	  Samsung EXYNOS5 (Cortex-A15) SoC based systems
> @@ -30,7 +29,7 @@ comment "EXYNOS SoCs"
>  config SOC_EXYNOS4210
>  	bool "SAMSUNG EXYNOS4210"
>  	default y
> -	depends on ARCH_EXYNOS4
> +	select ARCH_EXYNOS4
>  	select SAMSUNG_DMADEV
>  	select ARM_CPU_SUSPEND if PM
>  	select S5P_PM if PM
> @@ -42,7 +41,7 @@ config SOC_EXYNOS4210
>  config SOC_EXYNOS4212
>  	bool "SAMSUNG EXYNOS4212"
>  	default y
> -	depends on ARCH_EXYNOS4
> +	select ARCH_EXYNOS4
>  	select SAMSUNG_DMADEV
>  	select S5P_PM if PM
>  	select S5P_SLEEP if PM
> @@ -51,6 +50,7 @@ config SOC_EXYNOS4212
> 
>  config SOC_EXYNOS4412
>  	bool "SAMSUNG EXYNOS4412"
> +	select ARCH_EXYNOS4
>  	default y
>  	depends on ARCH_EXYNOS4
>  	select SAMSUNG_DMADEV
> @@ -60,7 +60,7 @@ config SOC_EXYNOS4412
>  config SOC_EXYNOS5250
>  	bool "SAMSUNG EXYNOS5250"
>  	default y
> -	depends on ARCH_EXYNOS5
> +	select ARCH_EXYNOS5
>  	select SAMSUNG_DMADEV
>  	select S5P_PM if PM
>  	select S5P_SLEEP if PM
> @@ -176,8 +176,6 @@ config EXYNOS_SETUP_SPI
> 

Basically, I agree with your approach. Its CONFIG_ARCH_EXYNOSx depends on
selecting own SOC.

BTW, I'm thinking, which one selecting is better to us board? Or SoC?...

>  # machine support
> 
> -if ARCH_EXYNOS4
> -

Well, according to removing above, we can select following exynos4210 boards
on other stuff. Of course, when select board, regarding soc is selected
though. So I'm thinking I said as above.

>  comment "EXYNOS4210 Boards"
> 
>  config MACH_SMDKC210
> @@ -397,7 +395,6 @@ config MACH_SMDK4412
>  	select MACH_SMDK4212
>  	help
>  	  Machine support for Samsung SMDK4412
> -endif
> 
>  comment "Flattened Device Tree based board for EXYNOS SoCs"
> 
> diff --git a/drivers/devfreq/Kconfig b/drivers/devfreq/Kconfig
> index 8545069..c559609 100644
> --- a/drivers/devfreq/Kconfig
> +++ b/drivers/devfreq/Kconfig
> @@ -67,7 +67,7 @@ comment "DEVFREQ Drivers"
> 
>  config ARM_EXYNOS4_BUS_DEVFREQ
>  	bool "ARM Exynos4210/4212/4412 Memory Bus DEVFREQ Driver"
> -	depends on SOC_EXYNOS4210 || CPU_EXYNOS4212 || CPU_EXYNOS4412
> +	depends on ARCH_EXYNOS4

I don't think so, because it depends on SoC not architecture. In addition,
we don't know ARM_EXYNOS4_BUS_DEVFREQ is available on upcoming exynos4...

>  	select ARCH_HAS_OPP
>  	select DEVFREQ_GOV_SIMPLE_ONDEMAND
>  	help
> diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c
> index b090415..5e2083b 100644
> --- a/drivers/mmc/host/sdhci-s3c.c
> +++ b/drivers/mmc/host/sdhci-s3c.c
> @@ -716,7 +716,7 @@ static const struct dev_pm_ops sdhci_s3c_pmops = {
>  #define SDHCI_S3C_PMOPS NULL
>  #endif
> 
> -#if defined(CONFIG_SOC_EXYNOS4210) || defined(CONFIG_SOC_EXYNOS4212)
> +#if defined(CONFIG_ARCH_EXYNOS4)

Same as above.

>  static struct sdhci_s3c_drv_data exynos4_sdhci_drv_data = {
>  	.sdhci_quirks = SDHCI_QUIRK_NONSTANDARD_CLOCK,
>  };
> diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c
> index 175ba6e..c689091 100644
> --- a/drivers/tty/serial/samsung.c
> +++ b/drivers/tty/serial/samsung.c
> @@ -1594,8 +1594,7 @@ static struct s3c24xx_serial_drv_data
> s5pv210_serial_drv_data = {
>  #define S5PV210_SERIAL_DRV_DATA	(kernel_ulong_t)NULL
>  #endif
> 
> -#if defined(CONFIG_SOC_EXYNOS4210) || defined(CONFIG_SOC_EXYNOS4212) || \
> -	defined(CONFIG_SOC_EXYNOS4412) || defined(CONFIG_SOC_EXYNOS5250)
> +#if defined(CONFIG_ARCH_EXYNOS4) || defined(CONFIG_ARCH_EXYNOS5)

Same as above.

>  static struct s3c24xx_serial_drv_data exynos4210_serial_drv_data = {
>  	.info = &(struct s3c24xx_uart_info) {
>  		.name		= "Samsung Exynos4 UART",
> --
> 1.7.12

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH 3/4] ARM: EXYNOS: Kconfig: Group EXYNOS{4212,4412} into EXYNOS4X12
  2012-10-08 13:02 ` [PATCH 3/4] ARM: EXYNOS: Kconfig: Group EXYNOS{4212,4412} into EXYNOS4X12 Tomasz Figa
@ 2012-10-23 12:42   ` Kukjin Kim
  2012-10-23 19:00     ` [PATCH 3/4] ARM: EXYNOS: Kconfig: Group EXYNOS{4212, 4412} " Tomasz Figa
  0 siblings, 1 reply; 13+ messages in thread
From: Kukjin Kim @ 2012-10-23 12:42 UTC (permalink / raw)
  To: linux-arm-kernel

Tomasz Figa wrote:
> 
> This patch adds CONFIG_EXYNOS4X12, which is automatically selected
> whenever there is at least one SoC from Exynos4x12 line enabled. All the
> shared dependencies of EXYNOS{4212,4412} are moved to this new
> option.
> 
> This fixes build with Exynos4412 enabled and Exynos4212 and Exynos4210
> disabled and also allows to simplify conditional compilation in several
> places.
> 
> Signed-off-by: Tomasz Figa <t.figa@samsung.com>
> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> ---
>  arch/arm/mach-exynos/Kconfig  | 15 +++++++++------
>  arch/arm/mach-exynos/Makefile |  2 +-
>  arch/arm/mach-exynos/common.h |  2 +-
>  drivers/cpufreq/Kconfig.arm   |  2 +-
>  4 files changed, 12 insertions(+), 9 deletions(-)
> 
> diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
> index 9f91892..6ea95f0 100644
> --- a/arch/arm/mach-exynos/Kconfig
> +++ b/arch/arm/mach-exynos/Kconfig
> @@ -38,22 +38,25 @@ config SOC_EXYNOS4210
>  	help
>  	  Enable EXYNOS4210 CPU support
> 
> -config SOC_EXYNOS4212
> -	bool "SAMSUNG EXYNOS4212"
> -	default y
> +config SOC_EXYNOS4X12
> +	def_bool n
>  	select ARCH_EXYNOS4
>  	select SAMSUNG_DMADEV
> +	select ARM_CPU_SUSPEND if PM
>  	select S5P_PM if PM
>  	select S5P_SLEEP if PM
> +
> +config SOC_EXYNOS4212
> +	bool "SAMSUNG EXYNOS4212"
> +	select SOC_EXYNOS4X12
> +	default y
>  	help
>  	  Enable EXYNOS4212 SoC support
> 
>  config SOC_EXYNOS4412
>  	bool "SAMSUNG EXYNOS4412"
> -	select ARCH_EXYNOS4
> +	select SOC_EXYNOS4X12
>  	default y
> -	depends on ARCH_EXYNOS4
> -	select SAMSUNG_DMADEV
>  	help
>  	  Enable EXYNOS4412 SoC support
> 
> diff --git a/arch/arm/mach-exynos/Makefile b/arch/arm/mach-exynos/Makefile
> index ceeb8c9..f88fcb6 100644
> --- a/arch/arm/mach-exynos/Makefile
> +++ b/arch/arm/mach-exynos/Makefile
> @@ -16,7 +16,7 @@ obj-$(CONFIG_ARCH_EXYNOS)	+= common.o
>  obj-$(CONFIG_ARCH_EXYNOS4)	+= clock-exynos4.o
>  obj-$(CONFIG_ARCH_EXYNOS5)	+= clock-exynos5.o
>  obj-$(CONFIG_SOC_EXYNOS4210)	+= clock-exynos4210.o
> -obj-$(CONFIG_SOC_EXYNOS4212)	+= clock-exynos4212.o
> +obj-$(CONFIG_SOC_EXYNOS4X12)	+= clock-exynos4212.o
> 
>  obj-$(CONFIG_PM)		+= pm.o
>  obj-$(CONFIG_PM_GENERIC_DOMAINS) += pm_domains.o
> diff --git a/arch/arm/mach-exynos/common.h b/arch/arm/mach-exynos/common.h
> index 054c786..a8cb3e6 100644
> --- a/arch/arm/mach-exynos/common.h
> +++ b/arch/arm/mach-exynos/common.h
> @@ -52,7 +52,7 @@ void exynos4210_register_clocks(void);
>  #define exynos4210_register_clocks()
>  #endif
> 
> -#ifdef CONFIG_SOC_EXYNOS4212
> +#ifdef CONFIG_SOC_EXYNOS4X12
>  void exynos4212_register_clocks(void);
> 
>  #else
> diff --git a/drivers/cpufreq/Kconfig.arm b/drivers/cpufreq/Kconfig.arm
> index ca4ede3..d0ff91a 100644
> --- a/drivers/cpufreq/Kconfig.arm
> +++ b/drivers/cpufreq/Kconfig.arm
> @@ -66,7 +66,7 @@ config ARM_EXYNOS4210_CPUFREQ
>  	  SoC (S5PV310 or S5PC210).
> 
>  config ARM_EXYNOS4X12_CPUFREQ
> -	def_bool (SOC_EXYNOS4212 || SOC_EXYNOS4412)
> +	def_bool SOC_EXYNOS4X12
>  	help
>  	  This adds the CPUFreq driver for Samsung EXYNOS4X12
>  	  SoC (EXYNOS4212 or EXYNOS4412).
> --
> 1.7.12

Well, do we _really_ need to define CONFIG_SOC_EXYNOS4X12 for supporting
common part of exynos4212 and exynos4412? In my opinion, it will cause
confusion rather than reducing code size. Let's just use its own name for
SoC.

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH 4/4] ARM: EXYNOS: Kconfig: Remove dependencies on particular SoCs from DT machines
  2012-10-08 13:02 ` [PATCH 4/4] ARM: EXYNOS: Kconfig: Remove dependencies on particular SoCs from DT machines Tomasz Figa
@ 2012-10-23 13:27   ` Kukjin Kim
  2012-10-23 19:28     ` Tomasz Figa
  0 siblings, 1 reply; 13+ messages in thread
From: Kukjin Kim @ 2012-10-23 13:27 UTC (permalink / raw)
  To: linux-arm-kernel

Tomasz Figa wrote:
> 
> MACH_EXYNOS{4,5}_DT are used for whole SoC lines, so they should depend
> on ARCH_EXYNOS{4,5} rather than on particular SoCs.
> 
> Signed-off-by: Tomasz Figa <t.figa@samsung.com>
> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> ---
>  arch/arm/mach-exynos/Kconfig | 2 --
>  1 file changed, 2 deletions(-)
> 
> diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
> index 6ea95f0..2e82ce7 100644
> --- a/arch/arm/mach-exynos/Kconfig
> +++ b/arch/arm/mach-exynos/Kconfig
> @@ -404,7 +404,6 @@ comment "Flattened Device Tree based board for EXYNOS
> SoCs"
>  config MACH_EXYNOS4_DT
>  	bool "Samsung Exynos4 Machine using device tree"
>  	depends on ARCH_EXYNOS4
> -	select SOC_EXYNOS4210
>  	select USE_OF
>  	select ARM_AMBA
>  	select HAVE_SAMSUNG_KEYPAD if INPUT_KEYBOARD
> @@ -419,7 +418,6 @@ config MACH_EXYNOS4_DT
>  config MACH_EXYNOS5_DT
>  	bool "SAMSUNG EXYNOS5 Machine using device tree"
>  	depends on ARCH_EXYNOS5
> -	select SOC_EXYNOS5250
>  	select USE_OF
>  	select ARM_AMBA
>  	help
> --
> 1.7.12

Hmm...your comment is correct, but we need to think again its selecting
order, between ARCH name, SoC and board. In addition, in case of MACH_XXX_DT
depending on SoC is rather to be supposed...

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH 1/4] ARM: EXYNOS: Kconfig: Rename CPU_EXYNOS4210 to SOC_EXYNOS4210
  2012-10-23 12:24   ` Kukjin Kim
@ 2012-10-23 18:29     ` Tomasz Figa
  0 siblings, 0 replies; 13+ messages in thread
From: Tomasz Figa @ 2012-10-23 18:29 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Kgene,

Thanks for your comments.

On Tuesday 23 of October 2012 21:24:54 Kukjin Kim wrote:
> Tomasz Figa wrote:
> > This patch renames CONFIG_CPU_EXYNOS4210 to CONFIG_SOC_EXYNOS4210 to
> > match the convention used by rest of Exynos SoCs and correctly
> > represent the reality (Exynos4210 is a SoC, not a CPU).
> > 
> > Signed-off-by: Tomasz Figa <t.figa@samsung.com>
> > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> 
> Cc: Rafael J. Wysocki <rjw@sisk.pl>
> Cc: MyungJoo Ham <myungjoo.ham@samsung.com>
> Cc: Chris Ball <cjb@laptop.org>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: Grant Likely <grant.likely@secretlab.ca>
> Cc: Linus Walleij <linus.walleij@linaro.org>
> Cc: Zhang Rui <rui.zhang@intel.com>
> 
> > ---
> > 
> >  arch/arm/mach-exynos/Kconfig             | 14 +++++++-------
> >  arch/arm/mach-exynos/Makefile            |  2 +-
> >  arch/arm/mach-exynos/common.h            |  2 +-
> >  arch/arm/plat-samsung/include/plat/cpu.h |  2 +-
> >  drivers/cpufreq/Kconfig.arm              |  2 +-
> >  drivers/devfreq/Kconfig                  |  2 +-
> >  drivers/mmc/host/sdhci-s3c.c             |  2 +-
> >  drivers/tty/serial/samsung.c             |  2 +-
> >  8 files changed, 14 insertions(+), 14 deletions(-)
> > 
[snip]
> > diff --git a/drivers/devfreq/Kconfig b/drivers/devfreq/Kconfig
> > index f6b0a6e2..8545069 100644
> > --- a/drivers/devfreq/Kconfig
> > +++ b/drivers/devfreq/Kconfig
> > @@ -67,7 +67,7 @@ comment "DEVFREQ Drivers"
> > 
> >  config ARM_EXYNOS4_BUS_DEVFREQ
> >  
> >  	bool "ARM Exynos4210/4212/4412 Memory Bus DEVFREQ Driver"
> > 
> > -	depends on CPU_EXYNOS4210 || CPU_EXYNOS4212 || CPU_EXYNOS4412
> > +	depends on SOC_EXYNOS4210 || CPU_EXYNOS4212 || CPU_EXYNOS4412
> 
> (+ MyungJoo Ham)
> 
> MyungJoo, should be fixed separately with this.
> 
> 8<--------------------------------------
> 
> From: Kukjin Kim <kgene.kim@samsung.com>
> Subject: PM / devfreq: fix the dependency for EXYNOS4212 and EXYNOS4412
> 
> The CPU_EXYNOS4212 and CPU_EXYNOS4412 should be fixed.
> 
> diff --git a/drivers/devfreq/Kconfig b/drivers/devfreq/Kconfig
> index f6b0a6e2..e73cede 100644
> --- a/drivers/devfreq/Kconfig
> +++ b/drivers/devfreq/Kconfig
> @@ -67,7 +67,7 @@ comment "DEVFREQ Drivers"
> 
>  config ARM_EXYNOS4_BUS_DEVFREQ
>  	bool "ARM Exynos4210/4212/4412 Memory Bus DEVFREQ Driver"
> -	depends on CPU_EXYNOS4210 || CPU_EXYNOS4212 || CPU_EXYNOS4412
> +	depends on CPU_EXYNOS4210 || SOC_EXYNOS4212 || SOC_EXYNOS4412
>  	select ARCH_HAS_OPP
>  	select DEVFREQ_GOV_SIMPLE_ONDEMAND
>  	help
> 8<--------------------------------------


Indeed, in result this would make my patch:

-	depends on CPU_EXYNOS4210 || SOC_EXYNOS4212 || SOC_EXYNOS4412
+	depends on SOC_EXYNOS4210 || SOC_EXYNOS4212 || SOC_EXYNOS4412

(with your patch as a dependency)

> >  	select ARCH_HAS_OPP
> >  	select DEVFREQ_GOV_SIMPLE_ONDEMAND
> >  	help
> > 
> > diff --git a/drivers/mmc/host/sdhci-s3c.c
> > b/drivers/mmc/host/sdhci-s3c.c index a50c205..b090415 100644
> > --- a/drivers/mmc/host/sdhci-s3c.c
> > +++ b/drivers/mmc/host/sdhci-s3c.c
> > @@ -716,7 +716,7 @@ static const struct dev_pm_ops sdhci_s3c_pmops = {
> > 
> >  #define SDHCI_S3C_PMOPS NULL
> >  #endif
> > 
> > -#if defined(CONFIG_CPU_EXYNOS4210) || defined(CONFIG_SOC_EXYNOS4212)
> > +#if defined(CONFIG_SOC_EXYNOS4210) || defined(CONFIG_SOC_EXYNOS4212)
> > 
> >  static struct sdhci_s3c_drv_data exynos4_sdhci_drv_data = {
> >  
> >  	.sdhci_quirks = SDHCI_QUIRK_NONSTANDARD_CLOCK,
> >  
> >  };
> > 
> > diff --git a/drivers/tty/serial/samsung.c
> > b/drivers/tty/serial/samsung.c index 02d07bf..175ba6e 100644
> > --- a/drivers/tty/serial/samsung.c
> > +++ b/drivers/tty/serial/samsung.c
> > @@ -1594,7 +1594,7 @@ static struct s3c24xx_serial_drv_data
> > s5pv210_serial_drv_data = {
> > 
> >  #define S5PV210_SERIAL_DRV_DATA	(kernel_ulong_t)NULL
> >  #endif
> > 
> > -#if defined(CONFIG_CPU_EXYNOS4210) || defined(CONFIG_SOC_EXYNOS4212)
> > || \ +#if defined(CONFIG_SOC_EXYNOS4210) ||
> > defined(CONFIG_SOC_EXYNOS4212) || \> 
> >  	defined(CONFIG_SOC_EXYNOS4412) || defined(CONFIG_SOC_EXYNOS5250)
> >  
> >  static struct s3c24xx_serial_drv_data exynos4210_serial_drv_data = {
> >  
> >  	.info = &(struct s3c24xx_uart_info) {
> > 
> > --
> > 1.7.12
> 
> Tomasz, looks ok to me but I think, accordingly, following should be
> updated together?
> 
> 8<--------------------------------
> 
> diff --git a/drivers/gpio/gpio-samsung.c b/drivers/gpio/gpio-samsung.c
> index a006f0d..3a665ff 100644
> --- a/drivers/gpio/gpio-samsung.c
> +++ b/drivers/gpio/gpio-samsung.c
> @@ -2790,7 +2790,7 @@ static __init void
> exynos_gpiolib_attach_ofnode(struct samsung_gpio_chip *chip,
> 
>  static __init void exynos4_gpiolib_init(void)
>  {
> -#ifdef CONFIG_CPU_EXYNOS4210
> +#ifdef CONFIG_SOC_EXYNOS4210
>  	struct samsung_gpio_chip *chip;
>  	int i, nr_chips;
>  	void __iomem *gpio_base1, *gpio_base2, *gpio_base3;
> @@ -2887,7 +2887,7 @@ static __init void exynos4_gpiolib_init(void)
>  	samsung_gpiolib_add_4bit_chips(exynos4_gpios_3,
>  				       nr_chips, gpio_base3);
> 
> -#if defined(CONFIG_CPU_EXYNOS4210) && defined(CONFIG_S5P_GPIO_INT)
> +#if defined(CONFIG_SOC_EXYNOS4210) && defined(CONFIG_S5P_GPIO_INT)
>  	s5p_register_gpioint_bank(IRQ_GPIO_XA, 0, IRQ_GPIO1_NR_GROUPS);
>  	s5p_register_gpioint_bank(IRQ_GPIO_XB, IRQ_GPIO1_NR_GROUPS,
> IRQ_GPIO2_NR_GROUPS);
>  #endif
> @@ -2900,7 +2900,7 @@ err_ioremap2:
>  	iounmap(gpio_base1);
>  err_ioremap1:
>  	return;
> -#endif	/* CONFIG_CPU_EXYNOS4210 */
> +#endif	/* CONFIG_SOC_EXYNOS4210 */
>  }
> 
>  static __init void exynos5_gpiolib_init(void)
> diff --git a/drivers/thermal/exynos_thermal.c
> b/drivers/thermal/exynos_thermal.c
> index fd03e85..8be9282 100644
> --- a/drivers/thermal/exynos_thermal.c
> +++ b/drivers/thermal/exynos_thermal.c
> @@ -728,7 +728,7 @@ static struct thermal_sensor_conf exynos_sensor_conf
> = { .read_temperature	= (int (*)(void *))exynos_tmu_read,
>  };
> 
> -#if defined(CONFIG_CPU_EXYNOS4210)
> +#if defined(CONFIG_SOC_EXYNOS4210)
>  static struct exynos_tmu_platform_data const
> exynos4210_default_tmu_data = {
>  	.threshold = 80,
>  	.trigger_levels[0] = 5,
> 8<--------------------------------

Yes, I must have missed them somehow, will include these missing changes 
in next version.

Best regards,
Tomasz Figa

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH 2/4] ARM: EXYNOS: Kconfig: Sort out dependencies between options
  2012-10-23 12:35   ` Kukjin Kim
@ 2012-10-23 18:57     ` Tomasz Figa
  0 siblings, 0 replies; 13+ messages in thread
From: Tomasz Figa @ 2012-10-23 18:57 UTC (permalink / raw)
  To: linux-arm-kernel

On Tuesday 23 of October 2012 21:35:32 Kukjin Kim wrote:
> Tomasz Figa wrote:
> > This patch modifies the dependencies between Exynos-related Kconfig
> > options to represent the real dependencies between code units more
> > closely.
> > 
> > Originally it was possible to enable ARCH_EXYNOS{4,5} without any
> > SOC_EXYNOS_{4,5}.* enabled, which could end with compilation or link
> > errors. Now ARCH_EXYNOS{4,5} is only selected when there is a
> > SOC_EXYNOS_{4,5}.* enabled, which requires it.
> > 
> > Signed-off-by: Tomasz Figa <t.figa@samsung.com>
> > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> > ---
> > 
> >  arch/arm/mach-exynos/Kconfig | 15 ++++++---------
> >  drivers/devfreq/Kconfig      |  2 +-
> >  drivers/mmc/host/sdhci-s3c.c |  2 +-
> >  drivers/tty/serial/samsung.c |  3 +--
> >  4 files changed, 9 insertions(+), 13 deletions(-)
> > 
> > diff --git a/arch/arm/mach-exynos/Kconfig
> > b/arch/arm/mach-exynos/Kconfig index 05dcd07..9f91892 100644
> > --- a/arch/arm/mach-exynos/Kconfig
> > +++ b/arch/arm/mach-exynos/Kconfig
> > @@ -12,15 +12,14 @@ if ARCH_EXYNOS
> > 
> >  menu "SAMSUNG EXYNOS SoCs Support"
> >  
> >  config ARCH_EXYNOS4
> > 
> > -	bool "SAMSUNG EXYNOS4"
> > -	default y
> > +	def_bool n
> > 
> >  	select HAVE_SMP
> >  	select MIGHT_HAVE_CACHE_L2X0
> >  	help
> >  	
> >  	  Samsung EXYNOS4 SoCs based systems
> >  
> >  config ARCH_EXYNOS5
> > 
> > -	bool "SAMSUNG EXYNOS5"
> > +	def_bool n
> > 
> >  	select HAVE_SMP
> >  	help
> >  	
> >  	  Samsung EXYNOS5 (Cortex-A15) SoC based systems
> > 
> > @@ -30,7 +29,7 @@ comment "EXYNOS SoCs"
> > 
> >  config SOC_EXYNOS4210
> >  
> >  	bool "SAMSUNG EXYNOS4210"
> >  	default y
> > 
> > -	depends on ARCH_EXYNOS4
> > +	select ARCH_EXYNOS4
> > 
> >  	select SAMSUNG_DMADEV
> >  	select ARM_CPU_SUSPEND if PM
> >  	select S5P_PM if PM
> > 
> > @@ -42,7 +41,7 @@ config SOC_EXYNOS4210
> > 
> >  config SOC_EXYNOS4212
> >  
> >  	bool "SAMSUNG EXYNOS4212"
> >  	default y
> > 
> > -	depends on ARCH_EXYNOS4
> > +	select ARCH_EXYNOS4
> > 
> >  	select SAMSUNG_DMADEV
> >  	select S5P_PM if PM
> >  	select S5P_SLEEP if PM
> > 
> > @@ -51,6 +50,7 @@ config SOC_EXYNOS4212
> > 
> >  config SOC_EXYNOS4412
> >  
> >  	bool "SAMSUNG EXYNOS4412"
> > 
> > +	select ARCH_EXYNOS4
> > 
> >  	default y
> >  	depends on ARCH_EXYNOS4
> >  	select SAMSUNG_DMADEV
> > 
> > @@ -60,7 +60,7 @@ config SOC_EXYNOS4412
> > 
> >  config SOC_EXYNOS5250
> >  
> >  	bool "SAMSUNG EXYNOS5250"
> >  	default y
> > 
> > -	depends on ARCH_EXYNOS5
> > +	select ARCH_EXYNOS5
> > 
> >  	select SAMSUNG_DMADEV
> >  	select S5P_PM if PM
> >  	select S5P_SLEEP if PM
> > 
> > @@ -176,8 +176,6 @@ config EXYNOS_SETUP_SPI
> 
> Basically, I agree with your approach. Its CONFIG_ARCH_EXYNOSx depends
> on selecting own SOC.
> 
> BTW, I'm thinking, which one selecting is better to us board? Or SoC?...

IMHO board selecting SoC selecting arch seems to represent reality the 
best, because a board is based on particular SoC, which is based on 
particular arch (family).

> >  # machine support
> > 
> > -if ARCH_EXYNOS4
> > -
> 
> Well, according to removing above, we can select following exynos4210
> boards on other stuff. Of course, when select board, regarding soc is
> selected though. So I'm thinking I said as above.

Sorry, I'm not sure what you mean.

> >  comment "EXYNOS4210 Boards"
> >  
> >  config MACH_SMDKC210
> > 
> > @@ -397,7 +395,6 @@ config MACH_SMDK4412
> > 
> >  	select MACH_SMDK4212
> >  	help
> >  	
> >  	  Machine support for Samsung SMDK4412
> > 
> > -endif
> > 
> >  comment "Flattened Device Tree based board for EXYNOS SoCs"
> > 
> > diff --git a/drivers/devfreq/Kconfig b/drivers/devfreq/Kconfig
> > index 8545069..c559609 100644
> > --- a/drivers/devfreq/Kconfig
> > +++ b/drivers/devfreq/Kconfig
> > @@ -67,7 +67,7 @@ comment "DEVFREQ Drivers"
> > 
> >  config ARM_EXYNOS4_BUS_DEVFREQ
> >  
> >  	bool "ARM Exynos4210/4212/4412 Memory Bus DEVFREQ Driver"
> > 
> > -	depends on SOC_EXYNOS4210 || CPU_EXYNOS4212 || CPU_EXYNOS4412
> > +	depends on ARCH_EXYNOS4
> 
> I don't think so, because it depends on SoC not architecture. In
> addition, we don't know ARM_EXYNOS4_BUS_DEVFREQ is available on
> upcoming exynos4...

Hmm, good point, but wouldn't this apply as well to any Makefile option 
using CONFIG_ARCH_EXYNOS4 at the moment? (e.g. clock-exynos4.o, dev-
audio.o, etc.)

Best regards,
Tomasz Figa

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH 3/4] ARM: EXYNOS: Kconfig: Group EXYNOS{4212, 4412} into EXYNOS4X12
  2012-10-23 12:42   ` Kukjin Kim
@ 2012-10-23 19:00     ` Tomasz Figa
  0 siblings, 0 replies; 13+ messages in thread
From: Tomasz Figa @ 2012-10-23 19:00 UTC (permalink / raw)
  To: linux-arm-kernel

On Tuesday 23 of October 2012 21:42:04 Kukjin Kim wrote:
> Tomasz Figa wrote:
> > This patch adds CONFIG_EXYNOS4X12, which is automatically selected
> > whenever there is at least one SoC from Exynos4x12 line enabled. All
> > the shared dependencies of EXYNOS{4212,4412} are moved to this new
> > option.
> > 
> > This fixes build with Exynos4412 enabled and Exynos4212 and Exynos4210
> > disabled and also allows to simplify conditional compilation in
> > several
> > places.
> > 
> > Signed-off-by: Tomasz Figa <t.figa@samsung.com>
> > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> > ---
> > 
> >  arch/arm/mach-exynos/Kconfig  | 15 +++++++++------
> >  arch/arm/mach-exynos/Makefile |  2 +-
> >  arch/arm/mach-exynos/common.h |  2 +-
> >  drivers/cpufreq/Kconfig.arm   |  2 +-
> >  4 files changed, 12 insertions(+), 9 deletions(-)
> > 
> > diff --git a/arch/arm/mach-exynos/Kconfig
> > b/arch/arm/mach-exynos/Kconfig index 9f91892..6ea95f0 100644
> > --- a/arch/arm/mach-exynos/Kconfig
> > +++ b/arch/arm/mach-exynos/Kconfig
> > @@ -38,22 +38,25 @@ config SOC_EXYNOS4210
> > 
> >  	help
> >  	
> >  	  Enable EXYNOS4210 CPU support
> > 
> > -config SOC_EXYNOS4212
> > -	bool "SAMSUNG EXYNOS4212"
> > -	default y
> > +config SOC_EXYNOS4X12
> > +	def_bool n
> > 
> >  	select ARCH_EXYNOS4
> >  	select SAMSUNG_DMADEV
> > 
> > +	select ARM_CPU_SUSPEND if PM
> > 
> >  	select S5P_PM if PM
> >  	select S5P_SLEEP if PM
> > 
> > +
> > +config SOC_EXYNOS4212
> > +	bool "SAMSUNG EXYNOS4212"
> > +	select SOC_EXYNOS4X12
> > +	default y
> > 
> >  	help
> >  	
> >  	  Enable EXYNOS4212 SoC support
> >  
> >  config SOC_EXYNOS4412
> >  
> >  	bool "SAMSUNG EXYNOS4412"
> > 
> > -	select ARCH_EXYNOS4
> > +	select SOC_EXYNOS4X12
> > 
> >  	default y
> > 
> > -	depends on ARCH_EXYNOS4
> > -	select SAMSUNG_DMADEV
> > 
> >  	help
> >  	
> >  	  Enable EXYNOS4412 SoC support
> > 
> > diff --git a/arch/arm/mach-exynos/Makefile
> > b/arch/arm/mach-exynos/Makefile index ceeb8c9..f88fcb6 100644
> > --- a/arch/arm/mach-exynos/Makefile
> > +++ b/arch/arm/mach-exynos/Makefile
> > @@ -16,7 +16,7 @@ obj-$(CONFIG_ARCH_EXYNOS)	+= common.o
> > 
> >  obj-$(CONFIG_ARCH_EXYNOS4)	+= clock-exynos4.o
> >  obj-$(CONFIG_ARCH_EXYNOS5)	+= clock-exynos5.o
> >  obj-$(CONFIG_SOC_EXYNOS4210)	+= clock-exynos4210.o
> > 
> > -obj-$(CONFIG_SOC_EXYNOS4212)	+= clock-exynos4212.o
> > +obj-$(CONFIG_SOC_EXYNOS4X12)	+= clock-exynos4212.o
> > 
> >  obj-$(CONFIG_PM)		+= pm.o
> >  obj-$(CONFIG_PM_GENERIC_DOMAINS) += pm_domains.o
> > 
> > diff --git a/arch/arm/mach-exynos/common.h
> > b/arch/arm/mach-exynos/common.h index 054c786..a8cb3e6 100644
> > --- a/arch/arm/mach-exynos/common.h
> > +++ b/arch/arm/mach-exynos/common.h
> > @@ -52,7 +52,7 @@ void exynos4210_register_clocks(void);
> > 
> >  #define exynos4210_register_clocks()
> >  #endif
> > 
> > -#ifdef CONFIG_SOC_EXYNOS4212
> > +#ifdef CONFIG_SOC_EXYNOS4X12
> > 
> >  void exynos4212_register_clocks(void);
> >  
> >  #else
> > 
> > diff --git a/drivers/cpufreq/Kconfig.arm b/drivers/cpufreq/Kconfig.arm
> > index ca4ede3..d0ff91a 100644
> > --- a/drivers/cpufreq/Kconfig.arm
> > +++ b/drivers/cpufreq/Kconfig.arm
> > @@ -66,7 +66,7 @@ config ARM_EXYNOS4210_CPUFREQ
> > 
> >  	  SoC (S5PV310 or S5PC210).
> >  
> >  config ARM_EXYNOS4X12_CPUFREQ
> > 
> > -	def_bool (SOC_EXYNOS4212 || SOC_EXYNOS4412)
> > +	def_bool SOC_EXYNOS4X12
> > 
> >  	help
> >  	
> >  	  This adds the CPUFreq driver for Samsung EXYNOS4X12
> >  	  SoC (EXYNOS4212 or EXYNOS4412).
> > 
> > --
> > 1.7.12
> 
> Well, do we _really_ need to define CONFIG_SOC_EXYNOS4X12 for supporting
> common part of exynos4212 and exynos4412? In my opinion, it will cause
> confusion rather than reducing code size. Let's just use its own name
> for SoC.

There are files that must be compiled if any of these SoCs is enabled, for 
example clock-exynos4212.o (it contains clocks for both of them regardless 
of the misleading name).

This common Kconfig entry would be used in Makefiles for such cases.

Best regards,
Tomasz Figa

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH 4/4] ARM: EXYNOS: Kconfig: Remove dependencies on particular SoCs from DT machines
  2012-10-23 13:27   ` Kukjin Kim
@ 2012-10-23 19:28     ` Tomasz Figa
  0 siblings, 0 replies; 13+ messages in thread
From: Tomasz Figa @ 2012-10-23 19:28 UTC (permalink / raw)
  To: linux-arm-kernel

On Tuesday 23 of October 2012 22:27:41 Kukjin Kim wrote:
> Tomasz Figa wrote:
> > MACH_EXYNOS{4,5}_DT are used for whole SoC lines, so they should
> > depend
> > on ARCH_EXYNOS{4,5} rather than on particular SoCs.
> > 
> > Signed-off-by: Tomasz Figa <t.figa@samsung.com>
> > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> > ---
> > 
> >  arch/arm/mach-exynos/Kconfig | 2 --
> >  1 file changed, 2 deletions(-)
> > 
> > diff --git a/arch/arm/mach-exynos/Kconfig
> > b/arch/arm/mach-exynos/Kconfig index 6ea95f0..2e82ce7 100644
> > --- a/arch/arm/mach-exynos/Kconfig
> > +++ b/arch/arm/mach-exynos/Kconfig
> > @@ -404,7 +404,6 @@ comment "Flattened Device Tree based board for
> > EXYNOS SoCs"
> > 
> >  config MACH_EXYNOS4_DT
> >  
> >  	bool "Samsung Exynos4 Machine using device tree"
> >  	depends on ARCH_EXYNOS4
> > 
> > -	select SOC_EXYNOS4210
> > 
> >  	select USE_OF
> >  	select ARM_AMBA
> >  	select HAVE_SAMSUNG_KEYPAD if INPUT_KEYBOARD
> > 
> > @@ -419,7 +418,6 @@ config MACH_EXYNOS4_DT
> > 
> >  config MACH_EXYNOS5_DT
> >  
> >  	bool "SAMSUNG EXYNOS5 Machine using device tree"
> >  	depends on ARCH_EXYNOS5
> > 
> > -	select SOC_EXYNOS5250
> > 
> >  	select USE_OF
> >  	select ARM_AMBA
> >  	help
> > 
> > --
> > 1.7.12
> 
> Hmm...your comment is correct, but we need to think again its selecting
> order, between ARCH name, SoC and board. In addition, in case of
> MACH_XXX_DT depending on SoC is rather to be supposed...

With device tree the situation is a bit different than with boards, 
because mach-exynos4-dt does not limit the scope to a single SoC, but 
rather to the whole Exynos4 arch/family.

Making MACH_EXYNOS4_DT select all SOC_EXYNOS4* would remove the ability to 
enable/disable support for particular Exynos4 SoCs, so in my opinion it is 
not a good option.

Selecting ARCH_EXYNOS4 is not enough for the kernel to work, because at 
least one SoC must be enabled.

So I think that letting the user select the SoCs he want to be supported 
and making MACH_EXYNOS4_DT depend on at least one of Exynos4 SoCs (which 
is implied by ARCH_EXYNOS4 enabled) is the most reasonable variant.

Btw. Maybe this could go in pair with something like

 static char const *exynos4_dt_compat[] __initdata = {
+#ifdef CONFIG_SOC_EXYNOS4210
 	"samsung,exynos4210",
+#endif
/* and so on for any Exynos4 SoCs added in future... */
 	NULL
 };

to make the kernel reject booting DT-enabled boards with unsupported SoCs. 
What do you think?

Best regards,
Tomasz Figa

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2012-10-23 19:28 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-10-08 13:02 [PATCH 0/4] ARM: EXYNOS: Kconfig cleanup Tomasz Figa
2012-10-08 13:02 ` [PATCH 1/4] ARM: EXYNOS: Kconfig: Rename CPU_EXYNOS4210 to SOC_EXYNOS4210 Tomasz Figa
2012-10-23 12:24   ` Kukjin Kim
2012-10-23 18:29     ` Tomasz Figa
2012-10-08 13:02 ` [PATCH 2/4] ARM: EXYNOS: Kconfig: Sort out dependencies between options Tomasz Figa
2012-10-23 12:35   ` Kukjin Kim
2012-10-23 18:57     ` Tomasz Figa
2012-10-08 13:02 ` [PATCH 3/4] ARM: EXYNOS: Kconfig: Group EXYNOS{4212,4412} into EXYNOS4X12 Tomasz Figa
2012-10-23 12:42   ` Kukjin Kim
2012-10-23 19:00     ` [PATCH 3/4] ARM: EXYNOS: Kconfig: Group EXYNOS{4212, 4412} " Tomasz Figa
2012-10-08 13:02 ` [PATCH 4/4] ARM: EXYNOS: Kconfig: Remove dependencies on particular SoCs from DT machines Tomasz Figa
2012-10-23 13:27   ` Kukjin Kim
2012-10-23 19:28     ` Tomasz Figa

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).