Consolidate Exynos machine code
cover Consolidate Exynos machine code
This patch series consolidates the Exynos machine code and common code into a single file to avoid code duplication and introduces generic compatible strings for Exynos4 and 5 SoC series.
Complete discussion and motivation for this series is found here:
http://comments.gmane.org/gmane.linux.kernel.samsung-soc/27268
This series is based on the latest linux-next and depends on
1. Tomasz Figa's PM consolidation series 1 and 2
2. Patch: ARM: SAMSUNG: Reorganize calls to reserve memory for MFC
http://www.spinics.net/lists/linux-samsung-soc/msg25501.html
3. Patch: ARM: EXYNOS: Add support to reserve memory for MFC-v7
http://www.spinics.net/lists/arm-kernel/msg315940.html
4. Kconfig and CPU init Consolidation series
http://article.gmane.org/gmane.linux.kernel.samsung-soc/28216
Sachin Kamat (4):
ARM: SAMSUNG: Introduce generic Exynos4 and 5 helpers
ARM: EXYNOS: Consolidate Exynos4 and 5 machine files
ARM: EXYNOS: Add generic compatible strings
ARM: dts: Update Exynos DT files with generic compatible strings
arch/arm/boot/dts/exynos4210-origen.dts | 2 +-
arch/arm/boot/dts/exynos4210-smdkv310.dts | 2 +-
arch/arm/boot/dts/exynos4210-trats.dts | 2 +-
arch/arm/boot/dts/exynos4210-universal_c210.dts | 2 +-
arch/arm/boot/dts/exynos4210.dtsi | 2 +-
arch/arm/boot/dts/exynos4212.dtsi | 2 +-
arch/arm/boot/dts/exynos4412-odroidx.dts | 2 +-
arch/arm/boot/dts/exynos4412-origen.dts | 2 +-
arch/arm/boot/dts/exynos4412-smdk4412.dts | 2 +-
arch/arm/boot/dts/exynos4412-tiny4412.dts | 2 +-
arch/arm/boot/dts/exynos4412-trats2.dts | 2 +-
arch/arm/boot/dts/exynos4412.dtsi | 2 +-
arch/arm/boot/dts/exynos5250-arndale.dts | 2 +-
arch/arm/boot/dts/exynos5250-smdk5250.dts | 2 +-
arch/arm/boot/dts/exynos5250-snow.dts | 2 +-
arch/arm/boot/dts/exynos5250.dtsi | 2 +-
arch/arm/boot/dts/exynos5420-arndale-octa.dts | 2 +-
arch/arm/boot/dts/exynos5420-smdk5420.dts | 2 +-
arch/arm/boot/dts/exynos5420.dtsi | 2 +-
arch/arm/boot/dts/exynos5440-sd5v1.dts | 2 +-
arch/arm/boot/dts/exynos5440-ssdk5440.dts | 2 +-
arch/arm/boot/dts/exynos5440.dtsi | 2 +-
arch/arm/mach-exynos/Makefile | 7 +-
arch/arm/mach-exynos/common.h | 3 +-
arch/arm/mach-exynos/{common.c => exynos.c} | 135 ++++++++++++++++-------
arch/arm/mach-exynos/mach-exynos4-dt.c | 53 ---------
arch/arm/mach-exynos/mach-exynos5-dt.c | 83 --------------
arch/arm/mach-exynos/regs-pmu.h | 1 -
arch/arm/plat-samsung/include/plat/cpu.h | 4 +
29 files changed, 121 insertions(+), 209 deletions(-)
rename arch/arm/mach-exynos/{common.c => exynos.c} (75%)
delete mode 100644 arch/arm/mach-exynos/mach-exynos4-dt.c
delete mode 100644 arch/arm/mach-exynos/mach-exynos5-dt.cSignature · 1 line
1.7.9.5
PATCH 1/4 ARM: SAMSUNG: Introduce generic Exynos4 and 5 helpers
Add helpers to check for Exynos4 and 5 family of SoCs. This will eliminate comparing long list of SoCs and make code simpler.
--- arch/arm/plat-samsung/include/plat/cpu.h | 4 ++++ 1 file changed, 4 insertions(+)
arch/arm/plat-samsung/include/plat/cpu.h +4 -0
@@ -166,6 +166,10 @@ IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID, EXYNOS5_SOC_MASK)# define soc_is_exynos5440 () 0#endif +#define soc_is_exynos4 () (soc_is_exynos4210() || soc_is_exynos4212() || \ + soc_is_exynos4412()) +#define soc_is_exynos5 () (soc_is_exynos5250() || soc_is_exynos5420()) +#define IODESC_ENT (x) { (unsigned long)S3C24XX_VA_##x, __phys_to_pfn(S3C24XX_PA_##x), S3C24XX_SZ_##x, MT_DEVICE }#ifndef KHZ
Signature · 1 line
1.7.9.5
PATCH 2/4 ARM: EXYNOS: Consolidate Exynos4 and 5 machine files
In reply to Sachin KamatSince there is very little difference between these two files, they can be easily combined into one with necessary SoC checks. While at it also merge the common.c file into this as it does not have any other users.
---
arch/arm/mach-exynos/Makefile | 7 +-
arch/arm/mach-exynos/common.h | 3 +-
arch/arm/mach-exynos/{common.c => exynos.c} | 133 ++++++++++++++++++---------
arch/arm/mach-exynos/mach-exynos4-dt.c | 53 -----------
arch/arm/mach-exynos/mach-exynos5-dt.c | 83 -----------------
arch/arm/mach-exynos/regs-pmu.h | 1 -
6 files changed, 93 insertions(+), 187 deletions(-)
rename arch/arm/mach-exynos/{common.c => exynos.c} (75%)
delete mode 100644 arch/arm/mach-exynos/mach-exynos4-dt.c
delete mode 100644 arch/arm/mach-exynos/mach-exynos5-dt.carch/arm/mach-exynos/Makefile +1 -6
@@ -12,7 +12,7 @@ obj- := # Core -obj-$(CONFIG_ARCH_EXYNOS) += common.o +obj-$(CONFIG_ARCH_EXYNOS) += exynos.o obj-$(CONFIG_PM_SLEEP) += pm.o sleep.o obj-$(CONFIG_PM_GENERIC_DOMAINS) += pm_domains.o
@@ -29,8 +29,3 @@ obj-$(CONFIG_ARCH_EXYNOS) += firmware.o plus_sec := $(call as-instr,.arch_extension sec,+sec) AFLAGS_exynos-smc.o :=-Wa,-march=armv7-a$(plus_sec) - -# machine support - -obj-$(CONFIG_ARCH_EXYNOS4) += mach-exynos4-dt.o -obj-$(CONFIG_ARCH_EXYNOS5) += mach-exynos5-dt.o
arch/arm/mach-exynos/common.h +1 -2
@@ -19,8 +19,7 @@ void mct_init(void __iomem *base, int irq_g0, int irq_l0, int irq_l1);struct map_desc ;void exynos_init_io (void ); -void exynos4_restart (enum reboot_mode mode,const char *cmd); -void exynos5_restart (enum reboot_mode mode,const char *cmd); +void exynos_restart (enum reboot_mode mode,const char *cmd);void exynos_cpuidle_init (void );void exynos_cpufreq_init (void );void exynos_init_late (void );
arch/arm/mach-exynos/exynos.c renamed from arch/arm/mach-exynos/common.c +91 -42
178 lines not on this page · raw message
arch/arm/mach-exynos/mach-exynos4-dt.c deleted +0 -53
53 lines not on this page · raw message
arch/arm/mach-exynos/mach-exynos5-dt.c deleted +0 -83
83 lines not on this page · raw message
arch/arm/mach-exynos/regs-pmu.h +0 -1
@@ -26,7 +26,6 @@#define S5P_USE_STANDBY_WFI0 (1 << 16)#define S5P_USE_STANDBY_WFE0 (1 << 24) -#define S5P_SWRESET S5P_PMUREG(0x0400)#define EXYNOS_SWRESET S5P_PMUREG(0x0400)#define EXYNOS5440_SWRESET S5P_PMUREG(0x00C4)
Signature · 1 line
1.7.9.5
PATCH 3/4 ARM: EXYNOS: Add generic compatible strings
In reply to Sachin KamatAdd generic compatible strings for Exynos4 and 5 platforms so that future SoCs can use them if there is nothing extra/specific to be differentiated.
--- arch/arm/mach-exynos/exynos.c | 2 ++ 1 file changed, 2 insertions(+)
arch/arm/mach-exynos/exynos.c +2 -0
@@ -343,9 +343,11 @@ static void __init exynos_dt_machine_init(void) }static char const *exynos_dt_compat[]__initconst = { +"samsung,exynos4" ,"samsung,exynos4210" ,"samsung,exynos4212" ,"samsung,exynos4412" , +"samsung,exynos5" ,"samsung,exynos5250" ,"samsung,exynos5420" ,"samsung,exynos5440" ,
Signature · 1 line
1.7.9.5
PATCH 4/4 ARM: dts: Update Exynos DT files with generic compatible strings
In reply to Sachin KamatAdd generic compatible strings to the respective board DT files.
--- arch/arm/boot/dts/exynos4210-origen.dts | 2 +- arch/arm/boot/dts/exynos4210-smdkv310.dts | 2 +- arch/arm/boot/dts/exynos4210-trats.dts | 2 +- arch/arm/boot/dts/exynos4210-universal_c210.dts | 2 +- arch/arm/boot/dts/exynos4210.dtsi | 2 +- arch/arm/boot/dts/exynos4212.dtsi | 2 +- arch/arm/boot/dts/exynos4412-odroidx.dts | 2 +- arch/arm/boot/dts/exynos4412-origen.dts | 2 +- arch/arm/boot/dts/exynos4412-smdk4412.dts | 2 +- arch/arm/boot/dts/exynos4412-tiny4412.dts | 2 +- arch/arm/boot/dts/exynos4412-trats2.dts | 2 +- arch/arm/boot/dts/exynos4412.dtsi | 2 +- arch/arm/boot/dts/exynos5250-arndale.dts | 2 +- arch/arm/boot/dts/exynos5250-smdk5250.dts | 2 +- arch/arm/boot/dts/exynos5250-snow.dts | 2 +- arch/arm/boot/dts/exynos5250.dtsi | 2 +- arch/arm/boot/dts/exynos5420-arndale-octa.dts | 2 +- arch/arm/boot/dts/exynos5420-smdk5420.dts | 2 +- arch/arm/boot/dts/exynos5420.dtsi | 2 +- arch/arm/boot/dts/exynos5440-sd5v1.dts | 2 +- arch/arm/boot/dts/exynos5440-ssdk5440.dts | 2 +- arch/arm/boot/dts/exynos5440.dtsi | 2 +- 22 files changed, 22 insertions(+), 22 deletions(-)
arch/arm/boot/dts/exynos4210-origen.dts +1 -1
@@ -19,7 +19,7 @@ / { model = "Insignal Origen evaluation board based on Exynos4210"; - compatible = "insignal,origen", "samsung,exynos4210"; + compatible = "insignal,origen", "samsung,exynos4210", "samsung,exynos4"; memory { reg = <0x40000000 0x10000000
arch/arm/boot/dts/exynos4210-smdkv310.dts +1 -1
@@ -19,7 +19,7 @@ / { model = "Samsung smdkv310 evaluation board based on Exynos4210"; - compatible = "samsung,smdkv310", "samsung,exynos4210"; + compatible = "samsung,smdkv310", "samsung,exynos4210", "samsung,exynos4"; memory { reg = <0x40000000 0x80000000>;
arch/arm/boot/dts/exynos4210-trats.dts +1 -1
@@ -17,7 +17,7 @@ / { model = "Samsung Trats based on Exynos4210"; - compatible = "samsung,trats", "samsung,exynos4210"; + compatible = "samsung,trats", "samsung,exynos4210", "samsung,exynos4"; memory { reg = <0x40000000 0x10000000
arch/arm/boot/dts/exynos4210-universal_c210.dts +1 -1
@@ -17,7 +17,7 @@ / { model = "Samsung Universal C210 based on Exynos4210 rev0"; - compatible = "samsung,universal_c210", "samsung,exynos4210"; + compatible = "samsung,universal_c210", "samsung,exynos4210", "samsung,exynos4"; memory { reg = <0x40000000 0x10000000
arch/arm/boot/dts/exynos4210.dtsi +1 -1
@@ -23,7 +23,7 @@ #include "exynos4210-pinctrl.dtsi" / { - compatible = "samsung,exynos4210"; + compatible = "samsung,exynos4210", "samsung,exynos4"; aliases { pinctrl0 = &pinctrl_0;
arch/arm/boot/dts/exynos4212.dtsi +1 -1
@@ -20,7 +20,7 @@ #include "exynos4x12.dtsi" / { - compatible = "samsung,exynos4212"; + compatible = "samsung,exynos4212", "samsung,exynos4"; combiner: interrupt-controller@10440000 { samsung,combiner-nr = <18>;
arch/arm/boot/dts/exynos4412-odroidx.dts +1 -1
@@ -16,7 +16,7 @@ / { model = "Hardkernel ODROID-X board based on Exynos4412"; - compatible = "hardkernel,odroid-x", "samsung,exynos4412"; + compatible = "hardkernel,odroid-x", "samsung,exynos4412", "samsung,exynos4"; memory { reg = <0x40000000 0x40000000>;
arch/arm/boot/dts/exynos4412-origen.dts +1 -1
@@ -17,7 +17,7 @@ / { model = "Insignal Origen evaluation board based on Exynos4412"; - compatible = "insignal,origen4412", "samsung,exynos4412"; + compatible = "insignal,origen4412", "samsung,exynos4412", "samsung,exynos4"; memory { reg = <0x40000000 0x40000000>;
arch/arm/boot/dts/exynos4412-smdk4412.dts +1 -1
@@ -17,7 +17,7 @@ / { model = "Samsung SMDK evaluation board based on Exynos4412"; - compatible = "samsung,smdk4412", "samsung,exynos4412"; + compatible = "samsung,smdk4412", "samsung,exynos4412", "samsung,exynos4"; memory { reg = <0x40000000 0x40000000>;
arch/arm/boot/dts/exynos4412-tiny4412.dts +1 -1
@@ -16,7 +16,7 @@ / { model = "FriendlyARM TINY4412 board based on Exynos4412"; - compatible = "friendlyarm,tiny4412", "samsung,exynos4412"; + compatible = "friendlyarm,tiny4412", "samsung,exynos4412", "samsung,exynos4"; memory { reg = <0x40000000 0x40000000>;
arch/arm/boot/dts/exynos4412-trats2.dts +1 -1
@@ -17,7 +17,7 @@ / { model = "Samsung Trats 2 based on Exynos4412"; - compatible = "samsung,trats2", "samsung,exynos4412"; + compatible = "samsung,trats2", "samsung,exynos4412", "samsung,exynos4"; aliases { i2c8 = &i2c_ak8975;
arch/arm/boot/dts/exynos4412.dtsi +1 -1
@@ -20,7 +20,7 @@ #include "exynos4x12.dtsi" / { - compatible = "samsung,exynos4412"; + compatible = "samsung,exynos4412", "samsung,exynos4"; combiner: interrupt-controller at 10440000 { samsung,combiner-nr = <20>;
arch/arm/boot/dts/exynos5250-arndale.dts +1 -1
@@ -15,7 +15,7 @@ / { model = "Insignal Arndale evaluation board based on EXYNOS5250"; - compatible = "insignal,arndale", "samsung,exynos5250"; + compatible = "insignal,arndale", "samsung,exynos5250", "samsung,exynos5"; memory { reg = <0x40000000 0x80000000>;
arch/arm/boot/dts/exynos5250-smdk5250.dts +1 -1
@@ -14,7 +14,7 @@ / { model = "SAMSUNG SMDK5250 board based on EXYNOS5250"; - compatible = "samsung,smdk5250", "samsung,exynos5250"; + compatible = "samsung,smdk5250", "samsung,exynos5250", "samsung,exynos5"; aliases { };
arch/arm/boot/dts/exynos5250-snow.dts +1 -1
@@ -14,7 +14,7 @@ / { model = "Google Snow"; - compatible = "google,snow", "samsung,exynos5250"; + compatible = "google,snow", "samsung,exynos5250", "samsung,exynos5"; aliases { i2c104 = &i2c_104;
arch/arm/boot/dts/exynos5250.dtsi +1 -1
@@ -24,7 +24,7 @@ #include <dt-bindings/clk/exynos-audss-clk.h> / { - compatible = "samsung,exynos5250"; + compatible = "samsung,exynos5250", "samsung,exynos5"; aliases { spi0 = &spi_0;
arch/arm/boot/dts/exynos5420-arndale-octa.dts +1 -1
@@ -16,7 +16,7 @@ / { model = "Insignal Arndale Octa evaluation board based on EXYNOS5420"; - compatible = "insignal,arndale-octa", "samsung,exynos5420"; + compatible = "insignal,arndale-octa", "samsung,exynos5420", "samsung,exynos5"; memory { reg = <0x20000000 0x80000000>;
arch/arm/boot/dts/exynos5420-smdk5420.dts +1 -1
@@ -14,7 +14,7 @@ / { model = "Samsung SMDK5420 board based on EXYNOS5420"; - compatible = "samsung,smdk5420", "samsung,exynos5420"; + compatible = "samsung,smdk5420", "samsung,exynos5420", "samsung,exynos5"; memory { reg = <0x20000000 0x80000000>;
arch/arm/boot/dts/exynos5420.dtsi +1 -1
@@ -20,7 +20,7 @@ #include <dt-bindings/clk/exynos-audss-clk.h> / { - compatible = "samsung,exynos5420"; + compatible = "samsung,exynos5420", "samsung,exynos5"; aliases { mshc0 = &mmc_0;
arch/arm/boot/dts/exynos5440-sd5v1.dts +1 -1
@@ -14,7 +14,7 @@ / { model = "SAMSUNG SD5v1 board based on EXYNOS5440"; - compatible = "samsung,sd5v1", "samsung,exynos5440"; + compatible = "samsung,sd5v1", "samsung,exynos5440", "samsung,exynos5"; chosen { bootargs = "root=/dev/sda2 rw rootwait ignore_loglevel earlyprintk no_console_suspend mem=2048M at 0x80000000 mem=6144M at 0x100000000 console=ttySAC0,115200";
arch/arm/boot/dts/exynos5440-ssdk5440.dts +1 -1
@@ -14,7 +14,7 @@ / { model = "SAMSUNG SSDK5440 board based on EXYNOS5440"; - compatible = "samsung,ssdk5440", "samsung,exynos5440"; + compatible = "samsung,ssdk5440", "samsung,exynos5440", "samsung,exynos5"; chosen { bootargs = "root=/dev/sda2 rw rootwait ignore_loglevel earlyprintk no_console_suspend mem=2048M at 0x80000000 mem=6144M at 0x100000000 console=ttySAC0,115200";
arch/arm/boot/dts/exynos5440.dtsi +1 -1
@@ -13,7 +13,7 @@ #include "skeleton.dtsi" / { - compatible = "samsung,exynos5440"; + compatible = "samsung,exynos5440", "samsung,exynos5"; interrupt-parent = <&gic>;
Signature · 1 line
1.7.9.5
cover Consolidate Exynos machine code
In reply to Sachin KamatQuoted 7 lines · Sachin Kamat
This patch series consolidates the Exynos machine code and common code into a single file to avoid code duplication and introduces generic compatible strings for Exynos4 and 5 SoC series.
Complete discussion and motivation for this series is found here:
http://comments.gmane.org/gmane.linux.kernel.samsung-soc/27268
Quoted 8 lines
This series is based on the latest linux-next and depends on
1. Tomasz Figa's PM consolidation series 1 and 2
2. Patch: ARM: SAMSUNG: Reorganize calls to reserve memory for MFC
http://www.spinics.net/lists/linux-samsung-soc/msg25501.html
3. Patch: ARM: EXYNOS: Add support to reserve memory for MFC-v7
http://www.spinics.net/lists/arm-kernel/msg315940.html
4.Kconfigand CPU init Consolidation series
http://article.gmane.org/gmane.linux.kernel.samsung-soc/28216
cover Consolidate Exynos machine code
Quoted 9 lines · Arnd Bergmann
Quoted 7 lines · Sachin Kamat
This patch series consolidates the Exynos machine code and common code into a single file to avoid code duplication and introduces generic compatible strings for Exynos4 and 5 SoC series.
Complete discussion and motivation for this series is found here:
http://comments.gmane.org/gmane.linux.kernel.samsung-soc/27268
Quoted 9 lines
Quoted 8 lines
This series is based on the latest linux-next and depends on
1. Tomasz Figa's PM consolidation series 1 and 2
2. Patch: ARM: SAMSUNG: Reorganize calls to reserve memory for MFC
http://www.spinics.net/lists/linux-samsung-soc/msg25501.html
3. Patch: ARM: EXYNOS: Add support to reserve memory for MFC-v7
http://www.spinics.net/lists/arm-kernel/msg315940.html
4.Kconfigand CPU init Consolidation series
http://article.gmane.org/gmane.linux.kernel.samsung-soc/28216
Hi Sachin,
Looks good to me.
Quoted 1 line
Acked-by Arnd Bergmann <[email protected]>
Arnd, thanks.
Let me sort this series out for v3.15 then I'll send pull-request to arm-soc with other dependencies tonight.
Thanks,
Kukjin