diff options
42 files changed, 184 insertions, 225 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 1aa43c6edfaa..48982dc89ffc 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
| @@ -885,6 +885,7 @@ config ARCH_U8500 | |||
| 885 | select GENERIC_CLOCKEVENTS | 885 | select GENERIC_CLOCKEVENTS |
| 886 | select HAVE_SMP | 886 | select HAVE_SMP |
| 887 | select MIGHT_HAVE_CACHE_L2X0 | 887 | select MIGHT_HAVE_CACHE_L2X0 |
| 888 | select SPARSE_IRQ | ||
| 888 | help | 889 | help |
| 889 | Support for ST-Ericsson's Ux500 architecture | 890 | Support for ST-Ericsson's Ux500 architecture |
| 890 | 891 | ||
| @@ -899,6 +900,7 @@ config ARCH_NOMADIK | |||
| 899 | select MIGHT_HAVE_CACHE_L2X0 | 900 | select MIGHT_HAVE_CACHE_L2X0 |
| 900 | select PINCTRL | 901 | select PINCTRL |
| 901 | select PINCTRL_STN8815 | 902 | select PINCTRL_STN8815 |
| 903 | select SPARSE_IRQ | ||
| 902 | help | 904 | help |
| 903 | Support for the Nomadik platform by ST-Ericsson | 905 | Support for the Nomadik platform by ST-Ericsson |
| 904 | 906 | ||
| @@ -1067,7 +1069,6 @@ source "arch/arm/mach-mxs/Kconfig" | |||
| 1067 | source "arch/arm/mach-netx/Kconfig" | 1069 | source "arch/arm/mach-netx/Kconfig" |
| 1068 | 1070 | ||
| 1069 | source "arch/arm/mach-nomadik/Kconfig" | 1071 | source "arch/arm/mach-nomadik/Kconfig" |
| 1070 | source "arch/arm/plat-nomadik/Kconfig" | ||
| 1071 | 1072 | ||
| 1072 | source "arch/arm/plat-omap/Kconfig" | 1073 | source "arch/arm/plat-omap/Kconfig" |
| 1073 | 1074 | ||
diff --git a/arch/arm/Makefile b/arch/arm/Makefile index 5f914fca911b..89087d599ad2 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile | |||
| @@ -201,7 +201,6 @@ plat-$(CONFIG_ARCH_OMAP) += omap | |||
| 201 | plat-$(CONFIG_ARCH_S3C64XX) += samsung | 201 | plat-$(CONFIG_ARCH_S3C64XX) += samsung |
| 202 | plat-$(CONFIG_ARCH_ZYNQ) += versatile | 202 | plat-$(CONFIG_ARCH_ZYNQ) += versatile |
| 203 | plat-$(CONFIG_PLAT_IOP) += iop | 203 | plat-$(CONFIG_PLAT_IOP) += iop |
| 204 | plat-$(CONFIG_PLAT_NOMADIK) += nomadik | ||
| 205 | plat-$(CONFIG_PLAT_ORION) += orion | 204 | plat-$(CONFIG_PLAT_ORION) += orion |
| 206 | plat-$(CONFIG_PLAT_PXA) += pxa | 205 | plat-$(CONFIG_PLAT_PXA) += pxa |
| 207 | plat-$(CONFIG_PLAT_S3C24XX) += s3c24xx samsung | 206 | plat-$(CONFIG_PLAT_S3C24XX) += s3c24xx samsung |
diff --git a/arch/arm/mach-nomadik/Kconfig b/arch/arm/mach-nomadik/Kconfig index c744946ef022..706dc5727bbe 100644 --- a/arch/arm/mach-nomadik/Kconfig +++ b/arch/arm/mach-nomadik/Kconfig | |||
| @@ -4,7 +4,7 @@ menu "Nomadik boards" | |||
| 4 | 4 | ||
| 5 | config MACH_NOMADIK_8815NHK | 5 | config MACH_NOMADIK_8815NHK |
| 6 | bool "ST 8815 Nomadik Hardware Kit (evaluation board)" | 6 | bool "ST 8815 Nomadik Hardware Kit (evaluation board)" |
| 7 | select HAS_MTU | 7 | select CLKSRC_NOMADIK_MTU |
| 8 | select NOMADIK_8815 | 8 | select NOMADIK_8815 |
| 9 | 9 | ||
| 10 | endmenu | 10 | endmenu |
diff --git a/arch/arm/mach-nomadik/board-nhk8815.c b/arch/arm/mach-nomadik/board-nhk8815.c index bfa1eab91f41..5ccdf53c5a9d 100644 --- a/arch/arm/mach-nomadik/board-nhk8815.c +++ b/arch/arm/mach-nomadik/board-nhk8815.c | |||
| @@ -24,20 +24,17 @@ | |||
| 24 | #include <linux/i2c.h> | 24 | #include <linux/i2c.h> |
| 25 | #include <linux/io.h> | 25 | #include <linux/io.h> |
| 26 | #include <linux/pinctrl/machine.h> | 26 | #include <linux/pinctrl/machine.h> |
| 27 | #include <linux/platform_data/pinctrl-nomadik.h> | ||
| 28 | #include <linux/platform_data/clocksource-nomadik-mtu.h> | ||
| 29 | #include <linux/platform_data/mtd-nomadik-nand.h> | ||
| 27 | #include <asm/hardware/vic.h> | 30 | #include <asm/hardware/vic.h> |
| 28 | #include <asm/sizes.h> | 31 | #include <asm/sizes.h> |
| 29 | #include <asm/mach-types.h> | 32 | #include <asm/mach-types.h> |
| 30 | #include <asm/mach/arch.h> | 33 | #include <asm/mach/arch.h> |
| 31 | #include <asm/mach/irq.h> | ||
| 32 | #include <asm/mach/flash.h> | 34 | #include <asm/mach/flash.h> |
| 33 | #include <asm/mach/time.h> | 35 | #include <asm/mach/time.h> |
| 34 | |||
| 35 | #include <plat/gpio-nomadik.h> | ||
| 36 | #include <plat/mtu.h> | ||
| 37 | #include <plat/pincfg.h> | ||
| 38 | |||
| 39 | #include <linux/platform_data/mtd-nomadik-nand.h> | ||
| 40 | #include <mach/fsmc.h> | 36 | #include <mach/fsmc.h> |
| 37 | #include <mach/irqs.h> | ||
| 41 | 38 | ||
| 42 | #include "cpu-8815.h" | 39 | #include "cpu-8815.h" |
| 43 | 40 | ||
| @@ -261,7 +258,7 @@ static void __init nomadik_timer_init(void) | |||
| 261 | src_cr |= SRC_CR_INIT_VAL; | 258 | src_cr |= SRC_CR_INIT_VAL; |
| 262 | writel(src_cr, io_p2v(NOMADIK_SRC_BASE)); | 259 | writel(src_cr, io_p2v(NOMADIK_SRC_BASE)); |
| 263 | 260 | ||
| 264 | nmdk_timer_init(io_p2v(NOMADIK_MTU0_BASE)); | 261 | nmdk_timer_init(io_p2v(NOMADIK_MTU0_BASE), IRQ_MTU0); |
| 265 | } | 262 | } |
| 266 | 263 | ||
| 267 | static struct sys_timer nomadik_timer = { | 264 | static struct sys_timer nomadik_timer = { |
diff --git a/arch/arm/mach-nomadik/cpu-8815.c b/arch/arm/mach-nomadik/cpu-8815.c index b617eaed0ce5..1273931303fb 100644 --- a/arch/arm/mach-nomadik/cpu-8815.c +++ b/arch/arm/mach-nomadik/cpu-8815.c | |||
| @@ -26,8 +26,8 @@ | |||
| 26 | #include <linux/irq.h> | 26 | #include <linux/irq.h> |
| 27 | #include <linux/dma-mapping.h> | 27 | #include <linux/dma-mapping.h> |
| 28 | #include <linux/platform_data/clk-nomadik.h> | 28 | #include <linux/platform_data/clk-nomadik.h> |
| 29 | #include <linux/platform_data/pinctrl-nomadik.h> | ||
| 29 | 30 | ||
| 30 | #include <plat/gpio-nomadik.h> | ||
| 31 | #include <mach/hardware.h> | 31 | #include <mach/hardware.h> |
| 32 | #include <mach/irqs.h> | 32 | #include <mach/irqs.h> |
| 33 | #include <asm/mach/map.h> | 33 | #include <asm/mach/map.h> |
diff --git a/arch/arm/mach-nomadik/i2c-8815nhk.c b/arch/arm/mach-nomadik/i2c-8815nhk.c index 6d14454d4609..0c2f6628299a 100644 --- a/arch/arm/mach-nomadik/i2c-8815nhk.c +++ b/arch/arm/mach-nomadik/i2c-8815nhk.c | |||
| @@ -4,8 +4,7 @@ | |||
| 4 | #include <linux/i2c-algo-bit.h> | 4 | #include <linux/i2c-algo-bit.h> |
| 5 | #include <linux/i2c-gpio.h> | 5 | #include <linux/i2c-gpio.h> |
| 6 | #include <linux/platform_device.h> | 6 | #include <linux/platform_device.h> |
| 7 | #include <plat/gpio-nomadik.h> | 7 | #include <linux/platform_data/pinctrl-nomadik.h> |
| 8 | #include <plat/pincfg.h> | ||
| 9 | 8 | ||
| 10 | /* | 9 | /* |
| 11 | * There are two busses in the 8815NHK. | 10 | * There are two busses in the 8815NHK. |
diff --git a/arch/arm/mach-nomadik/include/mach/irqs.h b/arch/arm/mach-nomadik/include/mach/irqs.h index a118e615f865..b549d0571548 100644 --- a/arch/arm/mach-nomadik/include/mach/irqs.h +++ b/arch/arm/mach-nomadik/include/mach/irqs.h | |||
| @@ -72,7 +72,7 @@ | |||
| 72 | #define NOMADIK_NR_GPIO 128 /* last 4 not wired to pins */ | 72 | #define NOMADIK_NR_GPIO 128 /* last 4 not wired to pins */ |
| 73 | #define NOMADIK_GPIO_TO_IRQ(gpio) ((gpio) + NOMADIK_GPIO_OFFSET) | 73 | #define NOMADIK_GPIO_TO_IRQ(gpio) ((gpio) + NOMADIK_GPIO_OFFSET) |
| 74 | #define NOMADIK_IRQ_TO_GPIO(irq) ((irq) - NOMADIK_GPIO_OFFSET) | 74 | #define NOMADIK_IRQ_TO_GPIO(irq) ((irq) - NOMADIK_GPIO_OFFSET) |
| 75 | #define NR_IRQS NOMADIK_GPIO_TO_IRQ(NOMADIK_NR_GPIO) | 75 | #define NOMADIK_NR_IRQS NOMADIK_GPIO_TO_IRQ(NOMADIK_NR_GPIO) |
| 76 | 76 | ||
| 77 | /* Following two are used by entry_macro.S, to access our dual-vic */ | 77 | /* Following two are used by entry_macro.S, to access our dual-vic */ |
| 78 | #define VIC_REG_IRQSR0 0 | 78 | #define VIC_REG_IRQSR0 0 |
diff --git a/arch/arm/mach-ux500/Kconfig b/arch/arm/mach-ux500/Kconfig index e8c3f0d70ca6..5dea90636d94 100644 --- a/arch/arm/mach-ux500/Kconfig +++ b/arch/arm/mach-ux500/Kconfig | |||
| @@ -7,8 +7,8 @@ config UX500_SOC_COMMON | |||
| 7 | select ARM_ERRATA_764369 if SMP | 7 | select ARM_ERRATA_764369 if SMP |
| 8 | select ARM_GIC | 8 | select ARM_GIC |
| 9 | select CACHE_L2X0 | 9 | select CACHE_L2X0 |
| 10 | select CLKSRC_NOMADIK_MTU | ||
| 10 | select COMMON_CLK | 11 | select COMMON_CLK |
| 11 | select HAS_MTU | ||
| 12 | select PINCTRL | 12 | select PINCTRL |
| 13 | select PINCTRL_NOMADIK | 13 | select PINCTRL_NOMADIK |
| 14 | select PL310_ERRATA_753970 if CACHE_PL310 | 14 | select PL310_ERRATA_753970 if CACHE_PL310 |
diff --git a/arch/arm/mach-ux500/board-mop500-audio.c b/arch/arm/mach-ux500/board-mop500-audio.c index 070629a95625..71a2ca726476 100644 --- a/arch/arm/mach-ux500/board-mop500-audio.c +++ b/arch/arm/mach-ux500/board-mop500-audio.c | |||
| @@ -7,10 +7,8 @@ | |||
| 7 | #include <linux/platform_device.h> | 7 | #include <linux/platform_device.h> |
| 8 | #include <linux/init.h> | 8 | #include <linux/init.h> |
| 9 | #include <linux/gpio.h> | 9 | #include <linux/gpio.h> |
| 10 | 10 | #include <linux/platform_data/pinctrl-nomadik.h> | |
| 11 | #include <plat/gpio-nomadik.h> | 11 | #include <linux/platform_data/dma-ste-dma40.h> |
| 12 | #include <plat/pincfg.h> | ||
| 13 | #include <plat/ste_dma40.h> | ||
| 14 | 12 | ||
| 15 | #include <mach/devices.h> | 13 | #include <mach/devices.h> |
| 16 | #include <mach/hardware.h> | 14 | #include <mach/hardware.h> |
diff --git a/arch/arm/mach-ux500/board-mop500-pins.c b/arch/arm/mach-ux500/board-mop500-pins.c index a267c6d30e37..c34d4efd0d5c 100644 --- a/arch/arm/mach-ux500/board-mop500-pins.c +++ b/arch/arm/mach-ux500/board-mop500-pins.c | |||
| @@ -9,10 +9,9 @@ | |||
| 9 | #include <linux/bug.h> | 9 | #include <linux/bug.h> |
| 10 | #include <linux/string.h> | 10 | #include <linux/string.h> |
| 11 | #include <linux/pinctrl/machine.h> | 11 | #include <linux/pinctrl/machine.h> |
| 12 | #include <linux/platform_data/pinctrl-nomadik.h> | ||
| 12 | 13 | ||
| 13 | #include <asm/mach-types.h> | 14 | #include <asm/mach-types.h> |
| 14 | #include <plat/pincfg.h> | ||
| 15 | #include <plat/gpio-nomadik.h> | ||
| 16 | 15 | ||
| 17 | #include <mach/hardware.h> | 16 | #include <mach/hardware.h> |
| 18 | 17 | ||
diff --git a/arch/arm/mach-ux500/board-mop500-sdi.c b/arch/arm/mach-ux500/board-mop500-sdi.c index 9c8e4a9e83ee..051b62c27102 100644 --- a/arch/arm/mach-ux500/board-mop500-sdi.c +++ b/arch/arm/mach-ux500/board-mop500-sdi.c | |||
| @@ -11,9 +11,9 @@ | |||
| 11 | #include <linux/amba/mmci.h> | 11 | #include <linux/amba/mmci.h> |
| 12 | #include <linux/mmc/host.h> | 12 | #include <linux/mmc/host.h> |
| 13 | #include <linux/platform_device.h> | 13 | #include <linux/platform_device.h> |
| 14 | #include <linux/platform_data/dma-ste-dma40.h> | ||
| 14 | 15 | ||
| 15 | #include <asm/mach-types.h> | 16 | #include <asm/mach-types.h> |
| 16 | #include <plat/ste_dma40.h> | ||
| 17 | #include <mach/devices.h> | 17 | #include <mach/devices.h> |
| 18 | #include <mach/hardware.h> | 18 | #include <mach/hardware.h> |
| 19 | 19 | ||
diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c index 416d436111f2..92680569bfc6 100644 --- a/arch/arm/mach-ux500/board-mop500.c +++ b/arch/arm/mach-ux500/board-mop500.c | |||
| @@ -1,4 +1,3 @@ | |||
| 1 | |||
| 2 | /* | 1 | /* |
| 3 | * Copyright (C) 2008-2009 ST-Ericsson | 2 | * Copyright (C) 2008-2009 ST-Ericsson |
| 4 | * | 3 | * |
| @@ -37,14 +36,13 @@ | |||
| 37 | #include <linux/of_platform.h> | 36 | #include <linux/of_platform.h> |
| 38 | #include <linux/leds.h> | 37 | #include <linux/leds.h> |
| 39 | #include <linux/pinctrl/consumer.h> | 38 | #include <linux/pinctrl/consumer.h> |
| 39 | #include <linux/platform_data/pinctrl-nomadik.h> | ||
| 40 | #include <linux/platform_data/dma-ste-dma40.h> | ||
| 40 | 41 | ||
| 41 | #include <asm/mach-types.h> | 42 | #include <asm/mach-types.h> |
| 42 | #include <asm/mach/arch.h> | 43 | #include <asm/mach/arch.h> |
| 43 | #include <asm/hardware/gic.h> | 44 | #include <asm/hardware/gic.h> |
| 44 | 45 | ||
| 45 | #include <plat/ste_dma40.h> | ||
| 46 | #include <plat/gpio-nomadik.h> | ||
| 47 | |||
| 48 | #include <mach/hardware.h> | 46 | #include <mach/hardware.h> |
| 49 | #include <mach/setup.h> | 47 | #include <mach/setup.h> |
| 50 | #include <mach/devices.h> | 48 | #include <mach/devices.h> |
diff --git a/arch/arm/mach-ux500/cpu-db8500.c b/arch/arm/mach-ux500/cpu-db8500.c index bcdfe6b1d453..8bff078c617c 100644 --- a/arch/arm/mach-ux500/cpu-db8500.c +++ b/arch/arm/mach-ux500/cpu-db8500.c | |||
| @@ -17,15 +17,16 @@ | |||
| 17 | #include <linux/platform_device.h> | 17 | #include <linux/platform_device.h> |
| 18 | #include <linux/io.h> | 18 | #include <linux/io.h> |
| 19 | #include <linux/mfd/abx500/ab8500.h> | 19 | #include <linux/mfd/abx500/ab8500.h> |
| 20 | #include <linux/platform_data/usb-musb-ux500.h> | ||
| 21 | #include <linux/platform_data/pinctrl-nomadik.h> | ||
| 20 | 22 | ||
| 21 | #include <asm/pmu.h> | 23 | #include <asm/pmu.h> |
| 22 | #include <asm/mach/map.h> | 24 | #include <asm/mach/map.h> |
| 23 | #include <plat/gpio-nomadik.h> | ||
| 24 | #include <mach/hardware.h> | 25 | #include <mach/hardware.h> |
| 25 | #include <mach/setup.h> | 26 | #include <mach/setup.h> |
| 26 | #include <mach/devices.h> | 27 | #include <mach/devices.h> |
| 27 | #include <linux/platform_data/usb-musb-ux500.h> | ||
| 28 | #include <mach/db8500-regs.h> | 28 | #include <mach/db8500-regs.h> |
| 29 | #include <mach/irqs.h> | ||
| 29 | 30 | ||
| 30 | #include "devices-db8500.h" | 31 | #include "devices-db8500.h" |
| 31 | #include "ste-dma40-db8500.h" | 32 | #include "ste-dma40-db8500.h" |
diff --git a/arch/arm/mach-ux500/devices-common.c b/arch/arm/mach-ux500/devices-common.c index dfdd4a54668d..16b5f71e6974 100644 --- a/arch/arm/mach-ux500/devices-common.c +++ b/arch/arm/mach-ux500/devices-common.c | |||
| @@ -11,10 +11,10 @@ | |||
| 11 | #include <linux/irq.h> | 11 | #include <linux/irq.h> |
| 12 | #include <linux/slab.h> | 12 | #include <linux/slab.h> |
| 13 | #include <linux/platform_device.h> | 13 | #include <linux/platform_device.h> |
| 14 | 14 | #include <linux/platform_data/pinctrl-nomadik.h> | |
| 15 | #include <plat/gpio-nomadik.h> | ||
| 16 | 15 | ||
| 17 | #include <mach/hardware.h> | 16 | #include <mach/hardware.h> |
| 17 | #include <mach/irqs.h> | ||
| 18 | 18 | ||
| 19 | #include "devices-common.h" | 19 | #include "devices-common.h" |
| 20 | 20 | ||
diff --git a/arch/arm/mach-ux500/devices-db8500.c b/arch/arm/mach-ux500/devices-db8500.c index 91754a8a0d49..318d49020894 100644 --- a/arch/arm/mach-ux500/devices-db8500.c +++ b/arch/arm/mach-ux500/devices-db8500.c | |||
| @@ -12,11 +12,11 @@ | |||
| 12 | #include <linux/gpio.h> | 12 | #include <linux/gpio.h> |
| 13 | #include <linux/amba/bus.h> | 13 | #include <linux/amba/bus.h> |
| 14 | #include <linux/amba/pl022.h> | 14 | #include <linux/amba/pl022.h> |
| 15 | 15 | #include <linux/platform_data/dma-ste-dma40.h> | |
| 16 | #include <plat/ste_dma40.h> | ||
| 17 | 16 | ||
| 18 | #include <mach/hardware.h> | 17 | #include <mach/hardware.h> |
| 19 | #include <mach/setup.h> | 18 | #include <mach/setup.h> |
| 19 | #include <mach/irqs.h> | ||
| 20 | 20 | ||
| 21 | #include "ste-dma40-db8500.h" | 21 | #include "ste-dma40-db8500.h" |
| 22 | 22 | ||
diff --git a/arch/arm/mach-ux500/devices-db8500.h b/arch/arm/mach-ux500/devices-db8500.h index 3c8010f4fb3f..4b24c9992654 100644 --- a/arch/arm/mach-ux500/devices-db8500.h +++ b/arch/arm/mach-ux500/devices-db8500.h | |||
| @@ -8,6 +8,7 @@ | |||
| 8 | #ifndef __DEVICES_DB8500_H | 8 | #ifndef __DEVICES_DB8500_H |
| 9 | #define __DEVICES_DB8500_H | 9 | #define __DEVICES_DB8500_H |
| 10 | 10 | ||
| 11 | #include <mach/irqs.h> | ||
| 11 | #include "devices-common.h" | 12 | #include "devices-common.h" |
| 12 | 13 | ||
| 13 | struct ske_keypad_platform_data; | 14 | struct ske_keypad_platform_data; |
diff --git a/arch/arm/mach-ux500/include/mach/irqs.h b/arch/arm/mach-ux500/include/mach/irqs.h index e8928548b6a3..fc77b4274c8d 100644 --- a/arch/arm/mach-ux500/include/mach/irqs.h +++ b/arch/arm/mach-ux500/include/mach/irqs.h | |||
| @@ -46,6 +46,6 @@ | |||
| 46 | #include <mach/irqs-board-mop500.h> | 46 | #include <mach/irqs-board-mop500.h> |
| 47 | #endif | 47 | #endif |
| 48 | 48 | ||
| 49 | #define NR_IRQS IRQ_BOARD_END | 49 | #define UX500_NR_IRQS IRQ_BOARD_END |
| 50 | 50 | ||
| 51 | #endif /* ASM_ARCH_IRQS_H */ | 51 | #endif /* ASM_ARCH_IRQS_H */ |
diff --git a/arch/arm/mach-ux500/include/mach/msp.h b/arch/arm/mach-ux500/include/mach/msp.h index 3cc7142eee02..9991aea3d577 100644 --- a/arch/arm/mach-ux500/include/mach/msp.h +++ b/arch/arm/mach-ux500/include/mach/msp.h | |||
| @@ -8,7 +8,7 @@ | |||
| 8 | #ifndef __MSP_H | 8 | #ifndef __MSP_H |
| 9 | #define __MSP_H | 9 | #define __MSP_H |
| 10 | 10 | ||
| 11 | #include <plat/ste_dma40.h> | 11 | #include <linux/platform_data/dma-ste-dma40.h> |
| 12 | 12 | ||
| 13 | enum msp_i2s_id { | 13 | enum msp_i2s_id { |
| 14 | MSP_I2S_0 = 0, | 14 | MSP_I2S_0 = 0, |
diff --git a/arch/arm/mach-ux500/timer.c b/arch/arm/mach-ux500/timer.c index 6f39731951b0..875309acb022 100644 --- a/arch/arm/mach-ux500/timer.c +++ b/arch/arm/mach-ux500/timer.c | |||
| @@ -9,11 +9,10 @@ | |||
| 9 | #include <linux/clksrc-dbx500-prcmu.h> | 9 | #include <linux/clksrc-dbx500-prcmu.h> |
| 10 | #include <linux/of.h> | 10 | #include <linux/of.h> |
| 11 | #include <linux/of_address.h> | 11 | #include <linux/of_address.h> |
| 12 | #include <linux/platform_data/clocksource-nomadik-mtu.h> | ||
| 12 | 13 | ||
| 13 | #include <asm/smp_twd.h> | 14 | #include <asm/smp_twd.h> |
| 14 | 15 | ||
| 15 | #include <plat/mtu.h> | ||
| 16 | |||
| 17 | #include <mach/setup.h> | 16 | #include <mach/setup.h> |
| 18 | #include <mach/hardware.h> | 17 | #include <mach/hardware.h> |
| 19 | #include <mach/irqs.h> | 18 | #include <mach/irqs.h> |
| @@ -96,7 +95,7 @@ dt_fail: | |||
| 96 | * | 95 | * |
| 97 | */ | 96 | */ |
| 98 | 97 | ||
| 99 | nmdk_timer_init(mtu_timer_base); | 98 | nmdk_timer_init(mtu_timer_base, IRQ_MTU0); |
| 100 | clksrc_dbx500_prcmu_init(prcmu_timer_base); | 99 | clksrc_dbx500_prcmu_init(prcmu_timer_base); |
| 101 | ux500_twd_init(); | 100 | ux500_twd_init(); |
| 102 | } | 101 | } |
diff --git a/arch/arm/mach-ux500/usb.c b/arch/arm/mach-ux500/usb.c index 145482e74418..78ac65f62e87 100644 --- a/arch/arm/mach-ux500/usb.c +++ b/arch/arm/mach-ux500/usb.c | |||
| @@ -7,10 +7,10 @@ | |||
| 7 | #include <linux/platform_device.h> | 7 | #include <linux/platform_device.h> |
| 8 | #include <linux/usb/musb.h> | 8 | #include <linux/usb/musb.h> |
| 9 | #include <linux/dma-mapping.h> | 9 | #include <linux/dma-mapping.h> |
| 10 | #include <linux/platform_data/usb-musb-ux500.h> | ||
| 11 | #include <linux/platform_data/dma-ste-dma40.h> | ||
| 10 | 12 | ||
| 11 | #include <plat/ste_dma40.h> | ||
| 12 | #include <mach/hardware.h> | 13 | #include <mach/hardware.h> |
| 13 | #include <linux/platform_data/usb-musb-ux500.h> | ||
| 14 | 14 | ||
| 15 | #define MUSB_DMA40_RX_CH { \ | 15 | #define MUSB_DMA40_RX_CH { \ |
| 16 | .mode = STEDMA40_MODE_LOGICAL, \ | 16 | .mode = STEDMA40_MODE_LOGICAL, \ |
diff --git a/arch/arm/plat-nomadik/Kconfig b/arch/arm/plat-nomadik/Kconfig deleted file mode 100644 index 19f55cae5d73..000000000000 --- a/arch/arm/plat-nomadik/Kconfig +++ /dev/null | |||
| @@ -1,29 +0,0 @@ | |||
| 1 | # We keep common IP's here for Nomadik and other similar | ||
| 2 | # familiy of processors from ST-Ericsson. At the moment we have | ||
| 3 | # just MTU, others to follow soon. | ||
| 4 | |||
| 5 | config PLAT_NOMADIK | ||
| 6 | bool | ||
| 7 | depends on ARCH_NOMADIK || ARCH_U8500 | ||
| 8 | default y | ||
| 9 | select CLKSRC_MMIO | ||
| 10 | help | ||
| 11 | Common platform code for Nomadik and other ST-Ericsson | ||
| 12 | platforms. | ||
| 13 | |||
| 14 | if PLAT_NOMADIK | ||
| 15 | |||
| 16 | config HAS_MTU | ||
| 17 | bool | ||
| 18 | help | ||
| 19 | Support for Multi Timer Unit. MTU provides access | ||
| 20 | to multiple interrupt generating programmable | ||
| 21 | 32-bit free running decrementing counters. | ||
| 22 | |||
| 23 | config NOMADIK_MTU_SCHED_CLOCK | ||
| 24 | bool | ||
| 25 | depends on HAS_MTU | ||
| 26 | help | ||
| 27 | Use the Multi Timer Unit as the sched_clock. | ||
| 28 | |||
| 29 | endif | ||
diff --git a/arch/arm/plat-nomadik/Makefile b/arch/arm/plat-nomadik/Makefile deleted file mode 100644 index 37c7cdd0f8f0..000000000000 --- a/arch/arm/plat-nomadik/Makefile +++ /dev/null | |||
| @@ -1,5 +0,0 @@ | |||
| 1 | # arch/arm/plat-nomadik/Makefile | ||
| 2 | # Copyright 2009 ST-Ericsson | ||
| 3 | # Licensed under GPLv2 | ||
| 4 | |||
| 5 | obj-$(CONFIG_HAS_MTU) += timer.o | ||
diff --git a/arch/arm/plat-nomadik/include/plat/gpio-nomadik.h b/arch/arm/plat-nomadik/include/plat/gpio-nomadik.h deleted file mode 100644 index c08a54d9d889..000000000000 --- a/arch/arm/plat-nomadik/include/plat/gpio-nomadik.h +++ /dev/null | |||
| @@ -1,102 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * Structures and registers for GPIO access in the Nomadik SoC | ||
| 3 | * | ||
| 4 | * Copyright (C) 2008 STMicroelectronics | ||
| 5 | * Author: Prafulla WADASKAR <prafulla.wadaskar@st.com> | ||
| 6 | * Copyright (C) 2009 Alessandro Rubini <rubini@unipv.it> | ||
| 7 | * | ||
| 8 | * This program is free software; you can redistribute it and/or modify | ||
| 9 | * it under the terms of the GNU General Public License version 2 as | ||
| 10 | * published by the Free Software Foundation. | ||
| 11 | */ | ||
| 12 | |||
| 13 | #ifndef __PLAT_NOMADIK_GPIO | ||
| 14 | #define __PLAT_NOMADIK_GPIO | ||
| 15 | |||
| 16 | /* | ||
| 17 | * "nmk_gpio" and "NMK_GPIO" stand for "Nomadik GPIO", leaving | ||
| 18 | * the "gpio" namespace for generic and cross-machine functions | ||
| 19 | */ | ||
| 20 | |||
| 21 | /* Register in the logic block */ | ||
| 22 | #define NMK_GPIO_DAT 0x00 | ||
| 23 | #define NMK_GPIO_DATS 0x04 | ||
| 24 | #define NMK_GPIO_DATC 0x08 | ||
| 25 | #define NMK_GPIO_PDIS 0x0c | ||
| 26 | #define NMK_GPIO_DIR 0x10 | ||
| 27 | #define NMK_GPIO_DIRS 0x14 | ||
| 28 | #define NMK_GPIO_DIRC 0x18 | ||
| 29 | #define NMK_GPIO_SLPC 0x1c | ||
| 30 | #define NMK_GPIO_AFSLA 0x20 | ||
| 31 | #define NMK_GPIO_AFSLB 0x24 | ||
| 32 | #define NMK_GPIO_LOWEMI 0x28 | ||
| 33 | |||
| 34 | #define NMK_GPIO_RIMSC 0x40 | ||
| 35 | #define NMK_GPIO_FIMSC 0x44 | ||
| 36 | #define NMK_GPIO_IS 0x48 | ||
| 37 | #define NMK_GPIO_IC 0x4c | ||
| 38 | #define NMK_GPIO_RWIMSC 0x50 | ||
| 39 | #define NMK_GPIO_FWIMSC 0x54 | ||
| 40 | #define NMK_GPIO_WKS 0x58 | ||
| 41 | |||
| 42 | /* Alternate functions: function C is set in hw by setting both A and B */ | ||
| 43 | #define NMK_GPIO_ALT_GPIO 0 | ||
| 44 | #define NMK_GPIO_ALT_A 1 | ||
| 45 | #define NMK_GPIO_ALT_B 2 | ||
| 46 | #define NMK_GPIO_ALT_C (NMK_GPIO_ALT_A | NMK_GPIO_ALT_B) | ||
| 47 | |||
| 48 | #define NMK_GPIO_ALT_CX_SHIFT 2 | ||
| 49 | #define NMK_GPIO_ALT_C1 ((1<<NMK_GPIO_ALT_CX_SHIFT) | NMK_GPIO_ALT_C) | ||
| 50 | #define NMK_GPIO_ALT_C2 ((2<<NMK_GPIO_ALT_CX_SHIFT) | NMK_GPIO_ALT_C) | ||
| 51 | #define NMK_GPIO_ALT_C3 ((3<<NMK_GPIO_ALT_CX_SHIFT) | NMK_GPIO_ALT_C) | ||
| 52 | #define NMK_GPIO_ALT_C4 ((4<<NMK_GPIO_ALT_CX_SHIFT) | NMK_GPIO_ALT_C) | ||
| 53 | |||
| 54 | /* Pull up/down values */ | ||
| 55 | enum nmk_gpio_pull { | ||
| 56 | NMK_GPIO_PULL_NONE, | ||
| 57 | NMK_GPIO_PULL_UP, | ||
| 58 | NMK_GPIO_PULL_DOWN, | ||
| 59 | }; | ||
| 60 | |||
| 61 | /* Sleep mode */ | ||
| 62 | enum nmk_gpio_slpm { | ||
| 63 | NMK_GPIO_SLPM_INPUT, | ||
| 64 | NMK_GPIO_SLPM_WAKEUP_ENABLE = NMK_GPIO_SLPM_INPUT, | ||
| 65 | NMK_GPIO_SLPM_NOCHANGE, | ||
| 66 | NMK_GPIO_SLPM_WAKEUP_DISABLE = NMK_GPIO_SLPM_NOCHANGE, | ||
| 67 | }; | ||
| 68 | |||
| 69 | extern int nmk_gpio_set_slpm(int gpio, enum nmk_gpio_slpm mode); | ||
| 70 | extern int nmk_gpio_set_pull(int gpio, enum nmk_gpio_pull pull); | ||
| 71 | #ifdef CONFIG_PINCTRL_NOMADIK | ||
| 72 | extern int nmk_gpio_set_mode(int gpio, int gpio_mode); | ||
| 73 | #else | ||
| 74 | static inline int nmk_gpio_set_mode(int gpio, int gpio_mode) | ||
| 75 | { | ||
| 76 | return -ENODEV; | ||
| 77 | } | ||
| 78 | #endif | ||
| 79 | extern int nmk_gpio_get_mode(int gpio); | ||
| 80 | |||
| 81 | extern void nmk_gpio_wakeups_suspend(void); | ||
| 82 | extern void nmk_gpio_wakeups_resume(void); | ||
| 83 | |||
| 84 | extern void nmk_gpio_clocks_enable(void); | ||
| 85 | extern void nmk_gpio_clocks_disable(void); | ||
| 86 | |||
| 87 | extern void nmk_gpio_read_pull(int gpio_bank, u32 *pull_up); | ||
| 88 | |||
| 89 | /* | ||
| 90 | * Platform data to register a block: only the initial gpio/irq number. | ||
| 91 | */ | ||
| 92 | struct nmk_gpio_platform_data { | ||
| 93 | char *name; | ||
| 94 | int first_gpio; | ||
| 95 | int first_irq; | ||
| 96 | int num_gpio; | ||
| 97 | u32 (*get_secondary_status)(unsigned int bank); | ||
| 98 | void (*set_ioforce)(bool enable); | ||
| 99 | bool supports_sleepmode; | ||
| 100 | }; | ||
| 101 | |||
| 102 | #endif /* __PLAT_NOMADIK_GPIO */ | ||
diff --git a/drivers/char/hw_random/Kconfig b/drivers/char/hw_random/Kconfig index fbd9b2b850ef..5bc09eec9bbb 100644 --- a/drivers/char/hw_random/Kconfig +++ b/drivers/char/hw_random/Kconfig | |||
| @@ -216,7 +216,7 @@ config HW_RANDOM_MXC_RNGA | |||
| 216 | 216 | ||
| 217 | config HW_RANDOM_NOMADIK | 217 | config HW_RANDOM_NOMADIK |
| 218 | tristate "ST-Ericsson Nomadik Random Number Generator support" | 218 | tristate "ST-Ericsson Nomadik Random Number Generator support" |
| 219 | depends on HW_RANDOM && PLAT_NOMADIK | 219 | depends on HW_RANDOM && ARCH_NOMADIK |
| 220 | ---help--- | 220 | ---help--- |
| 221 | This driver provides kernel-side support for the Random Number | 221 | This driver provides kernel-side support for the Random Number |
| 222 | Generator hardware found on ST-Ericsson SoCs (8815 and 8500). | 222 | Generator hardware found on ST-Ericsson SoCs (8815 and 8500). |
diff --git a/drivers/clk/ux500/u8500_clk.c b/drivers/clk/ux500/u8500_clk.c index ca4a25ed844c..ab30ce87614c 100644 --- a/drivers/clk/ux500/u8500_clk.c +++ b/drivers/clk/ux500/u8500_clk.c | |||
| @@ -12,7 +12,7 @@ | |||
| 12 | #include <linux/clk-provider.h> | 12 | #include <linux/clk-provider.h> |
| 13 | #include <linux/mfd/dbx500-prcmu.h> | 13 | #include <linux/mfd/dbx500-prcmu.h> |
| 14 | #include <linux/platform_data/clk-ux500.h> | 14 | #include <linux/platform_data/clk-ux500.h> |
| 15 | 15 | #include <mach/db8500-regs.h> | |
| 16 | #include "clk.h" | 16 | #include "clk.h" |
| 17 | 17 | ||
| 18 | void u8500_clk_init(void) | 18 | void u8500_clk_init(void) |
diff --git a/drivers/clocksource/Kconfig b/drivers/clocksource/Kconfig index 6a78073c3808..c9f67de8b7b4 100644 --- a/drivers/clocksource/Kconfig +++ b/drivers/clocksource/Kconfig | |||
| @@ -22,6 +22,21 @@ config DW_APB_TIMER_OF | |||
| 22 | config ARMADA_370_XP_TIMER | 22 | config ARMADA_370_XP_TIMER |
| 23 | bool | 23 | bool |
| 24 | 24 | ||
| 25 | config CLKSRC_NOMADIK_MTU | ||
| 26 | bool | ||
| 27 | depends on (ARCH_NOMADIK || ARCH_U8500) | ||
| 28 | select CLKSRC_MMIO | ||
| 29 | help | ||
| 30 | Support for Multi Timer Unit. MTU provides access | ||
| 31 | to multiple interrupt generating programmable | ||
| 32 | 32-bit free running decrementing counters. | ||
| 33 | |||
| 34 | config CLKSRC_NOMADIK_MTU_SCHED_CLOCK | ||
| 35 | bool | ||
| 36 | depends on CLKSRC_NOMADIK_MTU | ||
| 37 | help | ||
| 38 | Use the Multi Timer Unit as the sched_clock. | ||
| 39 | |||
| 25 | config CLKSRC_DBX500_PRCMU | 40 | config CLKSRC_DBX500_PRCMU |
| 26 | bool "Clocksource PRCMU Timer" | 41 | bool "Clocksource PRCMU Timer" |
| 27 | depends on UX500_SOC_DB8500 | 42 | depends on UX500_SOC_DB8500 |
| @@ -31,7 +46,7 @@ config CLKSRC_DBX500_PRCMU | |||
| 31 | 46 | ||
| 32 | config CLKSRC_DBX500_PRCMU_SCHED_CLOCK | 47 | config CLKSRC_DBX500_PRCMU_SCHED_CLOCK |
| 33 | bool "Clocksource PRCMU Timer sched_clock" | 48 | bool "Clocksource PRCMU Timer sched_clock" |
| 34 | depends on (CLKSRC_DBX500_PRCMU && !NOMADIK_MTU_SCHED_CLOCK) | 49 | depends on (CLKSRC_DBX500_PRCMU && !CLKSRC_NOMADIK_MTU_SCHED_CLOCK) |
| 35 | default y | 50 | default y |
| 36 | help | 51 | help |
| 37 | Use the always on PRCMU Timer as sched_clock | 52 | Use the always on PRCMU Timer as sched_clock |
diff --git a/drivers/clocksource/Makefile b/drivers/clocksource/Makefile index 603be366f762..24fb888ee0a2 100644 --- a/drivers/clocksource/Makefile +++ b/drivers/clocksource/Makefile | |||
| @@ -11,6 +11,7 @@ obj-$(CONFIG_CLKBLD_I8253) += i8253.o | |||
| 11 | obj-$(CONFIG_CLKSRC_MMIO) += mmio.o | 11 | obj-$(CONFIG_CLKSRC_MMIO) += mmio.o |
| 12 | obj-$(CONFIG_DW_APB_TIMER) += dw_apb_timer.o | 12 | obj-$(CONFIG_DW_APB_TIMER) += dw_apb_timer.o |
| 13 | obj-$(CONFIG_DW_APB_TIMER_OF) += dw_apb_timer_of.o | 13 | obj-$(CONFIG_DW_APB_TIMER_OF) += dw_apb_timer_of.o |
| 14 | obj-$(CONFIG_CLKSRC_NOMADIK_MTU) += nomadik-mtu.o | ||
| 14 | obj-$(CONFIG_CLKSRC_DBX500_PRCMU) += clksrc-dbx500-prcmu.o | 15 | obj-$(CONFIG_CLKSRC_DBX500_PRCMU) += clksrc-dbx500-prcmu.o |
| 15 | obj-$(CONFIG_ARMADA_370_XP_TIMER) += time-armada-370-xp.o | 16 | obj-$(CONFIG_ARMADA_370_XP_TIMER) += time-armada-370-xp.o |
| 16 | obj-$(CONFIG_ARCH_BCM2835) += bcm2835_timer.o | 17 | obj-$(CONFIG_ARCH_BCM2835) += bcm2835_timer.o |
diff --git a/arch/arm/plat-nomadik/timer.c b/drivers/clocksource/nomadik-mtu.c index 9222e5522a43..23c780ba0d35 100644 --- a/arch/arm/plat-nomadik/timer.c +++ b/drivers/clocksource/nomadik-mtu.c | |||
| @@ -1,6 +1,4 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * linux/arch/arm/plat-nomadik/timer.c | ||
| 3 | * | ||
| 4 | * Copyright (C) 2008 STMicroelectronics | 2 | * Copyright (C) 2008 STMicroelectronics |
| 5 | * Copyright (C) 2010 Alessandro Rubini | 3 | * Copyright (C) 2010 Alessandro Rubini |
| 6 | * Copyright (C) 2010 Linus Walleij for ST-Ericsson | 4 | * Copyright (C) 2010 Linus Walleij for ST-Ericsson |
| @@ -14,9 +12,11 @@ | |||
| 14 | #include <linux/irq.h> | 12 | #include <linux/irq.h> |
| 15 | #include <linux/io.h> | 13 | #include <linux/io.h> |
| 16 | #include <linux/clockchips.h> | 14 | #include <linux/clockchips.h> |
| 15 | #include <linux/clocksource.h> | ||
| 17 | #include <linux/clk.h> | 16 | #include <linux/clk.h> |
| 18 | #include <linux/jiffies.h> | 17 | #include <linux/jiffies.h> |
| 19 | #include <linux/err.h> | 18 | #include <linux/err.h> |
| 19 | #include <linux/platform_data/clocksource-nomadik-mtu.h> | ||
| 20 | #include <asm/mach/time.h> | 20 | #include <asm/mach/time.h> |
| 21 | #include <asm/sched_clock.h> | 21 | #include <asm/sched_clock.h> |
| 22 | 22 | ||
| @@ -174,7 +174,7 @@ void nmdk_clksrc_reset(void) | |||
| 174 | mtu_base + MTU_CR(0)); | 174 | mtu_base + MTU_CR(0)); |
| 175 | } | 175 | } |
| 176 | 176 | ||
| 177 | void __init nmdk_timer_init(void __iomem *base) | 177 | void __init nmdk_timer_init(void __iomem *base, int irq) |
| 178 | { | 178 | { |
| 179 | unsigned long rate; | 179 | unsigned long rate; |
| 180 | struct clk *clk0; | 180 | struct clk *clk0; |
| @@ -201,7 +201,8 @@ void __init nmdk_timer_init(void __iomem *base) | |||
| 201 | clk_prescale = MTU_CRn_PRESCALE_1; | 201 | clk_prescale = MTU_CRn_PRESCALE_1; |
| 202 | } | 202 | } |
| 203 | 203 | ||
| 204 | nmdk_cycle = (rate + HZ/2) / HZ; | 204 | /* Cycles for periodic mode */ |
| 205 | nmdk_cycle = DIV_ROUND_CLOSEST(rate, HZ); | ||
| 205 | 206 | ||
| 206 | 207 | ||
| 207 | /* Timer 0 is the free running clocksource */ | 208 | /* Timer 0 is the free running clocksource */ |
| @@ -217,7 +218,7 @@ void __init nmdk_timer_init(void __iomem *base) | |||
| 217 | #endif | 218 | #endif |
| 218 | 219 | ||
| 219 | /* Timer 1 is used for events, register irq and clockevents */ | 220 | /* Timer 1 is used for events, register irq and clockevents */ |
| 220 | setup_irq(IRQ_MTU0, &nmdk_timer_irq); | 221 | setup_irq(irq, &nmdk_timer_irq); |
| 221 | nmdk_clkevt.cpumask = cpumask_of(0); | 222 | nmdk_clkevt.cpumask = cpumask_of(0); |
| 222 | clockevents_config_and_register(&nmdk_clkevt, rate, 2, 0xffffffffU); | 223 | clockevents_config_and_register(&nmdk_clkevt, rate, 2, 0xffffffffU); |
| 223 | } | 224 | } |
diff --git a/drivers/crypto/ux500/cryp/cryp_core.c b/drivers/crypto/ux500/cryp/cryp_core.c index bc615cc56266..8bc5fef07e7a 100644 --- a/drivers/crypto/ux500/cryp/cryp_core.c +++ b/drivers/crypto/ux500/cryp/cryp_core.c | |||
| @@ -23,6 +23,7 @@ | |||
| 23 | #include <linux/platform_device.h> | 23 | #include <linux/platform_device.h> |
| 24 | #include <linux/regulator/consumer.h> | 24 | #include <linux/regulator/consumer.h> |
| 25 | #include <linux/semaphore.h> | 25 | #include <linux/semaphore.h> |
| 26 | #include <linux/platform_data/dma-ste-dma40.h> | ||
| 26 | 27 | ||
| 27 | #include <crypto/aes.h> | 28 | #include <crypto/aes.h> |
| 28 | #include <crypto/algapi.h> | 29 | #include <crypto/algapi.h> |
| @@ -30,8 +31,6 @@ | |||
| 30 | #include <crypto/des.h> | 31 | #include <crypto/des.h> |
| 31 | #include <crypto/scatterwalk.h> | 32 | #include <crypto/scatterwalk.h> |
| 32 | 33 | ||
| 33 | #include <plat/ste_dma40.h> | ||
| 34 | |||
| 35 | #include <linux/platform_data/crypto-ux500.h> | 34 | #include <linux/platform_data/crypto-ux500.h> |
| 36 | #include <mach/hardware.h> | 35 | #include <mach/hardware.h> |
| 37 | 36 | ||
diff --git a/drivers/dma/ste_dma40.c b/drivers/dma/ste_dma40.c index ae55091c2272..23c5573e62dd 100644 --- a/drivers/dma/ste_dma40.c +++ b/drivers/dma/ste_dma40.c | |||
| @@ -19,8 +19,7 @@ | |||
| 19 | #include <linux/err.h> | 19 | #include <linux/err.h> |
| 20 | #include <linux/amba/bus.h> | 20 | #include <linux/amba/bus.h> |
| 21 | #include <linux/regulator/consumer.h> | 21 | #include <linux/regulator/consumer.h> |
| 22 | 22 | #include <linux/platform_data/dma-ste-dma40.h> | |
| 23 | #include <plat/ste_dma40.h> | ||
| 24 | 23 | ||
| 25 | #include "dmaengine.h" | 24 | #include "dmaengine.h" |
| 26 | #include "ste_dma40_ll.h" | 25 | #include "ste_dma40_ll.h" |
diff --git a/drivers/dma/ste_dma40_ll.c b/drivers/dma/ste_dma40_ll.c index cad9e1daedff..851ad56e8409 100644 --- a/drivers/dma/ste_dma40_ll.c +++ b/drivers/dma/ste_dma40_ll.c | |||
| @@ -6,7 +6,7 @@ | |||
| 6 | */ | 6 | */ |
| 7 | 7 | ||
| 8 | #include <linux/kernel.h> | 8 | #include <linux/kernel.h> |
| 9 | #include <plat/ste_dma40.h> | 9 | #include <linux/platform_data/dma-ste-dma40.h> |
| 10 | 10 | ||
| 11 | #include "ste_dma40_ll.h" | 11 | #include "ste_dma40_ll.h" |
| 12 | 12 | ||
diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig index de0874054e9f..77629d33f03f 100644 --- a/drivers/input/keyboard/Kconfig +++ b/drivers/input/keyboard/Kconfig | |||
| @@ -409,7 +409,7 @@ config KEYBOARD_NEWTON | |||
| 409 | 409 | ||
| 410 | config KEYBOARD_NOMADIK | 410 | config KEYBOARD_NOMADIK |
| 411 | tristate "ST-Ericsson Nomadik SKE keyboard" | 411 | tristate "ST-Ericsson Nomadik SKE keyboard" |
| 412 | depends on PLAT_NOMADIK | 412 | depends on (ARCH_NOMADIK || ARCH_U8500) |
| 413 | select INPUT_MATRIXKMAP | 413 | select INPUT_MATRIXKMAP |
| 414 | help | 414 | help |
| 415 | Say Y here if you want to use a keypad provided on the SKE controller | 415 | Say Y here if you want to use a keypad provided on the SKE controller |
diff --git a/drivers/mfd/ab8500-core.c b/drivers/mfd/ab8500-core.c index 1667c77b5cde..547fff4901ea 100644 --- a/drivers/mfd/ab8500-core.c +++ b/drivers/mfd/ab8500-core.c | |||
| @@ -565,15 +565,10 @@ static int ab8500_irq_init(struct ab8500 *ab8500, struct device_node *np) | |||
| 565 | else | 565 | else |
| 566 | num_irqs = AB8500_NR_IRQS; | 566 | num_irqs = AB8500_NR_IRQS; |
| 567 | 567 | ||
| 568 | if (ab8500->irq_base) { | 568 | /* If ->irq_base is zero this will give a linear mapping */ |
| 569 | ab8500->domain = irq_domain_add_legacy( | 569 | ab8500->domain = irq_domain_add_simple(NULL, |
| 570 | NULL, num_irqs, ab8500->irq_base, | 570 | num_irqs, ab8500->irq_base, |
| 571 | 0, &ab8500_irq_ops, ab8500); | 571 | &ab8500_irq_ops, ab8500); |
| 572 | } | ||
| 573 | else { | ||
| 574 | ab8500->domain = irq_domain_add_linear( | ||
| 575 | np, num_irqs, &ab8500_irq_ops, ab8500); | ||
| 576 | } | ||
| 577 | 572 | ||
| 578 | if (!ab8500->domain) { | 573 | if (!ab8500->domain) { |
| 579 | dev_err(ab8500->dev, "Failed to create irqdomain\n"); | 574 | dev_err(ab8500->dev, "Failed to create irqdomain\n"); |
diff --git a/drivers/mfd/db8500-prcmu.c b/drivers/mfd/db8500-prcmu.c index 00b8b0f3dfb6..cea29ba6ce9a 100644 --- a/drivers/mfd/db8500-prcmu.c +++ b/drivers/mfd/db8500-prcmu.c | |||
| @@ -2697,9 +2697,15 @@ static struct irq_domain_ops db8500_irq_ops = { | |||
| 2697 | 2697 | ||
| 2698 | static int db8500_irq_init(struct device_node *np) | 2698 | static int db8500_irq_init(struct device_node *np) |
| 2699 | { | 2699 | { |
| 2700 | db8500_irq_domain = irq_domain_add_legacy( | 2700 | int irq_base = -1; |
| 2701 | np, NUM_PRCMU_WAKEUPS, IRQ_PRCMU_BASE, | 2701 | |
| 2702 | 0, &db8500_irq_ops, NULL); | 2702 | /* In the device tree case, just take some IRQs */ |
| 2703 | if (!np) | ||
| 2704 | irq_base = IRQ_PRCMU_BASE; | ||
| 2705 | |||
| 2706 | db8500_irq_domain = irq_domain_add_simple( | ||
| 2707 | np, NUM_PRCMU_WAKEUPS, irq_base, | ||
| 2708 | &db8500_irq_ops, NULL); | ||
| 2703 | 2709 | ||
| 2704 | if (!db8500_irq_domain) { | 2710 | if (!db8500_irq_domain) { |
| 2705 | pr_err("Failed to create irqdomain\n"); | 2711 | pr_err("Failed to create irqdomain\n"); |
diff --git a/drivers/mtd/nand/Kconfig b/drivers/mtd/nand/Kconfig index 4883139460be..e4f57482f0ae 100644 --- a/drivers/mtd/nand/Kconfig +++ b/drivers/mtd/nand/Kconfig | |||
| @@ -559,7 +559,7 @@ config MTD_NAND_JZ4740 | |||
| 559 | 559 | ||
| 560 | config MTD_NAND_FSMC | 560 | config MTD_NAND_FSMC |
| 561 | tristate "Support for NAND on ST Micros FSMC" | 561 | tristate "Support for NAND on ST Micros FSMC" |
| 562 | depends on PLAT_SPEAR || PLAT_NOMADIK || MACH_U300 | 562 | depends on PLAT_SPEAR || ARCH_NOMADIK || ARCH_U8500 || MACH_U300 |
| 563 | help | 563 | help |
| 564 | Enables support for NAND Flash chips on the ST Microelectronics | 564 | Enables support for NAND Flash chips on the ST Microelectronics |
| 565 | Flexible Static Memory Controller (FSMC) | 565 | Flexible Static Memory Controller (FSMC) |
diff --git a/drivers/pinctrl/pinctrl-nomadik.c b/drivers/pinctrl/pinctrl-nomadik.c index cf82d9ce4dee..3ad23fb042b4 100644 --- a/drivers/pinctrl/pinctrl-nomadik.c +++ b/drivers/pinctrl/pinctrl-nomadik.c | |||
| @@ -44,12 +44,9 @@ static inline u32 prcmu_read(unsigned int reg) { | |||
| 44 | static inline void prcmu_write(unsigned int reg, u32 value) {} | 44 | static inline void prcmu_write(unsigned int reg, u32 value) {} |
| 45 | static inline void prcmu_write_masked(unsigned int reg, u32 mask, u32 value) {} | 45 | static inline void prcmu_write_masked(unsigned int reg, u32 mask, u32 value) {} |
| 46 | #endif | 46 | #endif |
| 47 | 47 | #include <linux/platform_data/pinctrl-nomadik.h> | |
| 48 | #include <asm/mach/irq.h> | 48 | #include <asm/mach/irq.h> |
| 49 | 49 | #include <mach/irqs.h> | |
| 50 | #include <plat/pincfg.h> | ||
| 51 | #include <plat/gpio-nomadik.h> | ||
| 52 | |||
| 53 | #include "pinctrl-nomadik.h" | 50 | #include "pinctrl-nomadik.h" |
| 54 | 51 | ||
| 55 | /* | 52 | /* |
| @@ -60,8 +57,6 @@ static inline void prcmu_write_masked(unsigned int reg, u32 mask, u32 value) {} | |||
| 60 | * Symbols in this file are called "nmk_gpio" for "nomadik gpio" | 57 | * Symbols in this file are called "nmk_gpio" for "nomadik gpio" |
| 61 | */ | 58 | */ |
| 62 | 59 | ||
| 63 | #define NMK_GPIO_PER_CHIP 32 | ||
| 64 | |||
| 65 | struct nmk_gpio_chip { | 60 | struct nmk_gpio_chip { |
| 66 | struct gpio_chip chip; | 61 | struct gpio_chip chip; |
| 67 | struct irq_domain *domain; | 62 | struct irq_domain *domain; |
| @@ -536,7 +531,7 @@ static int __nmk_config_pins(pin_cfg_t *cfgs, int num, bool sleep) | |||
| 536 | * and its sleep mode based on the specified configuration. The @cfg is | 531 | * and its sleep mode based on the specified configuration. The @cfg is |
| 537 | * usually one of the SoC specific macros defined in mach/<soc>-pins.h. These | 532 | * usually one of the SoC specific macros defined in mach/<soc>-pins.h. These |
| 538 | * are constructed using, and can be further enhanced with, the macros in | 533 | * are constructed using, and can be further enhanced with, the macros in |
| 539 | * plat/pincfg.h. | 534 | * <linux/platform_data/pinctrl-nomadik.h> |
| 540 | * | 535 | * |
| 541 | * If a pin's mode is set to GPIO, it is configured as an input to avoid | 536 | * If a pin's mode is set to GPIO, it is configured as an input to avoid |
| 542 | * side-effects. The gpio can be manipulated later using standard GPIO API | 537 | * side-effects. The gpio can be manipulated later using standard GPIO API |
diff --git a/drivers/pinctrl/pinctrl-nomadik.h b/drivers/pinctrl/pinctrl-nomadik.h index eef316e979a0..bcd4191e10ea 100644 --- a/drivers/pinctrl/pinctrl-nomadik.h +++ b/drivers/pinctrl/pinctrl-nomadik.h | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | #ifndef PINCTRL_PINCTRL_NOMADIK_H | 1 | #ifndef PINCTRL_PINCTRL_NOMADIK_H |
| 2 | #define PINCTRL_PINCTRL_NOMADIK_H | 2 | #define PINCTRL_PINCTRL_NOMADIK_H |
| 3 | 3 | ||
| 4 | #include <plat/gpio-nomadik.h> | 4 | #include <linux/platform_data/pinctrl-nomadik.h> |
| 5 | 5 | ||
| 6 | /* Package definitions */ | 6 | /* Package definitions */ |
| 7 | #define PINCTRL_NMK_STN8815 0 | 7 | #define PINCTRL_NMK_STN8815 0 |
diff --git a/arch/arm/plat-nomadik/include/plat/mtu.h b/include/linux/platform_data/clocksource-nomadik-mtu.h index 582641f3dc01..80088973b734 100644 --- a/arch/arm/plat-nomadik/include/plat/mtu.h +++ b/include/linux/platform_data/clocksource-nomadik-mtu.h | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | #ifndef __PLAT_MTU_H | 1 | #ifndef __PLAT_MTU_H |
| 2 | #define __PLAT_MTU_H | 2 | #define __PLAT_MTU_H |
| 3 | 3 | ||
| 4 | void nmdk_timer_init(void __iomem *base); | 4 | void nmdk_timer_init(void __iomem *base, int irq); |
| 5 | void nmdk_clkevt_reset(void); | 5 | void nmdk_clkevt_reset(void); |
| 6 | void nmdk_clksrc_reset(void); | 6 | void nmdk_clksrc_reset(void); |
| 7 | 7 | ||
diff --git a/include/linux/platform_data/crypto-ux500.h b/include/linux/platform_data/crypto-ux500.h index 5b2d0817e26a..94df96d9a336 100644 --- a/include/linux/platform_data/crypto-ux500.h +++ b/include/linux/platform_data/crypto-ux500.h | |||
| @@ -7,7 +7,7 @@ | |||
| 7 | #ifndef _CRYPTO_UX500_H | 7 | #ifndef _CRYPTO_UX500_H |
| 8 | #define _CRYPTO_UX500_H | 8 | #define _CRYPTO_UX500_H |
| 9 | #include <linux/dmaengine.h> | 9 | #include <linux/dmaengine.h> |
| 10 | #include <plat/ste_dma40.h> | 10 | #include <linux/platform_data/dma-ste-dma40.h> |
| 11 | 11 | ||
| 12 | struct hash_platform_data { | 12 | struct hash_platform_data { |
| 13 | void *mem_to_engine; | 13 | void *mem_to_engine; |
diff --git a/arch/arm/plat-nomadik/include/plat/ste_dma40.h b/include/linux/platform_data/dma-ste-dma40.h index 9ff93b065686..9ff93b065686 100644 --- a/arch/arm/plat-nomadik/include/plat/ste_dma40.h +++ b/include/linux/platform_data/dma-ste-dma40.h | |||
diff --git a/arch/arm/plat-nomadik/include/plat/pincfg.h b/include/linux/platform_data/pinctrl-nomadik.h index 3b8ec60af351..f73b2f0c55b7 100644 --- a/arch/arm/plat-nomadik/include/plat/pincfg.h +++ b/include/linux/platform_data/pinctrl-nomadik.h | |||
| @@ -1,16 +1,17 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (C) ST-Ericsson SA 2010 | 2 | * Structures and registers for GPIO access in the Nomadik SoC |
| 3 | * | 3 | * |
| 4 | * License terms: GNU General Public License, version 2 | 4 | * Copyright (C) 2008 STMicroelectronics |
| 5 | * Author: Rabin Vincent <rabin.vincent@stericsson.com> for ST-Ericsson | 5 | * Author: Prafulla WADASKAR <prafulla.wadaskar@st.com> |
| 6 | * Copyright (C) 2009 Alessandro Rubini <rubini@unipv.it> | ||
| 6 | * | 7 | * |
| 7 | * Based on arch/arm/mach-pxa/include/mach/mfp.h: | 8 | * This program is free software; you can redistribute it and/or modify |
| 8 | * Copyright (C) 2007 Marvell International Ltd. | 9 | * it under the terms of the GNU General Public License version 2 as |
| 9 | * eric miao <eric.miao@marvell.com> | 10 | * published by the Free Software Foundation. |
| 10 | */ | 11 | */ |
| 11 | 12 | ||
| 12 | #ifndef __PLAT_PINCFG_H | 13 | #ifndef __PLAT_NOMADIK_GPIO |
| 13 | #define __PLAT_PINCFG_H | 14 | #define __PLAT_NOMADIK_GPIO |
| 14 | 15 | ||
| 15 | /* | 16 | /* |
| 16 | * pin configurations are represented by 32-bit integers: | 17 | * pin configurations are represented by 32-bit integers: |
| @@ -166,8 +167,100 @@ typedef unsigned long pin_cfg_t; | |||
| 166 | (PIN_CFG_DEFAULT |\ | 167 | (PIN_CFG_DEFAULT |\ |
| 167 | (PIN_NUM(num) | PIN_##alt | PIN_OUTPUT_##val)) | 168 | (PIN_NUM(num) | PIN_##alt | PIN_OUTPUT_##val)) |
| 168 | 169 | ||
| 170 | /* | ||
| 171 | * "nmk_gpio" and "NMK_GPIO" stand for "Nomadik GPIO", leaving | ||
| 172 | * the "gpio" namespace for generic and cross-machine functions | ||
| 173 | */ | ||
| 174 | |||
| 175 | #define GPIO_BLOCK_SHIFT 5 | ||
| 176 | #define NMK_GPIO_PER_CHIP (1 << GPIO_BLOCK_SHIFT) | ||
| 177 | |||
| 178 | /* Register in the logic block */ | ||
| 179 | #define NMK_GPIO_DAT 0x00 | ||
| 180 | #define NMK_GPIO_DATS 0x04 | ||
| 181 | #define NMK_GPIO_DATC 0x08 | ||
| 182 | #define NMK_GPIO_PDIS 0x0c | ||
| 183 | #define NMK_GPIO_DIR 0x10 | ||
| 184 | #define NMK_GPIO_DIRS 0x14 | ||
| 185 | #define NMK_GPIO_DIRC 0x18 | ||
| 186 | #define NMK_GPIO_SLPC 0x1c | ||
| 187 | #define NMK_GPIO_AFSLA 0x20 | ||
| 188 | #define NMK_GPIO_AFSLB 0x24 | ||
| 189 | #define NMK_GPIO_LOWEMI 0x28 | ||
| 190 | |||
| 191 | #define NMK_GPIO_RIMSC 0x40 | ||
| 192 | #define NMK_GPIO_FIMSC 0x44 | ||
| 193 | #define NMK_GPIO_IS 0x48 | ||
| 194 | #define NMK_GPIO_IC 0x4c | ||
| 195 | #define NMK_GPIO_RWIMSC 0x50 | ||
| 196 | #define NMK_GPIO_FWIMSC 0x54 | ||
| 197 | #define NMK_GPIO_WKS 0x58 | ||
| 198 | /* These appear in DB8540 and later ASICs */ | ||
| 199 | #define NMK_GPIO_EDGELEVEL 0x5C | ||
| 200 | #define NMK_GPIO_LEVEL 0x60 | ||
| 201 | |||
| 202 | /* Alternate functions: function C is set in hw by setting both A and B */ | ||
| 203 | #define NMK_GPIO_ALT_GPIO 0 | ||
| 204 | #define NMK_GPIO_ALT_A 1 | ||
| 205 | #define NMK_GPIO_ALT_B 2 | ||
| 206 | #define NMK_GPIO_ALT_C (NMK_GPIO_ALT_A | NMK_GPIO_ALT_B) | ||
| 207 | |||
| 208 | #define NMK_GPIO_ALT_CX_SHIFT 2 | ||
| 209 | #define NMK_GPIO_ALT_C1 ((1<<NMK_GPIO_ALT_CX_SHIFT) | NMK_GPIO_ALT_C) | ||
| 210 | #define NMK_GPIO_ALT_C2 ((2<<NMK_GPIO_ALT_CX_SHIFT) | NMK_GPIO_ALT_C) | ||
| 211 | #define NMK_GPIO_ALT_C3 ((3<<NMK_GPIO_ALT_CX_SHIFT) | NMK_GPIO_ALT_C) | ||
| 212 | #define NMK_GPIO_ALT_C4 ((4<<NMK_GPIO_ALT_CX_SHIFT) | NMK_GPIO_ALT_C) | ||
| 213 | |||
| 214 | /* Pull up/down values */ | ||
| 215 | enum nmk_gpio_pull { | ||
| 216 | NMK_GPIO_PULL_NONE, | ||
| 217 | NMK_GPIO_PULL_UP, | ||
| 218 | NMK_GPIO_PULL_DOWN, | ||
| 219 | }; | ||
| 220 | |||
| 221 | /* Sleep mode */ | ||
| 222 | enum nmk_gpio_slpm { | ||
| 223 | NMK_GPIO_SLPM_INPUT, | ||
| 224 | NMK_GPIO_SLPM_WAKEUP_ENABLE = NMK_GPIO_SLPM_INPUT, | ||
| 225 | NMK_GPIO_SLPM_NOCHANGE, | ||
| 226 | NMK_GPIO_SLPM_WAKEUP_DISABLE = NMK_GPIO_SLPM_NOCHANGE, | ||
| 227 | }; | ||
| 228 | |||
| 229 | /* Older deprecated pin config API that should go away soon */ | ||
| 169 | extern int nmk_config_pin(pin_cfg_t cfg, bool sleep); | 230 | extern int nmk_config_pin(pin_cfg_t cfg, bool sleep); |
| 170 | extern int nmk_config_pins(pin_cfg_t *cfgs, int num); | 231 | extern int nmk_config_pins(pin_cfg_t *cfgs, int num); |
| 171 | extern int nmk_config_pins_sleep(pin_cfg_t *cfgs, int num); | 232 | extern int nmk_config_pins_sleep(pin_cfg_t *cfgs, int num); |
| 172 | 233 | extern int nmk_gpio_set_slpm(int gpio, enum nmk_gpio_slpm mode); | |
| 234 | extern int nmk_gpio_set_pull(int gpio, enum nmk_gpio_pull pull); | ||
| 235 | #ifdef CONFIG_PINCTRL_NOMADIK | ||
| 236 | extern int nmk_gpio_set_mode(int gpio, int gpio_mode); | ||
| 237 | #else | ||
| 238 | static inline int nmk_gpio_set_mode(int gpio, int gpio_mode) | ||
| 239 | { | ||
| 240 | return -ENODEV; | ||
| 241 | } | ||
| 173 | #endif | 242 | #endif |
| 243 | extern int nmk_gpio_get_mode(int gpio); | ||
| 244 | |||
| 245 | extern void nmk_gpio_wakeups_suspend(void); | ||
| 246 | extern void nmk_gpio_wakeups_resume(void); | ||
| 247 | |||
| 248 | extern void nmk_gpio_clocks_enable(void); | ||
| 249 | extern void nmk_gpio_clocks_disable(void); | ||
| 250 | |||
| 251 | extern void nmk_gpio_read_pull(int gpio_bank, u32 *pull_up); | ||
| 252 | |||
| 253 | /* | ||
| 254 | * Platform data to register a block: only the initial gpio/irq number. | ||
| 255 | */ | ||
| 256 | struct nmk_gpio_platform_data { | ||
| 257 | char *name; | ||
| 258 | int first_gpio; | ||
| 259 | int first_irq; | ||
| 260 | int num_gpio; | ||
| 261 | u32 (*get_secondary_status)(unsigned int bank); | ||
| 262 | void (*set_ioforce)(bool enable); | ||
| 263 | bool supports_sleepmode; | ||
| 264 | }; | ||
| 265 | |||
| 266 | #endif /* __PLAT_NOMADIK_GPIO */ | ||
diff --git a/sound/soc/ux500/ux500_pcm.c b/sound/soc/ux500/ux500_pcm.c index 1a04e248453c..b55b79f7536c 100644 --- a/sound/soc/ux500/ux500_pcm.c +++ b/sound/soc/ux500/ux500_pcm.c | |||
| @@ -18,8 +18,7 @@ | |||
| 18 | #include <linux/dma-mapping.h> | 18 | #include <linux/dma-mapping.h> |
| 19 | #include <linux/dmaengine.h> | 19 | #include <linux/dmaengine.h> |
| 20 | #include <linux/slab.h> | 20 | #include <linux/slab.h> |
| 21 | 21 | #include <linux/platform_data/dma-ste-dma40.h> | |
| 22 | #include <plat/ste_dma40.h> | ||
| 23 | 22 | ||
| 24 | #include <sound/pcm.h> | 23 | #include <sound/pcm.h> |
| 25 | #include <sound/pcm_params.h> | 24 | #include <sound/pcm_params.h> |
