diff options
author | Olof Johansson <olof@lixom.net> | 2012-11-06 10:47:09 -0500 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2012-11-06 10:47:09 -0500 |
commit | f75ed2d39562e19e4d1896c07e7f091515c6d11d (patch) | |
tree | 7201003953c26912b7dd0b39f2a893b7f01e6f81 | |
parent | c2d8c259bfce056437e8dbc4b048944050f9b567 (diff) | |
parent | c3b9d1db23c4ebd4d8a0964ebcf5f27d4eb8fa3f (diff) |
Merge tag 'kill-plat-sparse-irq' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl into next/multiplatform
From Linus Walleij:
This patchset will:
- Move all remaining headers out of arch/arm/plat-nomadik/include/plat
out to e.g. include/linux/platform_data
- Delete arch/arm/plat-nomadik
- Convert Nomadik and Ux500 to SPARSE_IRQ
* tag 'kill-plat-sparse-irq' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
ARM: plat-nomadik: convert platforms to SPARSE_IRQ
mfd/db8500-prcmu: use the irq_domain_add_simple()
mfd/ab8500-core: use irq_domain_add_simple()
ARM: plat-nomadik: move MTU, kill plat-nomadik
ARM: plat-nomadik: move DMA40 header to <linux/platform_data>
ARM: plat-nomadik: use DIV_ROUND_CLOSEST()
ARM: plat-nomadik: pass IRQ to timer driver
clk/ux500: explicitly include register header
pinctrl/nomadik: merge old pincfg header
pinctrl/nomadik: move the platform data header
ARM: plat-nomadik: move NMK_GPIO_PER_CHIP into gpio-nomadik.h
ARM: plat-nomadik: Introduce new DB8540 GPIO registers
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> |