diff options
111 files changed, 570 insertions, 877 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 4235503a868..f416422ddb0 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -202,6 +202,13 @@ config ARM_PATCH_PHYS_VIRT  	  this feature (eg, building a kernel for a single machine) and  	  you need to shrink the kernel to the minimal size. +config NEED_MACH_GPIO_H +	bool +	help +	  Select this when mach/gpio.h is required to provide special +	  definitions for this platform. The need for mach/gpio.h should +	  be avoided when possible. +  config NEED_MACH_IO_H  	bool  	help @@ -247,26 +254,17 @@ config MMU  #  choice  	prompt "ARM system type" -	default ARCH_VERSATILE +	default ARCH_MULTIPLATFORM -config ARCH_SOCFPGA -	bool "Altera SOCFPGA family" -	select ARCH_WANT_OPTIONAL_GPIOLIB -	select ARM_AMBA -	select ARM_GIC -	select CACHE_L2X0 -	select CLKDEV_LOOKUP +config ARCH_MULTIPLATFORM +	bool "Allow multiple platforms to be selected" +	select ARM_PATCH_PHYS_VIRT +	select AUTO_ZRELADDR  	select COMMON_CLK -	select CPU_V7 -	select DW_APB_TIMER -	select DW_APB_TIMER_OF -	select GENERIC_CLOCKEVENTS -	select GPIO_PL061 if GPIOLIB -	select HAVE_ARM_SCU +	select MULTI_IRQ_HANDLER  	select SPARSE_IRQ  	select USE_OF -	help -	  This enables support for Altera SOCFPGA Cyclone V platform +	depends on MMU  config ARCH_INTEGRATOR  	bool "ARM Ltd. Integrator family" @@ -318,30 +316,13 @@ config ARCH_VERSATILE  	help  	  This enables support for ARM Ltd Versatile board. -config ARCH_VEXPRESS -	bool "ARM Ltd. Versatile Express family" -	select ARCH_WANT_OPTIONAL_GPIOLIB -	select ARM_AMBA -	select ARM_TIMER_SP804 -	select CLKDEV_LOOKUP -	select COMMON_CLK -	select GENERIC_CLOCKEVENTS -	select HAVE_CLK -	select HAVE_PATA_PLATFORM -	select ICST -	select NO_IOPORT -	select PLAT_VERSATILE -	select PLAT_VERSATILE_CLCD -	select REGULATOR_FIXED_VOLTAGE if REGULATOR -	help -	  This enables support for the ARM Ltd Versatile Express boards. -  config ARCH_AT91  	bool "Atmel AT91"  	select ARCH_REQUIRE_GPIOLIB  	select HAVE_CLK  	select CLKDEV_LOOKUP  	select IRQ_DOMAIN +	select NEED_MACH_GPIO_H  	select NEED_MACH_IO_H if PCCARD  	help  	  This enables support for systems based on Atmel @@ -376,24 +357,6 @@ config ARCH_BCMRING  	help  	  Support for Broadcom's BCMRing platform. -config ARCH_HIGHBANK -	bool "Calxeda Highbank-based" -	select ARCH_WANT_OPTIONAL_GPIOLIB -	select ARM_AMBA -	select ARM_GIC -	select ARM_TIMER_SP804 -	select CACHE_L2X0 -	select CLKDEV_LOOKUP -	select COMMON_CLK -	select CPU_V7 -	select GENERIC_CLOCKEVENTS -	select HAVE_ARM_SCU -	select HAVE_SMP -	select SPARSE_IRQ -	select USE_OF -	help -	  Support for the Calxeda Highbank SoC based boards. -  config ARCH_CLPS711X  	bool "Cirrus Logic CLPS711x/EP721x/EP731x-based"  	select CPU_ARM720T @@ -534,6 +497,8 @@ config ARCH_IOP32X  	bool "IOP32x-based"  	depends on MMU  	select CPU_XSCALE +	select NEED_MACH_GPIO_H +	select NEED_MACH_IO_H  	select NEED_RET_TO_USER  	select PLAT_IOP  	select PCI @@ -546,6 +511,8 @@ config ARCH_IOP33X  	bool "IOP33x-based"  	depends on MMU  	select CPU_XSCALE +	select NEED_MACH_GPIO_H +	select NEED_MACH_IO_H  	select NEED_RET_TO_USER  	select PLAT_IOP  	select PCI @@ -567,18 +534,6 @@ config ARCH_IXP4XX  	help  	  Support for Intel's IXP4XX (XScale) family of processors. -config ARCH_MVEBU -	bool "Marvell SOCs with Device Tree support" -	select GENERIC_CLOCKEVENTS -	select MULTI_IRQ_HANDLER -	select SPARSE_IRQ -	select CLKSRC_MMIO -	select GENERIC_IRQ_CHIP -	select IRQ_DOMAIN -	select COMMON_CLK -	help -	  Support for the Marvell SoC Family with device tree support -  config ARCH_DOVE  	bool "Marvell Dove"  	select CPU_V7 @@ -650,6 +605,7 @@ config ARCH_MMP  	select PLAT_PXA  	select SPARSE_IRQ  	select GENERIC_ALLOCATOR +	select NEED_MACH_GPIO_H  	help  	  Support for Marvell's PXA168/PXA910(MMP) and MMP2 processor line. @@ -696,25 +652,6 @@ config ARCH_TEGRA  	  This enables support for NVIDIA Tegra based systems (Tegra APX,  	  Tegra 6xx and Tegra 2 series). -config ARCH_PICOXCELL -	bool "Picochip picoXcell" -	select ARCH_REQUIRE_GPIOLIB -	select ARM_PATCH_PHYS_VIRT -	select ARM_VIC -	select CPU_V6K -	select DW_APB_TIMER -	select DW_APB_TIMER_OF -	select GENERIC_CLOCKEVENTS -	select GENERIC_GPIO -	select HAVE_TCM -	select NO_IOPORT -	select SPARSE_IRQ -	select USE_OF -	help -	  This enables support for systems based on the Picochip picoXcell -	  family of Femtocell devices.  The picoxcell support requires device tree -	  for all boards. -  config ARCH_PXA  	bool "PXA2xx/PXA3xx-based"  	depends on MMU @@ -731,6 +668,7 @@ config ARCH_PXA  	select MULTI_IRQ_HANDLER  	select ARM_CPU_SUSPEND if PM  	select HAVE_IDE +	select NEED_MACH_GPIO_H  	help  	  Support for Intel/Marvell's PXA2xx/PXA3xx processor line. @@ -793,6 +731,7 @@ config ARCH_SA1100  	select CLKDEV_LOOKUP  	select ARCH_REQUIRE_GPIOLIB  	select HAVE_IDE +	select NEED_MACH_GPIO_H  	select NEED_MACH_MEMORY_H  	select SPARSE_IRQ  	help @@ -808,6 +747,7 @@ config ARCH_S3C24XX  	select HAVE_S3C2410_I2C if I2C  	select HAVE_S3C_RTC if RTC_CLASS  	select HAVE_S3C2410_WATCHDOG if WATCHDOG +	select NEED_MACH_GPIO_H  	select NEED_MACH_IO_H  	help  	  Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443 @@ -835,6 +775,7 @@ config ARCH_S3C64XX  	select SAMSUNG_GPIOLIB_4BIT  	select HAVE_S3C2410_I2C if I2C  	select HAVE_S3C2410_WATCHDOG if WATCHDOG +	select NEED_MACH_GPIO_H  	help  	  Samsung S3C64XX series based systems @@ -849,6 +790,7 @@ config ARCH_S5P64X0  	select GENERIC_CLOCKEVENTS  	select HAVE_S3C2410_I2C if I2C  	select HAVE_S3C_RTC if RTC_CLASS +	select NEED_MACH_GPIO_H  	help  	  Samsung S5P64X0 CPU based systems, such as the Samsung SMDK6440,  	  SMDK6450. @@ -863,6 +805,7 @@ config ARCH_S5PC100  	select HAVE_S3C2410_I2C if I2C  	select HAVE_S3C_RTC if RTC_CLASS  	select HAVE_S3C2410_WATCHDOG if WATCHDOG +	select NEED_MACH_GPIO_H  	help  	  Samsung S5PC100 series based systems @@ -880,6 +823,7 @@ config ARCH_S5PV210  	select HAVE_S3C2410_I2C if I2C  	select HAVE_S3C_RTC if RTC_CLASS  	select HAVE_S3C2410_WATCHDOG if WATCHDOG +	select NEED_MACH_GPIO_H  	select NEED_MACH_MEMORY_H  	help  	  Samsung S5PV210/S5PC110 series based systems @@ -897,6 +841,7 @@ config ARCH_EXYNOS  	select HAVE_S3C_RTC if RTC_CLASS  	select HAVE_S3C2410_I2C if I2C  	select HAVE_S3C2410_WATCHDOG if WATCHDOG +	select NEED_MACH_GPIO_H  	select NEED_MACH_MEMORY_H  	help  	  Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5) @@ -969,6 +914,7 @@ config ARCH_DAVINCI  	select GENERIC_ALLOCATOR  	select GENERIC_IRQ_CHIP  	select ARCH_HAS_HOLES_MEMORYMODEL +	select NEED_MACH_GPIO_H  	help  	  Support for TI's DaVinci platform. @@ -981,6 +927,7 @@ config ARCH_OMAP  	select CLKSRC_MMIO  	select GENERIC_CLOCKEVENTS  	select ARCH_HAS_HOLES_MEMORYMODEL +	select NEED_MACH_GPIO_H  	help  	  Support for TI's OMAP platform (OMAP1/2/3/4). @@ -1020,6 +967,50 @@ config ARCH_ZYNQ  	  Support for Xilinx Zynq ARM Cortex A9 Platform  endchoice +menu "Multiple platform selection" +	depends on ARCH_MULTIPLATFORM + +comment "CPU Core family selection" + +config ARCH_MULTI_V4 +	bool "ARMv4 based platforms (FA526, StrongARM)" +	select ARCH_MULTI_V4_V5 +	depends on !ARCH_MULTI_V6_V7 + +config ARCH_MULTI_V4T +	bool "ARMv4T based platforms (ARM720T, ARM920T, ...)" +	select ARCH_MULTI_V4_V5 +	depends on !ARCH_MULTI_V6_V7 + +config ARCH_MULTI_V5 +	bool "ARMv5 based platforms (ARM926T, XSCALE, PJ1, ...)" +	select ARCH_MULTI_V4_V5 +	depends on !ARCH_MULTI_V6_V7 + +config ARCH_MULTI_V4_V5 +	bool + +config ARCH_MULTI_V6 +	bool "ARMv6 based platforms (ARM11, Scorpion, ...)" +	select CPU_V6 +	select ARCH_MULTI_V6_V7 + +config ARCH_MULTI_V7 +	bool "ARMv7 based platforms (Cortex-A, PJ4, Krait)" +	select CPU_V7 +	select ARCH_VEXPRESS +	default y +	select ARCH_MULTI_V6_V7 + +config ARCH_MULTI_V6_V7 +	bool + +config ARCH_MULTI_CPU_AUTO +	def_bool !(ARCH_MULTI_V4 || ARCH_MULTI_V4T || ARCH_MULTI_V6_V7) +	select ARCH_MULTI_V5 + +endmenu +  #  # This is sorted alphabetically by mach-* pathname.  However, plat-*  # Kconfigs may be included either alphabetically (according to the @@ -1047,6 +1038,8 @@ source "arch/arm/mach-gemini/Kconfig"  source "arch/arm/mach-h720x/Kconfig" +source "arch/arm/mach-highbank/Kconfig" +  source "arch/arm/mach-integrator/Kconfig"  source "arch/arm/mach-iop32x/Kconfig" @@ -1082,6 +1075,8 @@ source "arch/arm/mach-omap2/Kconfig"  source "arch/arm/mach-orion5x/Kconfig" +source "arch/arm/mach-picoxcell/Kconfig" +  source "arch/arm/mach-pxa/Kconfig"  source "arch/arm/plat-pxa/Kconfig" @@ -1094,6 +1089,8 @@ source "arch/arm/mach-sa1100/Kconfig"  source "arch/arm/plat-samsung/Kconfig"  source "arch/arm/plat-s3c24xx/Kconfig" +source "arch/arm/mach-socfpga/Kconfig" +  source "arch/arm/plat-spear/Kconfig"  source "arch/arm/mach-s3c24xx/Kconfig" @@ -2054,7 +2051,7 @@ endchoice  config XIP_KERNEL  	bool "Kernel Execute-In-Place from ROM" -	depends on !ZBOOT_ROM && !ARM_LPAE +	depends on !ZBOOT_ROM && !ARM_LPAE && !ARCH_MULTIPLATFORM  	help  	  Execute-In-Place allows the kernel to run from non-volatile storage  	  directly addressable by the CPU, such as NOR flash. This saves RAM diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index e968a52e488..a7eb28260b2 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug @@ -261,6 +261,20 @@ choice  		  Say Y here if you want the debug print routines to direct  		  their output to the serial port on MSM 8960 devices. +	config DEBUG_MVEBU_UART +		bool "Kernel low-level debugging messages via MVEBU UART" +		depends on ARCH_MVEBU +		help +		  Say Y here if you want kernel low-level debugging support +		  on MVEBU based platforms. + +	config DEBUG_PICOXCELL_UART +		depends on ARCH_PICOXCELL +		bool "Use PicoXcell UART for low-level debug" +		help +		  Say Y here if you want kernel low-level debugging support +		  on PicoXcell based platforms. +  	config DEBUG_REALVIEW_STD_PORT  		bool "RealView Default UART"  		depends on ARCH_REALVIEW @@ -310,6 +324,13 @@ choice  		  The uncompressor code port configuration is now handled  		  by CONFIG_S3C_LOWLEVEL_UART_PORT. +	config DEBUG_SOCFPGA_UART +		depends on ARCH_SOCFPGA +		bool "Use SOCFPGA UART for low-level debug" +		help +		  Say Y here if you want kernel low-level debugging support +		  on SOCFPGA based platforms. +  	config DEBUG_VEXPRESS_UART0_DETECT  		bool "Autodetect UART0 on Versatile Express Cortex-A core tiles"  		depends on ARCH_VEXPRESS && CPU_CP15_MMU @@ -338,6 +359,7 @@ choice  	config DEBUG_LL_UART_NONE  		bool "No low-level debugging UART" +		depends on !ARCH_MULTIPLATFORM  		help  		  Say Y here if your platform doesn't provide a UART option  		  below. This relies on your platform choosing the right UART @@ -373,6 +395,17 @@ choice  endchoice +config DEBUG_LL_INCLUDE +	string +	default "debug/icedcc.S" if DEBUG_ICEDCC +	default "debug/highbank.S" if DEBUG_HIGHBANK_UART +	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/vexpress.S" if DEBUG_VEXPRESS_UART0_DETECT || \ +		DEBUG_VEXPRESS_UART0_CA9 || DEBUG_VEXPRESS_UART0_RS1 +	default "mach/debug-macro.S" +  config EARLY_PRINTK  	bool "Early printk"  	depends on DEBUG_LL diff --git a/arch/arm/Makefile b/arch/arm/Makefile index f47618252e5..1c974cf9db1 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile @@ -135,84 +135,79 @@ textofs-$(CONFIG_ARCH_MSM8960) := 0x00208000  # Machine directory name.  This list is sorted alphanumerically  # by CONFIG_* macro name. -machine-$(CONFIG_ARCH_AT91)		:= at91 -machine-$(CONFIG_ARCH_BCM2835)		:= bcm2835 -machine-$(CONFIG_ARCH_BCMRING)		:= bcmring -machine-$(CONFIG_ARCH_CLPS711X)		:= clps711x -machine-$(CONFIG_ARCH_CNS3XXX)		:= cns3xxx -machine-$(CONFIG_ARCH_DAVINCI)		:= davinci -machine-$(CONFIG_ARCH_DOVE)		:= dove -machine-$(CONFIG_ARCH_EBSA110)		:= ebsa110 -machine-$(CONFIG_ARCH_EP93XX)		:= ep93xx -machine-$(CONFIG_ARCH_GEMINI)		:= gemini -machine-$(CONFIG_ARCH_H720X)		:= h720x -machine-$(CONFIG_ARCH_HIGHBANK)		:= highbank -machine-$(CONFIG_ARCH_INTEGRATOR)	:= integrator -machine-$(CONFIG_ARCH_IOP13XX)		:= iop13xx -machine-$(CONFIG_ARCH_IOP32X)		:= iop32x -machine-$(CONFIG_ARCH_IOP33X)		:= iop33x -machine-$(CONFIG_ARCH_IXP4XX)		:= ixp4xx -machine-$(CONFIG_ARCH_KIRKWOOD)		:= kirkwood -machine-$(CONFIG_ARCH_KS8695)		:= ks8695 -machine-$(CONFIG_ARCH_LPC32XX)		:= lpc32xx -machine-$(CONFIG_ARCH_MMP)		:= mmp -machine-$(CONFIG_ARCH_MSM)		:= msm -machine-$(CONFIG_ARCH_MV78XX0)		:= mv78xx0 -machine-$(CONFIG_ARCH_IMX_V4_V5)	:= imx -machine-$(CONFIG_ARCH_IMX_V6_V7)	:= imx -machine-$(CONFIG_ARCH_MXS)		:= mxs -machine-$(CONFIG_ARCH_MVEBU)		:= mvebu -machine-$(CONFIG_ARCH_NETX)		:= netx -machine-$(CONFIG_ARCH_NOMADIK)		:= nomadik -machine-$(CONFIG_ARCH_OMAP1)		:= omap1 -machine-$(CONFIG_ARCH_OMAP2PLUS)	:= omap2 -machine-$(CONFIG_ARCH_ORION5X)		:= orion5x -machine-$(CONFIG_ARCH_PICOXCELL)	:= picoxcell -machine-$(CONFIG_ARCH_PRIMA2)		:= prima2 -machine-$(CONFIG_ARCH_PXA)		:= pxa -machine-$(CONFIG_ARCH_REALVIEW)		:= realview -machine-$(CONFIG_ARCH_RPC)		:= rpc -machine-$(CONFIG_ARCH_S3C24XX)		:= s3c24xx s3c2412 s3c2440 -machine-$(CONFIG_ARCH_S3C64XX)		:= s3c64xx -machine-$(CONFIG_ARCH_S5P64X0)		:= s5p64x0 -machine-$(CONFIG_ARCH_S5PC100)		:= s5pc100 -machine-$(CONFIG_ARCH_S5PV210)		:= s5pv210 -machine-$(CONFIG_ARCH_EXYNOS4)		:= exynos -machine-$(CONFIG_ARCH_EXYNOS5)		:= exynos -machine-$(CONFIG_ARCH_SA1100)		:= sa1100 -machine-$(CONFIG_ARCH_SHARK)		:= shark -machine-$(CONFIG_ARCH_SHMOBILE) 	:= shmobile -machine-$(CONFIG_ARCH_TEGRA)		:= tegra -machine-$(CONFIG_ARCH_U300)		:= u300 -machine-$(CONFIG_ARCH_U8500)		:= ux500 -machine-$(CONFIG_ARCH_VERSATILE)	:= versatile -machine-$(CONFIG_ARCH_VEXPRESS)		:= vexpress -machine-$(CONFIG_ARCH_VT8500)		:= vt8500 -machine-$(CONFIG_ARCH_W90X900)		:= w90x900 -machine-$(CONFIG_FOOTBRIDGE)		:= footbridge -machine-$(CONFIG_ARCH_SOCFPGA)		:= socfpga -machine-$(CONFIG_MACH_SPEAR1310)	:= spear13xx -machine-$(CONFIG_MACH_SPEAR1340)	:= spear13xx -machine-$(CONFIG_MACH_SPEAR300)		:= spear3xx -machine-$(CONFIG_MACH_SPEAR310)		:= spear3xx -machine-$(CONFIG_MACH_SPEAR320)		:= spear3xx -machine-$(CONFIG_MACH_SPEAR600)		:= spear6xx -machine-$(CONFIG_ARCH_ZYNQ)		:= zynq +machine-$(CONFIG_ARCH_AT91)		+= at91 +machine-$(CONFIG_ARCH_BCM2835)		+= bcm2835 +machine-$(CONFIG_ARCH_BCMRING)		+= bcmring +machine-$(CONFIG_ARCH_CLPS711X)		+= clps711x +machine-$(CONFIG_ARCH_CNS3XXX)		+= cns3xxx +machine-$(CONFIG_ARCH_DAVINCI)		+= davinci +machine-$(CONFIG_ARCH_DOVE)		+= dove +machine-$(CONFIG_ARCH_EBSA110)		+= ebsa110 +machine-$(CONFIG_ARCH_EP93XX)		+= ep93xx +machine-$(CONFIG_ARCH_GEMINI)		+= gemini +machine-$(CONFIG_ARCH_H720X)		+= h720x +machine-$(CONFIG_ARCH_HIGHBANK)		+= highbank +machine-$(CONFIG_ARCH_INTEGRATOR)	+= integrator +machine-$(CONFIG_ARCH_IOP13XX)		+= iop13xx +machine-$(CONFIG_ARCH_IOP32X)		+= iop32x +machine-$(CONFIG_ARCH_IOP33X)		+= iop33x +machine-$(CONFIG_ARCH_IXP4XX)		+= ixp4xx +machine-$(CONFIG_ARCH_KIRKWOOD)		+= kirkwood +machine-$(CONFIG_ARCH_KS8695)		+= ks8695 +machine-$(CONFIG_ARCH_LPC32XX)		+= lpc32xx +machine-$(CONFIG_ARCH_MMP)		+= mmp +machine-$(CONFIG_ARCH_MSM)		+= msm +machine-$(CONFIG_ARCH_MV78XX0)		+= mv78xx0 +machine-$(CONFIG_ARCH_MXC)		+= imx +machine-$(CONFIG_ARCH_MXS)		+= mxs +machine-$(CONFIG_ARCH_MVEBU)		+= mvebu +machine-$(CONFIG_ARCH_NETX)		+= netx +machine-$(CONFIG_ARCH_NOMADIK)		+= nomadik +machine-$(CONFIG_ARCH_OMAP1)		+= omap1 +machine-$(CONFIG_ARCH_OMAP2PLUS)	+= omap2 +machine-$(CONFIG_ARCH_ORION5X)		+= orion5x +machine-$(CONFIG_ARCH_PICOXCELL)	+= picoxcell +machine-$(CONFIG_ARCH_PRIMA2)		+= prima2 +machine-$(CONFIG_ARCH_PXA)		+= pxa +machine-$(CONFIG_ARCH_REALVIEW)		+= realview +machine-$(CONFIG_ARCH_RPC)		+= rpc +machine-$(CONFIG_ARCH_S3C24XX)		+= s3c24xx s3c2412 s3c2440 +machine-$(CONFIG_ARCH_S3C64XX)		+= s3c64xx +machine-$(CONFIG_ARCH_S5P64X0)		+= s5p64x0 +machine-$(CONFIG_ARCH_S5PC100)		+= s5pc100 +machine-$(CONFIG_ARCH_S5PV210)		+= s5pv210 +machine-$(CONFIG_ARCH_EXYNOS)		+= exynos +machine-$(CONFIG_ARCH_SA1100)		+= sa1100 +machine-$(CONFIG_ARCH_SHARK)		+= shark +machine-$(CONFIG_ARCH_SHMOBILE) 	+= shmobile +machine-$(CONFIG_ARCH_TEGRA)		+= tegra +machine-$(CONFIG_ARCH_U300)		+= u300 +machine-$(CONFIG_ARCH_U8500)		+= ux500 +machine-$(CONFIG_ARCH_VERSATILE)	+= versatile +machine-$(CONFIG_ARCH_VEXPRESS)		+= vexpress +machine-$(CONFIG_ARCH_VT8500)		+= vt8500 +machine-$(CONFIG_ARCH_W90X900)		+= w90x900 +machine-$(CONFIG_FOOTBRIDGE)		+= footbridge +machine-$(CONFIG_ARCH_SOCFPGA)		+= socfpga +machine-$(CONFIG_ARCH_SPEAR13XX)	+= spear13xx +machine-$(CONFIG_ARCH_SPEAR3XX)		+= spear3xx +machine-$(CONFIG_MACH_SPEAR600)		+= spear6xx +machine-$(CONFIG_ARCH_ZYNQ)		+= zynq  # Platform directory name.  This list is sorted alphanumerically  # by CONFIG_* macro name. -plat-$(CONFIG_ARCH_MXC)		:= mxc -plat-$(CONFIG_ARCH_OMAP)	:= omap -plat-$(CONFIG_ARCH_S3C64XX)	:= samsung -plat-$(CONFIG_ARCH_ZYNQ)	:= versatile -plat-$(CONFIG_PLAT_IOP)		:= iop -plat-$(CONFIG_PLAT_NOMADIK)	:= nomadik -plat-$(CONFIG_PLAT_ORION)	:= orion -plat-$(CONFIG_PLAT_PXA)		:= pxa -plat-$(CONFIG_PLAT_S3C24XX)	:= s3c24xx samsung -plat-$(CONFIG_PLAT_S5P)		:= samsung -plat-$(CONFIG_PLAT_SPEAR)	:= spear -plat-$(CONFIG_PLAT_VERSATILE)	:= versatile +plat-$(CONFIG_ARCH_MXC)		+= mxc +plat-$(CONFIG_ARCH_OMAP)	+= omap +plat-$(CONFIG_ARCH_S3C64XX)	+= samsung +plat-$(CONFIG_ARCH_ZYNQ)	+= versatile +plat-$(CONFIG_PLAT_IOP)		+= iop +plat-$(CONFIG_PLAT_NOMADIK)	+= nomadik +plat-$(CONFIG_PLAT_ORION)	+= orion +plat-$(CONFIG_PLAT_PXA)		+= pxa +plat-$(CONFIG_PLAT_S3C24XX)	+= s3c24xx samsung +plat-$(CONFIG_PLAT_S5P)		+= samsung +plat-$(CONFIG_PLAT_SPEAR)	+= spear +plat-$(CONFIG_PLAT_VERSATILE)	+= versatile  ifeq ($(CONFIG_ARCH_EBSA110),y)  # This is what happens if you forget the IOCS16 line. @@ -230,15 +225,20 @@ MACHINE  := arch/arm/mach-$(word 1,$(machine-y))/  else  MACHINE  :=  endif +ifeq ($(CONFIG_ARCH_MULTIPLATFORM),y) +MACHINE  := +endif  machdirs := $(patsubst %,arch/arm/mach-%/,$(machine-y))  platdirs := $(patsubst %,arch/arm/plat-%/,$(plat-y)) +ifneq ($(CONFIG_ARCH_MULTIPLATFORM),y)  ifeq ($(KBUILD_SRC),)  KBUILD_CPPFLAGS += $(patsubst %,-I%include,$(machdirs) $(platdirs))  else  KBUILD_CPPFLAGS += $(patsubst %,-I$(srctree)/%include,$(machdirs) $(platdirs))  endif +endif  export	TEXT_OFFSET GZFLAGS MMUEXT diff --git a/arch/arm/boot/Makefile b/arch/arm/boot/Makefile index c877087d200..3fdab016aa5 100644 --- a/arch/arm/boot/Makefile +++ b/arch/arm/boot/Makefile @@ -15,6 +15,8 @@ ifneq ($(MACHINE),)  include $(srctree)/$(MACHINE)/Makefile.boot  endif +include $(srctree)/arch/arm/boot/dts/Makefile +  # Note: the following conditions must always be true:  #   ZRELADDR == virt_to_phys(PAGE_OFFSET + TEXT_OFFSET)  #   PARAMS_PHYS must be within 4MB of ZRELADDR diff --git a/arch/arm/boot/compressed/misc.c b/arch/arm/boot/compressed/misc.c index 8e2a8fca5ed..df899834d84 100644 --- a/arch/arm/boot/compressed/misc.c +++ b/arch/arm/boot/compressed/misc.c @@ -25,7 +25,13 @@ unsigned int __machine_arch_type;  static void putstr(const char *ptr);  extern void error(char *x); +#ifdef CONFIG_ARCH_MULTIPLATFORM +static inline void putc(int c) {} +static inline void flush(void) {} +static inline void arch_decomp_setup(void) {} +#else  #include <mach/uncompress.h> +#endif  #ifdef CONFIG_DEBUG_ICEDCC diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile new file mode 100644 index 00000000000..eda7b557c52 --- /dev/null +++ b/arch/arm/boot/dts/Makefile @@ -0,0 +1,84 @@ +ifeq ($(CONFIG_OF),y) + +dtb-$(CONFIG_ARCH_AT91) += aks-cdu.dtb \ +	at91sam9263ek.dtb \ +	at91sam9g20ek_2mmc.dtb \ +	at91sam9g20ek.dtb \ +	at91sam9g25ek.dtb \ +	at91sam9m10g45ek.dtb \ +	at91sam9n12ek.dtb \ +	ethernut5.dtb \ +	evk-pro3.dtb \ +	kizbox.dtb \ +	tny_a9260.dtb \ +	tny_a9263.dtb \ +	tny_a9g20.dtb \ +	usb_a9260.dtb \ +	usb_a9263.dtb \ +	usb_a9g20.dtb +dtb-$(CONFIG_ARCH_EXYNOS) += exynos4210-origen.dtb \ +	exynos4210-smdkv310.dtb \ +	exynos5250-smdk5250.dtb +dtb-$(CONFIG_ARCH_HIGHBANK) += highbank.dtb +dtb-$(CONFIG_ARCH_IMX5) += imx51-babbage.dtb \ +	imx53-ard.dtb \ +	imx53-evk.dtb \ +	imx53-qsb.dtb \ +	imx53-smd.dtb +dtb-$(CONFIG_SOC_IMX6Q) += imx6q-arm2.dtb \ +	imx6q-sabrelite.dtb \ +	imx6q-sabresd.dtb +dtb-$(CONFIG_ARCH_LPC32XX) += ea3250.dtb phy3250.dtb +dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \ +	kirkwood-dns325.dtb \ +	kirkwood-dreamplug.dtb \ +	kirkwood-goflexnet.dtb \ +	kirkwood-ib62x0.dtb \ +	kirkwood-iconnect.dtb \ +	kirkwood-lschlv2.dtb \ +	kirkwood-lsxhl.dtb \ +	kirkwood-ts219-6281.dtb \ +	kirkwood-ts219-6282.dtb +dtb-$(CONFIG_ARCH_MVEBU) += armada-370-db.dtb \ +	armada-xp-db.dtb +dtb-$(CONFIG_ARCH_MXC) += imx51-babbage.dtb \ +	imx53-ard.dtb \ +	imx53-evk.dtb \ +	imx53-qsb.dtb \ +	imx53-smd.dtb \ +	imx6q-arm2.dtb \ +	imx6q-sabrelite.dtb \ +	imx6q-sabresd.dtb +dtb-$(CONFIG_ARCH_MXS) += imx23-evk.dtb \ +	imx23-olinuxino.dtb \ +	imx23-stmp378x_devb.dtb \ +	imx28-apx4devkit.dtb \ +	imx28-cfa10036.dtb \ +	imx28-cfa10049.dtb \ +	imx28-evk.dtb \ +	imx28-m28evk.dtb \ +	imx28-tx28.dtb +dtb-$(CONFIG_ARCH_U8500) += snowball.dtb +dtb-$(CONFIG_ARCH_SPEAR13XX) += spear1310-evb.dtb \ +	spear1340-evb.dtb +dtb-$(CONFIG_ARCH_SPEAR3XX)+= spear300-evb.dtb \ +	spear310-evb.dtb \ +	spear320-evb.dtb +dtb-$(CONFIG_ARCH_SPEAR6XX)+= spear600-evb.dtb +dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \ +	tegra20-medcom-wide.dtb \ +	tegra20-paz00.dtb \ +	tegra20-plutux.dtb \ +	tegra20-seaboard.dtb \ +	tegra20-tec.dtb \ +	tegra20-trimslice.dtb \ +	tegra20-ventana.dtb \ +	tegra20-whistler.dtb \ +	tegra30-cardhu-a02.dtb \ +	tegra30-cardhu-a04.dtb +dtb-$(CONFIG_ARCH_VEXPRESS) += vexpress-v2p-ca5s.dtb \ +	vexpress-v2p-ca9.dtb \ +	vexpress-v2p-ca15-tc1.dtb \ +	vexpress-v2p-ca15_a7.dtb + +endif diff --git a/arch/arm/include/asm/gpio.h b/arch/arm/include/asm/gpio.h index c402e9b31f4..477e0206e01 100644 --- a/arch/arm/include/asm/gpio.h +++ b/arch/arm/include/asm/gpio.h @@ -6,7 +6,9 @@  #endif  /* not all ARM platforms necessarily support this API ... */ +#ifdef CONFIG_NEED_MACH_GPIO_H  #include <mach/gpio.h> +#endif  #ifndef __ARM_GPIOLIB_COMPLEX  /* Note: this may rely upon the value of ARCH_NR_GPIOS set in mach/gpio.h */ diff --git a/arch/arm/include/asm/timex.h b/arch/arm/include/asm/timex.h index ce119442277..963342acebb 100644 --- a/arch/arm/include/asm/timex.h +++ b/arch/arm/include/asm/timex.h @@ -13,7 +13,11 @@  #define _ASMARM_TIMEX_H  #include <asm/arch_timer.h> +#ifdef CONFIG_ARCH_MULTIPLATFORM +#define CLOCK_TICK_RATE 1000000 +#else  #include <mach/timex.h> +#endif  typedef unsigned long cycles_t; diff --git a/arch/arm/mach-highbank/include/mach/debug-macro.S b/arch/arm/include/debug/highbank.S index cb57fe5bcd0..8cad4322a5a 100644 --- a/arch/arm/mach-highbank/include/mach/debug-macro.S +++ b/arch/arm/include/debug/highbank.S @@ -10,10 +10,8 @@   */  		.macro	addruart,rp,rv,tmp -		movw	\rv, #0x6000 -		movt	\rv, #0xfee3 -		movw	\rp, #0x6000 -		movt	\rp, #0xfff3 +		ldr	\rv, =0xfee36000 +		ldr	\rp, =0xfff36000  		.endm  #include <asm/hardware/debug-pl01x.S> diff --git a/arch/arm/include/debug/icedcc.S b/arch/arm/include/debug/icedcc.S new file mode 100644 index 00000000000..43afcb021fa --- /dev/null +++ b/arch/arm/include/debug/icedcc.S @@ -0,0 +1,90 @@ +/* + *  arch/arm/include/debug/icedcc.S + * + *  Copyright (C) 1994-1999 Russell King + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + */ + +		@@ debug using ARM EmbeddedICE DCC channel + +		.macro	addruart, rp, rv, tmp +		.endm + +#if defined(CONFIG_CPU_V6) || defined(CONFIG_CPU_V6K) || defined(CONFIG_CPU_V7) + +		.macro	senduart, rd, rx +		mcr	p14, 0, \rd, c0, c5, 0 +		.endm + +		.macro	busyuart, rd, rx +1001: +		mrc	p14, 0, \rx, c0, c1, 0 +		tst	\rx, #0x20000000 +		beq	1001b +		.endm + +		.macro	waituart, rd, rx +		mov	\rd, #0x2000000 +1001: +		subs	\rd, \rd, #1 +		bmi	1002f +		mrc	p14, 0, \rx, c0, c1, 0 +		tst	\rx, #0x20000000 +		bne	1001b +1002: +		.endm + +#elif defined(CONFIG_CPU_XSCALE) + +		.macro	senduart, rd, rx +		mcr	p14, 0, \rd, c8, c0, 0 +		.endm + +		.macro	busyuart, rd, rx +1001: +		mrc	p14, 0, \rx, c14, c0, 0 +		tst	\rx, #0x10000000 +		beq	1001b +		.endm + +		.macro	waituart, rd, rx +		mov	\rd, #0x10000000 +1001: +		subs	\rd, \rd, #1 +		bmi	1002f +		mrc	p14, 0, \rx, c14, c0, 0 +		tst	\rx, #0x10000000 +		bne	1001b +1002: +		.endm + +#else + +		.macro	senduart, rd, rx +		mcr	p14, 0, \rd, c1, c0, 0 +		.endm + +		.macro	busyuart, rd, rx +1001: +		mrc	p14, 0, \rx, c0, c0, 0 +		tst	\rx, #2 +		beq	1001b + +		.endm + +		.macro	waituart, rd, rx +		mov	\rd, #0x2000000 +1001: +		subs	\rd, \rd, #1 +		bmi	1002f +		mrc	p14, 0, \rx, c0, c0, 0 +		tst	\rx, #2 +		bne	1001b +1002: +		.endm + +#endif	/* CONFIG_CPU_V6 */ diff --git a/arch/arm/mach-mvebu/include/mach/debug-macro.S b/arch/arm/include/debug/mvebu.S index 22825760c7e..865c6d02b33 100644 --- a/arch/arm/mach-mvebu/include/mach/debug-macro.S +++ b/arch/arm/include/debug/mvebu.S @@ -11,7 +11,8 @@   * published by the Free Software Foundation.  */ -#include <mach/armada-370-xp.h> +#define ARMADA_370_XP_REGS_PHYS_BASE	0xd0000000 +#define ARMADA_370_XP_REGS_VIRT_BASE	0xfeb00000  	.macro	addruart, rp, rv, tmp  	ldr	\rp, =ARMADA_370_XP_REGS_PHYS_BASE diff --git a/arch/arm/mach-picoxcell/include/mach/debug-macro.S b/arch/arm/include/debug/picoxcell.S index 58d4ee3ae94..7419deb1b94 100644 --- a/arch/arm/mach-picoxcell/include/mach/debug-macro.S +++ b/arch/arm/include/debug/picoxcell.S @@ -9,10 +9,10 @@   * accesses to the 8250.   */  #include <linux/serial_reg.h> -#include <mach/hardware.h> -#include <mach/map.h>  #define UART_SHIFT 2 +#define PICOXCELL_UART1_BASE		0x80230000 +#define PHYS_TO_IO(x)			(((x) & 0x00ffffff) | 0xfe000000)  		.macro	addruart, rp, rv, tmp  		ldr	\rv, =PHYS_TO_IO(PICOXCELL_UART1_BASE) diff --git a/arch/arm/mach-socfpga/include/mach/debug-macro.S b/arch/arm/include/debug/socfpga.S index d6f26d23374..d6f26d23374 100644 --- a/arch/arm/mach-socfpga/include/mach/debug-macro.S +++ b/arch/arm/include/debug/socfpga.S diff --git a/arch/arm/mach-vexpress/include/mach/debug-macro.S b/arch/arm/include/debug/vexpress.S index 9f509f55d07..9f509f55d07 100644 --- a/arch/arm/mach-vexpress/include/mach/debug-macro.S +++ b/arch/arm/include/debug/vexpress.S diff --git a/arch/arm/kernel/debug.S b/arch/arm/kernel/debug.S index c45522c3678..66f711b2e0e 100644 --- a/arch/arm/kernel/debug.S +++ b/arch/arm/kernel/debug.S @@ -20,90 +20,9 @@   * references to these in a production kernel!   */ -#if defined(CONFIG_DEBUG_ICEDCC) -		@@ debug using ARM EmbeddedICE DCC channel - -		.macro	addruart, rp, rv, tmp -		.endm - -#if defined(CONFIG_CPU_V6) || defined(CONFIG_CPU_V6K) || defined(CONFIG_CPU_V7) - -		.macro	senduart, rd, rx -		mcr	p14, 0, \rd, c0, c5, 0 -		.endm - -		.macro	busyuart, rd, rx -1001: -		mrc	p14, 0, \rx, c0, c1, 0 -		tst	\rx, #0x20000000 -		beq	1001b -		.endm - -		.macro	waituart, rd, rx -		mov	\rd, #0x2000000 -1001: -		subs	\rd, \rd, #1 -		bmi	1002f -		mrc	p14, 0, \rx, c0, c1, 0 -		tst	\rx, #0x20000000 -		bne	1001b -1002: -		.endm - -#elif defined(CONFIG_CPU_XSCALE) - -		.macro	senduart, rd, rx -		mcr	p14, 0, \rd, c8, c0, 0 -		.endm - -		.macro	busyuart, rd, rx -1001: -		mrc	p14, 0, \rx, c14, c0, 0 -		tst	\rx, #0x10000000 -		beq	1001b -		.endm - -		.macro	waituart, rd, rx -		mov	\rd, #0x10000000 -1001: -		subs	\rd, \rd, #1 -		bmi	1002f -		mrc	p14, 0, \rx, c14, c0, 0 -		tst	\rx, #0x10000000 -		bne	1001b -1002: -		.endm - -#else - -		.macro	senduart, rd, rx -		mcr	p14, 0, \rd, c1, c0, 0 -		.endm - -		.macro	busyuart, rd, rx -1001: -		mrc	p14, 0, \rx, c0, c0, 0 -		tst	\rx, #2 -		beq	1001b - -		.endm - -		.macro	waituart, rd, rx -		mov	\rd, #0x2000000 -1001: -		subs	\rd, \rd, #1 -		bmi	1002f -		mrc	p14, 0, \rx, c0, c0, 0 -		tst	\rx, #2 -		bne	1001b -1002: -		.endm - -#endif	/* CONFIG_CPU_V6 */ - -#elif !defined(CONFIG_DEBUG_SEMIHOSTING) -#include <mach/debug-macro.S> -#endif	/* CONFIG_DEBUG_ICEDCC */ +#if !defined(CONFIG_DEBUG_SEMIHOSTING) +#include CONFIG_DEBUG_LL_INCLUDE +#endif  #ifdef CONFIG_MMU  		.macro	addruart_current, rx, tmp1, tmp2 diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S index 3db960e20cb..9874d074119 100644 --- a/arch/arm/kernel/head.S +++ b/arch/arm/kernel/head.S @@ -23,8 +23,8 @@  #include <asm/thread_info.h>  #include <asm/pgtable.h> -#ifdef CONFIG_DEBUG_LL -#include <mach/debug-macro.S> +#if defined(CONFIG_DEBUG_LL) && !defined(CONFIG_DEBUG_SEMIHOSTING) +#include CONFIG_DEBUG_LL_INCLUDE  #endif  /* diff --git a/arch/arm/mach-at91/Makefile.boot b/arch/arm/mach-at91/Makefile.boot index 30bb7332e30..5309f9b6aab 100644 --- a/arch/arm/mach-at91/Makefile.boot +++ b/arch/arm/mach-at91/Makefile.boot @@ -12,27 +12,3 @@ else  params_phys-y	:= 0x20000100  initrd_phys-y	:= 0x20410000  endif - -# Keep dtb files sorted alphabetically for each SoC -# sam9260 -dtb-$(CONFIG_MACH_AT91SAM_DT) += aks-cdu.dtb -dtb-$(CONFIG_MACH_AT91SAM_DT) += ethernut5.dtb -dtb-$(CONFIG_MACH_AT91SAM_DT) += evk-pro3.dtb -dtb-$(CONFIG_MACH_AT91SAM_DT) += tny_a9260.dtb -dtb-$(CONFIG_MACH_AT91SAM_DT) += usb_a9260.dtb -# sam9263 -dtb-$(CONFIG_MACH_AT91SAM_DT) += at91sam9263ek.dtb -dtb-$(CONFIG_MACH_AT91SAM_DT) += tny_a9263.dtb -dtb-$(CONFIG_MACH_AT91SAM_DT) += usb_a9263.dtb -# sam9g20 -dtb-$(CONFIG_MACH_AT91SAM_DT) += at91sam9g20ek.dtb -dtb-$(CONFIG_MACH_AT91SAM_DT) += at91sam9g20ek_2mmc.dtb -dtb-$(CONFIG_MACH_AT91SAM_DT) += kizbox.dtb -dtb-$(CONFIG_MACH_AT91SAM_DT) += tny_a9g20.dtb -dtb-$(CONFIG_MACH_AT91SAM_DT) += usb_a9g20.dtb -# sam9g45 -dtb-$(CONFIG_MACH_AT91SAM_DT) += at91sam9m10g45ek.dtb -# sam9n12 -dtb-$(CONFIG_MACH_AT91SAM_DT) += at91sam9n12ek.dtb -# sam9x5 -dtb-$(CONFIG_MACH_AT91SAM_DT) += at91sam9g25ek.dtb diff --git a/arch/arm/mach-dove/include/mach/gpio.h b/arch/arm/mach-dove/include/mach/gpio.h deleted file mode 100644 index e7e5101e35a..00000000000 --- a/arch/arm/mach-dove/include/mach/gpio.h +++ /dev/null @@ -1,9 +0,0 @@ -/* - * arch/arm/mach-dove/include/mach/gpio.h - * - * This file is licensed under the terms of the GNU General Public - * License version 2.  This program is licensed "as is" without any - * warranty of any kind, whether express or implied. - */ - -#include <plat/gpio.h> diff --git a/arch/arm/mach-dove/irq.c b/arch/arm/mach-dove/irq.c index 9bc97a5baaa..186357f3b4d 100644 --- a/arch/arm/mach-dove/irq.c +++ b/arch/arm/mach-dove/irq.c @@ -18,6 +18,7 @@  #include <asm/mach/irq.h>  #include <mach/pm.h>  #include <mach/bridge-regs.h> +#include <plat/orion-gpio.h>  #include "common.h"  static void pmu_irq_mask(struct irq_data *d) diff --git a/arch/arm/mach-dove/mpp.c b/arch/arm/mach-dove/mpp.c index 7f70afc26f9..60bd729a1ba 100644 --- a/arch/arm/mach-dove/mpp.c +++ b/arch/arm/mach-dove/mpp.c @@ -13,6 +13,7 @@  #include <linux/io.h>  #include <plat/mpp.h>  #include <mach/dove.h> +#include <plat/orion-gpio.h>  #include "mpp.h"  struct dove_mpp_grp { diff --git a/arch/arm/mach-ep93xx/include/mach/gpio.h b/arch/arm/mach-ep93xx/include/mach/gpio.h deleted file mode 100644 index 40a8c178f10..00000000000 --- a/arch/arm/mach-ep93xx/include/mach/gpio.h +++ /dev/null @@ -1 +0,0 @@ -/* empty */ diff --git a/arch/arm/mach-exynos/Makefile.boot b/arch/arm/mach-exynos/Makefile.boot index 31bd181b051..b9862e22bf1 100644 --- a/arch/arm/mach-exynos/Makefile.boot +++ b/arch/arm/mach-exynos/Makefile.boot @@ -1,5 +1,2 @@     zreladdr-y	+= 0x40008000  params_phys-y	:= 0x40000100 - -dtb-$(CONFIG_MACH_EXYNOS4_DT) += exynos4210-origen.dtb exynos4210-smdkv310.dtb -dtb-$(CONFIG_MACH_EXYNOS5_DT) += exynos5250-smdk5250.dtb diff --git a/arch/arm/mach-highbank/Kconfig b/arch/arm/mach-highbank/Kconfig new file mode 100644 index 00000000000..0e1d0a42a3e --- /dev/null +++ b/arch/arm/mach-highbank/Kconfig @@ -0,0 +1,15 @@ +config ARCH_HIGHBANK +	bool "Calxeda ECX-1000 (Highbank)" if ARCH_MULTI_V7 +	select ARCH_WANT_OPTIONAL_GPIOLIB +	select ARM_AMBA +	select ARM_GIC +	select ARM_TIMER_SP804 +	select CACHE_L2X0 +	select CLKDEV_LOOKUP +	select COMMON_CLK +	select CPU_V7 +	select GENERIC_CLOCKEVENTS +	select HAVE_ARM_SCU +	select HAVE_SMP +	select SPARSE_IRQ +	select USE_OF diff --git a/arch/arm/mach-highbank/Makefile.boot b/arch/arm/mach-highbank/Makefile.boot deleted file mode 100644 index dae9661a768..00000000000 --- a/arch/arm/mach-highbank/Makefile.boot +++ /dev/null @@ -1 +0,0 @@ -zreladdr-y	:= 0x00008000 diff --git a/arch/arm/mach-highbank/include/mach/gpio.h b/arch/arm/mach-highbank/include/mach/gpio.h deleted file mode 100644 index 40a8c178f10..00000000000 --- a/arch/arm/mach-highbank/include/mach/gpio.h +++ /dev/null @@ -1 +0,0 @@ -/* empty */ diff --git a/arch/arm/mach-highbank/include/mach/timex.h b/arch/arm/mach-highbank/include/mach/timex.h deleted file mode 100644 index 88dac7a55a9..00000000000 --- a/arch/arm/mach-highbank/include/mach/timex.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef __MACH_TIMEX_H -#define __MACH_TIMEX_H - -#define CLOCK_TICK_RATE		1000000 - -#endif diff --git a/arch/arm/mach-highbank/include/mach/uncompress.h b/arch/arm/mach-highbank/include/mach/uncompress.h deleted file mode 100644 index bbe20e69632..00000000000 --- a/arch/arm/mach-highbank/include/mach/uncompress.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef __MACH_UNCOMPRESS_H -#define __MACH_UNCOMPRESS_H - -#define putc(c) -#define flush() -#define arch_decomp_setup() -#define arch_decomp_wdog() - -#endif diff --git a/arch/arm/mach-imx/Makefile.boot b/arch/arm/mach-imx/Makefile.boot index c60967629e2..b27815de847 100644 --- a/arch/arm/mach-imx/Makefile.boot +++ b/arch/arm/mach-imx/Makefile.boot @@ -37,14 +37,3 @@ initrd_phys-$(CONFIG_SOC_IMX53)	:= 0x70800000  zreladdr-$(CONFIG_SOC_IMX6Q)	+= 0x10008000  params_phys-$(CONFIG_SOC_IMX6Q)	:= 0x10000100  initrd_phys-$(CONFIG_SOC_IMX6Q)	:= 0x10800000 - -dtb-$(CONFIG_MACH_IMX51_DT) += imx51-babbage.dtb - -dtb-$(CONFIG_SOC_IMX53) += imx53-ard.dtb \ -			   imx53-evk.dtb \ -			   imx53-qsb.dtb \ -			   imx53-smd.dtb \ - -dtb-$(CONFIG_SOC_IMX6Q)	+= imx6q-arm2.dtb \ -			   imx6q-sabrelite.dtb \ -			   imx6q-sabresd.dtb \ diff --git a/arch/arm/mach-ixp4xx/include/mach/gpio.h b/arch/arm/mach-ixp4xx/include/mach/gpio.h deleted file mode 100644 index ef37f2635b0..00000000000 --- a/arch/arm/mach-ixp4xx/include/mach/gpio.h +++ /dev/null @@ -1,2 +0,0 @@ -/* empty */ - diff --git a/arch/arm/mach-kirkwood/Makefile.boot b/arch/arm/mach-kirkwood/Makefile.boot index a13299d758e..760a0efe758 100644 --- a/arch/arm/mach-kirkwood/Makefile.boot +++ b/arch/arm/mach-kirkwood/Makefile.boot @@ -1,14 +1,3 @@     zreladdr-y	+= 0x00008000  params_phys-y	:= 0x00000100  initrd_phys-y	:= 0x00800000 - -dtb-$(CONFIG_MACH_DREAMPLUG_DT) += kirkwood-dreamplug.dtb -dtb-$(CONFIG_MACH_DLINK_KIRKWOOD_DT) += kirkwood-dns320.dtb -dtb-$(CONFIG_MACH_DLINK_KIRKWOOD_DT) += kirkwood-dns325.dtb -dtb-$(CONFIG_MACH_ICONNECT_DT) += kirkwood-iconnect.dtb -dtb-$(CONFIG_MACH_IB62X0_DT) += kirkwood-ib62x0.dtb -dtb-$(CONFIG_MACH_TS219_DT)	+= kirkwood-ts219-6281.dtb -dtb-$(CONFIG_MACH_TS219_DT)	+= kirkwood-ts219-6282.dtb -dtb-$(CONFIG_MACH_GOFLEXNET_DT) += kirkwood-goflexnet.dtb -dtb-$(CONFIG_MACH_LSXL_DT) += kirkwood-lschlv2.dtb -dtb-$(CONFIG_MACH_LSXL_DT) += kirkwood-lsxhl.dtb diff --git a/arch/arm/mach-kirkwood/include/mach/gpio.h b/arch/arm/mach-kirkwood/include/mach/gpio.h deleted file mode 100644 index 84f340b546c..00000000000 --- a/arch/arm/mach-kirkwood/include/mach/gpio.h +++ /dev/null @@ -1,9 +0,0 @@ -/* - * arch/asm-arm/mach-kirkwood/include/mach/gpio.h - * - * This file is licensed under the terms of the GNU General Public - * License version 2.  This program is licensed "as is" without any - * warranty of any kind, whether express or implied. - */ - -#include <plat/gpio.h> diff --git a/arch/arm/mach-kirkwood/irq.c b/arch/arm/mach-kirkwood/irq.c index 720063ffa19..20149a7fd28 100644 --- a/arch/arm/mach-kirkwood/irq.c +++ b/arch/arm/mach-kirkwood/irq.c @@ -11,6 +11,7 @@  #include <linux/kernel.h>  #include <linux/irq.h>  #include <mach/bridge-regs.h> +#include <plat/orion-gpio.h>  #include <plat/irq.h>  static int __initdata gpio0_irqs[4] = { diff --git a/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c b/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c index f742a66a704..19072c84008 100644 --- a/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c +++ b/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c @@ -19,6 +19,7 @@  #include <asm/mach-types.h>  #include <asm/mach/arch.h>  #include <mach/kirkwood.h> +#include <plat/orion-gpio.h>  #include "common.h"  #define RD88F6192_GPIO_USB_VBUS		10 diff --git a/arch/arm/mach-lpc32xx/Makefile.boot b/arch/arm/mach-lpc32xx/Makefile.boot index 697323b5f92..d7392a47524 100644 --- a/arch/arm/mach-lpc32xx/Makefile.boot +++ b/arch/arm/mach-lpc32xx/Makefile.boot @@ -1,5 +1,3 @@     zreladdr-y	+= 0x80008000  params_phys-y	:= 0x80000100  initrd_phys-y	:= 0x82000000 - -dtb-$(CONFIG_ARCH_LPC32XX) += ea3250.dtb phy3250.dtb diff --git a/arch/arm/mach-msm/include/mach/gpio.h b/arch/arm/mach-msm/include/mach/gpio.h deleted file mode 100644 index 40a8c178f10..00000000000 --- a/arch/arm/mach-msm/include/mach/gpio.h +++ /dev/null @@ -1 +0,0 @@ -/* empty */ diff --git a/arch/arm/mach-mv78xx0/irq.c b/arch/arm/mach-mv78xx0/irq.c index eff9a750bbe..4d720f2aedb 100644 --- a/arch/arm/mach-mv78xx0/irq.c +++ b/arch/arm/mach-mv78xx0/irq.c @@ -11,6 +11,7 @@  #include <linux/kernel.h>  #include <linux/irq.h>  #include <mach/bridge-regs.h> +#include <plat/orion-gpio.h>  #include <plat/irq.h>  #include "common.h" diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig index caa2c5e734f..7b270358536 100644 --- a/arch/arm/mach-mvebu/Kconfig +++ b/arch/arm/mach-mvebu/Kconfig @@ -1,3 +1,13 @@ +config ARCH_MVEBU +	bool "Marvell SOCs with Device Tree support" if ARCH_MULTI_V7 +	select CLKSRC_MMIO +	select COMMON_CLK +	select GENERIC_CLOCKEVENTS +	select GENERIC_IRQ_CHIP +	select IRQ_DOMAIN +	select MULTI_IRQ_HANDLER +	select SPARSE_IRQ +  if ARCH_MVEBU  menu "Marvell SOC with device tree" diff --git a/arch/arm/mach-mvebu/Makefile b/arch/arm/mach-mvebu/Makefile index e61d2b8fdf5..6ea8998ab8f 100644 --- a/arch/arm/mach-mvebu/Makefile +++ b/arch/arm/mach-mvebu/Makefile @@ -1,2 +1,4 @@ +ccflags-$(ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include +  obj-y += system-controller.o  obj-$(CONFIG_MACH_ARMADA_370_XP) += armada-370-xp.o irq-armada-370-xp.o diff --git a/arch/arm/mach-mvebu/Makefile.boot b/arch/arm/mach-mvebu/Makefile.boot deleted file mode 100644 index 2579a2fc233..00000000000 --- a/arch/arm/mach-mvebu/Makefile.boot +++ /dev/null @@ -1,3 +0,0 @@ -zreladdr-y := 0x00008000 -dtb-$(CONFIG_MACH_ARMADA_370_XP) += armada-370-db.dtb -dtb-$(CONFIG_MACH_ARMADA_370_XP) += armada-xp-db.dtb diff --git a/arch/arm/mach-mvebu/armada-370-xp.c b/arch/arm/mach-mvebu/armada-370-xp.c index 4ef923b032e..b46418a8b35 100644 --- a/arch/arm/mach-mvebu/armada-370-xp.c +++ b/arch/arm/mach-mvebu/armada-370-xp.c @@ -20,7 +20,7 @@  #include <asm/mach/arch.h>  #include <asm/mach/map.h>  #include <asm/mach/time.h> -#include <mach/armada-370-xp.h> +#include "armada-370-xp.h"  #include "common.h"  static struct map_desc armada_370_xp_io_desc[] __initdata = { diff --git a/arch/arm/mach-mvebu/include/mach/armada-370-xp.h b/arch/arm/mach-mvebu/armada-370-xp.h index 25f0ca8d782..25f0ca8d782 100644 --- a/arch/arm/mach-mvebu/include/mach/armada-370-xp.h +++ b/arch/arm/mach-mvebu/armada-370-xp.h diff --git a/arch/arm/mach-mvebu/include/mach/timex.h b/arch/arm/mach-mvebu/include/mach/timex.h deleted file mode 100644 index ab324a3748f..00000000000 --- a/arch/arm/mach-mvebu/include/mach/timex.h +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Marvell Armada SoC time definitions - * - * Copyright (C) 2012 Marvell - * - * Lior Amsalem <alior@marvell.com> - * - * This file is licensed under the terms of the GNU General Public - * License version 2.  This program is licensed "as is" without any - * warranty of any kind, whether express or implied. - */ - -#define CLOCK_TICK_RATE		(100 * HZ) diff --git a/arch/arm/mach-mvebu/include/mach/uncompress.h b/arch/arm/mach-mvebu/include/mach/uncompress.h deleted file mode 100644 index d6a100ccf30..00000000000 --- a/arch/arm/mach-mvebu/include/mach/uncompress.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Marvell Armada SoC kernel uncompression UART routines - * - * Copyright (C) 2012 Marvell - * - * Lior Amsalem <alior@marvell.com> - * - * This file is licensed under the terms of the GNU General Public - * License version 2.  This program is licensed "as is" without any - * warranty of any kind, whether express or implied. - */ - -#include <mach/armada-370-xp.h> - -#define UART_THR ((volatile unsigned char *)(ARMADA_370_XP_REGS_PHYS_BASE\ -								+ 0x12000)) -#define UART_LSR ((volatile unsigned char *)(ARMADA_370_XP_REGS_PHYS_BASE\ -								+ 0x12014)) - -#define LSR_THRE	0x20 - -static void putc(const char c) -{ -	int i; - -	for (i = 0; i < 0x1000; i++) { -		/* Transmit fifo not full? */ -		if (*UART_LSR & LSR_THRE) -			break; -	} - -	*UART_THR = c; -} - -static void flush(void) -{ -} - -/* - * nothing to do - */ -#define arch_decomp_setup() -#define arch_decomp_wdog() diff --git a/arch/arm/mach-mxs/Makefile.boot b/arch/arm/mach-mxs/Makefile.boot index 8bd23a8558d..07b11fe6453 100644 --- a/arch/arm/mach-mxs/Makefile.boot +++ b/arch/arm/mach-mxs/Makefile.boot @@ -1,11 +1 @@  zreladdr-y += 0x40008000 - -dtb-y += imx23-evk.dtb \ -	 imx23-olinuxino.dtb \ -	 imx23-stmp378x_devb.dtb \ -	 imx28-apx4devkit.dtb \ -	 imx28-cfa10036.dtb \ -	 imx28-cfa10049.dtb \ -	 imx28-evk.dtb \ -	 imx28-m28evk.dtb \ -	 imx28-tx28.dtb \ diff --git a/arch/arm/mach-mxs/include/mach/gpio.h b/arch/arm/mach-mxs/include/mach/gpio.h deleted file mode 100644 index 40a8c178f10..00000000000 --- a/arch/arm/mach-mxs/include/mach/gpio.h +++ /dev/null @@ -1 +0,0 @@ -/* empty */ diff --git a/arch/arm/mach-nomadik/include/mach/gpio.h b/arch/arm/mach-nomadik/include/mach/gpio.h deleted file mode 100644 index efdde0ae0a4..00000000000 --- a/arch/arm/mach-nomadik/include/mach/gpio.h +++ /dev/null @@ -1,4 +0,0 @@ -#ifndef __ASM_ARCH_GPIO_H -#define __ASM_ARCH_GPIO_H - -#endif /* __ASM_ARCH_GPIO_H */ diff --git a/arch/arm/mach-orion5x/d2net-setup.c b/arch/arm/mach-orion5x/d2net-setup.c index d75dcfa0f01..e3629c063df 100644 --- a/arch/arm/mach-orion5x/d2net-setup.c +++ b/arch/arm/mach-orion5x/d2net-setup.c @@ -27,6 +27,7 @@  #include <asm/mach/arch.h>  #include <asm/mach/pci.h>  #include <mach/orion5x.h> +#include <plat/orion-gpio.h>  #include "common.h"  #include "mpp.h" diff --git a/arch/arm/mach-orion5x/dns323-setup.c b/arch/arm/mach-orion5x/dns323-setup.c index d470864b4e4..0e19db69f5c 100644 --- a/arch/arm/mach-orion5x/dns323-setup.c +++ b/arch/arm/mach-orion5x/dns323-setup.c @@ -34,6 +34,7 @@  #include <asm/mach/pci.h>  #include <asm/system_info.h>  #include <mach/orion5x.h> +#include <plat/orion-gpio.h>  #include "common.h"  #include "mpp.h" diff --git a/arch/arm/mach-orion5x/include/mach/gpio.h b/arch/arm/mach-orion5x/include/mach/gpio.h deleted file mode 100644 index a1d0b78decb..00000000000 --- a/arch/arm/mach-orion5x/include/mach/gpio.h +++ /dev/null @@ -1,9 +0,0 @@ -/* - * arch/arm/mach-orion5x/include/mach/gpio.h - * - * This file is licensed under the terms of the GNU General Public - * License version 2.  This program is licensed "as is" without any - * warranty of any kind, whether express or implied. - */ - -#include <plat/gpio.h> diff --git a/arch/arm/mach-orion5x/irq.c b/arch/arm/mach-orion5x/irq.c index 17da7091d31..e152641cdb0 100644 --- a/arch/arm/mach-orion5x/irq.c +++ b/arch/arm/mach-orion5x/irq.c @@ -13,6 +13,7 @@  #include <linux/kernel.h>  #include <linux/irq.h>  #include <mach/bridge-regs.h> +#include <plat/orion-gpio.h>  #include <plat/irq.h>  static int __initdata gpio0_irqs[4] = { diff --git a/arch/arm/mach-orion5x/net2big-setup.c b/arch/arm/mach-orion5x/net2big-setup.c index 0180c393c71..3506f16c0bf 100644 --- a/arch/arm/mach-orion5x/net2big-setup.c +++ b/arch/arm/mach-orion5x/net2big-setup.c @@ -25,6 +25,7 @@  #include <asm/mach-types.h>  #include <asm/mach/arch.h>  #include <mach/orion5x.h> +#include <plat/orion-gpio.h>  #include "common.h"  #include "mpp.h" diff --git a/arch/arm/mach-picoxcell/Kconfig b/arch/arm/mach-picoxcell/Kconfig new file mode 100644 index 00000000000..868796f8085 --- /dev/null +++ b/arch/arm/mach-picoxcell/Kconfig @@ -0,0 +1,14 @@ +config ARCH_PICOXCELL +	bool "Picochip PicoXcell" if ARCH_MULTI_V6 +	select ARCH_REQUIRE_GPIOLIB +	select ARM_PATCH_PHYS_VIRT +	select ARM_VIC +	select CPU_V6K +	select DW_APB_TIMER +	select DW_APB_TIMER_OF +	select GENERIC_CLOCKEVENTS +	select GENERIC_GPIO +	select HAVE_TCM +	select NO_IOPORT +	select SPARSE_IRQ +	select USE_OF diff --git a/arch/arm/mach-picoxcell/Makefile.boot b/arch/arm/mach-picoxcell/Makefile.boot deleted file mode 100644 index b3271754e9f..00000000000 --- a/arch/arm/mach-picoxcell/Makefile.boot +++ /dev/null @@ -1 +0,0 @@ -zreladdr-y := 0x00008000 diff --git a/arch/arm/mach-picoxcell/common.c b/arch/arm/mach-picoxcell/common.c index 8f9a0b47a7f..f6c0849af5e 100644 --- a/arch/arm/mach-picoxcell/common.c +++ b/arch/arm/mach-picoxcell/common.c @@ -20,14 +20,15 @@  #include <asm/hardware/vic.h>  #include <asm/mach/map.h> -#include <mach/map.h> -#include <mach/picoxcell_soc.h> -  #include "common.h" -#define WDT_CTRL_REG_EN_MASK	(1 << 0) -#define WDT_CTRL_REG_OFFS	(0x00) -#define WDT_TIMEOUT_REG_OFFS	(0x04) +#define PHYS_TO_IO(x)			(((x) & 0x00ffffff) | 0xfe000000) +#define PICOXCELL_PERIPH_BASE		0x80000000 +#define PICOXCELL_PERIPH_LENGTH		SZ_4M + +#define WDT_CTRL_REG_EN_MASK		(1 << 0) +#define WDT_CTRL_REG_OFFS		(0x00) +#define WDT_TIMEOUT_REG_OFFS		(0x04)  static void __iomem *wdt_regs;  /* diff --git a/arch/arm/mach-picoxcell/include/mach/gpio.h b/arch/arm/mach-picoxcell/include/mach/gpio.h deleted file mode 100644 index 40a8c178f10..00000000000 --- a/arch/arm/mach-picoxcell/include/mach/gpio.h +++ /dev/null @@ -1 +0,0 @@ -/* empty */ diff --git a/arch/arm/mach-picoxcell/include/mach/hardware.h b/arch/arm/mach-picoxcell/include/mach/hardware.h deleted file mode 100644 index 70ff58192ec..00000000000 --- a/arch/arm/mach-picoxcell/include/mach/hardware.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright (c) 2011 Picochip Ltd., Jamie Iles - * - * This file contains the hardware definitions of the picoXcell SoC devices. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - */ -#ifndef __ASM_ARCH_HARDWARE_H -#define __ASM_ARCH_HARDWARE_H - -#include <mach/picoxcell_soc.h> - -#endif diff --git a/arch/arm/mach-picoxcell/include/mach/map.h b/arch/arm/mach-picoxcell/include/mach/map.h deleted file mode 100644 index c06afad218b..00000000000 --- a/arch/arm/mach-picoxcell/include/mach/map.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright (c) 2011 Picochip Ltd., Jamie Iles - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - */ -#ifndef __PICOXCELL_MAP_H__ -#define __PICOXCELL_MAP_H__ - -#define PHYS_TO_IO(x)		(((x) & 0x00ffffff) | 0xfe000000) - -#ifdef __ASSEMBLY__ -#define IO_ADDRESS(x)		PHYS_TO_IO((x)) -#else -#define IO_ADDRESS(x)		(void __iomem __force *)(PHYS_TO_IO((x))) -#endif - -#endif /* __PICOXCELL_MAP_H__ */ diff --git a/arch/arm/mach-picoxcell/include/mach/picoxcell_soc.h b/arch/arm/mach-picoxcell/include/mach/picoxcell_soc.h deleted file mode 100644 index 5566fc88ddb..00000000000 --- a/arch/arm/mach-picoxcell/include/mach/picoxcell_soc.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright (c) 2011 Picochip Ltd., Jamie Iles - * - * This file contains the hardware definitions of the picoXcell SoC devices. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - */ -#ifndef __PICOXCELL_SOC_H__ -#define __PICOXCELL_SOC_H__ - -#define PICOXCELL_UART1_BASE		0x80230000 -#define PICOXCELL_PERIPH_BASE		0x80000000 -#define PICOXCELL_PERIPH_LENGTH		SZ_4M -#define PICOXCELL_VIC0_BASE		0x80060000 -#define PICOXCELL_VIC1_BASE		0x80064000 - -#endif /* __PICOXCELL_SOC_H__ */ diff --git a/arch/arm/mach-picoxcell/include/mach/timex.h b/arch/arm/mach-picoxcell/include/mach/timex.h deleted file mode 100644 index 6c540a69f40..00000000000 --- a/arch/arm/mach-picoxcell/include/mach/timex.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright (c) 2011 Picochip Ltd., Jamie Iles - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - */ -#ifndef __TIMEX_H__ -#define __TIMEX_H__ - -/* Bogus value to allow the kernel to compile. */ -#define CLOCK_TICK_RATE		1000000 - -#endif /* __TIMEX_H__ */ - diff --git a/arch/arm/mach-picoxcell/include/mach/uncompress.h b/arch/arm/mach-picoxcell/include/mach/uncompress.h deleted file mode 100644 index b60b19d1d73..00000000000 --- a/arch/arm/mach-picoxcell/include/mach/uncompress.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright (c) 2011 Picochip Ltd., Jamie Iles - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - */ -#define putc(c) -#define flush() -#define arch_decomp_setup() -#define arch_decomp_wdog() diff --git a/arch/arm/mach-pxa/devices.c b/arch/arm/mach-pxa/devices.c index c1f3b1279d9..adf32e61f45 100644 --- a/arch/arm/mach-pxa/devices.c +++ b/arch/arm/mach-pxa/devices.c @@ -383,9 +383,24 @@ struct platform_device pxa_device_asoc_platform = {  static u64 pxaficp_dmamask = ~(u32)0; +static struct resource pxa_ir_resources[] = { +	[0] = { +		.start  = IRQ_STUART, +		.end    = IRQ_STUART, +		.flags  = IORESOURCE_IRQ, +	}, +	[1] = { +		.start  = IRQ_ICP, +		.end    = IRQ_ICP, +		.flags  = IORESOURCE_IRQ, +	}, +}; +  struct platform_device pxa_device_ficp = {  	.name		= "pxa2xx-ir",  	.id		= -1, +	.num_resources	= ARRAY_SIZE(pxa_ir_resources), +	.resource	= pxa_ir_resources,  	.dev		= {  		.dma_mask = &pxaficp_dmamask,  		.coherent_dma_mask = 0xffffffff, diff --git a/arch/arm/mach-pxa/sharpsl_pm.c b/arch/arm/mach-pxa/sharpsl_pm.c index bdf4cb88ca0..9a154bad198 100644 --- a/arch/arm/mach-pxa/sharpsl_pm.c +++ b/arch/arm/mach-pxa/sharpsl_pm.c @@ -879,7 +879,7 @@ static const struct platform_suspend_ops sharpsl_pm_ops = {  static int __devinit sharpsl_pm_probe(struct platform_device *pdev)  { -	int ret; +	int ret, irq;  	if (!pdev->dev.platform_data)  		return -EINVAL; @@ -907,24 +907,28 @@ static int __devinit sharpsl_pm_probe(struct platform_device *pdev)  	gpio_direction_input(sharpsl_pm.machinfo->gpio_batlock);  	/* Register interrupt handlers */ -	if (request_irq(PXA_GPIO_TO_IRQ(sharpsl_pm.machinfo->gpio_acin), sharpsl_ac_isr, IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING, "AC Input Detect", sharpsl_ac_isr)) { -		dev_err(sharpsl_pm.dev, "Could not get irq %d.\n", PXA_GPIO_TO_IRQ(sharpsl_pm.machinfo->gpio_acin)); +	irq = gpio_to_irq(sharpsl_pm.machinfo->gpio_acin); +	if (request_irq(irq, sharpsl_ac_isr, IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING, "AC Input Detect", sharpsl_ac_isr)) { +		dev_err(sharpsl_pm.dev, "Could not get irq %d.\n", irq);  	} -	if (request_irq(PXA_GPIO_TO_IRQ(sharpsl_pm.machinfo->gpio_batlock), sharpsl_fatal_isr, IRQF_DISABLED | IRQF_TRIGGER_FALLING, "Battery Cover", sharpsl_fatal_isr)) { -		dev_err(sharpsl_pm.dev, "Could not get irq %d.\n", PXA_GPIO_TO_IRQ(sharpsl_pm.machinfo->gpio_batlock)); +	irq = gpio_to_irq(sharpsl_pm.machinfo->gpio_batlock); +	if (request_irq(irq, sharpsl_fatal_isr, IRQF_DISABLED | IRQF_TRIGGER_FALLING, "Battery Cover", sharpsl_fatal_isr)) { +		dev_err(sharpsl_pm.dev, "Could not get irq %d.\n", irq);  	}  	if (sharpsl_pm.machinfo->gpio_fatal) { -		if (request_irq(PXA_GPIO_TO_IRQ(sharpsl_pm.machinfo->gpio_fatal), sharpsl_fatal_isr, IRQF_DISABLED | IRQF_TRIGGER_FALLING, "Fatal Battery", sharpsl_fatal_isr)) { -			dev_err(sharpsl_pm.dev, "Could not get irq %d.\n", PXA_GPIO_TO_IRQ(sharpsl_pm.machinfo->gpio_fatal)); +		irq = gpio_to_irq(sharpsl_pm.machinfo->gpio_fatal); +		if (request_irq(irq, sharpsl_fatal_isr, IRQF_DISABLED | IRQF_TRIGGER_FALLING, "Fatal Battery", sharpsl_fatal_isr)) { +			dev_err(sharpsl_pm.dev, "Could not get irq %d.\n", irq);  		}  	}  	if (sharpsl_pm.machinfo->batfull_irq) {  		/* Register interrupt handler. */ -		if (request_irq(PXA_GPIO_TO_IRQ(sharpsl_pm.machinfo->gpio_batfull), sharpsl_chrg_full_isr, IRQF_DISABLED | IRQF_TRIGGER_RISING, "CO", sharpsl_chrg_full_isr)) { -			dev_err(sharpsl_pm.dev, "Could not get irq %d.\n", PXA_GPIO_TO_IRQ(sharpsl_pm.machinfo->gpio_batfull)); +		irq = gpio_to_irq(sharpsl_pm.machinfo->gpio_batfull); +		if (request_irq(irq, sharpsl_chrg_full_isr, IRQF_DISABLED | IRQF_TRIGGER_RISING, "CO", sharpsl_chrg_full_isr)) { +			dev_err(sharpsl_pm.dev, "Could not get irq %d.\n", irq);  		}  	} @@ -953,14 +957,14 @@ static int sharpsl_pm_remove(struct platform_device *pdev)  	led_trigger_unregister_simple(sharpsl_charge_led_trigger); -	free_irq(PXA_GPIO_TO_IRQ(sharpsl_pm.machinfo->gpio_acin), sharpsl_ac_isr); -	free_irq(PXA_GPIO_TO_IRQ(sharpsl_pm.machinfo->gpio_batlock), sharpsl_fatal_isr); +	free_irq(gpio_to_irq(sharpsl_pm.machinfo->gpio_acin), sharpsl_ac_isr); +	free_irq(gpio_to_irq(sharpsl_pm.machinfo->gpio_batlock), sharpsl_fatal_isr);  	if (sharpsl_pm.machinfo->gpio_fatal) -		free_irq(PXA_GPIO_TO_IRQ(sharpsl_pm.machinfo->gpio_fatal), sharpsl_fatal_isr); +		free_irq(gpio_to_irq(sharpsl_pm.machinfo->gpio_fatal), sharpsl_fatal_isr);  	if (sharpsl_pm.machinfo->batfull_irq) -		free_irq(PXA_GPIO_TO_IRQ(sharpsl_pm.machinfo->gpio_batfull), sharpsl_chrg_full_isr); +		free_irq(gpio_to_irq(sharpsl_pm.machinfo->gpio_batfull), sharpsl_chrg_full_isr);  	gpio_free(sharpsl_pm.machinfo->gpio_batlock);  	gpio_free(sharpsl_pm.machinfo->gpio_batfull); diff --git a/arch/arm/mach-realview/include/mach/gpio.h b/arch/arm/mach-realview/include/mach/gpio.h deleted file mode 100644 index 40a8c178f10..00000000000 --- a/arch/arm/mach-realview/include/mach/gpio.h +++ /dev/null @@ -1 +0,0 @@ -/* empty */ diff --git a/arch/arm/mach-shmobile/board-ap4evb.c b/arch/arm/mach-shmobile/board-ap4evb.c index f172ca85905..c7f164e2066 100644 --- a/arch/arm/mach-shmobile/board-ap4evb.c +++ b/arch/arm/mach-shmobile/board-ap4evb.c @@ -66,6 +66,8 @@  #include <asm/mach/arch.h>  #include <asm/setup.h> +#include "sh-gpio.h" +  /*   * Address	Interface		BusWidth	note   * ------------------------------------------------------------------ diff --git a/arch/arm/mach-shmobile/board-armadillo800eva.c b/arch/arm/mach-shmobile/board-armadillo800eva.c index 453a6e50db8..b573de073c2 100644 --- a/arch/arm/mach-shmobile/board-armadillo800eva.c +++ b/arch/arm/mach-shmobile/board-armadillo800eva.c @@ -54,6 +54,8 @@  #include <sound/sh_fsi.h>  #include <sound/simple_card.h> +#include "sh-gpio.h" +  /*   * CON1		Camera Module   * CON2		Extension Bus diff --git a/arch/arm/mach-shmobile/board-g4evm.c b/arch/arm/mach-shmobile/board-g4evm.c index fa5dfc5c8ed..eeee12e4da6 100644 --- a/arch/arm/mach-shmobile/board-g4evm.c +++ b/arch/arm/mach-shmobile/board-g4evm.c @@ -42,6 +42,8 @@  #include <asm/mach-types.h>  #include <asm/mach/arch.h> +#include "sh-gpio.h" +  /*   * SDHI   * diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c index c129542f6ae..164fca0c1a4 100644 --- a/arch/arm/mach-shmobile/board-mackerel.c +++ b/arch/arm/mach-shmobile/board-mackerel.c @@ -64,6 +64,8 @@  #include <asm/mach/arch.h>  #include <asm/mach-types.h> +#include "sh-gpio.h" +  /*   * Address	Interface		BusWidth	note   * ------------------------------------------------------------------ diff --git a/arch/arm/mach-shmobile/pfc-r8a7740.c b/arch/arm/mach-shmobile/pfc-r8a7740.c index ce9e7fa5cc8..134d1b9a882 100644 --- a/arch/arm/mach-shmobile/pfc-r8a7740.c +++ b/arch/arm/mach-shmobile/pfc-r8a7740.c @@ -20,7 +20,7 @@   */  #include <linux/init.h>  #include <linux/kernel.h> -#include <linux/gpio.h> +#include <linux/sh_pfc.h>  #include <mach/r8a7740.h>  #include <mach/irqs.h> diff --git a/arch/arm/mach-shmobile/pfc-r8a7779.c b/arch/arm/mach-shmobile/pfc-r8a7779.c index d14c9b04807..cbc26ba2a0a 100644 --- a/arch/arm/mach-shmobile/pfc-r8a7779.c +++ b/arch/arm/mach-shmobile/pfc-r8a7779.c @@ -19,7 +19,7 @@   */  #include <linux/init.h>  #include <linux/kernel.h> -#include <linux/gpio.h> +#include <linux/sh_pfc.h>  #include <linux/ioport.h>  #include <mach/r8a7779.h> diff --git a/arch/arm/mach-shmobile/pfc-sh7367.c b/arch/arm/mach-shmobile/pfc-sh7367.c index e6e524654e6..c0c137f3905 100644 --- a/arch/arm/mach-shmobile/pfc-sh7367.c +++ b/arch/arm/mach-shmobile/pfc-sh7367.c @@ -18,7 +18,7 @@   */  #include <linux/init.h>  #include <linux/kernel.h> -#include <linux/gpio.h> +#include <linux/sh_pfc.h>  #include <mach/sh7367.h>  #define CPU_ALL_PORT(fn, pfx, sfx)				\ diff --git a/arch/arm/mach-shmobile/pfc-sh7372.c b/arch/arm/mach-shmobile/pfc-sh7372.c index 336093f9210..7a1525fd6ad 100644 --- a/arch/arm/mach-shmobile/pfc-sh7372.c +++ b/arch/arm/mach-shmobile/pfc-sh7372.c @@ -22,7 +22,7 @@   */  #include <linux/init.h>  #include <linux/kernel.h> -#include <linux/gpio.h> +#include <linux/sh_pfc.h>  #include <mach/irqs.h>  #include <mach/sh7372.h> diff --git a/arch/arm/mach-shmobile/pfc-sh7377.c b/arch/arm/mach-shmobile/pfc-sh7377.c index 2f10511946a..f3117f67fa2 100644 --- a/arch/arm/mach-shmobile/pfc-sh7377.c +++ b/arch/arm/mach-shmobile/pfc-sh7377.c @@ -19,7 +19,7 @@   */  #include <linux/init.h>  #include <linux/kernel.h> -#include <linux/gpio.h> +#include <linux/sh_pfc.h>  #include <mach/sh7377.h>  #define CPU_ALL_PORT(fn, pfx, sfx)				\ diff --git a/arch/arm/mach-shmobile/pfc-sh73a0.c b/arch/arm/mach-shmobile/pfc-sh73a0.c index 4a547b80326..b442f9d8c71 100644 --- a/arch/arm/mach-shmobile/pfc-sh73a0.c +++ b/arch/arm/mach-shmobile/pfc-sh73a0.c @@ -20,7 +20,7 @@   */  #include <linux/init.h>  #include <linux/kernel.h> -#include <linux/gpio.h> +#include <linux/sh_pfc.h>  #include <mach/sh73a0.h>  #include <mach/irqs.h> diff --git a/arch/arm/mach-shmobile/include/mach/gpio.h b/arch/arm/mach-shmobile/sh-gpio.h index 844507d937c..7ba1877fa97 100644 --- a/arch/arm/mach-shmobile/include/mach/gpio.h +++ b/arch/arm/mach-shmobile/sh-gpio.h @@ -12,22 +12,8 @@  #include <linux/kernel.h>  #include <linux/errno.h> -#include <linux/sh_pfc.h>  #include <linux/io.h> -#ifdef CONFIG_GPIOLIB - -static inline int irq_to_gpio(unsigned int irq) -{ -	return -ENOSYS; -} - -#else - -#define __ARM_GPIOLIB_COMPLEX - -#endif /* CONFIG_GPIOLIB */ -  /*   * FIXME !!   * diff --git a/arch/arm/mach-socfpga/Kconfig b/arch/arm/mach-socfpga/Kconfig new file mode 100644 index 00000000000..803a3281feb --- /dev/null +++ b/arch/arm/mach-socfpga/Kconfig @@ -0,0 +1,16 @@ +config ARCH_SOCFPGA +	bool "Altera SOCFPGA family" if ARCH_MULTI_V7 +	select ARCH_WANT_OPTIONAL_GPIOLIB +	select ARM_AMBA +	select ARM_GIC +	select CACHE_L2X0 +	select CLKDEV_LOOKUP +	select COMMON_CLK +	select CPU_V7 +	select DW_APB_TIMER +	select DW_APB_TIMER_OF +	select GENERIC_CLOCKEVENTS +	select GPIO_PL061 if GPIOLIB +	select HAVE_ARM_SCU +	select SPARSE_IRQ +	select USE_OF diff --git a/arch/arm/mach-socfpga/Makefile.boot b/arch/arm/mach-socfpga/Makefile.boot deleted file mode 100644 index dae9661a768..00000000000 --- a/arch/arm/mach-socfpga/Makefile.boot +++ /dev/null @@ -1 +0,0 @@ -zreladdr-y	:= 0x00008000 diff --git a/arch/arm/mach-socfpga/include/mach/timex.h b/arch/arm/mach-socfpga/include/mach/timex.h deleted file mode 100644 index 43df4354e46..00000000000 --- a/arch/arm/mach-socfpga/include/mach/timex.h +++ /dev/null @@ -1,19 +0,0 @@ -/* - *  Copyright (C) 2003 ARM Limited - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - */ - -#define CLOCK_TICK_RATE		(50000000 / 16) diff --git a/arch/arm/mach-socfpga/include/mach/uncompress.h b/arch/arm/mach-socfpga/include/mach/uncompress.h deleted file mode 100644 index bbe20e69632..00000000000 --- a/arch/arm/mach-socfpga/include/mach/uncompress.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef __MACH_UNCOMPRESS_H -#define __MACH_UNCOMPRESS_H - -#define putc(c) -#define flush() -#define arch_decomp_setup() -#define arch_decomp_wdog() - -#endif diff --git a/arch/arm/mach-spear13xx/Makefile.boot b/arch/arm/mach-spear13xx/Makefile.boot index 403efd7e6d2..4674a4c221d 100644 --- a/arch/arm/mach-spear13xx/Makefile.boot +++ b/arch/arm/mach-spear13xx/Makefile.boot @@ -1,6 +1,3 @@  zreladdr-y	+= 0x00008000  params_phys-y	:= 0x00000100  initrd_phys-y	:= 0x00800000 - -dtb-$(CONFIG_MACH_SPEAR1310)	+= spear1310-evb.dtb -dtb-$(CONFIG_MACH_SPEAR1340)	+= spear1340-evb.dtb diff --git a/arch/arm/mach-spear13xx/include/mach/gpio.h b/arch/arm/mach-spear13xx/include/mach/gpio.h deleted file mode 100644 index 85f176311f6..00000000000 --- a/arch/arm/mach-spear13xx/include/mach/gpio.h +++ /dev/null @@ -1,19 +0,0 @@ -/* - * arch/arm/mach-spear13xx/include/mach/gpio.h - * - * GPIO macros for SPEAr13xx machine family - * - * Copyright (C) 2012 ST Microelectronics - * Viresh Kumar <viresh.linux@gmail.com> - * - * This file is licensed under the terms of the GNU General Public - * License version 2. This program is licensed "as is" without any - * warranty of any kind, whether express or implied. - */ - -#ifndef __MACH_GPIO_H -#define __MACH_GPIO_H - -#include <plat/gpio.h> - -#endif /* __MACH_GPIO_H */ diff --git a/arch/arm/mach-spear3xx/Makefile.boot b/arch/arm/mach-spear3xx/Makefile.boot index d93e2177e6e..4674a4c221d 100644 --- a/arch/arm/mach-spear3xx/Makefile.boot +++ b/arch/arm/mach-spear3xx/Makefile.boot @@ -1,7 +1,3 @@  zreladdr-y	+= 0x00008000  params_phys-y	:= 0x00000100  initrd_phys-y	:= 0x00800000 - -dtb-$(CONFIG_MACH_SPEAR300)	+= spear300-evb.dtb -dtb-$(CONFIG_MACH_SPEAR310)	+= spear310-evb.dtb -dtb-$(CONFIG_MACH_SPEAR320)	+= spear320-evb.dtb diff --git a/arch/arm/mach-spear3xx/include/mach/gpio.h b/arch/arm/mach-spear3xx/include/mach/gpio.h deleted file mode 100644 index 2ac74c6db7f..00000000000 --- a/arch/arm/mach-spear3xx/include/mach/gpio.h +++ /dev/null @@ -1,19 +0,0 @@ -/* - * arch/arm/mach-spear3xx/include/mach/gpio.h - * - * GPIO macros for SPEAr3xx machine family - * - * Copyright (C) 2009 ST Microelectronics - * Viresh Kumar<viresh.linux@gmail.com> - * - * This file is licensed under the terms of the GNU General Public - * License version 2. This program is licensed "as is" without any - * warranty of any kind, whether express or implied. - */ - -#ifndef __MACH_GPIO_H -#define __MACH_GPIO_H - -#include <plat/gpio.h> - -#endif /* __MACH_GPIO_H */ diff --git a/arch/arm/mach-spear6xx/Makefile.boot b/arch/arm/mach-spear6xx/Makefile.boot index af493da37ab..4674a4c221d 100644 --- a/arch/arm/mach-spear6xx/Makefile.boot +++ b/arch/arm/mach-spear6xx/Makefile.boot @@ -1,5 +1,3 @@  zreladdr-y	+= 0x00008000  params_phys-y	:= 0x00000100  initrd_phys-y	:= 0x00800000 - -dtb-$(CONFIG_BOARD_SPEAR600_DT)	+= spear600-evb.dtb diff --git a/arch/arm/mach-spear6xx/include/mach/gpio.h b/arch/arm/mach-spear6xx/include/mach/gpio.h deleted file mode 100644 index d42cefc0356..00000000000 --- a/arch/arm/mach-spear6xx/include/mach/gpio.h +++ /dev/null @@ -1,19 +0,0 @@ -/* - * arch/arm/mach-spear6xx/include/mach/gpio.h - * - * GPIO macros for SPEAr6xx machine family - * - * Copyright (C) 2009 ST Microelectronics - * Viresh Kumar <viresh.linux@gmail.com> - * - * This file is licensed under the terms of the GNU General Public - * License version 2. This program is licensed "as is" without any - * warranty of any kind, whether express or implied. - */ - -#ifndef __MACH_GPIO_H -#define __MACH_GPIO_H - -#include <plat/gpio.h> - -#endif /* __MACH_GPIO_H */ diff --git a/arch/arm/mach-tegra/Makefile.boot b/arch/arm/mach-tegra/Makefile.boot index 54c16aade47..29433816233 100644 --- a/arch/arm/mach-tegra/Makefile.boot +++ b/arch/arm/mach-tegra/Makefile.boot @@ -1,15 +1,3 @@  zreladdr-$(CONFIG_ARCH_TEGRA_2x_SOC)	+= 0x00008000  params_phys-$(CONFIG_ARCH_TEGRA_2x_SOC)	:= 0x00000100  initrd_phys-$(CONFIG_ARCH_TEGRA_2x_SOC)	:= 0x00800000 - -dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra20-harmony.dtb -dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra20-medcom-wide.dtb -dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra20-paz00.dtb -dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra20-plutux.dtb -dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra20-seaboard.dtb -dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra20-tec.dtb -dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra20-trimslice.dtb -dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra20-ventana.dtb -dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra20-whistler.dtb -dtb-$(CONFIG_ARCH_TEGRA_3x_SOC) += tegra30-cardhu-a02.dtb -dtb-$(CONFIG_ARCH_TEGRA_3x_SOC) += tegra30-cardhu-a04.dtb diff --git a/arch/arm/mach-tegra/include/mach/gpio.h b/arch/arm/mach-tegra/include/mach/gpio.h deleted file mode 100644 index 40a8c178f10..00000000000 --- a/arch/arm/mach-tegra/include/mach/gpio.h +++ /dev/null @@ -1 +0,0 @@ -/* empty */ diff --git a/arch/arm/mach-u300/include/mach/gpio.h b/arch/arm/mach-u300/include/mach/gpio.h deleted file mode 100644 index 40a8c178f10..00000000000 --- a/arch/arm/mach-u300/include/mach/gpio.h +++ /dev/null @@ -1 +0,0 @@ -/* empty */ diff --git a/arch/arm/mach-ux500/Makefile.boot b/arch/arm/mach-ux500/Makefile.boot index dd5cd00e255..760a0efe758 100644 --- a/arch/arm/mach-ux500/Makefile.boot +++ b/arch/arm/mach-ux500/Makefile.boot @@ -1,5 +1,3 @@     zreladdr-y	+= 0x00008000  params_phys-y	:= 0x00000100  initrd_phys-y	:= 0x00800000 - -dtb-$(CONFIG_MACH_SNOWBALL) += snowball.dtb diff --git a/arch/arm/mach-ux500/include/mach/gpio.h b/arch/arm/mach-ux500/include/mach/gpio.h deleted file mode 100644 index c01ef66537f..00000000000 --- a/arch/arm/mach-ux500/include/mach/gpio.h +++ /dev/null @@ -1,5 +0,0 @@ -#ifndef __ASM_ARCH_GPIO_H -#define __ASM_ARCH_GPIO_H - - -#endif /* __ASM_ARCH_GPIO_H */ diff --git a/arch/arm/mach-versatile/include/mach/gpio.h b/arch/arm/mach-versatile/include/mach/gpio.h deleted file mode 100644 index 40a8c178f10..00000000000 --- a/arch/arm/mach-versatile/include/mach/gpio.h +++ /dev/null @@ -1 +0,0 @@ -/* empty */ diff --git a/arch/arm/mach-vexpress/Kconfig b/arch/arm/mach-vexpress/Kconfig index fc3730f0165..c9529606620 100644 --- a/arch/arm/mach-vexpress/Kconfig +++ b/arch/arm/mach-vexpress/Kconfig @@ -1,38 +1,23 @@ -menu "Versatile Express platform type" -	depends on ARCH_VEXPRESS - -config ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA -	bool "Enable A5 and A9 only errata work-arounds" -	default y -	select ARM_ERRATA_720789 -	select ARM_ERRATA_751472 -	select PL310_ERRATA_753970 if CACHE_PL310 -	help -	  Provides common dependencies for Versatile Express platforms -	  based on Cortex-A5 and Cortex-A9 processors. In order to -	  build a working kernel, you must also enable relevant core -	  tile support or Flattened Device Tree based support options. - -config ARCH_VEXPRESS_CA9X4 -	bool "Versatile Express Cortex-A9x4 tile" -	select ARM_GIC -	select CPU_V7 -	select HAVE_SMP -	select MIGHT_HAVE_CACHE_L2X0 - -config ARCH_VEXPRESS_DT -	bool "Device Tree support for Versatile Express platforms" +config ARCH_VEXPRESS +	bool "ARM Ltd. Versatile Express family" if ARCH_MULTI_V7 +	select ARCH_WANT_OPTIONAL_GPIOLIB +	select ARM_AMBA  	select ARM_GIC -	select ARM_PATCH_PHYS_VIRT -	select AUTO_ZRELADDR +	select ARM_TIMER_SP804 +	select CLKDEV_LOOKUP +	select COMMON_CLK  	select CPU_V7 +	select GENERIC_CLOCKEVENTS +	select HAVE_CLK +	select HAVE_PATA_PLATFORM  	select HAVE_SMP +	select ICST  	select MIGHT_HAVE_CACHE_L2X0 -	select USE_OF +	select NO_IOPORT +	select PLAT_VERSATILE +	select PLAT_VERSATILE_CLCD +	select REGULATOR_FIXED_VOLTAGE if REGULATOR  	help -	  New Versatile Express platforms require Flattened Device Tree to -	  be passed to the kernel. -  	  This option enables support for systems using Cortex processor based  	  ARM core and logic (FPGA) tiles on the Versatile Express motherboard,  	  for example: @@ -48,7 +33,22 @@ config ARCH_VEXPRESS_DT  	  platforms. The traditional (ATAGs) boot method is not usable on  	  these boards with this option. -	  If your bootloader supports Flattened Device Tree based booting, -	  say Y here. +menu "Versatile Express platform type" +	depends on ARCH_VEXPRESS + +config ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA +	bool "Enable A5 and A9 only errata work-arounds" +	default y +	select ARM_ERRATA_720789 +	select ARM_ERRATA_751472 +	select PL310_ERRATA_753970 if CACHE_PL310 +	help +	  Provides common dependencies for Versatile Express platforms +	  based on Cortex-A5 and Cortex-A9 processors. In order to +	  build a working kernel, you must also enable relevant core +	  tile support or Flattened Device Tree based support options. + +config ARCH_VEXPRESS_CA9X4 +	bool "Versatile Express Cortex-A9x4 tile"  endmenu diff --git a/arch/arm/mach-vexpress/Makefile b/arch/arm/mach-vexpress/Makefile index 90551b9780a..42703e8b4d3 100644 --- a/arch/arm/mach-vexpress/Makefile +++ b/arch/arm/mach-vexpress/Makefile @@ -1,6 +1,8 @@  #  # Makefile for the linux kernel.  # +ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include \ +	-I$(srctree)/arch/arm/plat-versatile/include  obj-y					:= v2m.o  obj-$(CONFIG_ARCH_VEXPRESS_CA9X4)	+= ct-ca9x4.o diff --git a/arch/arm/mach-vexpress/Makefile.boot b/arch/arm/mach-vexpress/Makefile.boot deleted file mode 100644 index 318d308dfb9..00000000000 --- a/arch/arm/mach-vexpress/Makefile.boot +++ /dev/null @@ -1,10 +0,0 @@ -# Those numbers are used only by the non-DT V2P-CA9 platform -# The DT-enabled ones require CONFIG_AUTO_ZRELADDR=y -   zreladdr-y	+= 0x60008000 -params_phys-y	:= 0x60000100 -initrd_phys-y	:= 0x60800000 - -dtb-$(CONFIG_ARCH_VEXPRESS_DT)	+= vexpress-v2p-ca5s.dtb \ -				   vexpress-v2p-ca9.dtb \ -				   vexpress-v2p-ca15-tc1.dtb \ -				   vexpress-v2p-ca15_a7.dtb diff --git a/arch/arm/mach-vexpress/ct-ca9x4.c b/arch/arm/mach-vexpress/ct-ca9x4.c index e4073a60a86..4f471fa3e3c 100644 --- a/arch/arm/mach-vexpress/ct-ca9x4.c +++ b/arch/arm/mach-vexpress/ct-ca9x4.c @@ -26,6 +26,7 @@  #include "core.h"  #include <mach/motherboard.h> +#include <mach/irqs.h>  #include <plat/clcd.h> diff --git a/arch/arm/mach-vexpress/include/mach/gpio.h b/arch/arm/mach-vexpress/include/mach/gpio.h deleted file mode 100644 index 40a8c178f10..00000000000 --- a/arch/arm/mach-vexpress/include/mach/gpio.h +++ /dev/null @@ -1 +0,0 @@ -/* empty */ diff --git a/arch/arm/mach-vexpress/include/mach/irqs.h b/arch/arm/mach-vexpress/include/mach/irqs.h index 4b10ee7657a..f8f7f782eb5 100644 --- a/arch/arm/mach-vexpress/include/mach/irqs.h +++ b/arch/arm/mach-vexpress/include/mach/irqs.h @@ -1,4 +1,6 @@  #define IRQ_LOCALTIMER		29  #define IRQ_LOCALWDOG		30 +#ifndef CONFIG_SPARSE_IRQ  #define NR_IRQS	256 +#endif diff --git a/arch/arm/mach-vexpress/include/mach/timex.h b/arch/arm/mach-vexpress/include/mach/timex.h deleted file mode 100644 index 00029bacd43..00000000000 --- a/arch/arm/mach-vexpress/include/mach/timex.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - *  arch/arm/mach-vexpress/include/mach/timex.h - * - *  RealView architecture timex specifications - * - *  Copyright (C) 2003 ARM Limited - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - */ - -#define CLOCK_TICK_RATE		(50000000 / 16) diff --git a/arch/arm/mach-vexpress/include/mach/uncompress.h b/arch/arm/mach-vexpress/include/mach/uncompress.h deleted file mode 100644 index 1e472eb0bbd..00000000000 --- a/arch/arm/mach-vexpress/include/mach/uncompress.h +++ /dev/null @@ -1,86 +0,0 @@ -/* - *  arch/arm/mach-vexpress/include/mach/uncompress.h - * - *  Copyright (C) 2003 ARM Limited - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - */ -#define AMBA_UART_DR(base)	(*(volatile unsigned char *)((base) + 0x00)) -#define AMBA_UART_LCRH(base)	(*(volatile unsigned char *)((base) + 0x2c)) -#define AMBA_UART_CR(base)	(*(volatile unsigned char *)((base) + 0x30)) -#define AMBA_UART_FR(base)	(*(volatile unsigned char *)((base) + 0x18)) - -#define UART_BASE	0x10009000 -#define UART_BASE_RS1	0x1c090000 - -static unsigned long get_uart_base(void) -{ -#if defined(CONFIG_DEBUG_VEXPRESS_UART0_DETECT) -	unsigned long mpcore_periph; - -	/* -	 * Make an educated guess regarding the memory map: -	 * - the original A9 core tile, which has MPCore peripherals -	 *   located at 0x1e000000, should use UART at 0x10009000 -	 * - all other (RS1 complaint) tiles use UART mapped -	 *   at 0x1c090000 -	 */ -	asm("mrc p15, 4, %0, c15, c0, 0" : "=r" (mpcore_periph)); - -	if (mpcore_periph == 0x1e000000) -		return UART_BASE; -	else -		return UART_BASE_RS1; -#elif defined(CONFIG_DEBUG_VEXPRESS_UART0_CA9) -	return UART_BASE; -#elif defined(CONFIG_DEBUG_VEXPRESS_UART0_RS1) -	return UART_BASE_RS1; -#else -	return 0; -#endif -} - -/* - * This does not append a newline - */ -static inline void putc(int c) -{ -	unsigned long base = get_uart_base(); - -	if (!base) -		return; - -	while (AMBA_UART_FR(base) & (1 << 5)) -		barrier(); - -	AMBA_UART_DR(base) = c; -} - -static inline void flush(void) -{ -	unsigned long base = get_uart_base(); - -	if (!base) -		return; - -	while (AMBA_UART_FR(base) & (1 << 3)) -		barrier(); -} - -/* - * nothing to do - */ -#define arch_decomp_setup() -#define arch_decomp_wdog() diff --git a/arch/arm/mach-vexpress/v2m.c b/arch/arm/mach-vexpress/v2m.c index 37608f22ee3..2ca86c50174 100644 --- a/arch/arm/mach-vexpress/v2m.c +++ b/arch/arm/mach-vexpress/v2m.c @@ -539,8 +539,6 @@ MACHINE_START(VEXPRESS, "ARM-Versatile Express")  	.restart	= v2m_restart,  MACHINE_END -#if defined(CONFIG_ARCH_VEXPRESS_DT) -  static struct map_desc v2m_rs1_io_desc __initdata = {  	.virtual	= V2M_PERIPH,  	.pfn		= __phys_to_pfn(0x1c000000), @@ -671,5 +669,3 @@ DT_MACHINE_START(VEXPRESS_DT, "ARM-Versatile Express")  	.handle_irq	= gic_handle_irq,  	.restart	= v2m_restart,  MACHINE_END - -#endif diff --git a/arch/arm/mach-vt8500/include/mach/gpio.h b/arch/arm/mach-vt8500/include/mach/gpio.h deleted file mode 100644 index 40a8c178f10..00000000000 --- a/arch/arm/mach-vt8500/include/mach/gpio.h +++ /dev/null @@ -1 +0,0 @@ -/* empty */ diff --git a/arch/arm/plat-mxc/include/mach/gpio.h b/arch/arm/plat-mxc/include/mach/gpio.h deleted file mode 100644 index 40a8c178f10..00000000000 --- a/arch/arm/plat-mxc/include/mach/gpio.h +++ /dev/null @@ -1 +0,0 @@ -/* empty */ diff --git a/arch/arm/plat-orion/gpio.c b/arch/arm/plat-orion/gpio.c index dfda74fae6f..c29ee7ea200 100644 --- a/arch/arm/plat-orion/gpio.c +++ b/arch/arm/plat-orion/gpio.c @@ -23,7 +23,7 @@  #include <linux/of.h>  #include <linux/of_irq.h>  #include <linux/of_address.h> -#include <plat/gpio.h> +#include <plat/orion-gpio.h>  /*   * GPIO unit register offsets. diff --git a/arch/arm/plat-orion/include/plat/gpio.h b/arch/arm/plat-orion/include/plat/orion-gpio.h index 81c6fc8a7b2..614dcac9dc5 100644 --- a/arch/arm/plat-orion/include/plat/gpio.h +++ b/arch/arm/plat-orion/include/plat/orion-gpio.h @@ -1,5 +1,5 @@  /* - * arch/arm/plat-orion/include/plat/gpio.h + * arch/arm/plat-orion/include/plat/orion-gpio.h   *   * Marvell Orion SoC GPIO handling.   * diff --git a/arch/arm/plat-orion/irq.c b/arch/arm/plat-orion/irq.c index d751964def4..1867944415c 100644 --- a/arch/arm/plat-orion/irq.c +++ b/arch/arm/plat-orion/irq.c @@ -16,7 +16,7 @@  #include <linux/of_address.h>  #include <linux/of_irq.h>  #include <plat/irq.h> -#include <plat/gpio.h> +#include <plat/orion-gpio.h>  void __init orion_irq_init(unsigned int irq_start, void __iomem *maskaddr)  { diff --git a/arch/arm/plat-orion/mpp.c b/arch/arm/plat-orion/mpp.c index 3b1e17bd3d1..7740bb31d66 100644 --- a/arch/arm/plat-orion/mpp.c +++ b/arch/arm/plat-orion/mpp.c @@ -14,6 +14,7 @@  #include <linux/io.h>  #include <linux/gpio.h>  #include <mach/hardware.h> +#include <plat/orion-gpio.h>  #include <plat/mpp.h>  /* Address of the ith MPP control register */ diff --git a/arch/arm/plat-spear/include/plat/gpio.h b/arch/arm/plat-spear/include/plat/gpio.h deleted file mode 100644 index 40a8c178f10..00000000000 --- a/arch/arm/plat-spear/include/plat/gpio.h +++ /dev/null @@ -1 +0,0 @@ -/* empty */ diff --git a/arch/arm/plat-versatile/Makefile b/arch/arm/plat-versatile/Makefile index 272769a8a7d..74cfd94cbf8 100644 --- a/arch/arm/plat-versatile/Makefile +++ b/arch/arm/plat-versatile/Makefile @@ -1,3 +1,5 @@ +ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include +  obj-$(CONFIG_PLAT_VERSATILE_CLOCK) += clock.o  obj-$(CONFIG_PLAT_VERSATILE_CLCD) += clcd.o  obj-$(CONFIG_PLAT_VERSATILE_FPGA_IRQ) += fpga-irq.o diff --git a/drivers/net/irda/pxaficp_ir.c b/drivers/net/irda/pxaficp_ir.c index 8d547670791..cb0a5d3c0b6 100644 --- a/drivers/net/irda/pxaficp_ir.c +++ b/drivers/net/irda/pxaficp_ir.c @@ -29,8 +29,8 @@  #include <mach/dma.h>  #include <mach/irda.h> -#include <mach/regs-uart.h>  #include <mach/regs-ost.h> +#include <mach/regs-uart.h>  #define FICP		__REG(0x40800000)  /* Start of FICP area */  #define ICCR0		__REG(0x40800000)  /* ICP Control Register 0 */ @@ -112,6 +112,9 @@ struct pxa_irda {  	int			txdma;  	int			rxdma; +	int			uart_irq; +	int			icp_irq; +  	struct irlap_cb		*irlap;  	struct qos_info		qos; @@ -672,19 +675,19 @@ static int pxa_irda_start(struct net_device *dev)  	si->speed = 9600; -	err = request_irq(IRQ_STUART, pxa_irda_sir_irq, 0, dev->name, dev); +	err = request_irq(si->uart_irq, pxa_irda_sir_irq, 0, dev->name, dev);  	if (err)  		goto err_irq1; -	err = request_irq(IRQ_ICP, pxa_irda_fir_irq, 0, dev->name, dev); +	err = request_irq(si->icp_irq, pxa_irda_fir_irq, 0, dev->name, dev);  	if (err)  		goto err_irq2;  	/*  	 * The interrupt must remain disabled for now.  	 */ -	disable_irq(IRQ_STUART); -	disable_irq(IRQ_ICP); +	disable_irq(si->uart_irq); +	disable_irq(si->icp_irq);  	err = -EBUSY;  	si->rxdma = pxa_request_dma("FICP_RX",DMA_PRIO_LOW, pxa_irda_fir_dma_rx_irq, dev); @@ -720,8 +723,8 @@ static int pxa_irda_start(struct net_device *dev)  	/*  	 * Now enable the interrupt and start the queue  	 */ -	enable_irq(IRQ_STUART); -	enable_irq(IRQ_ICP); +	enable_irq(si->uart_irq); +	enable_irq(si->icp_irq);  	netif_start_queue(dev);  	printk(KERN_DEBUG "pxa_ir: irda driver opened\n"); @@ -738,9 +741,9 @@ err_dma_rx_buff:  err_tx_dma:  	pxa_free_dma(si->rxdma);  err_rx_dma: -	free_irq(IRQ_ICP, dev); +	free_irq(si->icp_irq, dev);  err_irq2: -	free_irq(IRQ_STUART, dev); +	free_irq(si->uart_irq, dev);  err_irq1:  	return err; @@ -760,8 +763,8 @@ static int pxa_irda_stop(struct net_device *dev)  		si->irlap = NULL;  	} -	free_irq(IRQ_STUART, dev); -	free_irq(IRQ_ICP, dev); +	free_irq(si->uart_irq, dev); +	free_irq(si->icp_irq, dev);  	pxa_free_dma(si->rxdma);  	pxa_free_dma(si->txdma); @@ -851,6 +854,9 @@ static int pxa_irda_probe(struct platform_device *pdev)  	si->dev = &pdev->dev;  	si->pdata = pdev->dev.platform_data; +	si->uart_irq = platform_get_irq(pdev, 0); +	si->icp_irq = platform_get_irq(pdev, 1); +  	si->sir_clk = clk_get(&pdev->dev, "UARTCLK");  	si->fir_clk = clk_get(&pdev->dev, "FICPCLK");  	if (IS_ERR(si->sir_clk) || IS_ERR(si->fir_clk)) { diff --git a/drivers/sh/pfc/gpio.c b/drivers/sh/pfc/gpio.c index 62bca98474a..038fa071382 100644 --- a/drivers/sh/pfc/gpio.c +++ b/drivers/sh/pfc/gpio.c @@ -17,6 +17,7 @@  #include <linux/module.h>  #include <linux/platform_device.h>  #include <linux/pinctrl/consumer.h> +#include <linux/sh_pfc.h>  struct sh_pfc_chip {  	struct sh_pfc		*pfc; diff --git a/drivers/staging/ste_rmi4/board-mop500-u8500uib-rmi4.c b/drivers/staging/ste_rmi4/board-mop500-u8500uib-rmi4.c index a272e488e5b..47439c3f725 100644 --- a/drivers/staging/ste_rmi4/board-mop500-u8500uib-rmi4.c +++ b/drivers/staging/ste_rmi4/board-mop500-u8500uib-rmi4.c @@ -5,7 +5,6 @@  #include <linux/i2c.h>  #include <linux/gpio.h>  #include <linux/interrupt.h> -#include <mach/gpio.h>  #include <mach/irqs.h>  #include "synaptics_i2c_rmi4.h" diff --git a/drivers/usb/gadget/pxa27x_udc.c b/drivers/usb/gadget/pxa27x_udc.c index 644b4305cb9..7a8713cda94 100644 --- a/drivers/usb/gadget/pxa27x_udc.c +++ b/drivers/usb/gadget/pxa27x_udc.c @@ -2508,7 +2508,7 @@ static int __init pxa_udc_probe(struct platform_device *pdev)  			IRQF_SHARED, driver_name, udc);  	if (retval != 0) {  		dev_err(udc->dev, "%s: can't get irq %i, err %d\n", -			driver_name, IRQ_USB, retval); +			driver_name, udc->irq, retval);  		goto err_irq;  	}  	retval = usb_add_gadget_udc(&pdev->dev, &udc->gadget);  |