diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-09 19:35:29 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-09 19:35:29 -0400 |
commit | 640414171818c6293c23e74a28d1c69b2a1a7fe5 (patch) | |
tree | cb3b10578f0ae39eac2930ce3b2c8a1616f5ba70 /arch/arm/mach-highbank | |
parent | fa91515cbf2375a64c8bd0a033a05b0859dff591 (diff) | |
parent | a2bdc32a527e817fdfa6c56eaa6c70f217da6c6c (diff) |
Merge tag 'late-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC late changes from Kevin Hilman:
"These are changes that arrived a little late before the merge window,
or had dependencies on previous branches.
Highlights:
- ux500: misc. cleanup, fixup I2C devices
- exynos: DT updates for RTC; PM updates
- at91: DT updates for NAND; new platforms added to generic defconfig
- sunxi: DT updates: cubieboard2, pinctrl driver, gated clocks
- highbank: LPAE fixes, select necessary ARM errata
- omap: PM fixes and improvements; OMAP5 mailbox support
- omap: basic support for new DRA7xx SoCs"
* tag 'late-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (60 commits)
ARM: dts: vexpress: Add CCI node to TC2 device-tree
ARM: EXYNOS: Skip C1 cpuidle state for exynos5440
ARM: EXYNOS: always enable PM domains support for EXYNOS4X12
ARM: highbank: clean-up some unused includes
ARM: sun7i: Enable the A20 clocks in the DTSI
ARM: sun6i: Enable clock support in the DTSI
ARM: sun5i: dt: Use the A10s gates in the DTSI
ARM: at91: at91_dt_defconfig: enable rm9200 support
ARM: dts: add ADC device tree node for exynos5420/5250
ARM: dts: Add RTC DT node to Exynos5420 SoC
ARM: dts: Update the "status" property of RTC DT node for Exynos5250 SoC
ARM: dts: Fix the RTC DT node name for Exynos5250
irqchip: mmp: avoid to include irqs head file
ARM: mmp: avoid to include head file in mach-mmp
irqchip: mmp: support irqchip
irqchip: move mmp irq driver
ARM: OMAP: AM33xx: clock: Add RNG clock data
ARM: OMAP: TI81XX: add always-on powerdomain for TI81XX
ARM: OMAP4: clock: Lock PLLs in the right sequence
ARM: OMAP: AM33XX: hwmod: Add hwmod data for debugSS
...
Diffstat (limited to 'arch/arm/mach-highbank')
-rw-r--r-- | arch/arm/mach-highbank/Kconfig | 6 | ||||
-rw-r--r-- | arch/arm/mach-highbank/highbank.c | 20 |
2 files changed, 15 insertions, 11 deletions
diff --git a/arch/arm/mach-highbank/Kconfig b/arch/arm/mach-highbank/Kconfig index 6acbdabf6222..8e8437dea3ce 100644 --- a/arch/arm/mach-highbank/Kconfig +++ b/arch/arm/mach-highbank/Kconfig | |||
@@ -1,9 +1,14 @@ | |||
1 | config ARCH_HIGHBANK | 1 | config ARCH_HIGHBANK |
2 | bool "Calxeda ECX-1000/2000 (Highbank/Midway)" if ARCH_MULTI_V7 | 2 | bool "Calxeda ECX-1000/2000 (Highbank/Midway)" if ARCH_MULTI_V7 |
3 | select ARCH_DMA_ADDR_T_64BIT if ARM_LPAE | ||
3 | select ARCH_HAS_CPUFREQ | 4 | select ARCH_HAS_CPUFREQ |
5 | select ARCH_HAS_HOLES_MEMORYMODEL | ||
4 | select ARCH_HAS_OPP | 6 | select ARCH_HAS_OPP |
5 | select ARCH_WANT_OPTIONAL_GPIOLIB | 7 | select ARCH_WANT_OPTIONAL_GPIOLIB |
6 | select ARM_AMBA | 8 | select ARM_AMBA |
9 | select ARM_ERRATA_764369 | ||
10 | select ARM_ERRATA_775420 | ||
11 | select ARM_ERRATA_798181 | ||
7 | select ARM_GIC | 12 | select ARM_GIC |
8 | select ARM_TIMER_SP804 | 13 | select ARM_TIMER_SP804 |
9 | select CACHE_L2X0 | 14 | select CACHE_L2X0 |
@@ -18,3 +23,4 @@ config ARCH_HIGHBANK | |||
18 | select PL320_MBOX | 23 | select PL320_MBOX |
19 | select SPARSE_IRQ | 24 | select SPARSE_IRQ |
20 | select USE_OF | 25 | select USE_OF |
26 | select ZONE_DMA if ARM_LPAE | ||
diff --git a/arch/arm/mach-highbank/highbank.c b/arch/arm/mach-highbank/highbank.c index 88815795fe26..8e63ccdb0de3 100644 --- a/arch/arm/mach-highbank/highbank.c +++ b/arch/arm/mach-highbank/highbank.c | |||
@@ -18,14 +18,11 @@ | |||
18 | #include <linux/clocksource.h> | 18 | #include <linux/clocksource.h> |
19 | #include <linux/dma-mapping.h> | 19 | #include <linux/dma-mapping.h> |
20 | #include <linux/io.h> | 20 | #include <linux/io.h> |
21 | #include <linux/irq.h> | ||
22 | #include <linux/irqchip.h> | 21 | #include <linux/irqchip.h> |
23 | #include <linux/irqdomain.h> | ||
24 | #include <linux/of.h> | 22 | #include <linux/of.h> |
25 | #include <linux/of_irq.h> | 23 | #include <linux/of_irq.h> |
26 | #include <linux/of_platform.h> | 24 | #include <linux/of_platform.h> |
27 | #include <linux/of_address.h> | 25 | #include <linux/of_address.h> |
28 | #include <linux/smp.h> | ||
29 | #include <linux/amba/bus.h> | 26 | #include <linux/amba/bus.h> |
30 | #include <linux/clk-provider.h> | 27 | #include <linux/clk-provider.h> |
31 | 28 | ||
@@ -35,7 +32,6 @@ | |||
35 | #include <asm/hardware/cache-l2x0.h> | 32 | #include <asm/hardware/cache-l2x0.h> |
36 | #include <asm/mach/arch.h> | 33 | #include <asm/mach/arch.h> |
37 | #include <asm/mach/map.h> | 34 | #include <asm/mach/map.h> |
38 | #include <asm/mach/time.h> | ||
39 | 35 | ||
40 | #include "core.h" | 36 | #include "core.h" |
41 | #include "sysregs.h" | 37 | #include "sysregs.h" |
@@ -65,13 +61,11 @@ void highbank_set_cpu_jump(int cpu, void *jump_addr) | |||
65 | HB_JUMP_TABLE_PHYS(cpu) + 15); | 61 | HB_JUMP_TABLE_PHYS(cpu) + 15); |
66 | } | 62 | } |
67 | 63 | ||
68 | #ifdef CONFIG_CACHE_L2X0 | ||
69 | static void highbank_l2x0_disable(void) | 64 | static void highbank_l2x0_disable(void) |
70 | { | 65 | { |
71 | /* Disable PL310 L2 Cache controller */ | 66 | /* Disable PL310 L2 Cache controller */ |
72 | highbank_smc1(0x102, 0x0); | 67 | highbank_smc1(0x102, 0x0); |
73 | } | 68 | } |
74 | #endif | ||
75 | 69 | ||
76 | static void __init highbank_init_irq(void) | 70 | static void __init highbank_init_irq(void) |
77 | { | 71 | { |
@@ -80,12 +74,13 @@ static void __init highbank_init_irq(void) | |||
80 | if (of_find_compatible_node(NULL, NULL, "arm,cortex-a9")) | 74 | if (of_find_compatible_node(NULL, NULL, "arm,cortex-a9")) |
81 | highbank_scu_map_io(); | 75 | highbank_scu_map_io(); |
82 | 76 | ||
83 | #ifdef CONFIG_CACHE_L2X0 | ||
84 | /* Enable PL310 L2 Cache controller */ | 77 | /* Enable PL310 L2 Cache controller */ |
85 | highbank_smc1(0x102, 0x1); | 78 | if (IS_ENABLED(CONFIG_CACHE_L2X0) && |
86 | l2x0_of_init(0, ~0UL); | 79 | of_find_compatible_node(NULL, NULL, "arm,pl310-cache")) { |
87 | outer_cache.disable = highbank_l2x0_disable; | 80 | highbank_smc1(0x102, 0x1); |
88 | #endif | 81 | l2x0_of_init(0, ~0UL); |
82 | outer_cache.disable = highbank_l2x0_disable; | ||
83 | } | ||
89 | } | 84 | } |
90 | 85 | ||
91 | static void __init highbank_timer_init(void) | 86 | static void __init highbank_timer_init(void) |
@@ -176,6 +171,9 @@ static const char *highbank_match[] __initconst = { | |||
176 | }; | 171 | }; |
177 | 172 | ||
178 | DT_MACHINE_START(HIGHBANK, "Highbank") | 173 | DT_MACHINE_START(HIGHBANK, "Highbank") |
174 | #if defined(CONFIG_ZONE_DMA) && defined(CONFIG_ARM_LPAE) | ||
175 | .dma_zone_size = (4ULL * SZ_1G), | ||
176 | #endif | ||
179 | .smp = smp_ops(highbank_smp_ops), | 177 | .smp = smp_ops(highbank_smp_ops), |
180 | .init_irq = highbank_init_irq, | 178 | .init_irq = highbank_init_irq, |
181 | .init_time = highbank_timer_init, | 179 | .init_time = highbank_timer_init, |