ARM: EXYNOS: Kconfig cleanup
Subsystems (11)
cover ARM: EXYNOS: Kconfig cleanup
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(-)
Signature · 1 line
1.7.12
PATCH 1/4 ARM: EXYNOS: Kconfig: Rename CPU_EXYNOS4210 to SOC_EXYNOS4210
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).
--- 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(-)
arch/arm/mach-exynos/Kconfig +7 -7
@@ -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
arch/arm/mach-exynos/Makefile +1 -1
@@ -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
arch/arm/mach-exynos/common.h +1 -1
@@ -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
arch/arm/plat-samsung/include/plat/cpu.h +1 -1
@@ -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
drivers/cpufreq/Kconfig.arm +1 -1
@@ -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).
drivers/devfreq/Kconfig +1 -1
@@ -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
drivers/mmc/host/sdhci-s3c.c +1 -1
@@ -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 , };
drivers/tty/serial/samsung.c +1 -1
@@ -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) {
Signature · 1 line
1.7.12
PATCH 1/4 ARM: EXYNOS: Kconfig: Rename CPU_EXYNOS4210 to SOC_EXYNOS4210
Quoted 7 lines · Tomasz Figa
This patch renames
CONFIG_CPU_EXYNOS4210toCONFIG_SOC_EXYNOS4210to 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 <[email protected]>Signed-off-by Kyungmin Park <[email protected]>
Quoted 138 lines
--- 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(-)arch/arm/mach-exynos/Kconfig +6
-6@@ -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 EXYNOSSoCs"
configMACH_EXYNOS4_DTarch/arm/mach-exynos/Kconfig +1
-1bool "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_KEYBOARDarch/arm/mach-exynos/Makefile +1
-1@@ -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.oarch/arm/mach-exynos/common.h +1
-1@@ -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 arch/arm/plat- renamed from arch/arm/plat-samsung/include/plat/cpu.h +0
-0
samsung/include/plat/cpu.h
index ace4451..021fff0 100644arch/arm/plat-samsung/include/plat/cpu.h +1
-1@@ -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() 0drivers/cpufreq/Kconfig.arm +1
-1@@ -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).drivers/devfreq/Kconfig +0
-0
drivers/devfreq/Kconfig comment "DEVFREQ Drivers" · line 70
Quoted 5 lines
drivers/devfreq/Kconfig +1
-1@@ -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 <[email protected]>
Subject: PM / devfreq: fix the dependency for EXYNOS4212 and EXYNOS4412
The CPU_EXYNOS4212 and CPU_EXYNOS4412 should be fixed.
drivers/devfreq/Kconfig +1 -1
@@ -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<--------------------------------------
Quoted 29 lines
drivers/devfreq/Kconfig +0
-0select ARCH_HAS_OPP select DEVFREQ_GOV_SIMPLE_ONDEMAND helpdrivers/mmc/host/sdhci-s3c.c +1
-1@@ -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 , };drivers/tty/serial/samsung.c +1
-1@@ -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 = {
Quoted 3 lines
.info = &(struct
s3c24xx_uart_info) {
--
1.7.12
Tomasz, looks ok to me but I think, accordingly, following should be updated together?
8<--------------------------------
drivers/gpio/gpio-samsung.c +0 -0
@@ -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)
(quoted diff) +0 -0
b/drivers/thermal/exynos_thermal.c
index fd03e85..8be9282 100644
drivers/thermal/exynos_thermal.c +1 -1
@@ -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 <[email protected]>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd.
PATCH 1/4 ARM: EXYNOS: Kconfig: Rename CPU_EXYNOS4210 to SOC_EXYNOS4210
Hi Kgene,
Thanks for your comments.
Quoted 28 lines · On Tuesday 23 of October 2012 21:24:54 Kukjin Kim wrote:
Quoted 6 lines · Tomasz Figa
This patch renames
CONFIG_CPU_EXYNOS4210toCONFIG_SOC_EXYNOS4210to 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 <[email protected]>Signed-off-by Kyungmin Park <[email protected]>Cc Rafael J. Wysocki <[email protected]>Cc MyungJoo Ham <[email protected]>Cc Chris Ball <[email protected]>Cc Greg Kroah-Hartman <[email protected]>Cc Grant Likely <[email protected]>Cc Linus Walleij <[email protected]>Cc Zhang Rui <[email protected]>Quoted 12 lines
---
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]
Quoted 37 lines
drivers/devfreq/Kconfig comment "DEVFREQ Drivers" · line 72
Quoted 12 lines
drivers/devfreq/Kconfig +1
-1@@ -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 <[email protected]>
Subject: PM / devfreq: fix the dependency for EXYNOS4212 and EXYNOS4412The
CPU_EXYNOS4212andCPU_EXYNOS4412should be fixed.drivers/devfreq/Kconfig +1
-1@@ -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
Quoted 1 line
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)
Quoted 96 lines
Quoted 42 lines
drivers/devfreq/Kconfig +0
-0select ARCH_HAS_OPPdrivers/devfreq/Kconfig +0
-0select DEVFREQ_GOV_SIMPLE_ONDEMAND help(quoted diff) +0
-0
b/drivers/mmc/host/sdhci-s3c.cindex a50c205..b090415 100644drivers/mmc/host/sdhci-s3c.c +1
-1@@ -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 = {drivers/mmc/host/sdhci-s3c.c +0
-0.sdhci_quirks = SDHCI_QUIRK_NONSTANDARD_CLOCK, };(quoted diff) +0
-0
b/drivers/tty/serial/samsung.cindex 02d07bf..175ba6e 100644drivers/tty/serial/samsung.c +0
-1@@ -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) || \>drivers/tty/serial/samsung.c +0
-1defined(CONFIG_SOC_EXYNOS4412) || defined(CONFIG_SOC_EXYNOS5250)static struct s3c24xx_serial_drv_data exynos4210_serial_drv_data = { .info = &(struct s3c24xx_uart_info ) { --Quoted 1 line
1.7.12
Tomasz, looks ok to me but I think, accordingly, following should be updated together?
8<--------------------------------
drivers/gpio/gpio-samsung.c +1
-1@@ -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;drivers/gpio/gpio-samsung.c +1
-1void __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
drivers/gpio/gpio-samsung.c +1
-1@@ -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 )drivers/thermal/exynos_thermal.c +1
-1@@ -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,
Quoted 2 lines
.trigger_levels[0] = 5,
8<--------------------------------
Yes, I must have missed them somehow, will include these missing changes in next version.
Best regards,
Tomasz Figa
PATCH 2/4 ARM: EXYNOS: Kconfig: Sort out dependencies between options
In reply to Tomasz FigaThis 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.
--- 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(-)
arch/arm/mach-exynos/Kconfig +6 -9
@@ -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"
drivers/devfreq/Kconfig +1 -1
@@ -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
drivers/mmc/host/sdhci-s3c.c +1 -1
@@ -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 , };
drivers/tty/serial/samsung.c +1 -2
@@ -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",
Signature · 1 line
1.7.12
PATCH 2/4 ARM: EXYNOS: Kconfig: Sort out dependencies between options
Quoted 77 lines · Tomasz Figa
This patch modifies the dependencies between Exynos-related
Kconfigoptions 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 <[email protected]>Signed-off-by Kyungmin Park <[email protected]>--- 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(-)arch/arm/mach-exynos/Kconfig +6
-6@@ -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
arch/arm/mach-exynos/Kconfig config EXYNOS_SETUP_SPI · line 176
Quoted 1 line
arch/arm/mach-exynos/Kconfig +0
-0@@ -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?...
arch/arm/mach-exynos/Kconfig config EXYNOS_SETUP_SPI · line 180
Quoted 4 lines
arch/arm/mach-exynos/Kconfig +0
-2# 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.
Quoted 16 lines
arch/arm/mach-exynos/Kconfig +0
-1comment "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"drivers/devfreq/Kconfig +0
-0
drivers/devfreq/Kconfig comment "DEVFREQ Drivers" · line 70
Quoted 5 lines
drivers/devfreq/Kconfig +1
-1@@ -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...
drivers/mmc/host/sdhci-s3c.c static const struct dev_pm_ops sdhci_s3c_pmops = { · line 719
Quoted 13 lines
drivers/devfreq/Kconfig +0
-0select ARCH_HAS_OPP select DEVFREQ_GOV_SIMPLE_ONDEMAND helpdrivers/mmc/host/sdhci-s3c.c +1
-1@@ -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.
Quoted 8 lines
drivers/mmc/host/sdhci-s3c.c +0
-0static struct sdhci_s3c_drv_data exynos4_sdhci_drv_data = { .sdhci_quirks =SDHCI_QUIRK_NONSTANDARD_CLOCK , };drivers/tty/serial/samsung.c +0
-0
drivers/tty/serial/samsung.c static struct s3c24xx_serial_drv_data · line 1598
Quoted 7 lines
drivers/tty/serial/samsung.c +1
-2@@ -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.
Quoted 5 lines
drivers/tty/serial/samsung.c +0
-0static 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 <[email protected]>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd.
PATCH 2/4 ARM: EXYNOS: Kconfig: Sort out dependencies between options
Quoted 104 lines · On Tuesday 23 of October 2012 21:35:32 Kukjin Kim wrote:
Quoted 103 lines · Tomasz Figa
This patch modifies the dependencies between Exynos-related
Kconfigoptions 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 <[email protected]>Signed-off-by Kyungmin Park <[email protected]>---
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(-)(quoted diff) +0
-0b/arch/arm/mach-exynos/Kconfig index 05dcd07..9f91892 100644
arch/arm/mach-exynos/Kconfig +3
-4@@ -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_EXYNOS4arch/arm/mach-exynos/Kconfig +1
-1select 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_EXYNOS4arch/arm/mach-exynos/Kconfig +1
-0select 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_EXYNOS4arch/arm/mach-exynos/Kconfig +1
-1default 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_EXYNOS5arch/arm/mach-exynos/Kconfig +0
-0select SAMSUNG_DMADEV select S5P_PM if PM select S5P_SLEEP if PM
Quoted 6 lines
arch/arm/mach-exynos/Kconfig config EXYNOS_SETUP_SPI
Quoted 1 line
arch/arm/mach-exynos/Kconfig +0
-0@@ -176,8 +176,6 @@ config EXYNOS_SETUP_SPIBasically, I agree with your approach. Its
CONFIG_ARCH_EXYNOSxdepends 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).
Quoted 8 lines
arch/arm/mach-exynos/Kconfig config EXYNOS_SETUP_SPI · line 180
Quoted 4 lines
arch/arm/mach-exynos/Kconfig +0
-2# 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.
Quoted 23 lines
Quoted 23 lines
arch/arm/mach-exynos/Kconfig +0
-1comment "EXYNOS4210 Boards" config MACH_SMDKC210@@ -397,7 +395,6 @@ config MACH_SMDK4412 select MACH_SMDK4212 help Machine support for Samsung SMDK4412 -endifcomment "Flattened Device Tree based board for EXYNOS SoCs"
drivers/devfreq/Kconfig +0
-0@@ -67,7 +67,7 @@ comment "DEVFREQ Drivers" config ARM_EXYNOS4_BUS_DEVFREQ
Quoted 8 lines
drivers/devfreq/Kconfig comment "DEVFREQ Drivers" · line 70
Quoted 4 lines
drivers/devfreq/Kconfig +1
-1bool "ARM Exynos4210/4212/4412 Memory Bus DEVFREQ Driver" - depends on SOC_EXYNOS4210 || CPU_EXYNOS4212 || CPU_EXYNOS4412 + depends on ARCH_EXYNOS4I don't think so, because it depends on SoC not architecture. In addition, we don't know
ARM_EXYNOS4_BUS_DEVFREQis 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
PATCH 3/4 ARM: EXYNOS: Kconfig: Group EXYNOS{4212,4412} into EXYNOS4X12
In reply to Tomasz FigaThis 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.
--- 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(-)
arch/arm/mach-exynos/Kconfig +9 -6
@@ -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
arch/arm/mach-exynos/Makefile +1 -1
@@ -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
arch/arm/mach-exynos/common.h +1 -1
@@ -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
drivers/cpufreq/Kconfig.arm +1 -1
@@ -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).
Signature · 1 line
1.7.12
PATCH 3/4 ARM: EXYNOS: Kconfig: Group EXYNOS{4212,4412} into EXYNOS4X12
Quoted 95 lines · Tomasz Figa
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 <[email protected]>Signed-off-by Kyungmin Park <[email protected]>--- 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(-)arch/arm/mach-exynos/Kconfig +9
-6@@ -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 supportarch/arm/mach-exynos/Makefile +1
-1@@ -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.oarch/arm/mach-exynos/common.h +1
-1@@ -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 drivers/cpufreq/Kconfig.arm +1
-2@@ -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). --
Quoted 1 line
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 <[email protected]>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd.
PATCH 3/4 ARM: EXYNOS: Kconfig: Group EXYNOS{4212, 4412} into EXYNOS4X12
Quoted 121 lines · On Tuesday 23 of October 2012 21:42:04 Kukjin Kim wrote:
Quoted 120 lines · Tomasz Figa
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 <[email protected]>Signed-off-by Kyungmin Park <[email protected]>---
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(-)(quoted diff) +0
-0b/arch/arm/mach-exynos/Kconfig index 9f91892..6ea95f0 100644
arch/arm/mach-exynos/Kconfig +9
-6@@ -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(quoted diff) +0
-0b/arch/arm/mach-exynos/Makefile index ceeb8c9..f88fcb6 100644
arch/arm/mach-exynos/Makefile +1
-1@@ -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.oobj-$(CONFIG_PM) += pm.o
obj-$(CONFIG_PM_GENERIC_DOMAINS) += pm_domains.o(quoted diff) +0
-0
b/arch/arm/mach-exynos/common.hindex 054c786..a8cb3e6 100644arch/arm/mach-exynos/common.h +1
-1@@ -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
drivers/cpufreq/Kconfig.arm +1
-1@@ -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_EXYNOS4X12drivers/cpufreq/Kconfig.arm +0
-0help This adds the CPUFreq driver for Samsung EXYNOS4X12 SoC (EXYNOS4212 or EXYNOS4412).
Quoted 7 lines
Quoted 2 lines
--
1.7.12Well, do we _really_ need to define
CONFIG_SOC_EXYNOS4X12for 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
PATCH 4/4 ARM: EXYNOS: Kconfig: Remove dependencies on particular SoCs from DT machines
In reply to Tomasz FigaMACH_EXYNOS{4,5}_DT are used for whole SoC lines, so they should depend on ARCH_EXYNOS{4,5} rather than on particular SoCs.
--- arch/arm/mach-exynos/Kconfig | 2 -- 1 file changed, 2 deletions(-)
arch/arm/mach-exynos/Kconfig +0 -2
@@ -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
Signature · 1 line
1.7.12
PATCH 4/4 ARM: EXYNOS: Kconfig: Remove dependencies on particular SoCs from DT machines
Quoted 32 lines · Tomasz Figa
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 <[email protected]>Signed-off-by Kyungmin Park <[email protected]>--- arch/arm/mach-exynos/Kconfig | 2 -- 1 file changed, 2 deletions(-)arch/arm/mach-exynos/Kconfig +0
-0@@ -404,7 +404,6 @@ comment "Flattened Device Tree based board for EXYNOSSoCs"
configMACH_EXYNOS4_DTarch/arm/mach-exynos/Kconfig +0
-3bool "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 --
Quoted 1 line
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 <[email protected]>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd.
PATCH 4/4 ARM: EXYNOS: Kconfig: Remove dependencies on particular SoCs from DT machines
Quoted 43 lines · On Tuesday 23 of October 2012 22:27:41 Kukjin Kim wrote:
Quoted 42 lines · Tomasz Figa
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 <[email protected]>Signed-off-by Kyungmin Park <[email protected]>---
arch/arm/mach-exynos/Kconfig | 2 -- 1 file changed, 2 deletions(-)(quoted diff) +0
-0b/arch/arm/mach-exynos/Kconfig index 6ea95f0..2e82ce7 100644
arch/arm/mach-exynos/Kconfig +0
-0@@ -404,7 +404,6 @@ comment "Flattened Device Tree based board forEXYNOS SoCs"
config
MACH_EXYNOS4_DTarch/arm/mach-exynos/Kconfig +0
-2bool "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_EXYNOS5250arch/arm/mach-exynos/Kconfig +0
-0select USE_OF select ARM_AMBA help
Quoted 6 lines
Quoted 2 lines
--
1.7.12Hmm...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_DTdepending 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