Merge tag 'multiplatform' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 13 Dec 2012 18:57:16 +0000 (10:57 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 13 Dec 2012 18:57:16 +0000 (10:57 -0800)
Pull ARM SoC multiplatform conversion patches from Olof Johansson:
 "Here are more patches in the progression towards multiplatform, sparse
  irq conversions in particular.

  Tegra has a handful of cleanups and general groundwork, but is not
  quite there yet on full enablement.

  Platforms that are enabled through this branch are VT8500 and Zynq.
  Note that i.MX was converted in one of the earlier cleanup branches as
  well (before we started a separate topic for multiplatform).  And both
  new platforms for this merge window, sunxi and bcm, were merged with
  multiplatform support enabled."

Fix up conflicts mostly as per Olof.

* tag 'multiplatform' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (29 commits)
  ARM: zynq: Remove all unused mach headers
  ARM: zynq: add support for ARCH_MULTIPLATFORM
  ARM: zynq: make use of debug_ll_io_init()
  ARM: zynq: remove TTC early mapping
  ARM: tegra: move debug-macro.S to include/debug
  ARM: tegra: don't include iomap.h from debug-macro.S
  ARM: tegra: decouple uncompress.h and debug-macro.S
  ARM: tegra: simplify DEBUG_LL UART selection options
  ARM: tegra: select SPARSE_IRQ
  ARM: tegra: enhance timer.c to get IO address from device tree
  ARM: tegra: enhance timer.c to get IRQ info from device tree
  ARM: timer: fix checkpatch warnings
  ARM: tegra: add TWD to device tree
  ARM: tegra: define DT bindings for and instantiate RTC
  ARM: tegra: define DT bindings for and instantiate timer
  clocksource/mtu-nomadik: use apb_pclk
  clk: ux500: Register mtu apb_pclocks
  ARM: plat-nomadik: convert platforms to SPARSE_IRQ
  mfd/db8500-prcmu: use the irq_domain_add_simple()
  mfd/ab8500-core: use irq_domain_add_simple()
  ...

17 files changed:
1  2 
arch/arm/Kconfig
arch/arm/Kconfig.debug
arch/arm/Makefile
arch/arm/boot/dts/tegra30.dtsi
arch/arm/mach-tegra/common.c
arch/arm/mach-ux500/board-mop500-audio.c
arch/arm/mach-ux500/board-mop500.c
arch/arm/mach-ux500/cpu-db8500.c
arch/arm/mach-vt8500/vt8500.c
drivers/char/hw_random/Kconfig
drivers/clk/ux500/u8500_clk.c
drivers/clocksource/Kconfig
drivers/clocksource/Makefile
drivers/mfd/ab8500-core.c
drivers/mfd/db8500-prcmu.c
drivers/mtd/nand/Kconfig
drivers/pinctrl/pinctrl-nomadik.c

Simple merge
@@@ -365,20 -362,13 +365,27 @@@ choic
                  Say Y here if you want kernel low-level debugging support
                  on SOCFPGA based platforms.
  
 +      config DEBUG_SUNXI_UART0
 +              bool "Kernel low-level debugging messages via sunXi UART0"
 +              depends on ARCH_SUNXI
 +              help
 +                Say Y here if you want kernel low-level debugging support
 +                on Allwinner A1X based platforms on the UART0.
 +
 +      config DEBUG_SUNXI_UART1
 +              bool "Kernel low-level debugging messages via sunXi UART1"
 +              depends on ARCH_SUNXI
 +              help
 +                Say Y here if you want kernel low-level debugging support
 +                on Allwinner A1X based platforms on the UART1.
 +
+       config DEBUG_TEGRA_UART
+               depends on ARCH_TEGRA
+               bool "Use Tegra UART for low-level debug"
+               help
+                 Say Y here if you want kernel low-level debugging support
+                 on Tegra based platforms.
        config DEBUG_VEXPRESS_UART0_DETECT
                bool "Autodetect UART0 on Versatile Express Cortex-A core tiles"
                depends on ARCH_VEXPRESS && CPU_CP15_MMU
  
  endchoice
  
 +config DEBUG_IMX6Q_UART_PORT
 +      int "i.MX6Q Debug UART Port (1-5)" if DEBUG_IMX6Q_UART
 +      range 1 5
 +      default 1
 +      depends on SOC_IMX6Q
 +      help
 +        Choose UART port on which kernel low-level debug messages
 +        should be output.
 +
+ choice
+       prompt "Low-level debug console UART"
+       depends on DEBUG_LL && DEBUG_TEGRA_UART
+       config TEGRA_DEBUG_UART_AUTO_ODMDATA
+       bool "Via ODMDATA"
+       help
+         Automatically determines which UART to use for low-level debug based
+         on the ODMDATA value. This value is part of the BCT, and is written
+         to the boot memory device using nvflash, or other flashing tool.
+         When bits 19:18 are 3, then bits 17:15 indicate which UART to use;
+         0/1/2/3/4 are UART A/B/C/D/E.
+       config TEGRA_DEBUG_UARTA
+               bool "UART A"
+       config TEGRA_DEBUG_UARTB
+               bool "UART B"
+       config TEGRA_DEBUG_UARTC
+               bool "UART C"
+       config TEGRA_DEBUG_UARTD
+               bool "UART D"
+       config TEGRA_DEBUG_UARTE
+               bool "UART E"
+ endchoice
  config DEBUG_LL_INCLUDE
        string
        default "debug/icedcc.S" if DEBUG_ICEDCC
        default "debug/mvebu.S" if DEBUG_MVEBU_UART
        default "debug/picoxcell.S" if DEBUG_PICOXCELL_UART
        default "debug/socfpga.S" if DEBUG_SOCFPGA_UART
 +      default "debug/sunxi.S" if DEBUG_SUNXI_UART0 || DEBUG_SUNXI_UART1
        default "debug/vexpress.S" if DEBUG_VEXPRESS_UART0_DETECT || \
                DEBUG_VEXPRESS_UART0_CA9 || DEBUG_VEXPRESS_UART0_RS1
+       default "debug/tegra.S" if DEBUG_TEGRA_UART
+       default "debug/zynq.S" if DEBUG_ZYNQ_UART0 || DEBUG_ZYNQ_UART1
        default "mach/debug-macro.S"
  
  config EARLY_PRINTK
Simple merge
Simple merge
Simple merge
Simple merge
  #include <linux/platform_device.h>
  #include <linux/io.h>
  #include <linux/mfd/abx500/ab8500.h>
 -#include <linux/platform_data/usb-musb-ux500.h>
 +#include <linux/mfd/dbx500-prcmu.h>
 +#include <linux/of.h>
 +#include <linux/of_platform.h>
 +#include <linux/regulator/machine.h>
+ #include <linux/platform_data/pinctrl-nomadik.h>
 +#include <linux/random.h>
  
  #include <asm/pmu.h>
  #include <asm/mach/map.h>
 +#include <asm/mach/arch.h>
 +#include <asm/hardware/gic.h>
++
  #include <mach/hardware.h>
  #include <mach/setup.h>
  #include <mach/devices.h>
Simple merge
Simple merge
Simple merge
@@@ -22,9 -22,21 +22,24 @@@ config DW_APB_TIMER_O
  config ARMADA_370_XP_TIMER
        bool
  
 +config SUNXI_TIMER
 +      bool
 +
+ config CLKSRC_NOMADIK_MTU
+       bool
+       depends on (ARCH_NOMADIK || ARCH_U8500)
+       select CLKSRC_MMIO
+       help
+         Support for Multi Timer Unit. MTU provides access
+         to multiple interrupt generating programmable
+         32-bit free running decrementing counters.
+ config CLKSRC_NOMADIK_MTU_SCHED_CLOCK
+       bool
+       depends on CLKSRC_NOMADIK_MTU
+       help
+         Use the Multi Timer Unit as the sched_clock.
  config CLKSRC_DBX500_PRCMU
        bool "Clocksource PRCMU Timer"
        depends on UX500_SOC_DB8500
Simple merge
Simple merge
Simple merge
Simple merge
  #include <linux/pinctrl/pinconf.h>
  /* Since we request GPIOs from ourself */
  #include <linux/pinctrl/consumer.h>
 -/*
 - * For the U8500 archs, use the PRCMU register interface, for the older
 - * Nomadik, provide some stubs. The functions using these will only be
 - * called on the U8500 series.
 - */
 -#ifdef CONFIG_ARCH_U8500
 -#include <linux/mfd/dbx500-prcmu.h>
 -#else
 -static inline u32 prcmu_read(unsigned int reg) {
 -      return 0;
 -}
 -static inline void prcmu_write(unsigned int reg, u32 value) {}
 -static inline void prcmu_write_masked(unsigned int reg, u32 mask, u32 value) {}
 -#endif
  #include <linux/platform_data/pinctrl-nomadik.h>
  #include <asm/mach/irq.h>
+ #include <mach/irqs.h>
  #include "pinctrl-nomadik.h"
  
  /*