diff options
| author | Kukjin Kim <kgene.kim@samsung.com> | 2011-02-14 02:33:10 -0500 |
|---|---|---|
| committer | Kukjin Kim <kgene.kim@samsung.com> | 2011-02-21 23:51:14 -0500 |
| commit | 7d30e8b3815f804139271dfc31962ab74ce89650 (patch) | |
| tree | 711d4830705e0147cb8184ca1a8e6e3c97bc02fe | |
| parent | f5412be599602124d2bdd49947b231dd77c0bf99 (diff) | |
ARM: EXYNOS4: Add EXYNOS4 CPU initialization support
This patch adds EXYNOS4 CPU support files in mach-exynos4,
and basically they are moved from mach-s5pv310 so that it
can support Samsung's new CPU name, EXYNOS4.
The EXYNOS4 ingegrates a ARM Cortex A9 multi-core.
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
| -rw-r--r-- | arch/arm/mach-exynos4/cpu.c (renamed from arch/arm/mach-s5pv310/cpu.c) | 87 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/cpufreq.c (renamed from arch/arm/mach-s5pv310/cpufreq.c) | 100 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/dma.c (renamed from arch/arm/mach-s5pv310/dma.c) | 50 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/gpiolib.c (renamed from arch/arm/mach-s5pv310/gpiolib.c) | 154 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/headsmp.S (renamed from arch/arm/mach-s5pv310/headsmp.S) | 6 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/hotplug.c (renamed from arch/arm/mach-s5pv310/hotplug.c) | 2 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/include/mach/debug-macro.S (renamed from arch/arm/mach-s5pv310/include/mach/debug-macro.S) | 6 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/include/mach/dma.h (renamed from arch/arm/mach-s5pv310/include/mach/dma.h) | 0 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/include/mach/entry-macro.S (renamed from arch/arm/mach-s5pv310/include/mach/entry-macro.S) | 4 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/include/mach/gpio.h | 135 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/include/mach/hardware.h (renamed from arch/arm/mach-s5pv310/include/mach/hardware.h) | 8 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/include/mach/io.h (renamed from arch/arm/mach-s5pv310/include/mach/io.h) | 8 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/include/mach/map.h | 144 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/include/mach/memory.h (renamed from arch/arm/mach-s5pv310/include/mach/memory.h) | 8 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/include/mach/regs-gpio.h | 42 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/include/mach/regs-mem.h (renamed from arch/arm/mach-s5pv310/include/mach/regs-mem.h) | 6 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/include/mach/regs-pmu.h (renamed from arch/arm/mach-s5pv310/include/mach/regs-pmu.h) | 8 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/include/mach/regs-sysmmu.h (renamed from arch/arm/mach-s5pv310/include/mach/regs-sysmmu.h) | 6 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/include/mach/smp.h (renamed from arch/arm/mach-s5pv310/include/mach/smp.h) | 2 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/include/mach/sysmmu.h (renamed from arch/arm/mach-s5pv310/include/mach/sysmmu.h) | 18 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/include/mach/system.h (renamed from arch/arm/mach-s5pv310/include/mach/system.h) | 8 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/include/mach/timex.h (renamed from arch/arm/mach-s5pv310/include/mach/timex.h) | 8 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/include/mach/uncompress.h (renamed from arch/arm/mach-s5pv310/include/mach/uncompress.h) | 8 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/include/mach/vmalloc.h (renamed from arch/arm/mach-s5pv310/include/mach/vmalloc.h) | 8 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/init.c (renamed from arch/arm/mach-s5pv310/init.c) | 10 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/platsmp.c (renamed from arch/arm/mach-s5pv310/platsmp.c) | 12 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/setup-i2c0.c (renamed from arch/arm/mach-s5pv310/setup-i2c0.c) | 4 | ||||
| -rw-r--r-- | arch/arm/mach-s5pv310/include/mach/gpio.h | 135 | ||||
| -rw-r--r-- | arch/arm/mach-s5pv310/include/mach/map.h | 144 | ||||
| -rw-r--r-- | arch/arm/mach-s5pv310/include/mach/regs-gpio.h | 42 | ||||
| -rw-r--r-- | arch/arm/plat-s5p/cpu.c | 25 | ||||
| -rw-r--r-- | arch/arm/plat-s5p/include/plat/exynos4.h | 34 | ||||
| -rw-r--r-- | arch/arm/plat-s5p/include/plat/s5pv310.h | 34 |
33 files changed, 637 insertions, 629 deletions
diff --git a/arch/arm/mach-s5pv310/cpu.c b/arch/arm/mach-exynos4/cpu.c index 0db0fb65bd70..b0ec6d3d3774 100644 --- a/arch/arm/mach-s5pv310/cpu.c +++ b/arch/arm/mach-exynos4/cpu.c | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | /* linux/arch/arm/mach-s5pv310/cpu.c | 1 | /* linux/arch/arm/mach-exynos4/cpu.c |
| 2 | * | 2 | * |
| 3 | * Copyright (c) 2010 Samsung Electronics Co., Ltd. | 3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. |
| 4 | * http://www.samsung.com/ | 4 | * http://www.samsung.com |
| 5 | * | 5 | * |
| 6 | * This program is free software; you can redistribute it and/or modify | 6 | * This program is free software; you can redistribute it and/or modify |
| 7 | * it under the terms of the GNU General Public License version 2 as | 7 | * it under the terms of the GNU General Public License version 2 as |
| @@ -19,7 +19,7 @@ | |||
| 19 | 19 | ||
| 20 | #include <plat/cpu.h> | 20 | #include <plat/cpu.h> |
| 21 | #include <plat/clock.h> | 21 | #include <plat/clock.h> |
| 22 | #include <plat/s5pv310.h> | 22 | #include <plat/exynos4.h> |
| 23 | #include <plat/sdhci.h> | 23 | #include <plat/sdhci.h> |
| 24 | 24 | ||
| 25 | #include <mach/regs-irq.h> | 25 | #include <mach/regs-irq.h> |
| @@ -29,55 +29,55 @@ extern int combiner_init(unsigned int combiner_nr, void __iomem *base, | |||
| 29 | extern void combiner_cascade_irq(unsigned int combiner_nr, unsigned int irq); | 29 | extern void combiner_cascade_irq(unsigned int combiner_nr, unsigned int irq); |
| 30 | 30 | ||
| 31 | /* Initial IO mappings */ | 31 | /* Initial IO mappings */ |
| 32 | static struct map_desc s5pv310_iodesc[] __initdata = { | 32 | static struct map_desc exynos4_iodesc[] __initdata = { |
| 33 | { | 33 | { |
| 34 | .virtual = (unsigned long)S5P_VA_SYSRAM, | 34 | .virtual = (unsigned long)S5P_VA_SYSRAM, |
| 35 | .pfn = __phys_to_pfn(S5PV310_PA_SYSRAM), | 35 | .pfn = __phys_to_pfn(EXYNOS4_PA_SYSRAM), |
| 36 | .length = SZ_4K, | 36 | .length = SZ_4K, |
| 37 | .type = MT_DEVICE, | 37 | .type = MT_DEVICE, |
| 38 | }, { | 38 | }, { |
| 39 | .virtual = (unsigned long)S5P_VA_CMU, | 39 | .virtual = (unsigned long)S5P_VA_CMU, |
| 40 | .pfn = __phys_to_pfn(S5PV310_PA_CMU), | 40 | .pfn = __phys_to_pfn(EXYNOS4_PA_CMU), |
| 41 | .length = SZ_128K, | 41 | .length = SZ_128K, |
| 42 | .type = MT_DEVICE, | 42 | .type = MT_DEVICE, |
| 43 | }, { | 43 | }, { |
| 44 | .virtual = (unsigned long)S5P_VA_PMU, | 44 | .virtual = (unsigned long)S5P_VA_PMU, |
| 45 | .pfn = __phys_to_pfn(S5PV310_PA_PMU), | 45 | .pfn = __phys_to_pfn(EXYNOS4_PA_PMU), |
| 46 | .length = SZ_64K, | 46 | .length = SZ_64K, |
| 47 | .type = MT_DEVICE, | 47 | .type = MT_DEVICE, |
| 48 | }, { | 48 | }, { |
| 49 | .virtual = (unsigned long)S5P_VA_COMBINER_BASE, | 49 | .virtual = (unsigned long)S5P_VA_COMBINER_BASE, |
| 50 | .pfn = __phys_to_pfn(S5PV310_PA_COMBINER), | 50 | .pfn = __phys_to_pfn(EXYNOS4_PA_COMBINER), |
| 51 | .length = SZ_4K, | 51 | .length = SZ_4K, |
| 52 | .type = MT_DEVICE, | 52 | .type = MT_DEVICE, |
| 53 | }, { | 53 | }, { |
| 54 | .virtual = (unsigned long)S5P_VA_COREPERI_BASE, | 54 | .virtual = (unsigned long)S5P_VA_COREPERI_BASE, |
| 55 | .pfn = __phys_to_pfn(S5PV310_PA_COREPERI), | 55 | .pfn = __phys_to_pfn(EXYNOS4_PA_COREPERI), |
| 56 | .length = SZ_8K, | 56 | .length = SZ_8K, |
| 57 | .type = MT_DEVICE, | 57 | .type = MT_DEVICE, |
| 58 | }, { | 58 | }, { |
| 59 | .virtual = (unsigned long)S5P_VA_L2CC, | 59 | .virtual = (unsigned long)S5P_VA_L2CC, |
| 60 | .pfn = __phys_to_pfn(S5PV310_PA_L2CC), | 60 | .pfn = __phys_to_pfn(EXYNOS4_PA_L2CC), |
| 61 | .length = SZ_4K, | 61 | .length = SZ_4K, |
| 62 | .type = MT_DEVICE, | 62 | .type = MT_DEVICE, |
| 63 | }, { | 63 | }, { |
| 64 | .virtual = (unsigned long)S5P_VA_GPIO1, | 64 | .virtual = (unsigned long)S5P_VA_GPIO1, |
| 65 | .pfn = __phys_to_pfn(S5PV310_PA_GPIO1), | 65 | .pfn = __phys_to_pfn(EXYNOS4_PA_GPIO1), |
| 66 | .length = SZ_4K, | 66 | .length = SZ_4K, |
| 67 | .type = MT_DEVICE, | 67 | .type = MT_DEVICE, |
| 68 | }, { | 68 | }, { |
| 69 | .virtual = (unsigned long)S5P_VA_GPIO2, | 69 | .virtual = (unsigned long)S5P_VA_GPIO2, |
| 70 | .pfn = __phys_to_pfn(S5PV310_PA_GPIO2), | 70 | .pfn = __phys_to_pfn(EXYNOS4_PA_GPIO2), |
| 71 | .length = SZ_4K, | 71 | .length = SZ_4K, |
| 72 | .type = MT_DEVICE, | 72 | .type = MT_DEVICE, |
| 73 | }, { | 73 | }, { |
| 74 | .virtual = (unsigned long)S5P_VA_GPIO3, | 74 | .virtual = (unsigned long)S5P_VA_GPIO3, |
| 75 | .pfn = __phys_to_pfn(S5PV310_PA_GPIO3), | 75 | .pfn = __phys_to_pfn(EXYNOS4_PA_GPIO3), |
| 76 | .length = SZ_256, | 76 | .length = SZ_256, |
| 77 | .type = MT_DEVICE, | 77 | .type = MT_DEVICE, |
| 78 | }, { | 78 | }, { |
| 79 | .virtual = (unsigned long)S5P_VA_DMC0, | 79 | .virtual = (unsigned long)S5P_VA_DMC0, |
| 80 | .pfn = __phys_to_pfn(S5PV310_PA_DMC0), | 80 | .pfn = __phys_to_pfn(EXYNOS4_PA_DMC0), |
| 81 | .length = SZ_4K, | 81 | .length = SZ_4K, |
| 82 | .type = MT_DEVICE, | 82 | .type = MT_DEVICE, |
| 83 | }, { | 83 | }, { |
| @@ -87,13 +87,13 @@ static struct map_desc s5pv310_iodesc[] __initdata = { | |||
| 87 | .type = MT_DEVICE, | 87 | .type = MT_DEVICE, |
| 88 | }, { | 88 | }, { |
| 89 | .virtual = (unsigned long)S5P_VA_SROMC, | 89 | .virtual = (unsigned long)S5P_VA_SROMC, |
| 90 | .pfn = __phys_to_pfn(S5PV310_PA_SROMC), | 90 | .pfn = __phys_to_pfn(EXYNOS4_PA_SROMC), |
| 91 | .length = SZ_4K, | 91 | .length = SZ_4K, |
| 92 | .type = MT_DEVICE, | 92 | .type = MT_DEVICE, |
| 93 | }, | 93 | }, |
| 94 | }; | 94 | }; |
| 95 | 95 | ||
| 96 | static void s5pv310_idle(void) | 96 | static void exynos4_idle(void) |
| 97 | { | 97 | { |
| 98 | if (!need_resched()) | 98 | if (!need_resched()) |
| 99 | cpu_do_idle(); | 99 | cpu_do_idle(); |
| @@ -101,32 +101,33 @@ static void s5pv310_idle(void) | |||
| 101 | local_irq_enable(); | 101 | local_irq_enable(); |
| 102 | } | 102 | } |
| 103 | 103 | ||
| 104 | /* s5pv310_map_io | 104 | /* |
| 105 | * exynos4_map_io | ||
| 105 | * | 106 | * |
| 106 | * register the standard cpu IO areas | 107 | * register the standard cpu IO areas |
| 107 | */ | 108 | */ |
| 108 | void __init s5pv310_map_io(void) | 109 | void __init exynos4_map_io(void) |
| 109 | { | 110 | { |
| 110 | iotable_init(s5pv310_iodesc, ARRAY_SIZE(s5pv310_iodesc)); | 111 | iotable_init(exynos4_iodesc, ARRAY_SIZE(exynos4_iodesc)); |
| 111 | 112 | ||
| 112 | /* initialize device information early */ | 113 | /* initialize device information early */ |
| 113 | s5pv310_default_sdhci0(); | 114 | exynos4_default_sdhci0(); |
| 114 | s5pv310_default_sdhci1(); | 115 | exynos4_default_sdhci1(); |
| 115 | s5pv310_default_sdhci2(); | 116 | exynos4_default_sdhci2(); |
| 116 | s5pv310_default_sdhci3(); | 117 | exynos4_default_sdhci3(); |
| 117 | } | 118 | } |
| 118 | 119 | ||
| 119 | void __init s5pv310_init_clocks(int xtal) | 120 | void __init exynos4_init_clocks(int xtal) |
| 120 | { | 121 | { |
| 121 | printk(KERN_DEBUG "%s: initializing clocks\n", __func__); | 122 | printk(KERN_DEBUG "%s: initializing clocks\n", __func__); |
| 122 | 123 | ||
| 123 | s3c24xx_register_baseclocks(xtal); | 124 | s3c24xx_register_baseclocks(xtal); |
| 124 | s5p_register_clocks(xtal); | 125 | s5p_register_clocks(xtal); |
| 125 | s5pv310_register_clocks(); | 126 | exynos4_register_clocks(); |
| 126 | s5pv310_setup_clocks(); | 127 | exynos4_setup_clocks(); |
| 127 | } | 128 | } |
| 128 | 129 | ||
| 129 | void __init s5pv310_init_irq(void) | 130 | void __init exynos4_init_irq(void) |
| 130 | { | 131 | { |
| 131 | int irq; | 132 | int irq; |
| 132 | 133 | ||
| @@ -148,29 +149,29 @@ void __init s5pv310_init_irq(void) | |||
| 148 | } | 149 | } |
| 149 | 150 | ||
| 150 | /* The parameters of s5p_init_irq() are for VIC init. | 151 | /* The parameters of s5p_init_irq() are for VIC init. |
| 151 | * Theses parameters should be NULL and 0 because S5PV310 | 152 | * Theses parameters should be NULL and 0 because EXYNOS4 |
| 152 | * uses GIC instead of VIC. | 153 | * uses GIC instead of VIC. |
| 153 | */ | 154 | */ |
| 154 | s5p_init_irq(NULL, 0); | 155 | s5p_init_irq(NULL, 0); |
| 155 | } | 156 | } |
| 156 | 157 | ||
| 157 | struct sysdev_class s5pv310_sysclass = { | 158 | struct sysdev_class exynos4_sysclass = { |
| 158 | .name = "s5pv310-core", | 159 | .name = "exynos4-core", |
| 159 | }; | 160 | }; |
| 160 | 161 | ||
| 161 | static struct sys_device s5pv310_sysdev = { | 162 | static struct sys_device exynos4_sysdev = { |
| 162 | .cls = &s5pv310_sysclass, | 163 | .cls = &exynos4_sysclass, |
| 163 | }; | 164 | }; |
| 164 | 165 | ||
| 165 | static int __init s5pv310_core_init(void) | 166 | static int __init exynos4_core_init(void) |
| 166 | { | 167 | { |
| 167 | return sysdev_class_register(&s5pv310_sysclass); | 168 | return sysdev_class_register(&exynos4_sysclass); |
| 168 | } | 169 | } |
| 169 | 170 | ||
| 170 | core_initcall(s5pv310_core_init); | 171 | core_initcall(exynos4_core_init); |
| 171 | 172 | ||
| 172 | #ifdef CONFIG_CACHE_L2X0 | 173 | #ifdef CONFIG_CACHE_L2X0 |
| 173 | static int __init s5pv310_l2x0_cache_init(void) | 174 | static int __init exynos4_l2x0_cache_init(void) |
| 174 | { | 175 | { |
| 175 | /* TAG, Data Latency Control: 2cycle */ | 176 | /* TAG, Data Latency Control: 2cycle */ |
| 176 | __raw_writel(0x110, S5P_VA_L2CC + L2X0_TAG_LATENCY_CTRL); | 177 | __raw_writel(0x110, S5P_VA_L2CC + L2X0_TAG_LATENCY_CTRL); |
| @@ -188,15 +189,15 @@ static int __init s5pv310_l2x0_cache_init(void) | |||
| 188 | return 0; | 189 | return 0; |
| 189 | } | 190 | } |
| 190 | 191 | ||
| 191 | early_initcall(s5pv310_l2x0_cache_init); | 192 | early_initcall(exynos4_l2x0_cache_init); |
| 192 | #endif | 193 | #endif |
| 193 | 194 | ||
| 194 | int __init s5pv310_init(void) | 195 | int __init exynos4_init(void) |
| 195 | { | 196 | { |
| 196 | printk(KERN_INFO "S5PV310: Initializing architecture\n"); | 197 | printk(KERN_INFO "EXYNOS4: Initializing architecture\n"); |
| 197 | 198 | ||
| 198 | /* set idle function */ | 199 | /* set idle function */ |
| 199 | pm_idle = s5pv310_idle; | 200 | pm_idle = exynos4_idle; |
| 200 | 201 | ||
| 201 | return sysdev_register(&s5pv310_sysdev); | 202 | return sysdev_register(&exynos4_sysdev); |
| 202 | } | 203 | } |
diff --git a/arch/arm/mach-s5pv310/cpufreq.c b/arch/arm/mach-exynos4/cpufreq.c index b04cbc731128..174f080b500d 100644 --- a/arch/arm/mach-s5pv310/cpufreq.c +++ b/arch/arm/mach-exynos4/cpufreq.c | |||
| @@ -1,9 +1,9 @@ | |||
| 1 | /* linux/arch/arm/mach-s5pv310/cpufreq.c | 1 | /* linux/arch/arm/mach-exynos4/cpufreq.c |
| 2 | * | 2 | * |
| 3 | * Copyright (c) 2010 Samsung Electronics Co., Ltd. | 3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. |
| 4 | * http://www.samsung.com | 4 | * http://www.samsung.com |
| 5 | * | 5 | * |
| 6 | * S5PV310 - CPU frequency scaling support | 6 | * EXYNOS4 - CPU frequency scaling support |
| 7 | * | 7 | * |
| 8 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
| 9 | * it under the terms of the GNU General Public License version 2 as | 9 | * it under the terms of the GNU General Public License version 2 as |
| @@ -39,7 +39,7 @@ static struct regulator *int_regulator; | |||
| 39 | static struct cpufreq_freqs freqs; | 39 | static struct cpufreq_freqs freqs; |
| 40 | static unsigned int memtype; | 40 | static unsigned int memtype; |
| 41 | 41 | ||
| 42 | enum s5pv310_memory_type { | 42 | enum exynos4_memory_type { |
| 43 | DDR2 = 4, | 43 | DDR2 = 4, |
| 44 | LPDDR2, | 44 | LPDDR2, |
| 45 | DDR3, | 45 | DDR3, |
| @@ -49,7 +49,7 @@ enum cpufreq_level_index { | |||
| 49 | L0, L1, L2, L3, CPUFREQ_LEVEL_END, | 49 | L0, L1, L2, L3, CPUFREQ_LEVEL_END, |
| 50 | }; | 50 | }; |
| 51 | 51 | ||
| 52 | static struct cpufreq_frequency_table s5pv310_freq_table[] = { | 52 | static struct cpufreq_frequency_table exynos4_freq_table[] = { |
| 53 | {L0, 1000*1000}, | 53 | {L0, 1000*1000}, |
| 54 | {L1, 800*1000}, | 54 | {L1, 800*1000}, |
| 55 | {L2, 400*1000}, | 55 | {L2, 400*1000}, |
| @@ -160,7 +160,7 @@ struct cpufreq_voltage_table { | |||
| 160 | unsigned int int_volt; | 160 | unsigned int int_volt; |
| 161 | }; | 161 | }; |
| 162 | 162 | ||
| 163 | static struct cpufreq_voltage_table s5pv310_volt_table[CPUFREQ_LEVEL_END] = { | 163 | static struct cpufreq_voltage_table exynos4_volt_table[CPUFREQ_LEVEL_END] = { |
| 164 | { | 164 | { |
| 165 | .index = L0, | 165 | .index = L0, |
| 166 | .arm_volt = 1200000, | 166 | .arm_volt = 1200000, |
| @@ -180,7 +180,7 @@ static struct cpufreq_voltage_table s5pv310_volt_table[CPUFREQ_LEVEL_END] = { | |||
| 180 | }, | 180 | }, |
| 181 | }; | 181 | }; |
| 182 | 182 | ||
| 183 | static unsigned int s5pv310_apll_pms_table[CPUFREQ_LEVEL_END] = { | 183 | static unsigned int exynos4_apll_pms_table[CPUFREQ_LEVEL_END] = { |
| 184 | /* APLL FOUT L0: 1000MHz */ | 184 | /* APLL FOUT L0: 1000MHz */ |
| 185 | ((250 << 16) | (6 << 8) | 1), | 185 | ((250 << 16) | (6 << 8) | 1), |
| 186 | 186 | ||
| @@ -194,17 +194,17 @@ static unsigned int s5pv310_apll_pms_table[CPUFREQ_LEVEL_END] = { | |||
| 194 | ((200 << 16) | (6 << 8) | 4), | 194 | ((200 << 16) | (6 << 8) | 4), |
| 195 | }; | 195 | }; |
| 196 | 196 | ||
| 197 | int s5pv310_verify_speed(struct cpufreq_policy *policy) | 197 | int exynos4_verify_speed(struct cpufreq_policy *policy) |
| 198 | { | 198 | { |
| 199 | return cpufreq_frequency_table_verify(policy, s5pv310_freq_table); | 199 | return cpufreq_frequency_table_verify(policy, exynos4_freq_table); |
| 200 | } | 200 | } |
| 201 | 201 | ||
| 202 | unsigned int s5pv310_getspeed(unsigned int cpu) | 202 | unsigned int exynos4_getspeed(unsigned int cpu) |
| 203 | { | 203 | { |
| 204 | return clk_get_rate(cpu_clk) / 1000; | 204 | return clk_get_rate(cpu_clk) / 1000; |
| 205 | } | 205 | } |
| 206 | 206 | ||
| 207 | void s5pv310_set_clkdiv(unsigned int div_index) | 207 | void exynos4_set_clkdiv(unsigned int div_index) |
| 208 | { | 208 | { |
| 209 | unsigned int tmp; | 209 | unsigned int tmp; |
| 210 | 210 | ||
| @@ -321,7 +321,7 @@ void s5pv310_set_clkdiv(unsigned int div_index) | |||
| 321 | } while (tmp & 0x11); | 321 | } while (tmp & 0x11); |
| 322 | } | 322 | } |
| 323 | 323 | ||
| 324 | static void s5pv310_set_apll(unsigned int index) | 324 | static void exynos4_set_apll(unsigned int index) |
| 325 | { | 325 | { |
| 326 | unsigned int tmp; | 326 | unsigned int tmp; |
| 327 | 327 | ||
| @@ -340,7 +340,7 @@ static void s5pv310_set_apll(unsigned int index) | |||
| 340 | /* 3. Change PLL PMS values */ | 340 | /* 3. Change PLL PMS values */ |
| 341 | tmp = __raw_readl(S5P_APLL_CON0); | 341 | tmp = __raw_readl(S5P_APLL_CON0); |
| 342 | tmp &= ~((0x3ff << 16) | (0x3f << 8) | (0x7 << 0)); | 342 | tmp &= ~((0x3ff << 16) | (0x3f << 8) | (0x7 << 0)); |
| 343 | tmp |= s5pv310_apll_pms_table[index]; | 343 | tmp |= exynos4_apll_pms_table[index]; |
| 344 | __raw_writel(tmp, S5P_APLL_CON0); | 344 | __raw_writel(tmp, S5P_APLL_CON0); |
| 345 | 345 | ||
| 346 | /* 4. wait_lock_time */ | 346 | /* 4. wait_lock_time */ |
| @@ -357,77 +357,77 @@ static void s5pv310_set_apll(unsigned int index) | |||
| 357 | } while (tmp != (0x1 << S5P_CLKSRC_CPU_MUXCORE_SHIFT)); | 357 | } while (tmp != (0x1 << S5P_CLKSRC_CPU_MUXCORE_SHIFT)); |
| 358 | } | 358 | } |
| 359 | 359 | ||
| 360 | static void s5pv310_set_frequency(unsigned int old_index, unsigned int new_index) | 360 | static void exynos4_set_frequency(unsigned int old_index, unsigned int new_index) |
| 361 | { | 361 | { |
| 362 | unsigned int tmp; | 362 | unsigned int tmp; |
| 363 | 363 | ||
| 364 | if (old_index > new_index) { | 364 | if (old_index > new_index) { |
| 365 | /* The frequency changing to L0 needs to change apll */ | 365 | /* The frequency changing to L0 needs to change apll */ |
| 366 | if (freqs.new == s5pv310_freq_table[L0].frequency) { | 366 | if (freqs.new == exynos4_freq_table[L0].frequency) { |
| 367 | /* 1. Change the system clock divider values */ | 367 | /* 1. Change the system clock divider values */ |
| 368 | s5pv310_set_clkdiv(new_index); | 368 | exynos4_set_clkdiv(new_index); |
| 369 | 369 | ||
| 370 | /* 2. Change the apll m,p,s value */ | 370 | /* 2. Change the apll m,p,s value */ |
| 371 | s5pv310_set_apll(new_index); | 371 | exynos4_set_apll(new_index); |
| 372 | } else { | 372 | } else { |
| 373 | /* 1. Change the system clock divider values */ | 373 | /* 1. Change the system clock divider values */ |
| 374 | s5pv310_set_clkdiv(new_index); | 374 | exynos4_set_clkdiv(new_index); |
| 375 | 375 | ||
| 376 | /* 2. Change just s value in apll m,p,s value */ | 376 | /* 2. Change just s value in apll m,p,s value */ |
| 377 | tmp = __raw_readl(S5P_APLL_CON0); | 377 | tmp = __raw_readl(S5P_APLL_CON0); |
| 378 | tmp &= ~(0x7 << 0); | 378 | tmp &= ~(0x7 << 0); |
| 379 | tmp |= (s5pv310_apll_pms_table[new_index] & 0x7); | 379 | tmp |= (exynos4_apll_pms_table[new_index] & 0x7); |
| 380 | __raw_writel(tmp, S5P_APLL_CON0); | 380 | __raw_writel(tmp, S5P_APLL_CON0); |
| 381 | } | 381 | } |
| 382 | } | 382 | } |
| 383 | 383 | ||
| 384 | else if (old_index < new_index) { | 384 | else if (old_index < new_index) { |
| 385 | /* The frequency changing from L0 needs to change apll */ | 385 | /* The frequency changing from L0 needs to change apll */ |
| 386 | if (freqs.old == s5pv310_freq_table[L0].frequency) { | 386 | if (freqs.old == exynos4_freq_table[L0].frequency) { |
| 387 | /* 1. Change the apll m,p,s value */ | 387 | /* 1. Change the apll m,p,s value */ |
| 388 | s5pv310_set_apll(new_index); | 388 | exynos4_set_apll(new_index); |
| 389 | 389 | ||
| 390 | /* 2. Change the system clock divider values */ | 390 | /* 2. Change the system clock divider values */ |
| 391 | s5pv310_set_clkdiv(new_index); | 391 | exynos4_set_clkdiv(new_index); |
| 392 | } else { | 392 | } else { |
| 393 | /* 1. Change just s value in apll m,p,s value */ | 393 | /* 1. Change just s value in apll m,p,s value */ |
| 394 | tmp = __raw_readl(S5P_APLL_CON0); | 394 | tmp = __raw_readl(S5P_APLL_CON0); |
| 395 | tmp &= ~(0x7 << 0); | 395 | tmp &= ~(0x7 << 0); |
| 396 | tmp |= (s5pv310_apll_pms_table[new_index] & 0x7); | 396 | tmp |= (exynos4_apll_pms_table[new_index] & 0x7); |
| 397 | __raw_writel(tmp, S5P_APLL_CON0); | 397 | __raw_writel(tmp, S5P_APLL_CON0); |
| 398 | 398 | ||
| 399 | /* 2. Change the system clock divider values */ | 399 | /* 2. Change the system clock divider values */ |
| 400 | s5pv310_set_clkdiv(new_index); | 400 | exynos4_set_clkdiv(new_index); |
| 401 | } | 401 | } |
| 402 | } | 402 | } |
| 403 | } | 403 | } |
| 404 | 404 | ||
| 405 | static int s5pv310_target(struct cpufreq_policy *policy, | 405 | static int exynos4_target(struct cpufreq_policy *policy, |
| 406 | unsigned int target_freq, | 406 | unsigned int target_freq, |
| 407 | unsigned int relation) | 407 | unsigned int relation) |
| 408 | { | 408 | { |
| 409 | unsigned int index, old_index; | 409 | unsigned int index, old_index; |
| 410 | unsigned int arm_volt, int_volt; | 410 | unsigned int arm_volt, int_volt; |
| 411 | 411 | ||
| 412 | freqs.old = s5pv310_getspeed(policy->cpu); | 412 | freqs.old = exynos4_getspeed(policy->cpu); |
| 413 | 413 | ||
| 414 | if (cpufreq_frequency_table_target(policy, s5pv310_freq_table, | 414 | if (cpufreq_frequency_table_target(policy, exynos4_freq_table, |
| 415 | freqs.old, relation, &old_index)) | 415 | freqs.old, relation, &old_index)) |
| 416 | return -EINVAL; | 416 | return -EINVAL; |
| 417 | 417 | ||
| 418 | if (cpufreq_frequency_table_target(policy, s5pv310_freq_table, | 418 | if (cpufreq_frequency_table_target(policy, exynos4_freq_table, |
| 419 | target_freq, relation, &index)) | 419 | target_freq, relation, &index)) |
| 420 | return -EINVAL; | 420 | return -EINVAL; |
| 421 | 421 | ||
| 422 | freqs.new = s5pv310_freq_table[index].frequency; | 422 | freqs.new = exynos4_freq_table[index].frequency; |
| 423 | freqs.cpu = policy->cpu; | 423 | freqs.cpu = policy->cpu; |
| 424 | 424 | ||
| 425 | if (freqs.new == freqs.old) | 425 | if (freqs.new == freqs.old) |
| 426 | return 0; | 426 | return 0; |
| 427 | 427 | ||
| 428 | /* get the voltage value */ | 428 | /* get the voltage value */ |
| 429 | arm_volt = s5pv310_volt_table[index].arm_volt; | 429 | arm_volt = exynos4_volt_table[index].arm_volt; |
| 430 | int_volt = s5pv310_volt_table[index].int_volt; | 430 | int_volt = exynos4_volt_table[index].int_volt; |
| 431 | 431 | ||
| 432 | cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE); | 432 | cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE); |
| 433 | 433 | ||
| @@ -441,7 +441,7 @@ static int s5pv310_target(struct cpufreq_policy *policy, | |||
| 441 | } | 441 | } |
| 442 | 442 | ||
| 443 | /* Clock Configuration Procedure */ | 443 | /* Clock Configuration Procedure */ |
| 444 | s5pv310_set_frequency(old_index, index); | 444 | exynos4_set_frequency(old_index, index); |
| 445 | 445 | ||
| 446 | /* control regulator */ | 446 | /* control regulator */ |
| 447 | if (freqs.new < freqs.old) { | 447 | if (freqs.new < freqs.old) { |
| @@ -458,52 +458,52 @@ static int s5pv310_target(struct cpufreq_policy *policy, | |||
| 458 | } | 458 | } |
| 459 | 459 | ||
| 460 | #ifdef CONFIG_PM | 460 | #ifdef CONFIG_PM |
| 461 | static int s5pv310_cpufreq_suspend(struct cpufreq_policy *policy, | 461 | static int exynos4_cpufreq_suspend(struct cpufreq_policy *policy, |
| 462 | pm_message_t pmsg) | 462 | pm_message_t pmsg) |
| 463 | { | 463 | { |
| 464 | return 0; | 464 | return 0; |
| 465 | } | 465 | } |
| 466 | 466 | ||
| 467 | static int s5pv310_cpufreq_resume(struct cpufreq_policy *policy) | 467 | static int exynos4_cpufreq_resume(struct cpufreq_policy *policy) |
| 468 | { | 468 | { |
| 469 | return 0; | 469 | return 0; |
| 470 | } | 470 | } |
| 471 | #endif | 471 | #endif |
| 472 | 472 | ||
| 473 | static int s5pv310_cpufreq_cpu_init(struct cpufreq_policy *policy) | 473 | static int exynos4_cpufreq_cpu_init(struct cpufreq_policy *policy) |
| 474 | { | 474 | { |
| 475 | policy->cur = policy->min = policy->max = s5pv310_getspeed(policy->cpu); | 475 | policy->cur = policy->min = policy->max = exynos4_getspeed(policy->cpu); |
| 476 | 476 | ||
| 477 | cpufreq_frequency_table_get_attr(s5pv310_freq_table, policy->cpu); | 477 | cpufreq_frequency_table_get_attr(exynos4_freq_table, policy->cpu); |
| 478 | 478 | ||
| 479 | /* set the transition latency value */ | 479 | /* set the transition latency value */ |
| 480 | policy->cpuinfo.transition_latency = 100000; | 480 | policy->cpuinfo.transition_latency = 100000; |
| 481 | 481 | ||
| 482 | /* | 482 | /* |
| 483 | * S5PV310 multi-core processors has 2 cores | 483 | * EXYNOS4 multi-core processors has 2 cores |
| 484 | * that the frequency cannot be set independently. | 484 | * that the frequency cannot be set independently. |
| 485 | * Each cpu is bound to the same speed. | 485 | * Each cpu is bound to the same speed. |
| 486 | * So the affected cpu is all of the cpus. | 486 | * So the affected cpu is all of the cpus. |
| 487 | */ | 487 | */ |
| 488 | cpumask_setall(policy->cpus); | 488 | cpumask_setall(policy->cpus); |
| 489 | 489 | ||
| 490 | return cpufreq_frequency_table_cpuinfo(policy, s5pv310_freq_table); | 490 | return cpufreq_frequency_table_cpuinfo(policy, exynos4_freq_table); |
| 491 | } | 491 | } |
| 492 | 492 | ||
| 493 | static struct cpufreq_driver s5pv310_driver = { | 493 | static struct cpufreq_driver exynos4_driver = { |
| 494 | .flags = CPUFREQ_STICKY, | 494 | .flags = CPUFREQ_STICKY, |
| 495 | .verify = s5pv310_verify_speed, | 495 | .verify = exynos4_verify_speed, |
| 496 | .target = s5pv310_target, | 496 | .target = exynos4_target, |
| 497 | .get = s5pv310_getspeed, | 497 | .get = exynos4_getspeed, |
| 498 | .init = s5pv310_cpufreq_cpu_init, | 498 | .init = exynos4_cpufreq_cpu_init, |
| 499 | .name = "s5pv310_cpufreq", | 499 | .name = "exynos4_cpufreq", |
| 500 | #ifdef CONFIG_PM | 500 | #ifdef CONFIG_PM |
| 501 | .suspend = s5pv310_cpufreq_suspend, | 501 | .suspend = exynos4_cpufreq_suspend, |
| 502 | .resume = s5pv310_cpufreq_resume, | 502 | .resume = exynos4_cpufreq_resume, |
| 503 | #endif | 503 | #endif |
| 504 | }; | 504 | }; |
| 505 | 505 | ||
| 506 | static int __init s5pv310_cpufreq_init(void) | 506 | static int __init exynos4_cpufreq_init(void) |
| 507 | { | 507 | { |
| 508 | cpu_clk = clk_get(NULL, "armclk"); | 508 | cpu_clk = clk_get(NULL, "armclk"); |
| 509 | if (IS_ERR(cpu_clk)) | 509 | if (IS_ERR(cpu_clk)) |
| @@ -550,7 +550,7 @@ static int __init s5pv310_cpufreq_init(void) | |||
| 550 | printk(KERN_DEBUG "%s: memtype= 0x%x\n", __func__, memtype); | 550 | printk(KERN_DEBUG "%s: memtype= 0x%x\n", __func__, memtype); |
| 551 | } | 551 | } |
| 552 | 552 | ||
| 553 | return cpufreq_register_driver(&s5pv310_driver); | 553 | return cpufreq_register_driver(&exynos4_driver); |
| 554 | 554 | ||
| 555 | out: | 555 | out: |
| 556 | if (!IS_ERR(cpu_clk)) | 556 | if (!IS_ERR(cpu_clk)) |
| @@ -577,4 +577,4 @@ out: | |||
| 577 | 577 | ||
| 578 | return -EINVAL; | 578 | return -EINVAL; |
| 579 | } | 579 | } |
| 580 | late_initcall(s5pv310_cpufreq_init); | 580 | late_initcall(exynos4_cpufreq_init); |
diff --git a/arch/arm/mach-s5pv310/dma.c b/arch/arm/mach-exynos4/dma.c index 20066c7c9e56..564bb530f332 100644 --- a/arch/arm/mach-s5pv310/dma.c +++ b/arch/arm/mach-exynos4/dma.c | |||
| @@ -1,4 +1,8 @@ | |||
| 1 | /* | 1 | /* linux/arch/arm/mach-exynos4/dma.c |
| 2 | * | ||
| 3 | * Copyright (c) 2011 Samsung Electronics Co., Ltd. | ||
| 4 | * http://www.samsung.com | ||
| 5 | * | ||
| 2 | * Copyright (C) 2010 Samsung Electronics Co. Ltd. | 6 | * Copyright (C) 2010 Samsung Electronics Co. Ltd. |
| 3 | * Jaswinder Singh <jassi.brar@samsung.com> | 7 | * Jaswinder Singh <jassi.brar@samsung.com> |
| 4 | * | 8 | * |
| @@ -30,10 +34,10 @@ | |||
| 30 | 34 | ||
| 31 | static u64 dma_dmamask = DMA_BIT_MASK(32); | 35 | static u64 dma_dmamask = DMA_BIT_MASK(32); |
| 32 | 36 | ||
| 33 | static struct resource s5pv310_pdma0_resource[] = { | 37 | static struct resource exynos4_pdma0_resource[] = { |
| 34 | [0] = { | 38 | [0] = { |
| 35 | .start = S5PV310_PA_PDMA0, | 39 | .start = EXYNOS4_PA_PDMA0, |
| 36 | .end = S5PV310_PA_PDMA0 + SZ_4K, | 40 | .end = EXYNOS4_PA_PDMA0 + SZ_4K, |
| 37 | .flags = IORESOURCE_MEM, | 41 | .flags = IORESOURCE_MEM, |
| 38 | }, | 42 | }, |
| 39 | [1] = { | 43 | [1] = { |
| @@ -43,7 +47,7 @@ static struct resource s5pv310_pdma0_resource[] = { | |||
| 43 | }, | 47 | }, |
| 44 | }; | 48 | }; |
| 45 | 49 | ||
| 46 | static struct s3c_pl330_platdata s5pv310_pdma0_pdata = { | 50 | static struct s3c_pl330_platdata exynos4_pdma0_pdata = { |
| 47 | .peri = { | 51 | .peri = { |
| 48 | [0] = DMACH_PCM0_RX, | 52 | [0] = DMACH_PCM0_RX, |
| 49 | [1] = DMACH_PCM0_TX, | 53 | [1] = DMACH_PCM0_TX, |
| @@ -80,22 +84,22 @@ static struct s3c_pl330_platdata s5pv310_pdma0_pdata = { | |||
| 80 | }, | 84 | }, |
| 81 | }; | 85 | }; |
| 82 | 86 | ||
| 83 | static struct platform_device s5pv310_device_pdma0 = { | 87 | static struct platform_device exynos4_device_pdma0 = { |
| 84 | .name = "s3c-pl330", | 88 | .name = "s3c-pl330", |
| 85 | .id = 0, | 89 | .id = 0, |
| 86 | .num_resources = ARRAY_SIZE(s5pv310_pdma0_resource), | 90 | .num_resources = ARRAY_SIZE(exynos4_pdma0_resource), |
| 87 | .resource = s5pv310_pdma0_resource, | 91 | .resource = exynos4_pdma0_resource, |
| 88 | .dev = { | 92 | .dev = { |
| 89 | .dma_mask = &dma_dmamask, | 93 | .dma_mask = &dma_dmamask, |
| 90 | .coherent_dma_mask = DMA_BIT_MASK(32), | 94 | .coherent_dma_mask = DMA_BIT_MASK(32), |
| 91 | .platform_data = &s5pv310_pdma0_pdata, | 95 | .platform_data = &exynos4_pdma0_pdata, |
| 92 | }, | 96 | }, |
| 93 | }; | 97 | }; |
| 94 | 98 | ||
| 95 | static struct resource s5pv310_pdma1_resource[] = { | 99 | static struct resource exynos4_pdma1_resource[] = { |
| 96 | [0] = { | 100 | [0] = { |
| 97 | .start = S5PV310_PA_PDMA1, | 101 | .start = EXYNOS4_PA_PDMA1, |
| 98 | .end = S5PV310_PA_PDMA1 + SZ_4K, | 102 | .end = EXYNOS4_PA_PDMA1 + SZ_4K, |
| 99 | .flags = IORESOURCE_MEM, | 103 | .flags = IORESOURCE_MEM, |
| 100 | }, | 104 | }, |
| 101 | [1] = { | 105 | [1] = { |
| @@ -105,7 +109,7 @@ static struct resource s5pv310_pdma1_resource[] = { | |||
| 105 | }, | 109 | }, |
| 106 | }; | 110 | }; |
| 107 | 111 | ||
| 108 | static struct s3c_pl330_platdata s5pv310_pdma1_pdata = { | 112 | static struct s3c_pl330_platdata exynos4_pdma1_pdata = { |
| 109 | .peri = { | 113 | .peri = { |
| 110 | [0] = DMACH_PCM0_RX, | 114 | [0] = DMACH_PCM0_RX, |
| 111 | [1] = DMACH_PCM0_TX, | 115 | [1] = DMACH_PCM0_TX, |
| @@ -142,27 +146,27 @@ static struct s3c_pl330_platdata s5pv310_pdma1_pdata = { | |||
| 142 | }, | 146 | }, |
| 143 | }; | 147 | }; |
| 144 | 148 | ||
| 145 | static struct platform_device s5pv310_device_pdma1 = { | 149 | static struct platform_device exynos4_device_pdma1 = { |
| 146 | .name = "s3c-pl330", | 150 | .name = "s3c-pl330", |
| 147 | .id = 1, | 151 | .id = 1, |
| 148 | .num_resources = ARRAY_SIZE(s5pv310_pdma1_resource), | 152 | .num_resources = ARRAY_SIZE(exynos4_pdma1_resource), |
| 149 | .resource = s5pv310_pdma1_resource, | 153 | .resource = exynos4_pdma1_resource, |
| 150 | .dev = { | 154 | .dev = { |
| 151 | .dma_mask = &dma_dmamask, | 155 | .dma_mask = &dma_dmamask, |
| 152 | .coherent_dma_mask = DMA_BIT_MASK(32), | 156 | .coherent_dma_mask = DMA_BIT_MASK(32), |
| 153 | .platform_data = &s5pv310_pdma1_pdata, | 157 | .platform_data = &exynos4_pdma1_pdata, |
| 154 | }, | 158 | }, |
| 155 | }; | 159 | }; |
| 156 | 160 | ||
| 157 | static struct platform_device *s5pv310_dmacs[] __initdata = { | 161 | static struct platform_device *exynos4_dmacs[] __initdata = { |
| 158 | &s5pv310_device_pdma0, | 162 | &exynos4_device_pdma0, |
| 159 | &s5pv310_device_pdma1, | 163 | &exynos4_device_pdma1, |
| 160 | }; | 164 | }; |
| 161 | 165 | ||
| 162 | static int __init s5pv310_dma_init(void) | 166 | static int __init exynos4_dma_init(void) |
| 163 | { | 167 | { |
| 164 | platform_add_devices(s5pv310_dmacs, ARRAY_SIZE(s5pv310_dmacs)); | 168 | platform_add_devices(exynos4_dmacs, ARRAY_SIZE(exynos4_dmacs)); |
| 165 | 169 | ||
| 166 | return 0; | 170 | return 0; |
| 167 | } | 171 | } |
| 168 | arch_initcall(s5pv310_dma_init); | 172 | arch_initcall(exynos4_dma_init); |
diff --git a/arch/arm/mach-s5pv310/gpiolib.c b/arch/arm/mach-exynos4/gpiolib.c index 55217b8923ec..c46fdc57d94c 100644 --- a/arch/arm/mach-s5pv310/gpiolib.c +++ b/arch/arm/mach-exynos4/gpiolib.c | |||
| @@ -1,9 +1,9 @@ | |||
| 1 | /* linux/arch/arm/mach-s5pv310/gpiolib.c | 1 | /* linux/arch/arm/mach-exynos4/gpiolib.c |
| 2 | * | 2 | * |
| 3 | * Copyright (c) 2010 Samsung Electronics Co., Ltd. | 3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. |
| 4 | * http://www.samsung.com | 4 | * http://www.samsung.com |
| 5 | * | 5 | * |
| 6 | * S5PV310 - GPIOlib support | 6 | * EXYNOS4 - GPIOlib support |
| 7 | * | 7 | * |
| 8 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
| 9 | * it under the terms of the GNU General Public License version 2 as | 9 | * it under the terms of the GNU General Public License version 2 as |
| @@ -43,159 +43,159 @@ static struct s3c_gpio_cfg gpio_cfg_noint = { | |||
| 43 | * Note: The initialization of 'base' member of s3c_gpio_chip structure | 43 | * Note: The initialization of 'base' member of s3c_gpio_chip structure |
| 44 | * uses the above macro and depends on the banks being listed in order here. | 44 | * uses the above macro and depends on the banks being listed in order here. |
| 45 | */ | 45 | */ |
| 46 | static struct s3c_gpio_chip s5pv310_gpio_part1_4bit[] = { | 46 | static struct s3c_gpio_chip exynos4_gpio_part1_4bit[] = { |
| 47 | { | 47 | { |
| 48 | .chip = { | 48 | .chip = { |
| 49 | .base = S5PV310_GPA0(0), | 49 | .base = EXYNOS4_GPA0(0), |
| 50 | .ngpio = S5PV310_GPIO_A0_NR, | 50 | .ngpio = EXYNOS4_GPIO_A0_NR, |
| 51 | .label = "GPA0", | 51 | .label = "GPA0", |
| 52 | }, | 52 | }, |
| 53 | }, { | 53 | }, { |
| 54 | .chip = { | 54 | .chip = { |
| 55 | .base = S5PV310_GPA1(0), | 55 | .base = EXYNOS4_GPA1(0), |
| 56 | .ngpio = S5PV310_GPIO_A1_NR, | 56 | .ngpio = EXYNOS4_GPIO_A1_NR, |
| 57 | .label = "GPA1", | 57 | .label = "GPA1", |
| 58 | }, | 58 | }, |
| 59 | }, { | 59 | }, { |
| 60 | .chip = { | 60 | .chip = { |
| 61 | .base = S5PV310_GPB(0), | 61 | .base = EXYNOS4_GPB(0), |
| 62 | .ngpio = S5PV310_GPIO_B_NR, | 62 | .ngpio = EXYNOS4_GPIO_B_NR, |
| 63 | .label = "GPB", | 63 | .label = "GPB", |
| 64 | }, | 64 | }, |
| 65 | }, { | 65 | }, { |
| 66 | .chip = { | 66 | .chip = { |
| 67 | .base = S5PV310_GPC0(0), | 67 | .base = EXYNOS4_GPC0(0), |
| 68 | .ngpio = S5PV310_GPIO_C0_NR, | 68 | .ngpio = EXYNOS4_GPIO_C0_NR, |
| 69 | .label = "GPC0", | 69 | .label = "GPC0", |
| 70 | }, | 70 | }, |
| 71 | }, { | 71 | }, { |
| 72 | .chip = { | 72 | .chip = { |
| 73 | .base = S5PV310_GPC1(0), | 73 | .base = EXYNOS4_GPC1(0), |
| 74 | .ngpio = S5PV310_GPIO_C1_NR, | 74 | .ngpio = EXYNOS4_GPIO_C1_NR, |
| 75 | .label = "GPC1", | 75 | .label = "GPC1", |
| 76 | }, | 76 | }, |
| 77 | }, { | 77 | }, { |
| 78 | .chip = { | 78 | .chip = { |
| 79 | .base = S5PV310_GPD0(0), | 79 | .base = EXYNOS4_GPD0(0), |
| 80 | .ngpio = S5PV310_GPIO_D0_NR, | 80 | .ngpio = EXYNOS4_GPIO_D0_NR, |
| 81 | .label = "GPD0", | 81 | .label = "GPD0", |
| 82 | }, | 82 | }, |
| 83 | }, { | 83 | }, { |
| 84 | .chip = { | 84 | .chip = { |
| 85 | .base = S5PV310_GPD1(0), | 85 | .base = EXYNOS4_GPD1(0), |
| 86 | .ngpio = S5PV310_GPIO_D1_NR, | 86 | .ngpio = EXYNOS4_GPIO_D1_NR, |
| 87 | .label = "GPD1", | 87 | .label = "GPD1", |
| 88 | }, | 88 | }, |
| 89 | }, { | 89 | }, { |
| 90 | .chip = { | 90 | .chip = { |
| 91 | .base = S5PV310_GPE0(0), | 91 | .base = EXYNOS4_GPE0(0), |
| 92 | .ngpio = S5PV310_GPIO_E0_NR, | 92 | .ngpio = EXYNOS4_GPIO_E0_NR, |
| 93 | .label = "GPE0", | 93 | .label = "GPE0", |
| 94 | }, | 94 | }, |
| 95 | }, { | 95 | }, { |
| 96 | .chip = { | 96 | .chip = { |
| 97 | .base = S5PV310_GPE1(0), | 97 | .base = EXYNOS4_GPE1(0), |
| 98 | .ngpio = S5PV310_GPIO_E1_NR, | 98 | .ngpio = EXYNOS4_GPIO_E1_NR, |
| 99 | .label = "GPE1", | 99 | .label = "GPE1", |
| 100 | }, | 100 | }, |
| 101 | }, { | 101 | }, { |
| 102 | .chip = { | 102 | .chip = { |
| 103 | .base = S5PV310_GPE2(0), | 103 | .base = EXYNOS4_GPE2(0), |
| 104 | .ngpio = S5PV310_GPIO_E2_NR, | 104 | .ngpio = EXYNOS4_GPIO_E2_NR, |
| 105 | .label = "GPE2", | 105 | .label = "GPE2", |
| 106 | }, | 106 | }, |
| 107 | }, { | 107 | }, { |
| 108 | .chip = { | 108 | .chip = { |
| 109 | .base = S5PV310_GPE3(0), | 109 | .base = EXYNOS4_GPE3(0), |
| 110 | .ngpio = S5PV310_GPIO_E3_NR, | 110 | .ngpio = EXYNOS4_GPIO_E3_NR, |
| 111 | .label = "GPE3", | 111 | .label = "GPE3", |
| 112 | }, | 112 | }, |
| 113 | }, { | 113 | }, { |
| 114 | .chip = { | 114 | .chip = { |
| 115 | .base = S5PV310_GPE4(0), | 115 | .base = EXYNOS4_GPE4(0), |
| 116 | .ngpio = S5PV310_GPIO_E4_NR, | 116 | .ngpio = EXYNOS4_GPIO_E4_NR, |
| 117 | .label = "GPE4", | 117 | .label = "GPE4", |
| 118 | }, | 118 | }, |
| 119 | }, { | 119 | }, { |
| 120 | .chip = { | 120 | .chip = { |
| 121 | .base = S5PV310_GPF0(0), | 121 | .base = EXYNOS4_GPF0(0), |
| 122 | .ngpio = S5PV310_GPIO_F0_NR, | 122 | .ngpio = EXYNOS4_GPIO_F0_NR, |
| 123 | .label = "GPF0", | 123 | .label = "GPF0", |
| 124 | }, | 124 | }, |
| 125 | }, { | 125 | }, { |
| 126 | .chip = { | 126 | .chip = { |
| 127 | .base = S5PV310_GPF1(0), | 127 | .base = EXYNOS4_GPF1(0), |
| 128 | .ngpio = S5PV310_GPIO_F1_NR, | 128 | .ngpio = EXYNOS4_GPIO_F1_NR, |
| 129 | .label = "GPF1", | 129 | .label = "GPF1", |
| 130 | }, | 130 | }, |
| 131 | }, { | 131 | }, { |
| 132 | .chip = { | 132 | .chip = { |
| 133 | .base = S5PV310_GPF2(0), | 133 | .base = EXYNOS4_GPF2(0), |
| 134 | .ngpio = S5PV310_GPIO_F2_NR, | 134 | .ngpio = EXYNOS4_GPIO_F2_NR, |
| 135 | .label = "GPF2", | 135 | .label = "GPF2", |
| 136 | }, | 136 | }, |
| 137 | }, { | 137 | }, { |
| 138 | .chip = { | 138 | .chip = { |
| 139 | .base = S5PV310_GPF3(0), | 139 | .base = EXYNOS4_GPF3(0), |
| 140 | .ngpio = S5PV310_GPIO_F3_NR, | 140 | .ngpio = EXYNOS4_GPIO_F3_NR, |
| 141 | .label = "GPF3", | 141 | .label = "GPF3", |
| 142 | }, | 142 | }, |
| 143 | }, | 143 | }, |
| 144 | }; | 144 | }; |
| 145 | 145 | ||
| 146 | static struct s3c_gpio_chip s5pv310_gpio_part2_4bit[] = { | 146 | static struct s3c_gpio_chip exynos4_gpio_part2_4bit[] = { |
| 147 | { | 147 | { |
| 148 | .chip = { | 148 | .chip = { |
| 149 | .base = S5PV310_GPJ0(0), | 149 | .base = EXYNOS4_GPJ0(0), |
| 150 | .ngpio = S5PV310_GPIO_J0_NR, | 150 | .ngpio = EXYNOS4_GPIO_J0_NR, |
| 151 | .label = "GPJ0", | 151 | .label = "GPJ0", |
| 152 | }, | 152 | }, |
| 153 | }, { | 153 | }, { |
| 154 | .chip = { | 154 | .chip = { |
| 155 | .base = S5PV310_GPJ1(0), | 155 | .base = EXYNOS4_GPJ1(0), |
| 156 | .ngpio = S5PV310_GPIO_J1_NR, | 156 | .ngpio = EXYNOS4_GPIO_J1_NR, |
| 157 | .label = "GPJ1", | 157 | .label = "GPJ1", |
| 158 | }, | 158 | }, |
| 159 | }, { | 159 | }, { |
| 160 | .chip = { | 160 | .chip = { |
| 161 | .base = S5PV310_GPK0(0), | 161 | .base = EXYNOS4_GPK0(0), |
| 162 | .ngpio = S5PV310_GPIO_K0_NR, | 162 | .ngpio = EXYNOS4_GPIO_K0_NR, |
| 163 | .label = "GPK0", | 163 | .label = "GPK0", |
| 164 | }, | 164 | }, |
| 165 | }, { | 165 | }, { |
| 166 | .chip = { | 166 | .chip = { |
| 167 | .base = S5PV310_GPK1(0), | 167 | .base = EXYNOS4_GPK1(0), |
| 168 | .ngpio = S5PV310_GPIO_K1_NR, | 168 | .ngpio = EXYNOS4_GPIO_K1_NR, |
| 169 | .label = "GPK1", | 169 | .label = "GPK1", |
| 170 | }, | 170 | }, |
| 171 | }, { | 171 | }, { |
| 172 | .chip = { | 172 | .chip = { |
| 173 | .base = S5PV310_GPK2(0), | 173 | .base = EXYNOS4_GPK2(0), |
| 174 | .ngpio = S5PV310_GPIO_K2_NR, | 174 | .ngpio = EXYNOS4_GPIO_K2_NR, |
| 175 | .label = "GPK2", | 175 | .label = "GPK2", |
| 176 | }, | 176 | }, |
| 177 | }, { | 177 | }, { |
| 178 | .chip = { | 178 | .chip = { |
| 179 | .base = S5PV310_GPK3(0), | 179 | .base = EXYNOS4_GPK3(0), |
| 180 | .ngpio = S5PV310_GPIO_K3_NR, | 180 | .ngpio = EXYNOS4_GPIO_K3_NR, |
| 181 | .label = "GPK3", | 181 | .label = "GPK3", |
| 182 | }, | 182 | }, |
| 183 | }, { | 183 | }, { |
| 184 | .chip = { | 184 | .chip = { |
| 185 | .base = S5PV310_GPL0(0), | 185 | .base = EXYNOS4_GPL0(0), |
| 186 | .ngpio = S5PV310_GPIO_L0_NR, | 186 | .ngpio = EXYNOS4_GPIO_L0_NR, |
| 187 | .label = "GPL0", | 187 | .label = "GPL0", |
| 188 | }, | 188 | }, |
| 189 | }, { | 189 | }, { |
| 190 | .chip = { | 190 | .chip = { |
| 191 | .base = S5PV310_GPL1(0), | 191 | .base = EXYNOS4_GPL1(0), |
| 192 | .ngpio = S5PV310_GPIO_L1_NR, | 192 | .ngpio = EXYNOS4_GPIO_L1_NR, |
| 193 | .label = "GPL1", | 193 | .label = "GPL1", |
| 194 | }, | 194 | }, |
| 195 | }, { | 195 | }, { |
| 196 | .chip = { | 196 | .chip = { |
| 197 | .base = S5PV310_GPL2(0), | 197 | .base = EXYNOS4_GPL2(0), |
| 198 | .ngpio = S5PV310_GPIO_L2_NR, | 198 | .ngpio = EXYNOS4_GPIO_L2_NR, |
| 199 | .label = "GPL2", | 199 | .label = "GPL2", |
| 200 | }, | 200 | }, |
| 201 | }, { | 201 | }, { |
| @@ -203,8 +203,8 @@ static struct s3c_gpio_chip s5pv310_gpio_part2_4bit[] = { | |||
| 203 | .config = &gpio_cfg_noint, | 203 | .config = &gpio_cfg_noint, |
| 204 | .irq_base = IRQ_EINT(0), | 204 | .irq_base = IRQ_EINT(0), |
| 205 | .chip = { | 205 | .chip = { |
| 206 | .base = S5PV310_GPX0(0), | 206 | .base = EXYNOS4_GPX0(0), |
| 207 | .ngpio = S5PV310_GPIO_X0_NR, | 207 | .ngpio = EXYNOS4_GPIO_X0_NR, |
| 208 | .label = "GPX0", | 208 | .label = "GPX0", |
| 209 | .to_irq = samsung_gpiolib_to_irq, | 209 | .to_irq = samsung_gpiolib_to_irq, |
| 210 | }, | 210 | }, |
| @@ -213,8 +213,8 @@ static struct s3c_gpio_chip s5pv310_gpio_part2_4bit[] = { | |||
| 213 | .config = &gpio_cfg_noint, | 213 | .config = &gpio_cfg_noint, |
| 214 | .irq_base = IRQ_EINT(8), | 214 | .irq_base = IRQ_EINT(8), |
| 215 | .chip = { | 215 | .chip = { |
| 216 | .base = S5PV310_GPX1(0), | 216 | .base = EXYNOS4_GPX1(0), |
| 217 | .ngpio = S5PV310_GPIO_X1_NR, | 217 | .ngpio = EXYNOS4_GPIO_X1_NR, |
| 218 | .label = "GPX1", | 218 | .label = "GPX1", |
| 219 | .to_irq = samsung_gpiolib_to_irq, | 219 | .to_irq = samsung_gpiolib_to_irq, |
| 220 | }, | 220 | }, |
| @@ -223,8 +223,8 @@ static struct s3c_gpio_chip s5pv310_gpio_part2_4bit[] = { | |||
| 223 | .config = &gpio_cfg_noint, | 223 | .config = &gpio_cfg_noint, |
| 224 | .irq_base = IRQ_EINT(16), | 224 | .irq_base = IRQ_EINT(16), |
| 225 | .chip = { | 225 | .chip = { |
| 226 | .base = S5PV310_GPX2(0), | 226 | .base = EXYNOS4_GPX2(0), |
| 227 | .ngpio = S5PV310_GPIO_X2_NR, | 227 | .ngpio = EXYNOS4_GPIO_X2_NR, |
| 228 | .label = "GPX2", | 228 | .label = "GPX2", |
| 229 | .to_irq = samsung_gpiolib_to_irq, | 229 | .to_irq = samsung_gpiolib_to_irq, |
| 230 | }, | 230 | }, |
| @@ -233,25 +233,25 @@ static struct s3c_gpio_chip s5pv310_gpio_part2_4bit[] = { | |||
| 233 | .config = &gpio_cfg_noint, | 233 | .config = &gpio_cfg_noint, |
| 234 | .irq_base = IRQ_EINT(24), | 234 | .irq_base = IRQ_EINT(24), |
| 235 | .chip = { | 235 | .chip = { |
| 236 | .base = S5PV310_GPX3(0), | 236 | .base = EXYNOS4_GPX3(0), |
| 237 | .ngpio = S5PV310_GPIO_X3_NR, | 237 | .ngpio = EXYNOS4_GPIO_X3_NR, |
| 238 | .label = "GPX3", | 238 | .label = "GPX3", |
| 239 | .to_irq = samsung_gpiolib_to_irq, | 239 | .to_irq = samsung_gpiolib_to_irq, |
| 240 | }, | 240 | }, |
| 241 | }, | 241 | }, |
| 242 | }; | 242 | }; |
| 243 | 243 | ||
| 244 | static struct s3c_gpio_chip s5pv310_gpio_part3_4bit[] = { | 244 | static struct s3c_gpio_chip exynos4_gpio_part3_4bit[] = { |
| 245 | { | 245 | { |
| 246 | .chip = { | 246 | .chip = { |
| 247 | .base = S5PV310_GPZ(0), | 247 | .base = EXYNOS4_GPZ(0), |
| 248 | .ngpio = S5PV310_GPIO_Z_NR, | 248 | .ngpio = EXYNOS4_GPIO_Z_NR, |
| 249 | .label = "GPZ", | 249 | .label = "GPZ", |
| 250 | }, | 250 | }, |
| 251 | }, | 251 | }, |
| 252 | }; | 252 | }; |
| 253 | 253 | ||
| 254 | static __init int s5pv310_gpiolib_init(void) | 254 | static __init int exynos4_gpiolib_init(void) |
| 255 | { | 255 | { |
| 256 | struct s3c_gpio_chip *chip; | 256 | struct s3c_gpio_chip *chip; |
| 257 | int i; | 257 | int i; |
| @@ -259,8 +259,8 @@ static __init int s5pv310_gpiolib_init(void) | |||
| 259 | 259 | ||
| 260 | /* GPIO part 1 */ | 260 | /* GPIO part 1 */ |
| 261 | 261 | ||
| 262 | chip = s5pv310_gpio_part1_4bit; | 262 | chip = exynos4_gpio_part1_4bit; |
| 263 | nr_chips = ARRAY_SIZE(s5pv310_gpio_part1_4bit); | 263 | nr_chips = ARRAY_SIZE(exynos4_gpio_part1_4bit); |
| 264 | 264 | ||
| 265 | for (i = 0; i < nr_chips; i++, chip++) { | 265 | for (i = 0; i < nr_chips; i++, chip++) { |
| 266 | if (chip->config == NULL) | 266 | if (chip->config == NULL) |
| @@ -269,12 +269,12 @@ static __init int s5pv310_gpiolib_init(void) | |||
| 269 | chip->base = S5P_VA_GPIO1 + (i) * 0x20; | 269 | chip->base = S5P_VA_GPIO1 + (i) * 0x20; |
| 270 | } | 270 | } |
| 271 | 271 | ||
| 272 | samsung_gpiolib_add_4bit_chips(s5pv310_gpio_part1_4bit, nr_chips); | 272 | samsung_gpiolib_add_4bit_chips(exynos4_gpio_part1_4bit, nr_chips); |
| 273 | 273 | ||
| 274 | /* GPIO part 2 */ | 274 | /* GPIO part 2 */ |
| 275 | 275 | ||
| 276 | chip = s5pv310_gpio_part2_4bit; | 276 | chip = exynos4_gpio_part2_4bit; |
| 277 | nr_chips = ARRAY_SIZE(s5pv310_gpio_part2_4bit); | 277 | nr_chips = ARRAY_SIZE(exynos4_gpio_part2_4bit); |
| 278 | 278 | ||
| 279 | for (i = 0; i < nr_chips; i++, chip++) { | 279 | for (i = 0; i < nr_chips; i++, chip++) { |
| 280 | if (chip->config == NULL) | 280 | if (chip->config == NULL) |
| @@ -283,12 +283,12 @@ static __init int s5pv310_gpiolib_init(void) | |||
| 283 | chip->base = S5P_VA_GPIO2 + (i) * 0x20; | 283 | chip->base = S5P_VA_GPIO2 + (i) * 0x20; |
| 284 | } | 284 | } |
| 285 | 285 | ||
| 286 | samsung_gpiolib_add_4bit_chips(s5pv310_gpio_part2_4bit, nr_chips); | 286 | samsung_gpiolib_add_4bit_chips(exynos4_gpio_part2_4bit, nr_chips); |
| 287 | 287 | ||
| 288 | /* GPIO part 3 */ | 288 | /* GPIO part 3 */ |
| 289 | 289 | ||
| 290 | chip = s5pv310_gpio_part3_4bit; | 290 | chip = exynos4_gpio_part3_4bit; |
| 291 | nr_chips = ARRAY_SIZE(s5pv310_gpio_part3_4bit); | 291 | nr_chips = ARRAY_SIZE(exynos4_gpio_part3_4bit); |
| 292 | 292 | ||
| 293 | for (i = 0; i < nr_chips; i++, chip++) { | 293 | for (i = 0; i < nr_chips; i++, chip++) { |
| 294 | if (chip->config == NULL) | 294 | if (chip->config == NULL) |
| @@ -297,8 +297,8 @@ static __init int s5pv310_gpiolib_init(void) | |||
| 297 | chip->base = S5P_VA_GPIO3 + (i) * 0x20; | 297 | chip->base = S5P_VA_GPIO3 + (i) * 0x20; |
| 298 | } | 298 | } |
| 299 | 299 | ||
| 300 | samsung_gpiolib_add_4bit_chips(s5pv310_gpio_part3_4bit, nr_chips); | 300 | samsung_gpiolib_add_4bit_chips(exynos4_gpio_part3_4bit, nr_chips); |
| 301 | 301 | ||
| 302 | return 0; | 302 | return 0; |
| 303 | } | 303 | } |
| 304 | core_initcall(s5pv310_gpiolib_init); | 304 | core_initcall(exynos4_gpiolib_init); |
diff --git a/arch/arm/mach-s5pv310/headsmp.S b/arch/arm/mach-exynos4/headsmp.S index 164b7b045713..6c6cfc50c46b 100644 --- a/arch/arm/mach-s5pv310/headsmp.S +++ b/arch/arm/mach-exynos4/headsmp.S | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * linux/arch/arm/mach-s5pv310/headsmp.S | 2 | * linux/arch/arm/mach-exynos4/headsmp.S |
| 3 | * | 3 | * |
| 4 | * Cloned from linux/arch/arm/mach-realview/headsmp.S | 4 | * Cloned from linux/arch/arm/mach-realview/headsmp.S |
| 5 | * | 5 | * |
| @@ -16,11 +16,11 @@ | |||
| 16 | __INIT | 16 | __INIT |
| 17 | 17 | ||
| 18 | /* | 18 | /* |
| 19 | * s5pv310 specific entry point for secondary CPUs. This provides | 19 | * exynos4 specific entry point for secondary CPUs. This provides |
| 20 | * a "holding pen" into which all secondary cores are held until we're | 20 | * a "holding pen" into which all secondary cores are held until we're |
| 21 | * ready for them to initialise. | 21 | * ready for them to initialise. |
| 22 | */ | 22 | */ |
| 23 | ENTRY(s5pv310_secondary_startup) | 23 | ENTRY(exynos4_secondary_startup) |
| 24 | mrc p15, 0, r0, c0, c0, 5 | 24 | mrc p15, 0, r0, c0, c0, 5 |
| 25 | and r0, r0, #15 | 25 | and r0, r0, #15 |
| 26 | adr r4, 1f | 26 | adr r4, 1f |
diff --git a/arch/arm/mach-s5pv310/hotplug.c b/arch/arm/mach-exynos4/hotplug.c index c24235c89eed..4c42f9ce1c53 100644 --- a/arch/arm/mach-s5pv310/hotplug.c +++ b/arch/arm/mach-exynos4/hotplug.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* linux arch/arm/mach-s5pv310/hotplug.c | 1 | /* linux arch/arm/mach-exynos4/hotplug.c |
| 2 | * | 2 | * |
| 3 | * Cloned from linux/arch/arm/mach-realview/hotplug.c | 3 | * Cloned from linux/arch/arm/mach-realview/hotplug.c |
| 4 | * | 4 | * |
diff --git a/arch/arm/mach-s5pv310/include/mach/debug-macro.S b/arch/arm/mach-exynos4/include/mach/debug-macro.S index b0d920c474d3..58bbd049a6c4 100644 --- a/arch/arm/mach-s5pv310/include/mach/debug-macro.S +++ b/arch/arm/mach-exynos4/include/mach/debug-macro.S | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | /* linux/arch/arm/mach-s5pv310/include/mach/debug-macro.S | 1 | /* linux/arch/arm/mach-exynos4/include/mach/debug-macro.S |
| 2 | * | 2 | * |
| 3 | * Copyright (c) 2010 Samsung Electronics Co., Ltd. | 3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. |
| 4 | * http://www.samsung.com/ | 4 | * http://www.samsung.com |
| 5 | * | 5 | * |
| 6 | * Based on arch/arm/mach-s3c6400/include/mach/debug-macro.S | 6 | * Based on arch/arm/mach-s3c6400/include/mach/debug-macro.S |
| 7 | * | 7 | * |
diff --git a/arch/arm/mach-s5pv310/include/mach/dma.h b/arch/arm/mach-exynos4/include/mach/dma.h index 81209eb1409b..81209eb1409b 100644 --- a/arch/arm/mach-s5pv310/include/mach/dma.h +++ b/arch/arm/mach-exynos4/include/mach/dma.h | |||
diff --git a/arch/arm/mach-s5pv310/include/mach/entry-macro.S b/arch/arm/mach-exynos4/include/mach/entry-macro.S index e600e1d522df..d8f38c2e5654 100644 --- a/arch/arm/mach-s5pv310/include/mach/entry-macro.S +++ b/arch/arm/mach-exynos4/include/mach/entry-macro.S | |||
| @@ -1,8 +1,8 @@ | |||
| 1 | /* arch/arm/mach-s5pv310/include/mach/entry-macro.S | 1 | /* arch/arm/mach-exynos4/include/mach/entry-macro.S |
| 2 | * | 2 | * |
| 3 | * Cloned from arch/arm/mach-realview/include/mach/entry-macro.S | 3 | * Cloned from arch/arm/mach-realview/include/mach/entry-macro.S |
| 4 | * | 4 | * |
| 5 | * Low-level IRQ helper macros for S5PV310 platforms | 5 | * Low-level IRQ helper macros for EXYNOS4 platforms |
| 6 | * | 6 | * |
| 7 | * This file is licensed under the terms of the GNU General Public | 7 | * This file is licensed under the terms of the GNU General Public |
| 8 | * License version 2. This program is licensed "as is" without any | 8 | * License version 2. This program is licensed "as is" without any |
diff --git a/arch/arm/mach-exynos4/include/mach/gpio.h b/arch/arm/mach-exynos4/include/mach/gpio.h new file mode 100644 index 000000000000..16082998bcd8 --- /dev/null +++ b/arch/arm/mach-exynos4/include/mach/gpio.h | |||
| @@ -0,0 +1,135 @@ | |||
| 1 | /* linux/arch/arm/mach-exynos4/include/mach/gpio.h | ||
| 2 | * | ||
| 3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. | ||
| 4 | * http://www.samsung.com | ||
| 5 | * | ||
| 6 | * EXYNOS4 - GPIO lib support | ||
| 7 | * | ||
| 8 | * This program is free software; you can redistribute it and/or modify | ||
| 9 | * it under the terms of the GNU General Public License version 2 as | ||
| 10 | * published by the Free Software Foundation. | ||
| 11 | */ | ||
| 12 | |||
| 13 | #ifndef __ASM_ARCH_GPIO_H | ||
| 14 | #define __ASM_ARCH_GPIO_H __FILE__ | ||
| 15 | |||
| 16 | #define gpio_get_value __gpio_get_value | ||
| 17 | #define gpio_set_value __gpio_set_value | ||
| 18 | #define gpio_cansleep __gpio_cansleep | ||
| 19 | #define gpio_to_irq __gpio_to_irq | ||
| 20 | |||
| 21 | /* Practically, GPIO banks upto GPZ are the configurable gpio banks */ | ||
| 22 | |||
| 23 | /* GPIO bank sizes */ | ||
| 24 | #define EXYNOS4_GPIO_A0_NR (8) | ||
| 25 | #define EXYNOS4_GPIO_A1_NR (6) | ||
| 26 | #define EXYNOS4_GPIO_B_NR (8) | ||
| 27 | #define EXYNOS4_GPIO_C0_NR (5) | ||
| 28 | #define EXYNOS4_GPIO_C1_NR (5) | ||
| 29 | #define EXYNOS4_GPIO_D0_NR (4) | ||
| 30 | #define EXYNOS4_GPIO_D1_NR (4) | ||
| 31 | #define EXYNOS4_GPIO_E0_NR (5) | ||
| 32 | #define EXYNOS4_GPIO_E1_NR (8) | ||
| 33 | #define EXYNOS4_GPIO_E2_NR (6) | ||
| 34 | #define EXYNOS4_GPIO_E3_NR (8) | ||
| 35 | #define EXYNOS4_GPIO_E4_NR (8) | ||
| 36 | #define EXYNOS4_GPIO_F0_NR (8) | ||
| 37 | #define EXYNOS4_GPIO_F1_NR (8) | ||
| 38 | #define EXYNOS4_GPIO_F2_NR (8) | ||
| 39 | #define EXYNOS4_GPIO_F3_NR (6) | ||
| 40 | #define EXYNOS4_GPIO_J0_NR (8) | ||
| 41 | #define EXYNOS4_GPIO_J1_NR (5) | ||
| 42 | #define EXYNOS4_GPIO_K0_NR (7) | ||
| 43 | #define EXYNOS4_GPIO_K1_NR (7) | ||
| 44 | #define EXYNOS4_GPIO_K2_NR (7) | ||
| 45 | #define EXYNOS4_GPIO_K3_NR (7) | ||
| 46 | #define EXYNOS4_GPIO_L0_NR (8) | ||
| 47 | #define EXYNOS4_GPIO_L1_NR (3) | ||
| 48 | #define EXYNOS4_GPIO_L2_NR (8) | ||
| 49 | #define EXYNOS4_GPIO_X0_NR (8) | ||
| 50 | #define EXYNOS4_GPIO_X1_NR (8) | ||
| 51 | #define EXYNOS4_GPIO_X2_NR (8) | ||
| 52 | #define EXYNOS4_GPIO_X3_NR (8) | ||
| 53 | #define EXYNOS4_GPIO_Z_NR (7) | ||
| 54 | |||
| 55 | /* GPIO bank numbers */ | ||
| 56 | |||
| 57 | #define EXYNOS4_GPIO_NEXT(__gpio) \ | ||
| 58 | ((__gpio##_START) + (__gpio##_NR) + CONFIG_S3C_GPIO_SPACE + 1) | ||
| 59 | |||
| 60 | enum s5p_gpio_number { | ||
| 61 | EXYNOS4_GPIO_A0_START = 0, | ||
| 62 | EXYNOS4_GPIO_A1_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_A0), | ||
| 63 | EXYNOS4_GPIO_B_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_A1), | ||
| 64 | EXYNOS4_GPIO_C0_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_B), | ||
| 65 | EXYNOS4_GPIO_C1_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_C0), | ||
| 66 | EXYNOS4_GPIO_D0_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_C1), | ||
| 67 | EXYNOS4_GPIO_D1_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_D0), | ||
| 68 | EXYNOS4_GPIO_E0_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_D1), | ||
| 69 | EXYNOS4_GPIO_E1_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_E0), | ||
| 70 | EXYNOS4_GPIO_E2_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_E1), | ||
| 71 | EXYNOS4_GPIO_E3_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_E2), | ||
| 72 | EXYNOS4_GPIO_E4_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_E3), | ||
| 73 | EXYNOS4_GPIO_F0_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_E4), | ||
| 74 | EXYNOS4_GPIO_F1_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_F0), | ||
| 75 | EXYNOS4_GPIO_F2_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_F1), | ||
| 76 | EXYNOS4_GPIO_F3_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_F2), | ||
| 77 | EXYNOS4_GPIO_J0_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_F3), | ||
| 78 | EXYNOS4_GPIO_J1_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_J0), | ||
| 79 | EXYNOS4_GPIO_K0_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_J1), | ||
| 80 | EXYNOS4_GPIO_K1_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_K0), | ||
| 81 | EXYNOS4_GPIO_K2_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_K1), | ||
| 82 | EXYNOS4_GPIO_K3_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_K2), | ||
| 83 | EXYNOS4_GPIO_L0_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_K3), | ||
| 84 | EXYNOS4_GPIO_L1_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_L0), | ||
| 85 | EXYNOS4_GPIO_L2_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_L1), | ||
| 86 | EXYNOS4_GPIO_X0_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_L2), | ||
| 87 | EXYNOS4_GPIO_X1_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_X0), | ||
| 88 | EXYNOS4_GPIO_X2_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_X1), | ||
| 89 | EXYNOS4_GPIO_X3_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_X2), | ||
| 90 | EXYNOS4_GPIO_Z_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_X3), | ||
| 91 | }; | ||
| 92 | |||
| 93 | /* EXYNOS4 GPIO number definitions */ | ||
| 94 | #define EXYNOS4_GPA0(_nr) (EXYNOS4_GPIO_A0_START + (_nr)) | ||
| 95 | #define EXYNOS4_GPA1(_nr) (EXYNOS4_GPIO_A1_START + (_nr)) | ||
| 96 | #define EXYNOS4_GPB(_nr) (EXYNOS4_GPIO_B_START + (_nr)) | ||
| 97 | #define EXYNOS4_GPC0(_nr) (EXYNOS4_GPIO_C0_START + (_nr)) | ||
| 98 | #define EXYNOS4_GPC1(_nr) (EXYNOS4_GPIO_C1_START + (_nr)) | ||
| 99 | #define EXYNOS4_GPD0(_nr) (EXYNOS4_GPIO_D0_START + (_nr)) | ||
| 100 | #define EXYNOS4_GPD1(_nr) (EXYNOS4_GPIO_D1_START + (_nr)) | ||
| 101 | #define EXYNOS4_GPE0(_nr) (EXYNOS4_GPIO_E0_START + (_nr)) | ||
| 102 | #define EXYNOS4_GPE1(_nr) (EXYNOS4_GPIO_E1_START + (_nr)) | ||
| 103 | #define EXYNOS4_GPE2(_nr) (EXYNOS4_GPIO_E2_START + (_nr)) | ||
| 104 | #define EXYNOS4_GPE3(_nr) (EXYNOS4_GPIO_E3_START + (_nr)) | ||
| 105 | #define EXYNOS4_GPE4(_nr) (EXYNOS4_GPIO_E4_START + (_nr)) | ||
| 106 | #define EXYNOS4_GPF0(_nr) (EXYNOS4_GPIO_F0_START + (_nr)) | ||
| 107 | #define EXYNOS4_GPF1(_nr) (EXYNOS4_GPIO_F1_START + (_nr)) | ||
| 108 | #define EXYNOS4_GPF2(_nr) (EXYNOS4_GPIO_F2_START + (_nr)) | ||
| 109 | #define EXYNOS4_GPF3(_nr) (EXYNOS4_GPIO_F3_START + (_nr)) | ||
| 110 | #define EXYNOS4_GPJ0(_nr) (EXYNOS4_GPIO_J0_START + (_nr)) | ||
| 111 | #define EXYNOS4_GPJ1(_nr) (EXYNOS4_GPIO_J1_START + (_nr)) | ||
| 112 | #define EXYNOS4_GPK0(_nr) (EXYNOS4_GPIO_K0_START + (_nr)) | ||
| 113 | #define EXYNOS4_GPK1(_nr) (EXYNOS4_GPIO_K1_START + (_nr)) | ||
| 114 | #define EXYNOS4_GPK2(_nr) (EXYNOS4_GPIO_K2_START + (_nr)) | ||
| 115 | #define EXYNOS4_GPK3(_nr) (EXYNOS4_GPIO_K3_START + (_nr)) | ||
| 116 | #define EXYNOS4_GPL0(_nr) (EXYNOS4_GPIO_L0_START + (_nr)) | ||
| 117 | #define EXYNOS4_GPL1(_nr) (EXYNOS4_GPIO_L1_START + (_nr)) | ||
| 118 | #define EXYNOS4_GPL2(_nr) (EXYNOS4_GPIO_L2_START + (_nr)) | ||
| 119 | #define EXYNOS4_GPX0(_nr) (EXYNOS4_GPIO_X0_START + (_nr)) | ||
| 120 | #define EXYNOS4_GPX1(_nr) (EXYNOS4_GPIO_X1_START + (_nr)) | ||
| 121 | #define EXYNOS4_GPX2(_nr) (EXYNOS4_GPIO_X2_START + (_nr)) | ||
| 122 | #define EXYNOS4_GPX3(_nr) (EXYNOS4_GPIO_X3_START + (_nr)) | ||
| 123 | #define EXYNOS4_GPZ(_nr) (EXYNOS4_GPIO_Z_START + (_nr)) | ||
| 124 | |||
| 125 | /* the end of the EXYNOS4 specific gpios */ | ||
| 126 | #define EXYNOS4_GPIO_END (EXYNOS4_GPZ(EXYNOS4_GPIO_Z_NR) + 1) | ||
| 127 | #define S3C_GPIO_END EXYNOS4_GPIO_END | ||
| 128 | |||
| 129 | /* define the number of gpios we need to the one after the GPZ() range */ | ||
| 130 | #define ARCH_NR_GPIOS (EXYNOS4_GPZ(EXYNOS4_GPIO_Z_NR) + \ | ||
| 131 | CONFIG_SAMSUNG_GPIO_EXTRA + 1) | ||
| 132 | |||
| 133 | #include <asm-generic/gpio.h> | ||
| 134 | |||
| 135 | #endif /* __ASM_ARCH_GPIO_H */ | ||
diff --git a/arch/arm/mach-s5pv310/include/mach/hardware.h b/arch/arm/mach-exynos4/include/mach/hardware.h index 28ff9881f1a6..5109eb232f23 100644 --- a/arch/arm/mach-s5pv310/include/mach/hardware.h +++ b/arch/arm/mach-exynos4/include/mach/hardware.h | |||
| @@ -1,9 +1,9 @@ | |||
| 1 | /* linux/arch/arm/mach-s5pv310/include/mach/hardware.h | 1 | /* linux/arch/arm/mach-exynos4/include/mach/hardware.h |
| 2 | * | 2 | * |
| 3 | * Copyright (c) 2010 Samsung Electronics Co., Ltd. | 3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. |
| 4 | * http://www.samsung.com/ | 4 | * http://www.samsung.com |
| 5 | * | 5 | * |
| 6 | * S5PV310 - Hardware support | 6 | * EXYNOS4 - Hardware support |
| 7 | * | 7 | * |
| 8 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
| 9 | * it under the terms of the GNU General Public License version 2 as | 9 | * it under the terms of the GNU General Public License version 2 as |
diff --git a/arch/arm/mach-s5pv310/include/mach/io.h b/arch/arm/mach-exynos4/include/mach/io.h index 8a7f9128391f..d5478d247535 100644 --- a/arch/arm/mach-s5pv310/include/mach/io.h +++ b/arch/arm/mach-exynos4/include/mach/io.h | |||
| @@ -1,13 +1,13 @@ | |||
| 1 | /* linux/arch/arm/mach-s5pv310/include/mach/io.h | 1 | /* linux/arch/arm/mach-exynos4/include/mach/io.h |
| 2 | * | 2 | * |
| 3 | * Copyright (c) 2010 Samsung Electronics Co., Ltd. | 3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. |
| 4 | * http://www.samsung.com/ | 4 | * http://www.samsung.com |
| 5 | * | 5 | * |
| 6 | * Copyright 2008-2010 Ben Dooks <ben-linux@fluff.org> | 6 | * Copyright 2008-2010 Ben Dooks <ben-linux@fluff.org> |
| 7 | * | 7 | * |
| 8 | * Based on arch/arm/mach-s5p6442/include/mach/io.h | 8 | * Based on arch/arm/mach-s5p6442/include/mach/io.h |
| 9 | * | 9 | * |
| 10 | * Default IO routines for S5PV310 | 10 | * Default IO routines for EXYNOS4 |
| 11 | * | 11 | * |
| 12 | * This program is free software; you can redistribute it and/or modify | 12 | * This program is free software; you can redistribute it and/or modify |
| 13 | * it under the terms of the GNU General Public License version 2 as | 13 | * it under the terms of the GNU General Public License version 2 as |
diff --git a/arch/arm/mach-exynos4/include/mach/map.h b/arch/arm/mach-exynos4/include/mach/map.h new file mode 100644 index 000000000000..80a41e03cc17 --- /dev/null +++ b/arch/arm/mach-exynos4/include/mach/map.h | |||
| @@ -0,0 +1,144 @@ | |||
| 1 | /* linux/arch/arm/mach-exynos4/include/mach/map.h | ||
| 2 | * | ||
| 3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. | ||
| 4 | * http://www.samsung.com/ | ||
| 5 | * | ||
| 6 | * EXYNOS4 - Memory map definitions | ||
| 7 | * | ||
| 8 | * This program is free software; you can redistribute it and/or modify | ||
| 9 | * it under the terms of the GNU General Public License version 2 as | ||
| 10 | * published by the Free Software Foundation. | ||
| 11 | */ | ||
| 12 | |||
| 13 | #ifndef __ASM_ARCH_MAP_H | ||
| 14 | #define __ASM_ARCH_MAP_H __FILE__ | ||
| 15 | |||
| 16 | #include <plat/map-base.h> | ||
| 17 | |||
| 18 | /* | ||
| 19 | * EXYNOS4 UART offset is 0x10000 but the older S5P SoCs are 0x400. | ||
| 20 | * So need to define it, and here is to avoid redefinition warning. | ||
| 21 | */ | ||
| 22 | #define S3C_UART_OFFSET (0x10000) | ||
| 23 | |||
| 24 | #include <plat/map-s5p.h> | ||
| 25 | |||
| 26 | #define EXYNOS4_PA_SYSRAM 0x02020000 | ||
| 27 | |||
| 28 | #define EXYNOS4_PA_I2S0 0x03830000 | ||
| 29 | #define EXYNOS4_PA_I2S1 0xE3100000 | ||
| 30 | #define EXYNOS4_PA_I2S2 0xE2A00000 | ||
| 31 | |||
| 32 | #define EXYNOS4_PA_PCM0 0x03840000 | ||
| 33 | #define EXYNOS4_PA_PCM1 0x13980000 | ||
| 34 | #define EXYNOS4_PA_PCM2 0x13990000 | ||
| 35 | |||
| 36 | #define EXYNOS4_PA_SROM_BANK(x) (0x04000000 + ((x) * 0x01000000)) | ||
| 37 | |||
| 38 | #define EXYNOS4_PA_ONENAND 0x0C000000 | ||
| 39 | #define EXYNOS4_PA_ONENAND_DMA 0x0C600000 | ||
| 40 | |||
| 41 | #define EXYNOS4_PA_CHIPID 0x10000000 | ||
| 42 | |||
| 43 | #define EXYNOS4_PA_SYSCON 0x10010000 | ||
| 44 | #define EXYNOS4_PA_PMU 0x10020000 | ||
| 45 | #define EXYNOS4_PA_CMU 0x10030000 | ||
| 46 | |||
| 47 | #define EXYNOS4_PA_WATCHDOG 0x10060000 | ||
| 48 | #define EXYNOS4_PA_RTC 0x10070000 | ||
| 49 | |||
| 50 | #define EXYNOS4_PA_DMC0 0x10400000 | ||
| 51 | |||
| 52 | #define EXYNOS4_PA_COMBINER 0x10448000 | ||
| 53 | |||
| 54 | #define EXYNOS4_PA_COREPERI 0x10500000 | ||
| 55 | #define EXYNOS4_PA_GIC_CPU 0x10500100 | ||
| 56 | #define EXYNOS4_PA_TWD 0x10500600 | ||
| 57 | #define EXYNOS4_PA_GIC_DIST 0x10501000 | ||
| 58 | #define EXYNOS4_PA_L2CC 0x10502000 | ||
| 59 | |||
| 60 | #define EXYNOS4_PA_MDMA 0x10810000 | ||
| 61 | #define EXYNOS4_PA_PDMA0 0x12680000 | ||
| 62 | #define EXYNOS4_PA_PDMA1 0x12690000 | ||
| 63 | |||
| 64 | #define EXYNOS4_PA_SYSMMU_MDMA 0x10A40000 | ||
| 65 | #define EXYNOS4_PA_SYSMMU_SSS 0x10A50000 | ||
| 66 | #define EXYNOS4_PA_SYSMMU_FIMC0 0x11A20000 | ||
| 67 | #define EXYNOS4_PA_SYSMMU_FIMC1 0x11A30000 | ||
| 68 | #define EXYNOS4_PA_SYSMMU_FIMC2 0x11A40000 | ||
| 69 | #define EXYNOS4_PA_SYSMMU_FIMC3 0x11A50000 | ||
| 70 | #define EXYNOS4_PA_SYSMMU_JPEG 0x11A60000 | ||
| 71 | #define EXYNOS4_PA_SYSMMU_FIMD0 0x11E20000 | ||
| 72 | #define EXYNOS4_PA_SYSMMU_FIMD1 0x12220000 | ||
| 73 | #define EXYNOS4_PA_SYSMMU_PCIe 0x12620000 | ||
| 74 | #define EXYNOS4_PA_SYSMMU_G2D 0x12A20000 | ||
| 75 | #define EXYNOS4_PA_SYSMMU_ROTATOR 0x12A30000 | ||
| 76 | #define EXYNOS4_PA_SYSMMU_MDMA2 0x12A40000 | ||
| 77 | #define EXYNOS4_PA_SYSMMU_TV 0x12E20000 | ||
| 78 | #define EXYNOS4_PA_SYSMMU_MFC_L 0x13620000 | ||
| 79 | #define EXYNOS4_PA_SYSMMU_MFC_R 0x13630000 | ||
| 80 | |||
| 81 | #define EXYNOS4_PA_GPIO1 0x11400000 | ||
| 82 | #define EXYNOS4_PA_GPIO2 0x11000000 | ||
| 83 | #define EXYNOS4_PA_GPIO3 0x03860000 | ||
| 84 | |||
| 85 | #define EXYNOS4_PA_MIPI_CSIS0 0x11880000 | ||
| 86 | #define EXYNOS4_PA_MIPI_CSIS1 0x11890000 | ||
| 87 | |||
| 88 | #define EXYNOS4_PA_HSMMC(x) (0x12510000 + ((x) * 0x10000)) | ||
| 89 | |||
| 90 | #define EXYNOS4_PA_SROMC 0x12570000 | ||
| 91 | |||
| 92 | #define EXYNOS4_PA_UART 0x13800000 | ||
| 93 | |||
| 94 | #define EXYNOS4_PA_IIC(x) (0x13860000 + ((x) * 0x10000)) | ||
| 95 | |||
| 96 | #define EXYNOS4_PA_AC97 0x139A0000 | ||
| 97 | |||
| 98 | #define EXYNOS4_PA_TIMER 0x139D0000 | ||
| 99 | |||
| 100 | #define EXYNOS4_PA_SDRAM 0x40000000 | ||
| 101 | |||
| 102 | #define EXYNOS4_PA_SPDIF 0xE1100000 | ||
| 103 | |||
| 104 | /* Compatibiltiy Defines */ | ||
| 105 | |||
| 106 | #define S3C_PA_HSMMC0 EXYNOS4_PA_HSMMC(0) | ||
| 107 | #define S3C_PA_HSMMC1 EXYNOS4_PA_HSMMC(1) | ||
| 108 | #define S3C_PA_HSMMC2 EXYNOS4_PA_HSMMC(2) | ||
| 109 | #define S3C_PA_HSMMC3 EXYNOS4_PA_HSMMC(3) | ||
| 110 | #define S3C_PA_IIC EXYNOS4_PA_IIC(0) | ||
| 111 | #define S3C_PA_IIC1 EXYNOS4_PA_IIC(1) | ||
| 112 | #define S3C_PA_IIC2 EXYNOS4_PA_IIC(2) | ||
| 113 | #define S3C_PA_IIC3 EXYNOS4_PA_IIC(3) | ||
| 114 | #define S3C_PA_IIC4 EXYNOS4_PA_IIC(4) | ||
| 115 | #define S3C_PA_IIC5 EXYNOS4_PA_IIC(5) | ||
| 116 | #define S3C_PA_IIC6 EXYNOS4_PA_IIC(6) | ||
| 117 | #define S3C_PA_IIC7 EXYNOS4_PA_IIC(7) | ||
| 118 | #define S3C_PA_RTC EXYNOS4_PA_RTC | ||
| 119 | #define S3C_PA_WDT EXYNOS4_PA_WATCHDOG | ||
| 120 | |||
| 121 | #define S5P_PA_CHIPID EXYNOS4_PA_CHIPID | ||
| 122 | #define S5P_PA_MIPI_CSIS0 EXYNOS4_PA_MIPI_CSIS0 | ||
| 123 | #define S5P_PA_MIPI_CSIS1 EXYNOS4_PA_MIPI_CSIS1 | ||
| 124 | #define S5P_PA_ONENAND EXYNOS4_PA_ONENAND | ||
| 125 | #define S5P_PA_ONENAND_DMA EXYNOS4_PA_ONENAND_DMA | ||
| 126 | #define S5P_PA_SDRAM EXYNOS4_PA_SDRAM | ||
| 127 | #define S5P_PA_SROMC EXYNOS4_PA_SROMC | ||
| 128 | #define S5P_PA_SYSCON EXYNOS4_PA_SYSCON | ||
| 129 | #define S5P_PA_TIMER EXYNOS4_PA_TIMER | ||
| 130 | |||
| 131 | /* UART */ | ||
| 132 | |||
| 133 | #define S3C_PA_UART EXYNOS4_PA_UART | ||
| 134 | |||
| 135 | #define S5P_PA_UART(x) (S3C_PA_UART + ((x) * S3C_UART_OFFSET)) | ||
| 136 | #define S5P_PA_UART0 S5P_PA_UART(0) | ||
| 137 | #define S5P_PA_UART1 S5P_PA_UART(1) | ||
| 138 | #define S5P_PA_UART2 S5P_PA_UART(2) | ||
| 139 | #define S5P_PA_UART3 S5P_PA_UART(3) | ||
| 140 | #define S5P_PA_UART4 S5P_PA_UART(4) | ||
| 141 | |||
| 142 | #define S5P_SZ_UART SZ_256 | ||
| 143 | |||
| 144 | #endif /* __ASM_ARCH_MAP_H */ | ||
diff --git a/arch/arm/mach-s5pv310/include/mach/memory.h b/arch/arm/mach-exynos4/include/mach/memory.h index 1dffb4823245..39b47d06f9bb 100644 --- a/arch/arm/mach-s5pv310/include/mach/memory.h +++ b/arch/arm/mach-exynos4/include/mach/memory.h | |||
| @@ -1,9 +1,9 @@ | |||
| 1 | /* linux/arch/arm/mach-s5pv310/include/mach/memory.h | 1 | /* linux/arch/arm/mach-exynos4/include/mach/memory.h |
| 2 | * | 2 | * |
| 3 | * Copyright (c) 2010 Samsung Electronics Co., Ltd. | 3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. |
| 4 | * http://www.samsung.com/ | 4 | * http://www.samsung.com |
| 5 | * | 5 | * |
| 6 | * S5PV310 - Memory definitions | 6 | * EXYNOS4 - Memory definitions |
| 7 | * | 7 | * |
| 8 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
| 9 | * it under the terms of the GNU General Public License version 2 as | 9 | * it under the terms of the GNU General Public License version 2 as |
diff --git a/arch/arm/mach-exynos4/include/mach/regs-gpio.h b/arch/arm/mach-exynos4/include/mach/regs-gpio.h new file mode 100644 index 000000000000..1401b21663a5 --- /dev/null +++ b/arch/arm/mach-exynos4/include/mach/regs-gpio.h | |||
| @@ -0,0 +1,42 @@ | |||
| 1 | /* linux/arch/arm/mach-exynos4/include/mach/regs-gpio.h | ||
| 2 | * | ||
| 3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. | ||
| 4 | * http://www.samsung.com | ||
| 5 | * | ||
| 6 | * EXYNOS4 - GPIO (including EINT) register definitions | ||
| 7 | * | ||
| 8 | * This program is free software; you can redistribute it and/or modify | ||
| 9 | * it under the terms of the GNU General Public License version 2 as | ||
| 10 | * published by the Free Software Foundation. | ||
| 11 | */ | ||
| 12 | |||
| 13 | #ifndef __ASM_ARCH_REGS_GPIO_H | ||
| 14 | #define __ASM_ARCH_REGS_GPIO_H __FILE__ | ||
| 15 | |||
| 16 | #include <mach/map.h> | ||
| 17 | #include <mach/irqs.h> | ||
| 18 | |||
| 19 | #define EXYNOS4_EINT40CON (S5P_VA_GPIO2 + 0xE00) | ||
| 20 | #define S5P_EINT_CON(x) (EXYNOS4_EINT40CON + ((x) * 0x4)) | ||
| 21 | |||
| 22 | #define EXYNOS4_EINT40FLTCON0 (S5P_VA_GPIO2 + 0xE80) | ||
| 23 | #define S5P_EINT_FLTCON(x) (EXYNOS4_EINT40FLTCON0 + ((x) * 0x4)) | ||
| 24 | |||
| 25 | #define EXYNOS4_EINT40MASK (S5P_VA_GPIO2 + 0xF00) | ||
| 26 | #define S5P_EINT_MASK(x) (EXYNOS4_EINT40MASK + ((x) * 0x4)) | ||
| 27 | |||
| 28 | #define EXYNOS4_EINT40PEND (S5P_VA_GPIO2 + 0xF40) | ||
| 29 | #define S5P_EINT_PEND(x) (EXYNOS4_EINT40PEND + ((x) * 0x4)) | ||
| 30 | |||
| 31 | #define EINT_REG_NR(x) (EINT_OFFSET(x) >> 3) | ||
| 32 | |||
| 33 | #define eint_irq_to_bit(irq) (1 << (EINT_OFFSET(irq) & 0x7)) | ||
| 34 | |||
| 35 | #define EINT_MODE S3C_GPIO_SFN(0xf) | ||
| 36 | |||
| 37 | #define EINT_GPIO_0(x) EXYNOS4_GPX0(x) | ||
| 38 | #define EINT_GPIO_1(x) EXYNOS4_GPX1(x) | ||
| 39 | #define EINT_GPIO_2(x) EXYNOS4_GPX2(x) | ||
| 40 | #define EINT_GPIO_3(x) EXYNOS4_GPX3(x) | ||
| 41 | |||
| 42 | #endif /* __ASM_ARCH_REGS_GPIO_H */ | ||
diff --git a/arch/arm/mach-s5pv310/include/mach/regs-mem.h b/arch/arm/mach-exynos4/include/mach/regs-mem.h index 834227140eaa..0368b5a27252 100644 --- a/arch/arm/mach-s5pv310/include/mach/regs-mem.h +++ b/arch/arm/mach-exynos4/include/mach/regs-mem.h | |||
| @@ -1,9 +1,9 @@ | |||
| 1 | /* linux/arch/arm/mach-s5pv310/include/mach/regs-mem.h | 1 | /* linux/arch/arm/mach-exynos4/include/mach/regs-mem.h |
| 2 | * | 2 | * |
| 3 | * Copyright (c) 2010 Samsung Electronics Co., Ltd. | 3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. |
| 4 | * http://www.samsung.com | 4 | * http://www.samsung.com |
| 5 | * | 5 | * |
| 6 | * S5PV310 - SROMC and DMC register definitions | 6 | * EXYNOS4 - SROMC and DMC register definitions |
| 7 | * | 7 | * |
| 8 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
| 9 | * it under the terms of the GNU General Public License version 2 as | 9 | * it under the terms of the GNU General Public License version 2 as |
diff --git a/arch/arm/mach-s5pv310/include/mach/regs-pmu.h b/arch/arm/mach-exynos4/include/mach/regs-pmu.h index fb333d0f6073..2ddd6175dfa0 100644 --- a/arch/arm/mach-s5pv310/include/mach/regs-pmu.h +++ b/arch/arm/mach-exynos4/include/mach/regs-pmu.h | |||
| @@ -1,9 +1,9 @@ | |||
| 1 | /* linux/arch/arm/mach-s5pv310/include/mach/regs-pmu.h | 1 | /* linux/arch/arm/mach-exynos4/include/mach/regs-pmu.h |
| 2 | * | 2 | * |
| 3 | * Copyright (c) 2010 Samsung Electronics Co., Ltd. | 3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. |
| 4 | * http://www.samsung.com | 4 | * http://www.samsung.com |
| 5 | * | 5 | * |
| 6 | * S5PV310 - Power management unit definition | 6 | * EXYNOS4 - Power management unit definition |
| 7 | * | 7 | * |
| 8 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
| 9 | * it under the terms of the GNU General Public License version 2 as | 9 | * it under the terms of the GNU General Public License version 2 as |
| @@ -18,7 +18,7 @@ | |||
| 18 | #define S5P_PMUREG(x) (S5P_VA_PMU + (x)) | 18 | #define S5P_PMUREG(x) (S5P_VA_PMU + (x)) |
| 19 | 19 | ||
| 20 | #define S5P_PMU_CAM_CONF S5P_PMUREG(0x3C00) | 20 | #define S5P_PMU_CAM_CONF S5P_PMUREG(0x3C00) |
| 21 | #define S5P_PMU_TV_CONF S5P_PMUREG(0x3C20) | 21 | #define S5P_PMU_TV_CONF S5P_PMUREG(0x3C20) |
| 22 | #define S5P_PMU_MFC_CONF S5P_PMUREG(0x3C40) | 22 | #define S5P_PMU_MFC_CONF S5P_PMUREG(0x3C40) |
| 23 | #define S5P_PMU_G3D_CONF S5P_PMUREG(0x3C60) | 23 | #define S5P_PMU_G3D_CONF S5P_PMUREG(0x3C60) |
| 24 | #define S5P_PMU_LCD0_CONF S5P_PMUREG(0x3C80) | 24 | #define S5P_PMU_LCD0_CONF S5P_PMUREG(0x3C80) |
diff --git a/arch/arm/mach-s5pv310/include/mach/regs-sysmmu.h b/arch/arm/mach-exynos4/include/mach/regs-sysmmu.h index 0b28e81a16f7..b6aef863b9d6 100644 --- a/arch/arm/mach-s5pv310/include/mach/regs-sysmmu.h +++ b/arch/arm/mach-exynos4/include/mach/regs-sysmmu.h | |||
| @@ -1,9 +1,9 @@ | |||
| 1 | /* linux/arch/arm/mach-s5pv310/include/mach/regs-sysmmu.h | 1 | /* linux/arch/arm/mach-exynos4/include/mach/regs-sysmmu.h |
| 2 | * | 2 | * |
| 3 | * Copyright (c) 2010 Samsung Electronics Co., Ltd. | 3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. |
| 4 | * http://www.samsung.com | 4 | * http://www.samsung.com |
| 5 | * | 5 | * |
| 6 | * S5PV310 - System MMU register | 6 | * EXYNOS4 - System MMU register |
| 7 | * | 7 | * |
| 8 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
| 9 | * it under the terms of the GNU General Public License version 2 as | 9 | * it under the terms of the GNU General Public License version 2 as |
diff --git a/arch/arm/mach-s5pv310/include/mach/smp.h b/arch/arm/mach-exynos4/include/mach/smp.h index 393ccbd52c4a..a463dcebcfd3 100644 --- a/arch/arm/mach-s5pv310/include/mach/smp.h +++ b/arch/arm/mach-exynos4/include/mach/smp.h | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* linux/arch/arm/mach-s5pv310/include/mach/smp.h | 1 | /* linux/arch/arm/mach-exynos4/include/mach/smp.h |
| 2 | * | 2 | * |
| 3 | * Cloned from arch/arm/mach-realview/include/mach/smp.h | 3 | * Cloned from arch/arm/mach-realview/include/mach/smp.h |
| 4 | */ | 4 | */ |
diff --git a/arch/arm/mach-s5pv310/include/mach/sysmmu.h b/arch/arm/mach-exynos4/include/mach/sysmmu.h index 598fc5c9211b..1428adad8379 100644 --- a/arch/arm/mach-s5pv310/include/mach/sysmmu.h +++ b/arch/arm/mach-exynos4/include/mach/sysmmu.h | |||
| @@ -1,9 +1,9 @@ | |||
| 1 | /* linux/arch/arm/mach-s5pv310/include/mach/sysmmu.h | 1 | /* linux/arch/arm/mach-exynos4/include/mach/sysmmu.h |
| 2 | * | 2 | * |
| 3 | * Copyright (c) 2010 Samsung Electronics Co., Ltd. | 3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. |
| 4 | * http://www.samsung.com/ | 4 | * http://www.samsung.com |
| 5 | * | 5 | * |
| 6 | * Samsung sysmmu driver for S5PV310 | 6 | * Samsung sysmmu driver for EXYNOS4 |
| 7 | * | 7 | * |
| 8 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
| 9 | * it under the terms of the GNU General Public License version 2 as | 9 | * it under the terms of the GNU General Public License version 2 as |
| @@ -13,10 +13,10 @@ | |||
| 13 | #ifndef __ASM_ARM_ARCH_SYSMMU_H | 13 | #ifndef __ASM_ARM_ARCH_SYSMMU_H |
| 14 | #define __ASM_ARM_ARCH_SYSMMU_H __FILE__ | 14 | #define __ASM_ARM_ARCH_SYSMMU_H __FILE__ |
| 15 | 15 | ||
| 16 | #define S5PV310_SYSMMU_TOTAL_IPNUM 16 | 16 | #define EXYNOS4_SYSMMU_TOTAL_IPNUM 16 |
| 17 | #define S5P_SYSMMU_TOTAL_IPNUM S5PV310_SYSMMU_TOTAL_IPNUM | 17 | #define S5P_SYSMMU_TOTAL_IPNUM EXYNOS4_SYSMMU_TOTAL_IPNUM |
| 18 | 18 | ||
| 19 | enum s5pv310_sysmmu_ips { | 19 | enum exynos4_sysmmu_ips { |
| 20 | SYSMMU_MDMA, | 20 | SYSMMU_MDMA, |
| 21 | SYSMMU_SSS, | 21 | SYSMMU_SSS, |
| 22 | SYSMMU_FIMC0, | 22 | SYSMMU_FIMC0, |
| @@ -35,7 +35,7 @@ enum s5pv310_sysmmu_ips { | |||
| 35 | SYSMMU_MFC_R, | 35 | SYSMMU_MFC_R, |
| 36 | }; | 36 | }; |
| 37 | 37 | ||
| 38 | static char *sysmmu_ips_name[S5PV310_SYSMMU_TOTAL_IPNUM] = { | 38 | static char *sysmmu_ips_name[EXYNOS4_SYSMMU_TOTAL_IPNUM] = { |
| 39 | "SYSMMU_MDMA" , | 39 | "SYSMMU_MDMA" , |
| 40 | "SYSMMU_SSS" , | 40 | "SYSMMU_SSS" , |
| 41 | "SYSMMU_FIMC0" , | 41 | "SYSMMU_FIMC0" , |
| @@ -54,7 +54,7 @@ static char *sysmmu_ips_name[S5PV310_SYSMMU_TOTAL_IPNUM] = { | |||
| 54 | "SYSMMU_MFC_R" , | 54 | "SYSMMU_MFC_R" , |
| 55 | }; | 55 | }; |
| 56 | 56 | ||
| 57 | typedef enum s5pv310_sysmmu_ips sysmmu_ips; | 57 | typedef enum exynos4_sysmmu_ips sysmmu_ips; |
| 58 | 58 | ||
| 59 | struct sysmmu_tt_info { | 59 | struct sysmmu_tt_info { |
| 60 | unsigned long *pgd; | 60 | unsigned long *pgd; |
diff --git a/arch/arm/mach-s5pv310/include/mach/system.h b/arch/arm/mach-exynos4/include/mach/system.h index d10c009cf0f1..5e3220c18fc7 100644 --- a/arch/arm/mach-s5pv310/include/mach/system.h +++ b/arch/arm/mach-exynos4/include/mach/system.h | |||
| @@ -1,9 +1,9 @@ | |||
| 1 | /* linux/arch/arm/mach-s5pv310/include/mach/system.h | 1 | /* linux/arch/arm/mach-exynos4/include/mach/system.h |
| 2 | * | 2 | * |
| 3 | * Copyright (c) 2010 Samsung Electronics Co., Ltd. | 3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. |
| 4 | * http://www.samsung.com/ | 4 | * http://www.samsung.com |
| 5 | * | 5 | * |
| 6 | * S5PV310 - system support header | 6 | * EXYNOS4 - system support header |
| 7 | * | 7 | * |
| 8 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
| 9 | * it under the terms of the GNU General Public License version 2 as | 9 | * it under the terms of the GNU General Public License version 2 as |
diff --git a/arch/arm/mach-s5pv310/include/mach/timex.h b/arch/arm/mach-exynos4/include/mach/timex.h index bd2359b952b4..6d138750a708 100644 --- a/arch/arm/mach-s5pv310/include/mach/timex.h +++ b/arch/arm/mach-exynos4/include/mach/timex.h | |||
| @@ -1,14 +1,14 @@ | |||
| 1 | /* linux/arch/arm/mach-s5pv310/include/mach/timex.h | 1 | /* linux/arch/arm/mach-exynos4/include/mach/timex.h |
| 2 | * | 2 | * |
| 3 | * Copyright (c) 2010 Samsung Electronics Co., Ltd. | 3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. |
| 4 | * http://www.samsung.com/ | 4 | * http://www.samsung.com |
| 5 | * | 5 | * |
| 6 | * Copyright (c) 2003-2010 Simtec Electronics | 6 | * Copyright (c) 2003-2010 Simtec Electronics |
| 7 | * Ben Dooks <ben@simtec.co.uk> | 7 | * Ben Dooks <ben@simtec.co.uk> |
| 8 | * | 8 | * |
| 9 | * Based on arch/arm/mach-s5p6442/include/mach/timex.h | 9 | * Based on arch/arm/mach-s5p6442/include/mach/timex.h |
| 10 | * | 10 | * |
| 11 | * S5PV310 - time parameters | 11 | * EXYNOS4 - time parameters |
| 12 | * | 12 | * |
| 13 | * This program is free software; you can redistribute it and/or modify | 13 | * This program is free software; you can redistribute it and/or modify |
| 14 | * it under the terms of the GNU General Public License version 2 as | 14 | * it under the terms of the GNU General Public License version 2 as |
diff --git a/arch/arm/mach-s5pv310/include/mach/uncompress.h b/arch/arm/mach-exynos4/include/mach/uncompress.h index 59593c1e2416..21d97bcd9acb 100644 --- a/arch/arm/mach-s5pv310/include/mach/uncompress.h +++ b/arch/arm/mach-exynos4/include/mach/uncompress.h | |||
| @@ -1,9 +1,9 @@ | |||
| 1 | /* linux/arch/arm/mach-s5pv310/include/mach/uncompress.h | 1 | /* linux/arch/arm/mach-exynos4/include/mach/uncompress.h |
| 2 | * | 2 | * |
| 3 | * Copyright (c) 2010 Samsung Electronics Co., Ltd. | 3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. |
| 4 | * http://www.samsung.com/ | 4 | * http://www.samsung.com |
| 5 | * | 5 | * |
| 6 | * S5PV310 - uncompress code | 6 | * EXYNOS4 - uncompress code |
| 7 | * | 7 | * |
| 8 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
| 9 | * it under the terms of the GNU General Public License version 2 as | 9 | * it under the terms of the GNU General Public License version 2 as |
diff --git a/arch/arm/mach-s5pv310/include/mach/vmalloc.h b/arch/arm/mach-exynos4/include/mach/vmalloc.h index 65759fb97581..284330e571d2 100644 --- a/arch/arm/mach-s5pv310/include/mach/vmalloc.h +++ b/arch/arm/mach-exynos4/include/mach/vmalloc.h | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | /* linux/arch/arm/mach-s5pv310/include/mach/vmalloc.h | 1 | /* linux/arch/arm/mach-exynos4/include/mach/vmalloc.h |
| 2 | * | 2 | * |
| 3 | * Copyright (c) 2010 Samsung Electronics Co., Ltd. | 3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. |
| 4 | * http://www.samsung.com/ | 4 | * http://www.samsung.com |
| 5 | * | 5 | * |
| 6 | * Copyright 2010 Ben Dooks <ben-linux@fluff.org> | 6 | * Copyright 2010 Ben Dooks <ben-linux@fluff.org> |
| 7 | * | 7 | * |
| @@ -11,7 +11,7 @@ | |||
| 11 | * it under the terms of the GNU General Public License version 2 as | 11 | * it under the terms of the GNU General Public License version 2 as |
| 12 | * published by the Free Software Foundation. | 12 | * published by the Free Software Foundation. |
| 13 | * | 13 | * |
| 14 | * S5PV310 vmalloc definition | 14 | * EXYNOS4 vmalloc definition |
| 15 | */ | 15 | */ |
| 16 | 16 | ||
| 17 | #ifndef __ASM_ARCH_VMALLOC_H | 17 | #ifndef __ASM_ARCH_VMALLOC_H |
diff --git a/arch/arm/mach-s5pv310/init.c b/arch/arm/mach-exynos4/init.c index 182dcf42cfb4..cf91f50e43ab 100644 --- a/arch/arm/mach-s5pv310/init.c +++ b/arch/arm/mach-exynos4/init.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* linux/arch/arm/mach-s5pv310/init.c | 1 | /* linux/arch/arm/mach-exynos4/init.c |
| 2 | * | 2 | * |
| 3 | * Copyright (c) 2010 Samsung Electronics Co., Ltd. | 3 | * Copyright (c) 2010 Samsung Electronics Co., Ltd. |
| 4 | * http://www.samsung.com/ | 4 | * http://www.samsung.com/ |
| @@ -14,7 +14,7 @@ | |||
| 14 | #include <plat/devs.h> | 14 | #include <plat/devs.h> |
| 15 | #include <plat/regs-serial.h> | 15 | #include <plat/regs-serial.h> |
| 16 | 16 | ||
| 17 | static struct s3c24xx_uart_clksrc s5pv310_serial_clocks[] = { | 17 | static struct s3c24xx_uart_clksrc exynos4_serial_clocks[] = { |
| 18 | [0] = { | 18 | [0] = { |
| 19 | .name = "uclk1", | 19 | .name = "uclk1", |
| 20 | .divisor = 1, | 20 | .divisor = 1, |
| @@ -24,7 +24,7 @@ static struct s3c24xx_uart_clksrc s5pv310_serial_clocks[] = { | |||
| 24 | }; | 24 | }; |
| 25 | 25 | ||
| 26 | /* uart registration process */ | 26 | /* uart registration process */ |
| 27 | void __init s5pv310_common_init_uarts(struct s3c2410_uartcfg *cfg, int no) | 27 | void __init exynos4_common_init_uarts(struct s3c2410_uartcfg *cfg, int no) |
| 28 | { | 28 | { |
| 29 | struct s3c2410_uartcfg *tcfg = cfg; | 29 | struct s3c2410_uartcfg *tcfg = cfg; |
| 30 | u32 ucnt; | 30 | u32 ucnt; |
| @@ -32,8 +32,8 @@ void __init s5pv310_common_init_uarts(struct s3c2410_uartcfg *cfg, int no) | |||
| 32 | for (ucnt = 0; ucnt < no; ucnt++, tcfg++) { | 32 | for (ucnt = 0; ucnt < no; ucnt++, tcfg++) { |
| 33 | if (!tcfg->clocks) { | 33 | if (!tcfg->clocks) { |
| 34 | tcfg->has_fracval = 1; | 34 | tcfg->has_fracval = 1; |
| 35 | tcfg->clocks = s5pv310_serial_clocks; | 35 | tcfg->clocks = exynos4_serial_clocks; |
| 36 | tcfg->clocks_size = ARRAY_SIZE(s5pv310_serial_clocks); | 36 | tcfg->clocks_size = ARRAY_SIZE(exynos4_serial_clocks); |
| 37 | } | 37 | } |
| 38 | } | 38 | } |
| 39 | 39 | ||
diff --git a/arch/arm/mach-s5pv310/platsmp.c b/arch/arm/mach-exynos4/platsmp.c index 34093b069f67..6d35878ec1aa 100644 --- a/arch/arm/mach-s5pv310/platsmp.c +++ b/arch/arm/mach-exynos4/platsmp.c | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | /* linux/arch/arm/mach-s5pv310/platsmp.c | 1 | /* linux/arch/arm/mach-exynos4/platsmp.c |
| 2 | * | 2 | * |
| 3 | * Copyright (c) 2010 Samsung Electronics Co., Ltd. | 3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. |
| 4 | * http://www.samsung.com/ | 4 | * http://www.samsung.com |
| 5 | * | 5 | * |
| 6 | * Cloned from linux/arch/arm/mach-vexpress/platsmp.c | 6 | * Cloned from linux/arch/arm/mach-vexpress/platsmp.c |
| 7 | * | 7 | * |
| @@ -28,7 +28,7 @@ | |||
| 28 | #include <mach/hardware.h> | 28 | #include <mach/hardware.h> |
| 29 | #include <mach/regs-clock.h> | 29 | #include <mach/regs-clock.h> |
| 30 | 30 | ||
| 31 | extern void s5pv310_secondary_startup(void); | 31 | extern void exynos4_secondary_startup(void); |
| 32 | 32 | ||
| 33 | /* | 33 | /* |
| 34 | * control for which core is the next to come out of the secondary | 34 | * control for which core is the next to come out of the secondary |
| @@ -139,7 +139,7 @@ void __init smp_init_cpus(void) | |||
| 139 | /* sanity check */ | 139 | /* sanity check */ |
| 140 | if (ncores > NR_CPUS) { | 140 | if (ncores > NR_CPUS) { |
| 141 | printk(KERN_WARNING | 141 | printk(KERN_WARNING |
| 142 | "S5PV310: no. of cores (%d) greater than configured " | 142 | "EXYNOS4: no. of cores (%d) greater than configured " |
| 143 | "maximum of %d - clipping\n", | 143 | "maximum of %d - clipping\n", |
| 144 | ncores, NR_CPUS); | 144 | ncores, NR_CPUS); |
| 145 | ncores = NR_CPUS; | 145 | ncores = NR_CPUS; |
| @@ -168,5 +168,5 @@ void __init platform_smp_prepare_cpus(unsigned int max_cpus) | |||
| 168 | * until it receives a soft interrupt, and then the | 168 | * until it receives a soft interrupt, and then the |
| 169 | * secondary CPU branches to this address. | 169 | * secondary CPU branches to this address. |
| 170 | */ | 170 | */ |
| 171 | __raw_writel(BSYM(virt_to_phys(s5pv310_secondary_startup)), S5P_VA_SYSRAM); | 171 | __raw_writel(BSYM(virt_to_phys(exynos4_secondary_startup)), S5P_VA_SYSRAM); |
| 172 | } | 172 | } |
diff --git a/arch/arm/mach-s5pv310/setup-i2c0.c b/arch/arm/mach-exynos4/setup-i2c0.c index f47f8f3152ec..d395bd17c38b 100644 --- a/arch/arm/mach-s5pv310/setup-i2c0.c +++ b/arch/arm/mach-exynos4/setup-i2c0.c | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * linux/arch/arm/mach-s5pv310/setup-i2c0.c | 2 | * linux/arch/arm/mach-exynos4/setup-i2c0.c |
| 3 | * | 3 | * |
| 4 | * Copyright (c) 2009-2010 Samsung Electronics Co., Ltd. | 4 | * Copyright (c) 2009-2010 Samsung Electronics Co., Ltd. |
| 5 | * http://www.samsung.com/ | 5 | * http://www.samsung.com/ |
| @@ -21,6 +21,6 @@ struct platform_device; /* don't need the contents */ | |||
| 21 | 21 | ||
| 22 | void s3c_i2c0_cfg_gpio(struct platform_device *dev) | 22 | void s3c_i2c0_cfg_gpio(struct platform_device *dev) |
| 23 | { | 23 | { |
| 24 | s3c_gpio_cfgall_range(S5PV310_GPD1(0), 2, | 24 | s3c_gpio_cfgall_range(EXYNOS4_GPD1(0), 2, |
| 25 | S3C_GPIO_SFN(2), S3C_GPIO_PULL_UP); | 25 | S3C_GPIO_SFN(2), S3C_GPIO_PULL_UP); |
| 26 | } | 26 | } |
diff --git a/arch/arm/mach-s5pv310/include/mach/gpio.h b/arch/arm/mach-s5pv310/include/mach/gpio.h deleted file mode 100644 index 20cb80c23466..000000000000 --- a/arch/arm/mach-s5pv310/include/mach/gpio.h +++ /dev/null | |||
| @@ -1,135 +0,0 @@ | |||
| 1 | /* linux/arch/arm/mach-s5pv310/include/mach/gpio.h | ||
| 2 | * | ||
| 3 | * Copyright (c) 2010 Samsung Electronics Co., Ltd. | ||
| 4 | * http://www.samsung.com/ | ||
| 5 | * | ||
| 6 | * S5PV310 - GPIO lib support | ||
| 7 | * | ||
| 8 | * This program is free software; you can redistribute it and/or modify | ||
| 9 | * it under the terms of the GNU General Public License version 2 as | ||
| 10 | * published by the Free Software Foundation. | ||
| 11 | */ | ||
| 12 | |||
| 13 | #ifndef __ASM_ARCH_GPIO_H | ||
| 14 | #define __ASM_ARCH_GPIO_H __FILE__ | ||
| 15 | |||
| 16 | #define gpio_get_value __gpio_get_value | ||
| 17 | #define gpio_set_value __gpio_set_value | ||
| 18 | #define gpio_cansleep __gpio_cansleep | ||
| 19 | #define gpio_to_irq __gpio_to_irq | ||
| 20 | |||
| 21 | /* Practically, GPIO banks upto GPZ are the configurable gpio banks */ | ||
| 22 | |||
| 23 | /* GPIO bank sizes */ | ||
| 24 | #define S5PV310_GPIO_A0_NR (8) | ||
| 25 | #define S5PV310_GPIO_A1_NR (6) | ||
| 26 | #define S5PV310_GPIO_B_NR (8) | ||
| 27 | #define S5PV310_GPIO_C0_NR (5) | ||
| 28 | #define S5PV310_GPIO_C1_NR (5) | ||
| 29 | #define S5PV310_GPIO_D0_NR (4) | ||
| 30 | #define S5PV310_GPIO_D1_NR (4) | ||
| 31 | #define S5PV310_GPIO_E0_NR (5) | ||
| 32 | #define S5PV310_GPIO_E1_NR (8) | ||
| 33 | #define S5PV310_GPIO_E2_NR (6) | ||
| 34 | #define S5PV310_GPIO_E3_NR (8) | ||
| 35 | #define S5PV310_GPIO_E4_NR (8) | ||
| 36 | #define S5PV310_GPIO_F0_NR (8) | ||
| 37 | #define S5PV310_GPIO_F1_NR (8) | ||
| 38 | #define S5PV310_GPIO_F2_NR (8) | ||
| 39 | #define S5PV310_GPIO_F3_NR (6) | ||
| 40 | #define S5PV310_GPIO_J0_NR (8) | ||
| 41 | #define S5PV310_GPIO_J1_NR (5) | ||
| 42 | #define S5PV310_GPIO_K0_NR (7) | ||
| 43 | #define S5PV310_GPIO_K1_NR (7) | ||
| 44 | #define S5PV310_GPIO_K2_NR (7) | ||
| 45 | #define S5PV310_GPIO_K3_NR (7) | ||
| 46 | #define S5PV310_GPIO_L0_NR (8) | ||
| 47 | #define S5PV310_GPIO_L1_NR (3) | ||
| 48 | #define S5PV310_GPIO_L2_NR (8) | ||
| 49 | #define S5PV310_GPIO_X0_NR (8) | ||
| 50 | #define S5PV310_GPIO_X1_NR (8) | ||
| 51 | #define S5PV310_GPIO_X2_NR (8) | ||
| 52 | #define S5PV310_GPIO_X3_NR (8) | ||
| 53 | #define S5PV310_GPIO_Z_NR (7) | ||
| 54 | |||
| 55 | /* GPIO bank numbers */ | ||
| 56 | |||
| 57 | #define S5PV310_GPIO_NEXT(__gpio) \ | ||
| 58 | ((__gpio##_START) + (__gpio##_NR) + CONFIG_S3C_GPIO_SPACE + 1) | ||
| 59 | |||
| 60 | enum s5p_gpio_number { | ||
| 61 | S5PV310_GPIO_A0_START = 0, | ||
| 62 | S5PV310_GPIO_A1_START = S5PV310_GPIO_NEXT(S5PV310_GPIO_A0), | ||
| 63 | S5PV310_GPIO_B_START = S5PV310_GPIO_NEXT(S5PV310_GPIO_A1), | ||
| 64 | S5PV310_GPIO_C0_START = S5PV310_GPIO_NEXT(S5PV310_GPIO_B), | ||
| 65 | S5PV310_GPIO_C1_START = S5PV310_GPIO_NEXT(S5PV310_GPIO_C0), | ||
| 66 | S5PV310_GPIO_D0_START = S5PV310_GPIO_NEXT(S5PV310_GPIO_C1), | ||
| 67 | S5PV310_GPIO_D1_START = S5PV310_GPIO_NEXT(S5PV310_GPIO_D0), | ||
| 68 | S5PV310_GPIO_E0_START = S5PV310_GPIO_NEXT(S5PV310_GPIO_D1), | ||
| 69 | S5PV310_GPIO_E1_START = S5PV310_GPIO_NEXT(S5PV310_GPIO_E0), | ||
| 70 | S5PV310_GPIO_E2_START = S5PV310_GPIO_NEXT(S5PV310_GPIO_E1), | ||
| 71 | S5PV310_GPIO_E3_START = S5PV310_GPIO_NEXT(S5PV310_GPIO_E2), | ||
| 72 | S5PV310_GPIO_E4_START = S5PV310_GPIO_NEXT(S5PV310_GPIO_E3), | ||
| 73 | S5PV310_GPIO_F0_START = S5PV310_GPIO_NEXT(S5PV310_GPIO_E4), | ||
| 74 | S5PV310_GPIO_F1_START = S5PV310_GPIO_NEXT(S5PV310_GPIO_F0), | ||
| 75 | S5PV310_GPIO_F2_START = S5PV310_GPIO_NEXT(S5PV310_GPIO_F1), | ||
| 76 | S5PV310_GPIO_F3_START = S5PV310_GPIO_NEXT(S5PV310_GPIO_F2), | ||
| 77 | S5PV310_GPIO_J0_START = S5PV310_GPIO_NEXT(S5PV310_GPIO_F3), | ||
| 78 | S5PV310_GPIO_J1_START = S5PV310_GPIO_NEXT(S5PV310_GPIO_J0), | ||
| 79 | S5PV310_GPIO_K0_START = S5PV310_GPIO_NEXT(S5PV310_GPIO_J1), | ||
| 80 | S5PV310_GPIO_K1_START = S5PV310_GPIO_NEXT(S5PV310_GPIO_K0), | ||
| 81 | S5PV310_GPIO_K2_START = S5PV310_GPIO_NEXT(S5PV310_GPIO_K1), | ||
| 82 | S5PV310_GPIO_K3_START = S5PV310_GPIO_NEXT(S5PV310_GPIO_K2), | ||
| 83 | S5PV310_GPIO_L0_START = S5PV310_GPIO_NEXT(S5PV310_GPIO_K3), | ||
| 84 | S5PV310_GPIO_L1_START = S5PV310_GPIO_NEXT(S5PV310_GPIO_L0), | ||
| 85 | S5PV310_GPIO_L2_START = S5PV310_GPIO_NEXT(S5PV310_GPIO_L1), | ||
| 86 | S5PV310_GPIO_X0_START = S5PV310_GPIO_NEXT(S5PV310_GPIO_L2), | ||
| 87 | S5PV310_GPIO_X1_START = S5PV310_GPIO_NEXT(S5PV310_GPIO_X0), | ||
| 88 | S5PV310_GPIO_X2_START = S5PV310_GPIO_NEXT(S5PV310_GPIO_X1), | ||
| 89 | S5PV310_GPIO_X3_START = S5PV310_GPIO_NEXT(S5PV310_GPIO_X2), | ||
| 90 | S5PV310_GPIO_Z_START = S5PV310_GPIO_NEXT(S5PV310_GPIO_X3), | ||
| 91 | }; | ||
| 92 | |||
| 93 | /* S5PV310 GPIO number definitions */ | ||
| 94 | #define S5PV310_GPA0(_nr) (S5PV310_GPIO_A0_START + (_nr)) | ||
| 95 | #define S5PV310_GPA1(_nr) (S5PV310_GPIO_A1_START + (_nr)) | ||
| 96 | #define S5PV310_GPB(_nr) (S5PV310_GPIO_B_START + (_nr)) | ||
| 97 | #define S5PV310_GPC0(_nr) (S5PV310_GPIO_C0_START + (_nr)) | ||
| 98 | #define S5PV310_GPC1(_nr) (S5PV310_GPIO_C1_START + (_nr)) | ||
| 99 | #define S5PV310_GPD0(_nr) (S5PV310_GPIO_D0_START + (_nr)) | ||
| 100 | #define S5PV310_GPD1(_nr) (S5PV310_GPIO_D1_START + (_nr)) | ||
| 101 | #define S5PV310_GPE0(_nr) (S5PV310_GPIO_E0_START + (_nr)) | ||
| 102 | #define S5PV310_GPE1(_nr) (S5PV310_GPIO_E1_START + (_nr)) | ||
| 103 | #define S5PV310_GPE2(_nr) (S5PV310_GPIO_E2_START + (_nr)) | ||
| 104 | #define S5PV310_GPE3(_nr) (S5PV310_GPIO_E3_START + (_nr)) | ||
| 105 | #define S5PV310_GPE4(_nr) (S5PV310_GPIO_E4_START + (_nr)) | ||
| 106 | #define S5PV310_GPF0(_nr) (S5PV310_GPIO_F0_START + (_nr)) | ||
| 107 | #define S5PV310_GPF1(_nr) (S5PV310_GPIO_F1_START + (_nr)) | ||
| 108 | #define S5PV310_GPF2(_nr) (S5PV310_GPIO_F2_START + (_nr)) | ||
| 109 | #define S5PV310_GPF3(_nr) (S5PV310_GPIO_F3_START + (_nr)) | ||
| 110 | #define S5PV310_GPJ0(_nr) (S5PV310_GPIO_J0_START + (_nr)) | ||
| 111 | #define S5PV310_GPJ1(_nr) (S5PV310_GPIO_J1_START + (_nr)) | ||
| 112 | #define S5PV310_GPK0(_nr) (S5PV310_GPIO_K0_START + (_nr)) | ||
| 113 | #define S5PV310_GPK1(_nr) (S5PV310_GPIO_K1_START + (_nr)) | ||
| 114 | #define S5PV310_GPK2(_nr) (S5PV310_GPIO_K2_START + (_nr)) | ||
| 115 | #define S5PV310_GPK3(_nr) (S5PV310_GPIO_K3_START + (_nr)) | ||
| 116 | #define S5PV310_GPL0(_nr) (S5PV310_GPIO_L0_START + (_nr)) | ||
| 117 | #define S5PV310_GPL1(_nr) (S5PV310_GPIO_L1_START + (_nr)) | ||
| 118 | #define S5PV310_GPL2(_nr) (S5PV310_GPIO_L2_START + (_nr)) | ||
| 119 | #define S5PV310_GPX0(_nr) (S5PV310_GPIO_X0_START + (_nr)) | ||
| 120 | #define S5PV310_GPX1(_nr) (S5PV310_GPIO_X1_START + (_nr)) | ||
| 121 | #define S5PV310_GPX2(_nr) (S5PV310_GPIO_X2_START + (_nr)) | ||
| 122 | #define S5PV310_GPX3(_nr) (S5PV310_GPIO_X3_START + (_nr)) | ||
| 123 | #define S5PV310_GPZ(_nr) (S5PV310_GPIO_Z_START + (_nr)) | ||
| 124 | |||
| 125 | /* the end of the S5PV310 specific gpios */ | ||
| 126 | #define S5PV310_GPIO_END (S5PV310_GPZ(S5PV310_GPIO_Z_NR) + 1) | ||
| 127 | #define S3C_GPIO_END S5PV310_GPIO_END | ||
| 128 | |||
| 129 | /* define the number of gpios we need to the one after the GPZ() range */ | ||
| 130 | #define ARCH_NR_GPIOS (S5PV310_GPZ(S5PV310_GPIO_Z_NR) + \ | ||
| 131 | CONFIG_SAMSUNG_GPIO_EXTRA + 1) | ||
| 132 | |||
| 133 | #include <asm-generic/gpio.h> | ||
| 134 | |||
| 135 | #endif /* __ASM_ARCH_GPIO_H */ | ||
diff --git a/arch/arm/mach-s5pv310/include/mach/map.h b/arch/arm/mach-s5pv310/include/mach/map.h deleted file mode 100644 index 901657fa7a12..000000000000 --- a/arch/arm/mach-s5pv310/include/mach/map.h +++ /dev/null | |||
| @@ -1,144 +0,0 @@ | |||
| 1 | /* linux/arch/arm/mach-s5pv310/include/mach/map.h | ||
| 2 | * | ||
| 3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. | ||
| 4 | * http://www.samsung.com/ | ||
| 5 | * | ||
| 6 | * S5PV310 - Memory map definitions | ||
| 7 | * | ||
| 8 | * This program is free software; you can redistribute it and/or modify | ||
| 9 | * it under the terms of the GNU General Public License version 2 as | ||
| 10 | * published by the Free Software Foundation. | ||
| 11 | */ | ||
| 12 | |||
| 13 | #ifndef __ASM_ARCH_MAP_H | ||
| 14 | #define __ASM_ARCH_MAP_H __FILE__ | ||
| 15 | |||
| 16 | #include <plat/map-base.h> | ||
| 17 | |||
| 18 | /* | ||
| 19 | * S5PV310 UART offset is 0x10000 but the older S5P SoCs are 0x400. | ||
| 20 | * So need to define it, and here is to avoid redefinition warning. | ||
| 21 | */ | ||
| 22 | #define S3C_UART_OFFSET (0x10000) | ||
| 23 | |||
| 24 | #include <plat/map-s5p.h> | ||
| 25 | |||
| 26 | #define S5PV310_PA_SYSRAM 0x02025000 | ||
| 27 | |||
| 28 | #define S5PV310_PA_I2S0 0x03830000 | ||
| 29 | #define S5PV310_PA_I2S1 0xE3100000 | ||
| 30 | #define S5PV310_PA_I2S2 0xE2A00000 | ||
| 31 | |||
| 32 | #define S5PV310_PA_PCM0 0x03840000 | ||
| 33 | #define S5PV310_PA_PCM1 0x13980000 | ||
| 34 | #define S5PV310_PA_PCM2 0x13990000 | ||
| 35 | |||
| 36 | #define S5PV310_PA_SROM_BANK(x) (0x04000000 + ((x) * 0x01000000)) | ||
| 37 | |||
| 38 | #define S5PC210_PA_ONENAND 0x0C000000 | ||
| 39 | #define S5PC210_PA_ONENAND_DMA 0x0C600000 | ||
| 40 | |||
| 41 | #define S5PV310_PA_CHIPID 0x10000000 | ||
| 42 | |||
| 43 | #define S5PV310_PA_SYSCON 0x10010000 | ||
| 44 | #define S5PV310_PA_PMU 0x10020000 | ||
| 45 | #define S5PV310_PA_CMU 0x10030000 | ||
| 46 | |||
| 47 | #define S5PV310_PA_WATCHDOG 0x10060000 | ||
| 48 | #define S5PV310_PA_RTC 0x10070000 | ||
| 49 | |||
| 50 | #define S5PV310_PA_DMC0 0x10400000 | ||
| 51 | |||
| 52 | #define S5PV310_PA_COMBINER 0x10448000 | ||
| 53 | |||
| 54 | #define S5PV310_PA_COREPERI 0x10500000 | ||
| 55 | #define S5PV310_PA_GIC_CPU 0x10500100 | ||
| 56 | #define S5PV310_PA_TWD 0x10500600 | ||
| 57 | #define S5PV310_PA_GIC_DIST 0x10501000 | ||
| 58 | #define S5PV310_PA_L2CC 0x10502000 | ||
| 59 | |||
| 60 | #define S5PV310_PA_MDMA 0x10810000 | ||
| 61 | #define S5PV310_PA_PDMA0 0x12680000 | ||
| 62 | #define S5PV310_PA_PDMA1 0x12690000 | ||
| 63 | |||
| 64 | #define S5PV310_PA_SYSMMU_MDMA 0x10A40000 | ||
| 65 | #define S5PV310_PA_SYSMMU_SSS 0x10A50000 | ||
| 66 | #define S5PV310_PA_SYSMMU_FIMC0 0x11A20000 | ||
| 67 | #define S5PV310_PA_SYSMMU_FIMC1 0x11A30000 | ||
| 68 | #define S5PV310_PA_SYSMMU_FIMC2 0x11A40000 | ||
| 69 | #define S5PV310_PA_SYSMMU_FIMC3 0x11A50000 | ||
| 70 | #define S5PV310_PA_SYSMMU_JPEG 0x11A60000 | ||
| 71 | #define S5PV310_PA_SYSMMU_FIMD0 0x11E20000 | ||
| 72 | #define S5PV310_PA_SYSMMU_FIMD1 0x12220000 | ||
| 73 | #define S5PV310_PA_SYSMMU_PCIe 0x12620000 | ||
| 74 | #define S5PV310_PA_SYSMMU_G2D 0x12A20000 | ||
| 75 | #define S5PV310_PA_SYSMMU_ROTATOR 0x12A30000 | ||
| 76 | #define S5PV310_PA_SYSMMU_MDMA2 0x12A40000 | ||
| 77 | #define S5PV310_PA_SYSMMU_TV 0x12E20000 | ||
| 78 | #define S5PV310_PA_SYSMMU_MFC_L 0x13620000 | ||
| 79 | #define S5PV310_PA_SYSMMU_MFC_R 0x13630000 | ||
| 80 | |||
| 81 | #define S5PV310_PA_GPIO1 0x11400000 | ||
| 82 | #define S5PV310_PA_GPIO2 0x11000000 | ||
| 83 | #define S5PV310_PA_GPIO3 0x03860000 | ||
| 84 | |||
| 85 | #define S5PV310_PA_MIPI_CSIS0 0x11880000 | ||
| 86 | #define S5PV310_PA_MIPI_CSIS1 0x11890000 | ||
| 87 | |||
| 88 | #define S5PV310_PA_HSMMC(x) (0x12510000 + ((x) * 0x10000)) | ||
| 89 | |||
| 90 | #define S5PV310_PA_SROMC 0x12570000 | ||
| 91 | |||
| 92 | #define S5PV310_PA_UART 0x13800000 | ||
| 93 | |||
| 94 | #define S5PV310_PA_IIC(x) (0x13860000 + ((x) * 0x10000)) | ||
| 95 | |||
| 96 | #define S5PV310_PA_AC97 0x139A0000 | ||
| 97 | |||
| 98 | #define S5PV310_PA_TIMER 0x139D0000 | ||
| 99 | |||
| 100 | #define S5PV310_PA_SDRAM 0x40000000 | ||
| 101 | |||
| 102 | #define S5PV310_PA_SPDIF 0xE1100000 | ||
| 103 | |||
| 104 | /* Compatibiltiy Defines */ | ||
| 105 | |||
| 106 | #define S3C_PA_HSMMC0 S5PV310_PA_HSMMC(0) | ||
| 107 | #define S3C_PA_HSMMC1 S5PV310_PA_HSMMC(1) | ||
| 108 | #define S3C_PA_HSMMC2 S5PV310_PA_HSMMC(2) | ||
| 109 | #define S3C_PA_HSMMC3 S5PV310_PA_HSMMC(3) | ||
| 110 | #define S3C_PA_IIC S5PV310_PA_IIC(0) | ||
| 111 | #define S3C_PA_IIC1 S5PV310_PA_IIC(1) | ||
| 112 | #define S3C_PA_IIC2 S5PV310_PA_IIC(2) | ||
| 113 | #define S3C_PA_IIC3 S5PV310_PA_IIC(3) | ||
| 114 | #define S3C_PA_IIC4 S5PV310_PA_IIC(4) | ||
| 115 | #define S3C_PA_IIC5 S5PV310_PA_IIC(5) | ||
| 116 | #define S3C_PA_IIC6 S5PV310_PA_IIC(6) | ||
| 117 | #define S3C_PA_IIC7 S5PV310_PA_IIC(7) | ||
| 118 | #define S3C_PA_RTC S5PV310_PA_RTC | ||
| 119 | #define S3C_PA_WDT S5PV310_PA_WATCHDOG | ||
| 120 | |||
| 121 | #define S5P_PA_CHIPID S5PV310_PA_CHIPID | ||
| 122 | #define S5P_PA_MIPI_CSIS0 S5PV310_PA_MIPI_CSIS0 | ||
| 123 | #define S5P_PA_MIPI_CSIS1 S5PV310_PA_MIPI_CSIS1 | ||
| 124 | #define S5P_PA_ONENAND S5PC210_PA_ONENAND | ||
| 125 | #define S5P_PA_ONENAND_DMA S5PC210_PA_ONENAND_DMA | ||
| 126 | #define S5P_PA_SDRAM S5PV310_PA_SDRAM | ||
| 127 | #define S5P_PA_SROMC S5PV310_PA_SROMC | ||
| 128 | #define S5P_PA_SYSCON S5PV310_PA_SYSCON | ||
| 129 | #define S5P_PA_TIMER S5PV310_PA_TIMER | ||
| 130 | |||
| 131 | /* UART */ | ||
| 132 | |||
| 133 | #define S3C_PA_UART S5PV310_PA_UART | ||
| 134 | |||
| 135 | #define S5P_PA_UART(x) (S3C_PA_UART + ((x) * S3C_UART_OFFSET)) | ||
| 136 | #define S5P_PA_UART0 S5P_PA_UART(0) | ||
| 137 | #define S5P_PA_UART1 S5P_PA_UART(1) | ||
| 138 | #define S5P_PA_UART2 S5P_PA_UART(2) | ||
| 139 | #define S5P_PA_UART3 S5P_PA_UART(3) | ||
| 140 | #define S5P_PA_UART4 S5P_PA_UART(4) | ||
| 141 | |||
| 142 | #define S5P_SZ_UART SZ_256 | ||
| 143 | |||
| 144 | #endif /* __ASM_ARCH_MAP_H */ | ||
diff --git a/arch/arm/mach-s5pv310/include/mach/regs-gpio.h b/arch/arm/mach-s5pv310/include/mach/regs-gpio.h deleted file mode 100644 index 82e9e0c9d452..000000000000 --- a/arch/arm/mach-s5pv310/include/mach/regs-gpio.h +++ /dev/null | |||
| @@ -1,42 +0,0 @@ | |||
| 1 | /* linux/arch/arm/mach-s5pv310/include/mach/regs-gpio.h | ||
| 2 | * | ||
| 3 | * Copyright (c) 2010 Samsung Electronics Co., Ltd. | ||
| 4 | * http://www.samsung.com | ||
| 5 | * | ||
| 6 | * S5PV310 - GPIO (including EINT) register definitions | ||
| 7 | * | ||
| 8 | * This program is free software; you can redistribute it and/or modify | ||
| 9 | * it under the terms of the GNU General Public License version 2 as | ||
| 10 | * published by the Free Software Foundation. | ||
| 11 | */ | ||
| 12 | |||
| 13 | #ifndef __ASM_ARCH_REGS_GPIO_H | ||
| 14 | #define __ASM_ARCH_REGS_GPIO_H __FILE__ | ||
| 15 | |||
| 16 | #include <mach/map.h> | ||
| 17 | #include <mach/irqs.h> | ||
| 18 | |||
| 19 | #define S5PV310_EINT40CON (S5P_VA_GPIO2 + 0xE00) | ||
| 20 | #define S5P_EINT_CON(x) (S5PV310_EINT40CON + ((x) * 0x4)) | ||
| 21 | |||
| 22 | #define S5PV310_EINT40FLTCON0 (S5P_VA_GPIO2 + 0xE80) | ||
| 23 | #define S5P_EINT_FLTCON(x) (S5PV310_EINT40FLTCON0 + ((x) * 0x4)) | ||
| 24 | |||
| 25 | #define S5PV310_EINT40MASK (S5P_VA_GPIO2 + 0xF00) | ||
| 26 | #define S5P_EINT_MASK(x) (S5PV310_EINT40MASK + ((x) * 0x4)) | ||
| 27 | |||
| 28 | #define S5PV310_EINT40PEND (S5P_VA_GPIO2 + 0xF40) | ||
| 29 | #define S5P_EINT_PEND(x) (S5PV310_EINT40PEND + ((x) * 0x4)) | ||
| 30 | |||
| 31 | #define EINT_REG_NR(x) (EINT_OFFSET(x) >> 3) | ||
| 32 | |||
| 33 | #define eint_irq_to_bit(irq) (1 << (EINT_OFFSET(irq) & 0x7)) | ||
| 34 | |||
| 35 | #define EINT_MODE S3C_GPIO_SFN(0xf) | ||
| 36 | |||
| 37 | #define EINT_GPIO_0(x) S5PV310_GPX0(x) | ||
| 38 | #define EINT_GPIO_1(x) S5PV310_GPX1(x) | ||
| 39 | #define EINT_GPIO_2(x) S5PV310_GPX2(x) | ||
| 40 | #define EINT_GPIO_3(x) S5PV310_GPX3(x) | ||
| 41 | |||
| 42 | #endif /* __ASM_ARCH_REGS_GPIO_H */ | ||
diff --git a/arch/arm/plat-s5p/cpu.c b/arch/arm/plat-s5p/cpu.c index 047d31c1bbd8..c3bfe9b13acf 100644 --- a/arch/arm/plat-s5p/cpu.c +++ b/arch/arm/plat-s5p/cpu.c | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | /* linux/arch/arm/plat-s5p/cpu.c | 1 | /* linux/arch/arm/plat-s5p/cpu.c |
| 2 | * | 2 | * |
| 3 | * Copyright (c) 2009 Samsung Electronics Co., Ltd. | 3 | * Copyright (c) 2009-2011 Samsung Electronics Co., Ltd. |
| 4 | * http://www.samsung.com/ | 4 | * http://www.samsung.com |
| 5 | * | 5 | * |
| 6 | * S5P CPU Support | 6 | * S5P CPU Support |
| 7 | * | 7 | * |
| @@ -12,17 +12,20 @@ | |||
| 12 | 12 | ||
| 13 | #include <linux/init.h> | 13 | #include <linux/init.h> |
| 14 | #include <linux/module.h> | 14 | #include <linux/module.h> |
| 15 | #include <mach/map.h> | 15 | |
| 16 | #include <asm/mach/arch.h> | 16 | #include <asm/mach/arch.h> |
| 17 | #include <asm/mach/map.h> | 17 | #include <asm/mach/map.h> |
| 18 | |||
| 19 | #include <mach/map.h> | ||
| 18 | #include <mach/regs-clock.h> | 20 | #include <mach/regs-clock.h> |
| 21 | |||
| 19 | #include <plat/cpu.h> | 22 | #include <plat/cpu.h> |
| 20 | #include <plat/s5p6440.h> | 23 | #include <plat/s5p6440.h> |
| 21 | #include <plat/s5p6442.h> | 24 | #include <plat/s5p6442.h> |
| 22 | #include <plat/s5p6450.h> | 25 | #include <plat/s5p6450.h> |
| 23 | #include <plat/s5pc100.h> | 26 | #include <plat/s5pc100.h> |
| 24 | #include <plat/s5pv210.h> | 27 | #include <plat/s5pv210.h> |
| 25 | #include <plat/s5pv310.h> | 28 | #include <plat/exynos4.h> |
| 26 | 29 | ||
| 27 | /* table of supported CPUs */ | 30 | /* table of supported CPUs */ |
| 28 | 31 | ||
| @@ -31,7 +34,7 @@ static const char name_s5p6442[] = "S5P6442"; | |||
| 31 | static const char name_s5p6450[] = "S5P6450"; | 34 | static const char name_s5p6450[] = "S5P6450"; |
| 32 | static const char name_s5pc100[] = "S5PC100"; | 35 | static const char name_s5pc100[] = "S5PC100"; |
| 33 | static const char name_s5pv210[] = "S5PV210/S5PC110"; | 36 | static const char name_s5pv210[] = "S5PV210/S5PC110"; |
| 34 | static const char name_s5pv310[] = "S5PV310"; | 37 | static const char name_exynos4210[] = "EXYNOS4210"; |
| 35 | 38 | ||
| 36 | static struct cpu_table cpu_ids[] __initdata = { | 39 | static struct cpu_table cpu_ids[] __initdata = { |
| 37 | { | 40 | { |
| @@ -75,13 +78,13 @@ static struct cpu_table cpu_ids[] __initdata = { | |||
| 75 | .init = s5pv210_init, | 78 | .init = s5pv210_init, |
| 76 | .name = name_s5pv210, | 79 | .name = name_s5pv210, |
| 77 | }, { | 80 | }, { |
| 78 | .idcode = 0x43200000, | 81 | .idcode = 0x43210000, |
| 79 | .idmask = 0xfffff000, | 82 | .idmask = 0xfffff000, |
| 80 | .map_io = s5pv310_map_io, | 83 | .map_io = exynos4_map_io, |
| 81 | .init_clocks = s5pv310_init_clocks, | 84 | .init_clocks = exynos4_init_clocks, |
| 82 | .init_uarts = s5pv310_init_uarts, | 85 | .init_uarts = exynos4_init_uarts, |
| 83 | .init = s5pv310_init, | 86 | .init = exynos4_init, |
| 84 | .name = name_s5pv310, | 87 | .name = name_exynos4210, |
| 85 | }, | 88 | }, |
| 86 | }; | 89 | }; |
| 87 | 90 | ||
diff --git a/arch/arm/plat-s5p/include/plat/exynos4.h b/arch/arm/plat-s5p/include/plat/exynos4.h new file mode 100644 index 000000000000..907caab53dcf --- /dev/null +++ b/arch/arm/plat-s5p/include/plat/exynos4.h | |||
| @@ -0,0 +1,34 @@ | |||
| 1 | /* linux/arch/arm/plat-s5p/include/plat/exynos4.h | ||
| 2 | * | ||
| 3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. | ||
| 4 | * http://www.samsung.com | ||
| 5 | * | ||
| 6 | * Header file for exynos4 cpu support | ||
| 7 | * | ||
| 8 | * This program is free software; you can redistribute it and/or modify | ||
| 9 | * it under the terms of the GNU General Public License version 2 as | ||
| 10 | * published by the Free Software Foundation. | ||
| 11 | */ | ||
| 12 | |||
| 13 | /* Common init code for EXYNOS4 related SoCs */ | ||
| 14 | |||
| 15 | extern void exynos4_common_init_uarts(struct s3c2410_uartcfg *cfg, int no); | ||
| 16 | extern void exynos4_register_clocks(void); | ||
| 17 | extern void exynos4_setup_clocks(void); | ||
| 18 | |||
| 19 | #ifdef CONFIG_CPU_EXYNOS4210 | ||
| 20 | |||
| 21 | extern int exynos4_init(void); | ||
| 22 | extern void exynos4_init_irq(void); | ||
| 23 | extern void exynos4_map_io(void); | ||
| 24 | extern void exynos4_init_clocks(int xtal); | ||
| 25 | extern struct sys_timer exynos4_timer; | ||
| 26 | |||
| 27 | #define exynos4_init_uarts exynos4_common_init_uarts | ||
| 28 | |||
| 29 | #else | ||
| 30 | #define exynos4_init_clocks NULL | ||
| 31 | #define exynos4_init_uarts NULL | ||
| 32 | #define exynos4_map_io NULL | ||
| 33 | #define exynos4_init NULL | ||
| 34 | #endif | ||
diff --git a/arch/arm/plat-s5p/include/plat/s5pv310.h b/arch/arm/plat-s5p/include/plat/s5pv310.h deleted file mode 100644 index 769c991ceb37..000000000000 --- a/arch/arm/plat-s5p/include/plat/s5pv310.h +++ /dev/null | |||
| @@ -1,34 +0,0 @@ | |||
| 1 | /* linux/arch/arm/plat-s5p/include/plat/s5pv310.h | ||
| 2 | * | ||
| 3 | * Copyright (c) 2010 Samsung Electronics Co., Ltd. | ||
| 4 | * http://www.samsung.com/ | ||
| 5 | * | ||
| 6 | * Header file for s5pv310 cpu support | ||
| 7 | * | ||
| 8 | * This program is free software; you can redistribute it and/or modify | ||
| 9 | * it under the terms of the GNU General Public License version 2 as | ||
| 10 | * published by the Free Software Foundation. | ||
| 11 | */ | ||
| 12 | |||
| 13 | /* Common init code for S5PV310 related SoCs */ | ||
| 14 | |||
| 15 | extern void s5pv310_common_init_uarts(struct s3c2410_uartcfg *cfg, int no); | ||
| 16 | extern void s5pv310_register_clocks(void); | ||
| 17 | extern void s5pv310_setup_clocks(void); | ||
| 18 | |||
| 19 | #ifdef CONFIG_CPU_S5PV310 | ||
| 20 | |||
| 21 | extern int s5pv310_init(void); | ||
| 22 | extern void s5pv310_init_irq(void); | ||
| 23 | extern void s5pv310_map_io(void); | ||
| 24 | extern void s5pv310_init_clocks(int xtal); | ||
| 25 | extern struct sys_timer s5pv310_timer; | ||
| 26 | |||
| 27 | #define s5pv310_init_uarts s5pv310_common_init_uarts | ||
| 28 | |||
| 29 | #else | ||
| 30 | #define s5pv310_init_clocks NULL | ||
| 31 | #define s5pv310_init_uarts NULL | ||
| 32 | #define s5pv310_map_io NULL | ||
| 33 | #define s5pv310_init NULL | ||
| 34 | #endif | ||
