aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOlof Johansson <olof@lixom.net>2012-11-06 10:47:09 -0500
committerOlof Johansson <olof@lixom.net>2012-11-06 10:47:09 -0500
commitf75ed2d39562e19e4d1896c07e7f091515c6d11d (patch)
tree7201003953c26912b7dd0b39f2a893b7f01e6f81
parentc2d8c259bfce056437e8dbc4b048944050f9b567 (diff)
parentc3b9d1db23c4ebd4d8a0964ebcf5f27d4eb8fa3f (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
-rw-r--r--arch/arm/Kconfig3
-rw-r--r--arch/arm/Makefile1
-rw-r--r--arch/arm/mach-nomadik/Kconfig2
-rw-r--r--arch/arm/mach-nomadik/board-nhk8815.c13
-rw-r--r--arch/arm/mach-nomadik/cpu-8815.c2
-rw-r--r--arch/arm/mach-nomadik/i2c-8815nhk.c3
-rw-r--r--arch/arm/mach-nomadik/include/mach/irqs.h2
-rw-r--r--arch/arm/mach-ux500/Kconfig2
-rw-r--r--arch/arm/mach-ux500/board-mop500-audio.c6
-rw-r--r--arch/arm/mach-ux500/board-mop500-pins.c3
-rw-r--r--arch/arm/mach-ux500/board-mop500-sdi.c2
-rw-r--r--arch/arm/mach-ux500/board-mop500.c6
-rw-r--r--arch/arm/mach-ux500/cpu-db8500.c5
-rw-r--r--arch/arm/mach-ux500/devices-common.c4
-rw-r--r--arch/arm/mach-ux500/devices-db8500.c4
-rw-r--r--arch/arm/mach-ux500/devices-db8500.h1
-rw-r--r--arch/arm/mach-ux500/include/mach/irqs.h2
-rw-r--r--arch/arm/mach-ux500/include/mach/msp.h2
-rw-r--r--arch/arm/mach-ux500/timer.c5
-rw-r--r--arch/arm/mach-ux500/usb.c4
-rw-r--r--arch/arm/plat-nomadik/Kconfig29
-rw-r--r--arch/arm/plat-nomadik/Makefile5
-rw-r--r--arch/arm/plat-nomadik/include/plat/gpio-nomadik.h102
-rw-r--r--drivers/char/hw_random/Kconfig2
-rw-r--r--drivers/clk/ux500/u8500_clk.c2
-rw-r--r--drivers/clocksource/Kconfig17
-rw-r--r--drivers/clocksource/Makefile1
-rw-r--r--drivers/clocksource/nomadik-mtu.c (renamed from arch/arm/plat-nomadik/timer.c)11
-rw-r--r--drivers/crypto/ux500/cryp/cryp_core.c3
-rw-r--r--drivers/dma/ste_dma40.c3
-rw-r--r--drivers/dma/ste_dma40_ll.c2
-rw-r--r--drivers/input/keyboard/Kconfig2
-rw-r--r--drivers/mfd/ab8500-core.c13
-rw-r--r--drivers/mfd/db8500-prcmu.c12
-rw-r--r--drivers/mtd/nand/Kconfig2
-rw-r--r--drivers/pinctrl/pinctrl-nomadik.c11
-rw-r--r--drivers/pinctrl/pinctrl-nomadik.h2
-rw-r--r--include/linux/platform_data/clocksource-nomadik-mtu.h (renamed from arch/arm/plat-nomadik/include/plat/mtu.h)2
-rw-r--r--include/linux/platform_data/crypto-ux500.h2
-rw-r--r--include/linux/platform_data/dma-ste-dma40.h (renamed from arch/arm/plat-nomadik/include/plat/ste_dma40.h)0
-rw-r--r--include/linux/platform_data/pinctrl-nomadik.h (renamed from arch/arm/plat-nomadik/include/plat/pincfg.h)111
-rw-r--r--sound/soc/ux500/ux500_pcm.c3
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"
1067source "arch/arm/mach-netx/Kconfig" 1069source "arch/arm/mach-netx/Kconfig"
1068 1070
1069source "arch/arm/mach-nomadik/Kconfig" 1071source "arch/arm/mach-nomadik/Kconfig"
1070source "arch/arm/plat-nomadik/Kconfig"
1071 1072
1072source "arch/arm/plat-omap/Kconfig" 1073source "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
201plat-$(CONFIG_ARCH_S3C64XX) += samsung 201plat-$(CONFIG_ARCH_S3C64XX) += samsung
202plat-$(CONFIG_ARCH_ZYNQ) += versatile 202plat-$(CONFIG_ARCH_ZYNQ) += versatile
203plat-$(CONFIG_PLAT_IOP) += iop 203plat-$(CONFIG_PLAT_IOP) += iop
204plat-$(CONFIG_PLAT_NOMADIK) += nomadik
205plat-$(CONFIG_PLAT_ORION) += orion 204plat-$(CONFIG_PLAT_ORION) += orion
206plat-$(CONFIG_PLAT_PXA) += pxa 205plat-$(CONFIG_PLAT_PXA) += pxa
207plat-$(CONFIG_PLAT_S3C24XX) += s3c24xx samsung 206plat-$(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
5config MACH_NOMADIK_8815NHK 5config 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
10endmenu 10endmenu
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
267static struct sys_timer nomadik_timer = { 264static 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
13struct ske_keypad_platform_data; 14struct 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
13enum msp_i2s_id { 13enum 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
5config 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
14if PLAT_NOMADIK
15
16config 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
23config NOMADIK_MTU_SCHED_CLOCK
24 bool
25 depends on HAS_MTU
26 help
27 Use the Multi Timer Unit as the sched_clock.
28
29endif
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
5obj-$(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 */
55enum nmk_gpio_pull {
56 NMK_GPIO_PULL_NONE,
57 NMK_GPIO_PULL_UP,
58 NMK_GPIO_PULL_DOWN,
59};
60
61/* Sleep mode */
62enum 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
69extern int nmk_gpio_set_slpm(int gpio, enum nmk_gpio_slpm mode);
70extern int nmk_gpio_set_pull(int gpio, enum nmk_gpio_pull pull);
71#ifdef CONFIG_PINCTRL_NOMADIK
72extern int nmk_gpio_set_mode(int gpio, int gpio_mode);
73#else
74static inline int nmk_gpio_set_mode(int gpio, int gpio_mode)
75{
76 return -ENODEV;
77}
78#endif
79extern int nmk_gpio_get_mode(int gpio);
80
81extern void nmk_gpio_wakeups_suspend(void);
82extern void nmk_gpio_wakeups_resume(void);
83
84extern void nmk_gpio_clocks_enable(void);
85extern void nmk_gpio_clocks_disable(void);
86
87extern 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 */
92struct 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
217config HW_RANDOM_NOMADIK 217config 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
18void u8500_clk_init(void) 18void 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
22config ARMADA_370_XP_TIMER 22config ARMADA_370_XP_TIMER
23 bool 23 bool
24 24
25config 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
34config 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
25config CLKSRC_DBX500_PRCMU 40config 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
32config CLKSRC_DBX500_PRCMU_SCHED_CLOCK 47config 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
11obj-$(CONFIG_CLKSRC_MMIO) += mmio.o 11obj-$(CONFIG_CLKSRC_MMIO) += mmio.o
12obj-$(CONFIG_DW_APB_TIMER) += dw_apb_timer.o 12obj-$(CONFIG_DW_APB_TIMER) += dw_apb_timer.o
13obj-$(CONFIG_DW_APB_TIMER_OF) += dw_apb_timer_of.o 13obj-$(CONFIG_DW_APB_TIMER_OF) += dw_apb_timer_of.o
14obj-$(CONFIG_CLKSRC_NOMADIK_MTU) += nomadik-mtu.o
14obj-$(CONFIG_CLKSRC_DBX500_PRCMU) += clksrc-dbx500-prcmu.o 15obj-$(CONFIG_CLKSRC_DBX500_PRCMU) += clksrc-dbx500-prcmu.o
15obj-$(CONFIG_ARMADA_370_XP_TIMER) += time-armada-370-xp.o 16obj-$(CONFIG_ARMADA_370_XP_TIMER) += time-armada-370-xp.o
16obj-$(CONFIG_ARCH_BCM2835) += bcm2835_timer.o 17obj-$(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
177void __init nmdk_timer_init(void __iomem *base) 177void __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
410config KEYBOARD_NOMADIK 410config 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
2698static int db8500_irq_init(struct device_node *np) 2698static 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
560config MTD_NAND_FSMC 560config 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) {
44static inline void prcmu_write(unsigned int reg, u32 value) {} 44static inline void prcmu_write(unsigned int reg, u32 value) {}
45static inline void prcmu_write_masked(unsigned int reg, u32 mask, u32 value) {} 45static 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
65struct nmk_gpio_chip { 60struct 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
4void nmdk_timer_init(void __iomem *base); 4void nmdk_timer_init(void __iomem *base, int irq);
5void nmdk_clkevt_reset(void); 5void nmdk_clkevt_reset(void);
6void nmdk_clksrc_reset(void); 6void 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
12struct hash_platform_data { 12struct 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 */
215enum nmk_gpio_pull {
216 NMK_GPIO_PULL_NONE,
217 NMK_GPIO_PULL_UP,
218 NMK_GPIO_PULL_DOWN,
219};
220
221/* Sleep mode */
222enum 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 */
169extern int nmk_config_pin(pin_cfg_t cfg, bool sleep); 230extern int nmk_config_pin(pin_cfg_t cfg, bool sleep);
170extern int nmk_config_pins(pin_cfg_t *cfgs, int num); 231extern int nmk_config_pins(pin_cfg_t *cfgs, int num);
171extern int nmk_config_pins_sleep(pin_cfg_t *cfgs, int num); 232extern int nmk_config_pins_sleep(pin_cfg_t *cfgs, int num);
172 233extern int nmk_gpio_set_slpm(int gpio, enum nmk_gpio_slpm mode);
234extern int nmk_gpio_set_pull(int gpio, enum nmk_gpio_pull pull);
235#ifdef CONFIG_PINCTRL_NOMADIK
236extern int nmk_gpio_set_mode(int gpio, int gpio_mode);
237#else
238static inline int nmk_gpio_set_mode(int gpio, int gpio_mode)
239{
240 return -ENODEV;
241}
173#endif 242#endif
243extern int nmk_gpio_get_mode(int gpio);
244
245extern void nmk_gpio_wakeups_suspend(void);
246extern void nmk_gpio_wakeups_resume(void);
247
248extern void nmk_gpio_clocks_enable(void);
249extern void nmk_gpio_clocks_disable(void);
250
251extern 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 */
256struct 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>