diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-28 15:24:40 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-28 15:24:40 -0400 |
commit | 4bb2d1009f671815870e8f78e826e4f9071392a7 (patch) | |
tree | 4b9f4e3b349a67d47b11eff7fcebbf57a3c40a1e /arch/arm/plat-samsung | |
parent | ff877c498eb2f9c4ea386270642e383bc867f63c (diff) | |
parent | 83fe628e16d84efc8df2731bc403eae4e4f53801 (diff) |
Merge tag 'soc2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull "ARM: More SoC support updates" from Olof Johansson:
"This branch contains a handful of updates of SoC base code that had
dependencies on other external trees that have now been merged:
* Support for the new EXYNOS5250 SoC from Samsung
* SMP and power domain support for Tegra3 from NVIDIA
* ux500 updates for exporting SoC information through sysfs"
Fix up trivial merge conflicts as per Olof.
* tag 'soc2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (30 commits)
ARM: mach-shmobile: ap4evb: Reserve DMA memory for the frame buffer
ARM: EXYNOS: Fix compilation error with mach-exynos4-dt board
ARM: dts: add initial dts file for EXYNOS5250, SMDK5250
ARM: EXYNOS: add support device tree enabled board file for EXYNOS5
ARM: EXYNOS: add support ARCH_EXYNOS5 for EXYNOS5 SoCs
ARM: EXYNOS: add support get_core_count() for EXYNOS5250
ARM: EXYNOS: support EINT for EXYNOS4 and EXYNOS5
ARM: EXYNOS: add interrupt definitions for EXYNOS5250
ARM: EXYNOS: add support for EXYNOS5250 SoC
ARM: EXYNOS: add support uart for EXYNOS4 and EXYNOS5
ARM: EXYNOS: add initial setup-i2c0 for EXYNOS5
ARM: EXYNOS: add clock part for EXYNOS5250 SoC
ARM: EXYNOS: use exynos_init_uarts() instead of exynos4_init_uarts()
ARM: EXYNOS: to declare static for mach-exynos/common.c
ARM: EXYNOS: Add clkdev lookup entry for lcd clock
ARM: dt: Explicitly configure all serial ports on Tegra Cardhu
ARM: tegra: support for secondary cores on Tegra30
ARM: tegra: support for Tegra30 CPU powerdomains
ARM: tegra: add support for Tegra30 powerdomains
ARM: tegra: export tegra_powergate_is_powered()
...
Diffstat (limited to 'arch/arm/plat-samsung')
-rw-r--r-- | arch/arm/plat-samsung/include/plat/cpu.h | 10 | ||||
-rw-r--r-- | arch/arm/plat-samsung/include/plat/devs.h | 2 | ||||
-rw-r--r-- | arch/arm/plat-samsung/include/plat/s5p-clock.h | 6 | ||||
-rw-r--r-- | arch/arm/plat-samsung/include/plat/uncompress.h | 2 | ||||
-rw-r--r-- | arch/arm/plat-samsung/irq-vic-timer.c | 16 |
5 files changed, 36 insertions, 0 deletions
diff --git a/arch/arm/plat-samsung/include/plat/cpu.h b/arch/arm/plat-samsung/include/plat/cpu.h index 73cb3cfd0685..787ceaca0be8 100644 --- a/arch/arm/plat-samsung/include/plat/cpu.h +++ b/arch/arm/plat-samsung/include/plat/cpu.h | |||
@@ -42,6 +42,9 @@ extern unsigned long samsung_cpu_id; | |||
42 | #define EXYNOS4412_CPU_ID 0xE4412200 | 42 | #define EXYNOS4412_CPU_ID 0xE4412200 |
43 | #define EXYNOS4_CPU_MASK 0xFFFE0000 | 43 | #define EXYNOS4_CPU_MASK 0xFFFE0000 |
44 | 44 | ||
45 | #define EXYNOS5250_SOC_ID 0x43520000 | ||
46 | #define EXYNOS5_SOC_MASK 0xFFFFF000 | ||
47 | |||
45 | #define IS_SAMSUNG_CPU(name, id, mask) \ | 48 | #define IS_SAMSUNG_CPU(name, id, mask) \ |
46 | static inline int is_samsung_##name(void) \ | 49 | static inline int is_samsung_##name(void) \ |
47 | { \ | 50 | { \ |
@@ -58,6 +61,7 @@ IS_SAMSUNG_CPU(s5pv210, S5PV210_CPU_ID, S5PV210_CPU_MASK) | |||
58 | IS_SAMSUNG_CPU(exynos4210, EXYNOS4210_CPU_ID, EXYNOS4_CPU_MASK) | 61 | IS_SAMSUNG_CPU(exynos4210, EXYNOS4210_CPU_ID, EXYNOS4_CPU_MASK) |
59 | IS_SAMSUNG_CPU(exynos4212, EXYNOS4212_CPU_ID, EXYNOS4_CPU_MASK) | 62 | IS_SAMSUNG_CPU(exynos4212, EXYNOS4212_CPU_ID, EXYNOS4_CPU_MASK) |
60 | IS_SAMSUNG_CPU(exynos4412, EXYNOS4412_CPU_ID, EXYNOS4_CPU_MASK) | 63 | IS_SAMSUNG_CPU(exynos4412, EXYNOS4412_CPU_ID, EXYNOS4_CPU_MASK) |
64 | IS_SAMSUNG_CPU(exynos5250, EXYNOS5250_SOC_ID, EXYNOS5_SOC_MASK) | ||
61 | 65 | ||
62 | #if defined(CONFIG_CPU_S3C2410) || defined(CONFIG_CPU_S3C2412) || \ | 66 | #if defined(CONFIG_CPU_S3C2410) || defined(CONFIG_CPU_S3C2412) || \ |
63 | defined(CONFIG_CPU_S3C2416) || defined(CONFIG_CPU_S3C2440) || \ | 67 | defined(CONFIG_CPU_S3C2416) || defined(CONFIG_CPU_S3C2440) || \ |
@@ -120,6 +124,12 @@ IS_SAMSUNG_CPU(exynos4412, EXYNOS4412_CPU_ID, EXYNOS4_CPU_MASK) | |||
120 | #define EXYNOS4210_REV_1_0 (0x10) | 124 | #define EXYNOS4210_REV_1_0 (0x10) |
121 | #define EXYNOS4210_REV_1_1 (0x11) | 125 | #define EXYNOS4210_REV_1_1 (0x11) |
122 | 126 | ||
127 | #if defined(CONFIG_SOC_EXYNOS5250) | ||
128 | # define soc_is_exynos5250() is_samsung_exynos5250() | ||
129 | #else | ||
130 | # define soc_is_exynos5250() 0 | ||
131 | #endif | ||
132 | |||
123 | #define IODESC_ENT(x) { (unsigned long)S3C24XX_VA_##x, __phys_to_pfn(S3C24XX_PA_##x), S3C24XX_SZ_##x, MT_DEVICE } | 133 | #define IODESC_ENT(x) { (unsigned long)S3C24XX_VA_##x, __phys_to_pfn(S3C24XX_PA_##x), S3C24XX_SZ_##x, MT_DEVICE } |
124 | 134 | ||
125 | #ifndef MHZ | 135 | #ifndef MHZ |
diff --git a/arch/arm/plat-samsung/include/plat/devs.h b/arch/arm/plat-samsung/include/plat/devs.h index 5e7972de3ed5..2155d4af62a3 100644 --- a/arch/arm/plat-samsung/include/plat/devs.h +++ b/arch/arm/plat-samsung/include/plat/devs.h | |||
@@ -26,6 +26,8 @@ struct s3c24xx_uart_resources { | |||
26 | extern struct s3c24xx_uart_resources s3c2410_uart_resources[]; | 26 | extern struct s3c24xx_uart_resources s3c2410_uart_resources[]; |
27 | extern struct s3c24xx_uart_resources s3c64xx_uart_resources[]; | 27 | extern struct s3c24xx_uart_resources s3c64xx_uart_resources[]; |
28 | extern struct s3c24xx_uart_resources s5p_uart_resources[]; | 28 | extern struct s3c24xx_uart_resources s5p_uart_resources[]; |
29 | extern struct s3c24xx_uart_resources exynos4_uart_resources[]; | ||
30 | extern struct s3c24xx_uart_resources exynos5_uart_resources[]; | ||
29 | 31 | ||
30 | extern struct platform_device *s3c24xx_uart_devs[]; | 32 | extern struct platform_device *s3c24xx_uart_devs[]; |
31 | extern struct platform_device *s3c24xx_uart_src[]; | 33 | extern struct platform_device *s3c24xx_uart_src[]; |
diff --git a/arch/arm/plat-samsung/include/plat/s5p-clock.h b/arch/arm/plat-samsung/include/plat/s5p-clock.h index 984bf9e7bc89..1de4b32f98e9 100644 --- a/arch/arm/plat-samsung/include/plat/s5p-clock.h +++ b/arch/arm/plat-samsung/include/plat/s5p-clock.h | |||
@@ -18,6 +18,8 @@ | |||
18 | #define GET_DIV(clk, field) ((((clk) & field##_MASK) >> field##_SHIFT) + 1) | 18 | #define GET_DIV(clk, field) ((((clk) & field##_MASK) >> field##_SHIFT) + 1) |
19 | 19 | ||
20 | #define clk_fin_apll clk_ext_xtal_mux | 20 | #define clk_fin_apll clk_ext_xtal_mux |
21 | #define clk_fin_bpll clk_ext_xtal_mux | ||
22 | #define clk_fin_cpll clk_ext_xtal_mux | ||
21 | #define clk_fin_mpll clk_ext_xtal_mux | 23 | #define clk_fin_mpll clk_ext_xtal_mux |
22 | #define clk_fin_epll clk_ext_xtal_mux | 24 | #define clk_fin_epll clk_ext_xtal_mux |
23 | #define clk_fin_dpll clk_ext_xtal_mux | 25 | #define clk_fin_dpll clk_ext_xtal_mux |
@@ -29,6 +31,8 @@ extern struct clk clk_xusbxti; | |||
29 | extern struct clk clk_48m; | 31 | extern struct clk clk_48m; |
30 | extern struct clk s5p_clk_27m; | 32 | extern struct clk s5p_clk_27m; |
31 | extern struct clk clk_fout_apll; | 33 | extern struct clk clk_fout_apll; |
34 | extern struct clk clk_fout_bpll; | ||
35 | extern struct clk clk_fout_cpll; | ||
32 | extern struct clk clk_fout_mpll; | 36 | extern struct clk clk_fout_mpll; |
33 | extern struct clk clk_fout_epll; | 37 | extern struct clk clk_fout_epll; |
34 | extern struct clk clk_fout_dpll; | 38 | extern struct clk clk_fout_dpll; |
@@ -37,6 +41,8 @@ extern struct clk clk_arm; | |||
37 | extern struct clk clk_vpll; | 41 | extern struct clk clk_vpll; |
38 | 42 | ||
39 | extern struct clksrc_sources clk_src_apll; | 43 | extern struct clksrc_sources clk_src_apll; |
44 | extern struct clksrc_sources clk_src_bpll; | ||
45 | extern struct clksrc_sources clk_src_cpll; | ||
40 | extern struct clksrc_sources clk_src_mpll; | 46 | extern struct clksrc_sources clk_src_mpll; |
41 | extern struct clksrc_sources clk_src_epll; | 47 | extern struct clksrc_sources clk_src_epll; |
42 | extern struct clksrc_sources clk_src_dpll; | 48 | extern struct clksrc_sources clk_src_dpll; |
diff --git a/arch/arm/plat-samsung/include/plat/uncompress.h b/arch/arm/plat-samsung/include/plat/uncompress.h index ee48e12a1e72..7e068d182c3d 100644 --- a/arch/arm/plat-samsung/include/plat/uncompress.h +++ b/arch/arm/plat-samsung/include/plat/uncompress.h | |||
@@ -37,7 +37,9 @@ static void arch_detect_cpu(void); | |||
37 | /* how many bytes we allow into the FIFO at a time in FIFO mode */ | 37 | /* how many bytes we allow into the FIFO at a time in FIFO mode */ |
38 | #define FIFO_MAX (14) | 38 | #define FIFO_MAX (14) |
39 | 39 | ||
40 | #ifdef S3C_PA_UART | ||
40 | #define uart_base S3C_PA_UART + (S3C_UART_OFFSET * CONFIG_S3C_LOWLEVEL_UART_PORT) | 41 | #define uart_base S3C_PA_UART + (S3C_UART_OFFSET * CONFIG_S3C_LOWLEVEL_UART_PORT) |
42 | #endif | ||
41 | 43 | ||
42 | static __inline__ void | 44 | static __inline__ void |
43 | uart_wr(unsigned int reg, unsigned int val) | 45 | uart_wr(unsigned int reg, unsigned int val) |
diff --git a/arch/arm/plat-samsung/irq-vic-timer.c b/arch/arm/plat-samsung/irq-vic-timer.c index 51583cd30164..f980cf3d2baa 100644 --- a/arch/arm/plat-samsung/irq-vic-timer.c +++ b/arch/arm/plat-samsung/irq-vic-timer.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <linux/io.h> | 19 | #include <linux/io.h> |
20 | 20 | ||
21 | #include <mach/map.h> | 21 | #include <mach/map.h> |
22 | #include <plat/cpu.h> | ||
22 | #include <plat/irq-vic-timer.h> | 23 | #include <plat/irq-vic-timer.h> |
23 | #include <plat/regs-timer.h> | 24 | #include <plat/regs-timer.h> |
24 | 25 | ||
@@ -57,6 +58,21 @@ void __init s3c_init_vic_timer_irq(unsigned int num, unsigned int timer_irq) | |||
57 | struct irq_chip_type *ct; | 58 | struct irq_chip_type *ct; |
58 | unsigned int i; | 59 | unsigned int i; |
59 | 60 | ||
61 | #ifdef CONFIG_ARCH_EXYNOS | ||
62 | if (soc_is_exynos5250()) { | ||
63 | pirq[0] = EXYNOS5_IRQ_TIMER0_VIC; | ||
64 | pirq[1] = EXYNOS5_IRQ_TIMER1_VIC; | ||
65 | pirq[2] = EXYNOS5_IRQ_TIMER2_VIC; | ||
66 | pirq[3] = EXYNOS5_IRQ_TIMER3_VIC; | ||
67 | pirq[4] = EXYNOS5_IRQ_TIMER4_VIC; | ||
68 | } else { | ||
69 | pirq[0] = EXYNOS4_IRQ_TIMER0_VIC; | ||
70 | pirq[1] = EXYNOS4_IRQ_TIMER1_VIC; | ||
71 | pirq[2] = EXYNOS4_IRQ_TIMER2_VIC; | ||
72 | pirq[3] = EXYNOS4_IRQ_TIMER3_VIC; | ||
73 | pirq[4] = EXYNOS4_IRQ_TIMER4_VIC; | ||
74 | } | ||
75 | #endif | ||
60 | s3c_tgc = irq_alloc_generic_chip("s3c-timer", 1, timer_irq, | 76 | s3c_tgc = irq_alloc_generic_chip("s3c-timer", 1, timer_irq, |
61 | S3C64XX_TINT_CSTAT, handle_level_irq); | 77 | S3C64XX_TINT_CSTAT, handle_level_irq); |
62 | 78 | ||