From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Wed, 28 Mar 2012 19:24:40 +0000 (-0700)
Subject: Merge tag 'soc2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
X-Git-Tag: v3.4-rc1~72
X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=4bb2d1009f671815870e8f78e826e4f9071392a7;p=users%2Fjedix%2Flinux-maple.git

Merge tag 'soc2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc

Pull "ARM: More SoC support updates" from Olof Johansson:
 "This branch contains a handful of updates of SoC base code that had
  dependencies on other external trees that have now been merged:

   * Support for the new EXYNOS5250 SoC from Samsung
   * SMP and power domain support for Tegra3 from NVIDIA
   * ux500 updates for exporting SoC information through sysfs"

Fix up trivial merge conflicts as per Olof.

* tag 'soc2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (30 commits)
  ARM: mach-shmobile: ap4evb: Reserve DMA memory for the frame buffer
  ARM: EXYNOS: Fix compilation error with mach-exynos4-dt board
  ARM: dts: add initial dts file for EXYNOS5250, SMDK5250
  ARM: EXYNOS: add support device tree enabled board file for EXYNOS5
  ARM: EXYNOS: add support ARCH_EXYNOS5 for EXYNOS5 SoCs
  ARM: EXYNOS: add support get_core_count() for EXYNOS5250
  ARM: EXYNOS: support EINT for EXYNOS4 and EXYNOS5
  ARM: EXYNOS: add interrupt definitions for EXYNOS5250
  ARM: EXYNOS: add support for EXYNOS5250 SoC
  ARM: EXYNOS: add support uart for EXYNOS4 and EXYNOS5
  ARM: EXYNOS: add initial setup-i2c0 for EXYNOS5
  ARM: EXYNOS: add clock part for EXYNOS5250 SoC
  ARM: EXYNOS: use exynos_init_uarts() instead of exynos4_init_uarts()
  ARM: EXYNOS: to declare static for mach-exynos/common.c
  ARM: EXYNOS: Add clkdev lookup entry for lcd clock
  ARM: dt: Explicitly configure all serial ports on Tegra Cardhu
  ARM: tegra: support for secondary cores on Tegra30
  ARM: tegra: support for Tegra30 CPU powerdomains
  ARM: tegra: add support for Tegra30 powerdomains
  ARM: tegra: export tegra_powergate_is_powered()
  ...
---

4bb2d1009f671815870e8f78e826e4f9071392a7
diff --cc arch/arm/mach-exynos/Makefile
index 9a4c09896509,29967efd262a..8631840d1b5e
--- a/arch/arm/mach-exynos/Makefile
+++ b/arch/arm/mach-exynos/Makefile
@@@ -45,8 -46,10 +47,9 @@@ obj-$(CONFIG_MACH_EXYNOS5_DT)		+= mach-
  
  # device support
  
+ obj-y					+= dev-uart.o
  obj-$(CONFIG_ARCH_EXYNOS4)		+= dev-audio.o
  obj-$(CONFIG_EXYNOS4_DEV_AHCI)		+= dev-ahci.o
 -obj-$(CONFIG_EXYNOS4_DEV_PD)		+= dev-pd.o
  obj-$(CONFIG_EXYNOS4_DEV_SYSMMU)	+= dev-sysmmu.o
  obj-$(CONFIG_EXYNOS4_DEV_DWMCI)		+= dev-dwmci.o
  obj-$(CONFIG_EXYNOS4_DEV_DMA)		+= dma.o
diff --cc arch/arm/mach-exynos/mct.c
index e8a1caaf1902,cae3e2dae2e2..897d9a9cf226
--- a/arch/arm/mach-exynos/mct.c
+++ b/arch/arm/mach-exynos/mct.c
@@@ -412,17 -414,23 +415,17 @@@ static int __cpuinit exynos4_local_time
  	if (mct_int_type == MCT_INT_SPI) {
  		if (cpu == 0) {
  			mct_tick0_event_irq.dev_id = mevt;
- 			evt->irq = IRQ_MCT_L0;
- 			setup_irq(IRQ_MCT_L0, &mct_tick0_event_irq);
+ 			evt->irq = EXYNOS4_IRQ_MCT_L0;
+ 			setup_irq(EXYNOS4_IRQ_MCT_L0, &mct_tick0_event_irq);
  		} else {
  			mct_tick1_event_irq.dev_id = mevt;
- 			evt->irq = IRQ_MCT_L1;
- 			setup_irq(IRQ_MCT_L1, &mct_tick1_event_irq);
- 			irq_set_affinity(IRQ_MCT_L1, cpumask_of(1));
+ 			evt->irq = EXYNOS4_IRQ_MCT_L1;
+ 			setup_irq(EXYNOS4_IRQ_MCT_L1, &mct_tick1_event_irq);
+ 			irq_set_affinity(EXYNOS4_IRQ_MCT_L1, cpumask_of(1));
  		}
  	} else {
- 		enable_percpu_irq(IRQ_MCT_LOCALTIMER, 0);
+ 		enable_percpu_irq(EXYNOS_IRQ_MCT_LOCALTIMER, 0);
  	}
 -}
 -
 -/* Setup the local clock events for a CPU */
 -int __cpuinit local_timer_setup(struct clock_event_device *evt)
 -{
 -	exynos4_mct_tick_init(evt);
  
  	return 0;
  }
@@@ -437,13 -445,8 +440,13 @@@ static void exynos4_local_timer_stop(st
  		else
  			remove_irq(evt->irq, &mct_tick1_event_irq);
  	else
- 		disable_percpu_irq(IRQ_MCT_LOCALTIMER);
+ 		disable_percpu_irq(EXYNOS_IRQ_MCT_LOCALTIMER);
  }
 +
 +static struct local_timer_ops exynos4_mct_tick_ops __cpuinitdata = {
 +	.setup	= exynos4_local_timer_setup,
 +	.stop	= exynos4_local_timer_stop,
 +};
  #endif /* CONFIG_LOCAL_TIMERS */
  
  static void __init exynos4_timer_resources(void)
@@@ -461,10 -464,8 +464,10 @@@
  					 exynos4_mct_tick_isr, "MCT",
  					 &percpu_mct_tick);
  		WARN(err, "MCT: can't request IRQ %d (%d)\n",
- 		     IRQ_MCT_LOCALTIMER, err);
+ 		     EXYNOS_IRQ_MCT_LOCALTIMER, err);
  	}
 +
 +	local_timer_register(&exynos4_mct_tick_ops);
  #endif /* CONFIG_LOCAL_TIMERS */
  }
  
diff --cc arch/arm/mach-tegra/Makefile
index 1dd2726986cf,7c77a539f858..d87d968115ec
--- a/arch/arm/mach-tegra/Makefile
+++ b/arch/arm/mach-tegra/Makefile
@@@ -17,7 -18,8 +18,8 @@@ obj-$(CONFIG_ARCH_TEGRA_2x_SOC)		+= pin
  obj-$(CONFIG_ARCH_TEGRA_3x_SOC)		+= pinmux-tegra30-tables.o
  obj-$(CONFIG_ARCH_TEGRA_3x_SOC)		+= board-dt-tegra30.o
  obj-$(CONFIG_ARCH_TEGRA_3x_SOC)		+= tegra30_clocks.o
 -obj-$(CONFIG_SMP)                       += platsmp.o localtimer.o headsmp.o
 +obj-$(CONFIG_SMP)			+= platsmp.o headsmp.o
+ obj-$(CONFIG_SMP)                       += reset.o
  obj-$(CONFIG_HOTPLUG_CPU)               += hotplug.o
  obj-$(CONFIG_TEGRA_SYSTEM_DMA)		+= dma.o apbio.o
  obj-$(CONFIG_CPU_FREQ)                  += cpu-tegra.o
diff --cc arch/arm/mach-ux500/Kconfig
index 9ec635812349,d07a3afc38c0..8904d18de01a
--- a/arch/arm/mach-ux500/Kconfig
+++ b/arch/arm/mach-ux500/Kconfig
@@@ -22,20 -24,19 +22,21 @@@ config UX500_SOC_DB850
  
  menu "Ux500 target platform (boards)"
  
 -config MACH_U8500
 -	bool "U8500 Development platform"
 -	depends on UX500_SOC_DB8500
 -	select TPS6105X
 +config MACH_MOP500
 +	bool "U8500 Development platform, MOP500 versions"
 +	select UX500_SOC_DB8500
 +	select I2C
 +	select I2C_NOMADIK
+ 	select SOC_BUS
  	help
 -	  Include support for the mop500 development platform.
 +	  Include support for the MOP500 development platform.
  
  config MACH_HREFV60
 -       bool "U85000 Development platform, HREFv60 version"
 -       depends on UX500_SOC_DB8500
 -       help
 -         Include support for the HREFv60 new development platform.
 +	bool "U8500 Development platform, HREFv60 version"
 +	select MACH_MOP500
 +	help
 +	  Include support for the HREFv60 new development platform.
 +	  Includes HREFv70, v71 etc.
  
  config MACH_SNOWBALL
  	bool "U8500 Snowball platform"
diff --cc arch/arm/mach-ux500/include/mach/setup.h
index 93d403955eaa,74b43bb74542..3dc00ffa7bfa
--- a/arch/arm/mach-ux500/include/mach/setup.h
+++ b/arch/arm/mach-ux500/include/mach/setup.h
@@@ -23,10 -23,15 +23,12 @@@ extern struct device * __init u8500_ini
  
  extern void __init ux500_init_irq(void);
  
- extern void __init u5500_sdi_init(void);
+ extern void __init u5500_sdi_init(struct device *parent);
  
- extern void __init db5500_dma_init(void);
+ extern void __init db5500_dma_init(struct device *parent);
+ 
+ extern struct device *ux500_soc_device_init(const char *soc_id);
  
 -/* We re-use nomadik_timer for this platform */
 -extern void nmdk_timer_init(void);
 -
  struct amba_device;
  extern void __init amba_add_devices(struct amba_device *devs[], int num);