aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--MAINTAINERS2
-rw-r--r--arch/arm/Makefile2
-rw-r--r--arch/arm/boot/dts/armada-370-xp.dtsi6
-rw-r--r--arch/arm/boot/dts/armada-xp-mv78260.dtsi2
-rw-r--r--arch/arm/boot/dts/armada-xp-mv78460.dtsi2
-rw-r--r--arch/arm/boot/dts/armada-xp.dtsi2
-rw-r--r--arch/arm/boot/dts/msm8660-surf.dts4
-rw-r--r--arch/arm/boot/dts/msm8960-cdp.dts2
-rw-r--r--arch/arm/mach-at91/Kconfig1
-rw-r--r--arch/arm/mach-at91/at91rm9200.c8
-rw-r--r--arch/arm/mach-at91/at91sam9260.c4
-rw-r--r--arch/arm/mach-at91/at91sam9261.c4
-rw-r--r--arch/arm/mach-at91/at91sam9263.c2
-rw-r--r--arch/arm/mach-at91/at91sam9g45.c2
-rw-r--r--arch/arm/mach-at91/at91sam9rl.c2
-rw-r--r--arch/arm/mach-at91/at91x40.c7
-rw-r--r--arch/arm/mach-at91/board-dt-sama5.c3
-rw-r--r--arch/arm/mach-at91/clock.c30
-rw-r--r--arch/arm/mach-at91/cpuidle.c2
-rw-r--r--arch/arm/mach-at91/generic.h2
-rw-r--r--arch/arm/mach-at91/include/mach/at91_pmc.h3
-rw-r--r--arch/arm/mach-at91/irq.c9
-rw-r--r--arch/arm/mach-at91/pm.c2
-rw-r--r--arch/arm/mach-at91/setup.c4
-rw-r--r--arch/arm/mach-at91/soc.h1
-rw-r--r--arch/arm/mach-davinci/board-sffsdr.c1
-rw-r--r--arch/arm/mach-msm/clock-debug.c2
-rw-r--r--arch/arm/mach-mxs/Kconfig2
-rw-r--r--arch/arm/mach-mxs/pm.h4
-rw-r--r--arch/arm/mach-omap2/board-cm-t35.c3
-rw-r--r--arch/arm/mach-omap2/board-devkit8000.c1
-rw-r--r--arch/arm/mach-omap2/board-ldp.c3
-rw-r--r--arch/arm/mach-omap2/board-omap3pandora.c1
-rw-r--r--arch/arm/mach-omap2/board-rx51-peripherals.c1
-rw-r--r--arch/arm/mach-omap2/control.c1
-rw-r--r--arch/arm/mach-omap2/devices.c12
-rw-r--r--arch/arm/mach-omap2/id.c2
-rw-r--r--arch/arm/mach-omap2/serial.c3
-rw-r--r--arch/arm/mach-omap2/twl-common.c1
-rw-r--r--arch/arm/mach-omap2/usb-host.c106
-rw-r--r--arch/arm/mach-prima2/common.c17
-rw-r--r--arch/arm/mach-prima2/pm.c2
-rw-r--r--arch/arm/mach-tegra/pmc.c2
-rw-r--r--drivers/char/hw_random/bcm2835-rng.c2
-rw-r--r--drivers/clk/Makefile2
-rw-r--r--drivers/clocksource/bcm_kona_timer.c15
-rw-r--r--drivers/cpuidle/Kconfig1
-rw-r--r--drivers/gpio/gpio-msm-v1.c2
-rw-r--r--drivers/i2c/busses/Kconfig2
-rw-r--r--drivers/irqchip/irq-renesas-irqc.c4
-rw-r--r--drivers/mtd/nand/Kconfig2
-rw-r--r--drivers/scsi/nsp32.c2
-rw-r--r--drivers/spi/Kconfig2
-rw-r--r--drivers/ssbi/ssbi.c1
-rw-r--r--drivers/tty/serial/Kconfig2
-rw-r--r--include/linux/irqchip.h4
-rwxr-xr-xlib/build_OID_registry2
57 files changed, 170 insertions, 145 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index 7fab3298d745..8128b141b92b 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -797,6 +797,7 @@ F: arch/arm/mach-gemini/
797ARM/CSR SIRFPRIMA2 MACHINE SUPPORT 797ARM/CSR SIRFPRIMA2 MACHINE SUPPORT
798M: Barry Song <baohua.song@csr.com> 798M: Barry Song <baohua.song@csr.com>
799L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 799L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
800T: git git://git.kernel.org/pub/scm/linux/kernel/git/baohua/linux.git
800S: Maintained 801S: Maintained
801F: arch/arm/mach-prima2/ 802F: arch/arm/mach-prima2/
802F: drivers/dma/sirf-dma.c 803F: drivers/dma/sirf-dma.c
@@ -1135,6 +1136,7 @@ L: linux-samsung-soc@vger.kernel.org (moderated for non-subscribers)
1135S: Maintained 1136S: Maintained
1136F: arch/arm/mach-s5p*/ 1137F: arch/arm/mach-s5p*/
1137F: arch/arm/mach-exynos*/ 1138F: arch/arm/mach-exynos*/
1139N: exynos
1138 1140
1139ARM/SAMSUNG MOBILE MACHINE SUPPORT 1141ARM/SAMSUNG MOBILE MACHINE SUPPORT
1140M: Kyungmin Park <kyungmin.park@samsung.com> 1142M: Kyungmin Park <kyungmin.park@samsung.com>
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 1ba358ba16b8..7ea15176d109 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -168,7 +168,7 @@ machine-$(CONFIG_ARCH_OMAP1) += omap1
168machine-$(CONFIG_ARCH_OMAP2PLUS) += omap2 168machine-$(CONFIG_ARCH_OMAP2PLUS) += omap2
169machine-$(CONFIG_ARCH_ORION5X) += orion5x 169machine-$(CONFIG_ARCH_ORION5X) += orion5x
170machine-$(CONFIG_ARCH_PICOXCELL) += picoxcell 170machine-$(CONFIG_ARCH_PICOXCELL) += picoxcell
171machine-$(CONFIG_ARCH_PRIMA2) += prima2 171machine-$(CONFIG_ARCH_SIRF) += prima2
172machine-$(CONFIG_ARCH_PXA) += pxa 172machine-$(CONFIG_ARCH_PXA) += pxa
173machine-$(CONFIG_ARCH_REALVIEW) += realview 173machine-$(CONFIG_ARCH_REALVIEW) += realview
174machine-$(CONFIG_ARCH_RPC) += rpc 174machine-$(CONFIG_ARCH_RPC) += rpc
diff --git a/arch/arm/boot/dts/armada-370-xp.dtsi b/arch/arm/boot/dts/armada-370-xp.dtsi
index 550eb772c30e..52a1f5efc086 100644
--- a/arch/arm/boot/dts/armada-370-xp.dtsi
+++ b/arch/arm/boot/dts/armada-370-xp.dtsi
@@ -80,7 +80,7 @@
80 80
81 sata@a0000 { 81 sata@a0000 {
82 compatible = "marvell,orion-sata"; 82 compatible = "marvell,orion-sata";
83 reg = <0xa0000 0x2400>; 83 reg = <0xa0000 0x5000>;
84 interrupts = <55>; 84 interrupts = <55>;
85 clocks = <&gateclk 15>, <&gateclk 30>; 85 clocks = <&gateclk 15>, <&gateclk 30>;
86 clock-names = "0", "1"; 86 clock-names = "0", "1";
@@ -96,7 +96,7 @@
96 96
97 ethernet@70000 { 97 ethernet@70000 {
98 compatible = "marvell,armada-370-neta"; 98 compatible = "marvell,armada-370-neta";
99 reg = <0x70000 0x2500>; 99 reg = <0x70000 0x4000>;
100 interrupts = <8>; 100 interrupts = <8>;
101 clocks = <&gateclk 4>; 101 clocks = <&gateclk 4>;
102 status = "disabled"; 102 status = "disabled";
@@ -104,7 +104,7 @@
104 104
105 ethernet@74000 { 105 ethernet@74000 {
106 compatible = "marvell,armada-370-neta"; 106 compatible = "marvell,armada-370-neta";
107 reg = <0x74000 0x2500>; 107 reg = <0x74000 0x4000>;
108 interrupts = <10>; 108 interrupts = <10>;
109 clocks = <&gateclk 3>; 109 clocks = <&gateclk 3>;
110 status = "disabled"; 110 status = "disabled";
diff --git a/arch/arm/boot/dts/armada-xp-mv78260.dtsi b/arch/arm/boot/dts/armada-xp-mv78260.dtsi
index f4029f015aff..2d9335da210c 100644
--- a/arch/arm/boot/dts/armada-xp-mv78260.dtsi
+++ b/arch/arm/boot/dts/armada-xp-mv78260.dtsi
@@ -92,7 +92,7 @@
92 92
93 ethernet@34000 { 93 ethernet@34000 {
94 compatible = "marvell,armada-370-neta"; 94 compatible = "marvell,armada-370-neta";
95 reg = <0x34000 0x2500>; 95 reg = <0x34000 0x4000>;
96 interrupts = <14>; 96 interrupts = <14>;
97 clocks = <&gateclk 1>; 97 clocks = <&gateclk 1>;
98 status = "disabled"; 98 status = "disabled";
diff --git a/arch/arm/boot/dts/armada-xp-mv78460.dtsi b/arch/arm/boot/dts/armada-xp-mv78460.dtsi
index 6ab56bd35de9..488ca5eb9a55 100644
--- a/arch/arm/boot/dts/armada-xp-mv78460.dtsi
+++ b/arch/arm/boot/dts/armada-xp-mv78460.dtsi
@@ -107,7 +107,7 @@
107 107
108 ethernet@34000 { 108 ethernet@34000 {
109 compatible = "marvell,armada-370-neta"; 109 compatible = "marvell,armada-370-neta";
110 reg = <0x34000 0x2500>; 110 reg = <0x34000 0x4000>;
111 interrupts = <14>; 111 interrupts = <14>;
112 clocks = <&gateclk 1>; 112 clocks = <&gateclk 1>;
113 status = "disabled"; 113 status = "disabled";
diff --git a/arch/arm/boot/dts/armada-xp.dtsi b/arch/arm/boot/dts/armada-xp.dtsi
index 5b902f9a3af2..1ee8540b0eba 100644
--- a/arch/arm/boot/dts/armada-xp.dtsi
+++ b/arch/arm/boot/dts/armada-xp.dtsi
@@ -88,7 +88,7 @@
88 88
89 ethernet@30000 { 89 ethernet@30000 {
90 compatible = "marvell,armada-370-neta"; 90 compatible = "marvell,armada-370-neta";
91 reg = <0x30000 0x2500>; 91 reg = <0x30000 0x4000>;
92 interrupts = <12>; 92 interrupts = <12>;
93 clocks = <&gateclk 2>; 93 clocks = <&gateclk 2>;
94 status = "disabled"; 94 status = "disabled";
diff --git a/arch/arm/boot/dts/msm8660-surf.dts b/arch/arm/boot/dts/msm8660-surf.dts
index 9bf49b3826ea..d347082d28f3 100644
--- a/arch/arm/boot/dts/msm8660-surf.dts
+++ b/arch/arm/boot/dts/msm8660-surf.dts
@@ -15,7 +15,7 @@
15 < 0x02081000 0x1000 >; 15 < 0x02081000 0x1000 >;
16 }; 16 };
17 17
18 timer@2000004 { 18 timer@2000000 {
19 compatible = "qcom,scss-timer", "qcom,msm-timer"; 19 compatible = "qcom,scss-timer", "qcom,msm-timer";
20 interrupts = <1 0 0x301>, 20 interrupts = <1 0 0x301>,
21 <1 1 0x301>, 21 <1 1 0x301>,
@@ -26,7 +26,7 @@
26 cpu-offset = <0x40000>; 26 cpu-offset = <0x40000>;
27 }; 27 };
28 28
29 serial@19c400000 { 29 serial@19c40000 {
30 compatible = "qcom,msm-hsuart", "qcom,msm-uart"; 30 compatible = "qcom,msm-hsuart", "qcom,msm-uart";
31 reg = <0x19c40000 0x1000>, 31 reg = <0x19c40000 0x1000>,
32 <0x19c00000 0x1000>; 32 <0x19c00000 0x1000>;
diff --git a/arch/arm/boot/dts/msm8960-cdp.dts b/arch/arm/boot/dts/msm8960-cdp.dts
index 2e4d87a125d6..7c9ef9b80c15 100644
--- a/arch/arm/boot/dts/msm8960-cdp.dts
+++ b/arch/arm/boot/dts/msm8960-cdp.dts
@@ -26,7 +26,7 @@
26 cpu-offset = <0x80000>; 26 cpu-offset = <0x80000>;
27 }; 27 };
28 28
29 serial@19c400000 { 29 serial@16440000 {
30 compatible = "qcom,msm-hsuart", "qcom,msm-uart"; 30 compatible = "qcom,msm-hsuart", "qcom,msm-uart";
31 reg = <0x16440000 0x1000>, 31 reg = <0x16440000 0x1000>,
32 <0x16400000 0x1000>; 32 <0x16400000 0x1000>;
diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
index 02802386b894..699b71e7f7ec 100644
--- a/arch/arm/mach-at91/Kconfig
+++ b/arch/arm/mach-at91/Kconfig
@@ -163,6 +163,7 @@ config MACH_SAMA5_DT
163 bool "Atmel SAMA5 Evaluation Kits with device-tree support" 163 bool "Atmel SAMA5 Evaluation Kits with device-tree support"
164 depends on SOC_SAMA5 164 depends on SOC_SAMA5
165 select USE_OF 165 select USE_OF
166 select PHYLIB if NETDEVICES
166 help 167 help
167 Select this if you want to experiment device-tree with 168 Select this if you want to experiment device-tree with
168 an Atmel Evaluation Kit. 169 an Atmel Evaluation Kit.
diff --git a/arch/arm/mach-at91/at91rm9200.c b/arch/arm/mach-at91/at91rm9200.c
index d193a409bc45..9eb574397ee1 100644
--- a/arch/arm/mach-at91/at91rm9200.c
+++ b/arch/arm/mach-at91/at91rm9200.c
@@ -332,10 +332,6 @@ static void __init at91rm9200_initialize(void)
332{ 332{
333 arm_pm_idle = at91rm9200_idle; 333 arm_pm_idle = at91rm9200_idle;
334 arm_pm_restart = at91rm9200_restart; 334 arm_pm_restart = at91rm9200_restart;
335 at91_extern_irq = (1 << AT91RM9200_ID_IRQ0) | (1 << AT91RM9200_ID_IRQ1)
336 | (1 << AT91RM9200_ID_IRQ2) | (1 << AT91RM9200_ID_IRQ3)
337 | (1 << AT91RM9200_ID_IRQ4) | (1 << AT91RM9200_ID_IRQ5)
338 | (1 << AT91RM9200_ID_IRQ6);
339 335
340 /* Initialize GPIO subsystem */ 336 /* Initialize GPIO subsystem */
341 at91_gpio_init(at91rm9200_gpio, 337 at91_gpio_init(at91rm9200_gpio,
@@ -388,6 +384,10 @@ static unsigned int at91rm9200_default_irq_priority[NR_AIC_IRQS] __initdata = {
388AT91_SOC_START(at91rm9200) 384AT91_SOC_START(at91rm9200)
389 .map_io = at91rm9200_map_io, 385 .map_io = at91rm9200_map_io,
390 .default_irq_priority = at91rm9200_default_irq_priority, 386 .default_irq_priority = at91rm9200_default_irq_priority,
387 .extern_irq = (1 << AT91RM9200_ID_IRQ0) | (1 << AT91RM9200_ID_IRQ1)
388 | (1 << AT91RM9200_ID_IRQ2) | (1 << AT91RM9200_ID_IRQ3)
389 | (1 << AT91RM9200_ID_IRQ4) | (1 << AT91RM9200_ID_IRQ5)
390 | (1 << AT91RM9200_ID_IRQ6),
391 .ioremap_registers = at91rm9200_ioremap_registers, 391 .ioremap_registers = at91rm9200_ioremap_registers,
392 .register_clocks = at91rm9200_register_clocks, 392 .register_clocks = at91rm9200_register_clocks,
393 .init = at91rm9200_initialize, 393 .init = at91rm9200_initialize,
diff --git a/arch/arm/mach-at91/at91sam9260.c b/arch/arm/mach-at91/at91sam9260.c
index a8ce24538da6..5de6074b4f4f 100644
--- a/arch/arm/mach-at91/at91sam9260.c
+++ b/arch/arm/mach-at91/at91sam9260.c
@@ -348,8 +348,6 @@ static void __init at91sam9260_initialize(void)
348{ 348{
349 arm_pm_idle = at91sam9_idle; 349 arm_pm_idle = at91sam9_idle;
350 arm_pm_restart = at91sam9_alt_restart; 350 arm_pm_restart = at91sam9_alt_restart;
351 at91_extern_irq = (1 << AT91SAM9260_ID_IRQ0) | (1 << AT91SAM9260_ID_IRQ1)
352 | (1 << AT91SAM9260_ID_IRQ2);
353 351
354 /* Register GPIO subsystem */ 352 /* Register GPIO subsystem */
355 at91_gpio_init(at91sam9260_gpio, 3); 353 at91_gpio_init(at91sam9260_gpio, 3);
@@ -400,6 +398,8 @@ static unsigned int at91sam9260_default_irq_priority[NR_AIC_IRQS] __initdata = {
400AT91_SOC_START(at91sam9260) 398AT91_SOC_START(at91sam9260)
401 .map_io = at91sam9260_map_io, 399 .map_io = at91sam9260_map_io,
402 .default_irq_priority = at91sam9260_default_irq_priority, 400 .default_irq_priority = at91sam9260_default_irq_priority,
401 .extern_irq = (1 << AT91SAM9260_ID_IRQ0) | (1 << AT91SAM9260_ID_IRQ1)
402 | (1 << AT91SAM9260_ID_IRQ2),
403 .ioremap_registers = at91sam9260_ioremap_registers, 403 .ioremap_registers = at91sam9260_ioremap_registers,
404 .register_clocks = at91sam9260_register_clocks, 404 .register_clocks = at91sam9260_register_clocks,
405 .init = at91sam9260_initialize, 405 .init = at91sam9260_initialize,
diff --git a/arch/arm/mach-at91/at91sam9261.c b/arch/arm/mach-at91/at91sam9261.c
index 25efb5ac30f1..0e0793241ab7 100644
--- a/arch/arm/mach-at91/at91sam9261.c
+++ b/arch/arm/mach-at91/at91sam9261.c
@@ -290,8 +290,6 @@ static void __init at91sam9261_initialize(void)
290{ 290{
291 arm_pm_idle = at91sam9_idle; 291 arm_pm_idle = at91sam9_idle;
292 arm_pm_restart = at91sam9_alt_restart; 292 arm_pm_restart = at91sam9_alt_restart;
293 at91_extern_irq = (1 << AT91SAM9261_ID_IRQ0) | (1 << AT91SAM9261_ID_IRQ1)
294 | (1 << AT91SAM9261_ID_IRQ2);
295 293
296 /* Register GPIO subsystem */ 294 /* Register GPIO subsystem */
297 at91_gpio_init(at91sam9261_gpio, 3); 295 at91_gpio_init(at91sam9261_gpio, 3);
@@ -342,6 +340,8 @@ static unsigned int at91sam9261_default_irq_priority[NR_AIC_IRQS] __initdata = {
342AT91_SOC_START(at91sam9261) 340AT91_SOC_START(at91sam9261)
343 .map_io = at91sam9261_map_io, 341 .map_io = at91sam9261_map_io,
344 .default_irq_priority = at91sam9261_default_irq_priority, 342 .default_irq_priority = at91sam9261_default_irq_priority,
343 .extern_irq = (1 << AT91SAM9261_ID_IRQ0) | (1 << AT91SAM9261_ID_IRQ1)
344 | (1 << AT91SAM9261_ID_IRQ2),
345 .ioremap_registers = at91sam9261_ioremap_registers, 345 .ioremap_registers = at91sam9261_ioremap_registers,
346 .register_clocks = at91sam9261_register_clocks, 346 .register_clocks = at91sam9261_register_clocks,
347 .init = at91sam9261_initialize, 347 .init = at91sam9261_initialize,
diff --git a/arch/arm/mach-at91/at91sam9263.c b/arch/arm/mach-at91/at91sam9263.c
index f44ffd2105a7..6ce7d1850893 100644
--- a/arch/arm/mach-at91/at91sam9263.c
+++ b/arch/arm/mach-at91/at91sam9263.c
@@ -327,7 +327,6 @@ static void __init at91sam9263_initialize(void)
327{ 327{
328 arm_pm_idle = at91sam9_idle; 328 arm_pm_idle = at91sam9_idle;
329 arm_pm_restart = at91sam9_alt_restart; 329 arm_pm_restart = at91sam9_alt_restart;
330 at91_extern_irq = (1 << AT91SAM9263_ID_IRQ0) | (1 << AT91SAM9263_ID_IRQ1);
331 330
332 /* Register GPIO subsystem */ 331 /* Register GPIO subsystem */
333 at91_gpio_init(at91sam9263_gpio, 5); 332 at91_gpio_init(at91sam9263_gpio, 5);
@@ -378,6 +377,7 @@ static unsigned int at91sam9263_default_irq_priority[NR_AIC_IRQS] __initdata = {
378AT91_SOC_START(at91sam9263) 377AT91_SOC_START(at91sam9263)
379 .map_io = at91sam9263_map_io, 378 .map_io = at91sam9263_map_io,
380 .default_irq_priority = at91sam9263_default_irq_priority, 379 .default_irq_priority = at91sam9263_default_irq_priority,
380 .extern_irq = (1 << AT91SAM9263_ID_IRQ0) | (1 << AT91SAM9263_ID_IRQ1),
381 .ioremap_registers = at91sam9263_ioremap_registers, 381 .ioremap_registers = at91sam9263_ioremap_registers,
382 .register_clocks = at91sam9263_register_clocks, 382 .register_clocks = at91sam9263_register_clocks,
383 .init = at91sam9263_initialize, 383 .init = at91sam9263_initialize,
diff --git a/arch/arm/mach-at91/at91sam9g45.c b/arch/arm/mach-at91/at91sam9g45.c
index 8b7fce067652..fda502691686 100644
--- a/arch/arm/mach-at91/at91sam9g45.c
+++ b/arch/arm/mach-at91/at91sam9g45.c
@@ -374,7 +374,6 @@ static void __init at91sam9g45_initialize(void)
374{ 374{
375 arm_pm_idle = at91sam9_idle; 375 arm_pm_idle = at91sam9_idle;
376 arm_pm_restart = at91sam9g45_restart; 376 arm_pm_restart = at91sam9g45_restart;
377 at91_extern_irq = (1 << AT91SAM9G45_ID_IRQ0);
378 377
379 /* Register GPIO subsystem */ 378 /* Register GPIO subsystem */
380 at91_gpio_init(at91sam9g45_gpio, 5); 379 at91_gpio_init(at91sam9g45_gpio, 5);
@@ -425,6 +424,7 @@ static unsigned int at91sam9g45_default_irq_priority[NR_AIC_IRQS] __initdata = {
425AT91_SOC_START(at91sam9g45) 424AT91_SOC_START(at91sam9g45)
426 .map_io = at91sam9g45_map_io, 425 .map_io = at91sam9g45_map_io,
427 .default_irq_priority = at91sam9g45_default_irq_priority, 426 .default_irq_priority = at91sam9g45_default_irq_priority,
427 .extern_irq = (1 << AT91SAM9G45_ID_IRQ0),
428 .ioremap_registers = at91sam9g45_ioremap_registers, 428 .ioremap_registers = at91sam9g45_ioremap_registers,
429 .register_clocks = at91sam9g45_register_clocks, 429 .register_clocks = at91sam9g45_register_clocks,
430 .init = at91sam9g45_initialize, 430 .init = at91sam9g45_initialize,
diff --git a/arch/arm/mach-at91/at91sam9rl.c b/arch/arm/mach-at91/at91sam9rl.c
index f77fae5591bc..d4ec0d9a9872 100644
--- a/arch/arm/mach-at91/at91sam9rl.c
+++ b/arch/arm/mach-at91/at91sam9rl.c
@@ -293,7 +293,6 @@ static void __init at91sam9rl_initialize(void)
293{ 293{
294 arm_pm_idle = at91sam9_idle; 294 arm_pm_idle = at91sam9_idle;
295 arm_pm_restart = at91sam9_alt_restart; 295 arm_pm_restart = at91sam9_alt_restart;
296 at91_extern_irq = (1 << AT91SAM9RL_ID_IRQ0);
297 296
298 /* Register GPIO subsystem */ 297 /* Register GPIO subsystem */
299 at91_gpio_init(at91sam9rl_gpio, 4); 298 at91_gpio_init(at91sam9rl_gpio, 4);
@@ -344,6 +343,7 @@ static unsigned int at91sam9rl_default_irq_priority[NR_AIC_IRQS] __initdata = {
344AT91_SOC_START(at91sam9rl) 343AT91_SOC_START(at91sam9rl)
345 .map_io = at91sam9rl_map_io, 344 .map_io = at91sam9rl_map_io,
346 .default_irq_priority = at91sam9rl_default_irq_priority, 345 .default_irq_priority = at91sam9rl_default_irq_priority,
346 .extern_irq = (1 << AT91SAM9RL_ID_IRQ0),
347 .ioremap_registers = at91sam9rl_ioremap_registers, 347 .ioremap_registers = at91sam9rl_ioremap_registers,
348 .register_clocks = at91sam9rl_register_clocks, 348 .register_clocks = at91sam9rl_register_clocks,
349 .init = at91sam9rl_initialize, 349 .init = at91sam9rl_initialize,
diff --git a/arch/arm/mach-at91/at91x40.c b/arch/arm/mach-at91/at91x40.c
index 19ca79396905..bad94b84a46f 100644
--- a/arch/arm/mach-at91/at91x40.c
+++ b/arch/arm/mach-at91/at91x40.c
@@ -55,8 +55,6 @@ static void at91x40_idle(void)
55void __init at91x40_initialize(unsigned long main_clock) 55void __init at91x40_initialize(unsigned long main_clock)
56{ 56{
57 arm_pm_idle = at91x40_idle; 57 arm_pm_idle = at91x40_idle;
58 at91_extern_irq = (1 << AT91X40_ID_IRQ0) | (1 << AT91X40_ID_IRQ1)
59 | (1 << AT91X40_ID_IRQ2);
60} 58}
61 59
62/* 60/*
@@ -86,9 +84,10 @@ static unsigned int at91x40_default_irq_priority[NR_AIC_IRQS] __initdata = {
86 84
87void __init at91x40_init_interrupts(unsigned int priority[NR_AIC_IRQS]) 85void __init at91x40_init_interrupts(unsigned int priority[NR_AIC_IRQS])
88{ 86{
87 u32 extern_irq = (1 << AT91X40_ID_IRQ0) | (1 << AT91X40_ID_IRQ1)
88 | (1 << AT91X40_ID_IRQ2);
89 if (!priority) 89 if (!priority)
90 priority = at91x40_default_irq_priority; 90 priority = at91x40_default_irq_priority;
91 91
92 at91_aic_init(priority, at91_extern_irq); 92 at91_aic_init(priority, extern_irq);
93} 93}
94
diff --git a/arch/arm/mach-at91/board-dt-sama5.c b/arch/arm/mach-at91/board-dt-sama5.c
index 705305e62bbc..ad95f6a23a28 100644
--- a/arch/arm/mach-at91/board-dt-sama5.c
+++ b/arch/arm/mach-at91/board-dt-sama5.c
@@ -62,7 +62,8 @@ static int ksz9021rn_phy_fixup(struct phy_device *phy)
62 62
63static void __init sama5_dt_device_init(void) 63static void __init sama5_dt_device_init(void)
64{ 64{
65 if (of_machine_is_compatible("atmel,sama5d3xcm")) 65 if (of_machine_is_compatible("atmel,sama5d3xcm") &&
66 IS_ENABLED(CONFIG_PHYLIB))
66 phy_register_fixup_for_uid(PHY_ID_KSZ9021, MICREL_PHY_ID_MASK, 67 phy_register_fixup_for_uid(PHY_ID_KSZ9021, MICREL_PHY_ID_MASK,
67 ksz9021rn_phy_fixup); 68 ksz9021rn_phy_fixup);
68 69
diff --git a/arch/arm/mach-at91/clock.c b/arch/arm/mach-at91/clock.c
index da841885d01c..6b2630a92f71 100644
--- a/arch/arm/mach-at91/clock.c
+++ b/arch/arm/mach-at91/clock.c
@@ -75,7 +75,7 @@ EXPORT_SYMBOL_GPL(at91_pmc_base);
75#define cpu_has_pllb() (!(cpu_is_at91sam9rl() \ 75#define cpu_has_pllb() (!(cpu_is_at91sam9rl() \
76 || cpu_is_at91sam9g45() \ 76 || cpu_is_at91sam9g45() \
77 || cpu_is_at91sam9x5() \ 77 || cpu_is_at91sam9x5() \
78 || cpu_is_at91sam9n12())) 78 || cpu_is_sama5d3()))
79 79
80#define cpu_has_upll() (cpu_is_at91sam9g45() \ 80#define cpu_has_upll() (cpu_is_at91sam9g45() \
81 || cpu_is_at91sam9x5() \ 81 || cpu_is_at91sam9x5() \
@@ -489,7 +489,7 @@ static int at91_clk_show(struct seq_file *s, void *unused)
489 seq_printf(s, "UCKR = %8x\n", uckr); 489 seq_printf(s, "UCKR = %8x\n", uckr);
490 } 490 }
491 seq_printf(s, "MCKR = %8x\n", at91_pmc_read(AT91_PMC_MCKR)); 491 seq_printf(s, "MCKR = %8x\n", at91_pmc_read(AT91_PMC_MCKR));
492 if (cpu_has_upll()) 492 if (cpu_has_upll() || cpu_is_at91sam9n12())
493 seq_printf(s, "USB = %8x\n", at91_pmc_read(AT91_PMC_USB)); 493 seq_printf(s, "USB = %8x\n", at91_pmc_read(AT91_PMC_USB));
494 seq_printf(s, "SR = %8x\n", sr); 494 seq_printf(s, "SR = %8x\n", sr);
495 495
@@ -614,6 +614,8 @@ static u32 __init at91_usb_rate(struct clk *pll, u32 freq, u32 reg)
614{ 614{
615 if (pll == &pllb && (reg & AT91_PMC_USB96M)) 615 if (pll == &pllb && (reg & AT91_PMC_USB96M))
616 return freq / 2; 616 return freq / 2;
617 else if (pll == &utmi_clk || cpu_is_at91sam9n12())
618 return freq / (1 + ((reg & AT91_PMC_OHCIUSBDIV) >> 8));
617 else 619 else
618 return freq; 620 return freq;
619} 621}
@@ -683,6 +685,8 @@ static struct clk *const standard_pmc_clocks[] __initconst = {
683/* PLLB generated USB full speed clock init */ 685/* PLLB generated USB full speed clock init */
684static void __init at91_pllb_usbfs_clock_init(unsigned long main_clock) 686static void __init at91_pllb_usbfs_clock_init(unsigned long main_clock)
685{ 687{
688 unsigned int reg;
689
686 /* 690 /*
687 * USB clock init: choose 48 MHz PLLB value, 691 * USB clock init: choose 48 MHz PLLB value,
688 * disable 48MHz clock during usb peripheral suspend. 692 * disable 48MHz clock during usb peripheral suspend.
@@ -691,22 +695,35 @@ static void __init at91_pllb_usbfs_clock_init(unsigned long main_clock)
691 */ 695 */
692 uhpck.parent = &pllb; 696 uhpck.parent = &pllb;
693 697
694 at91_pllb_usb_init = at91_pll_calc(main_clock, 48000000 * 2) | AT91_PMC_USB96M; 698 reg = at91_pllb_usb_init = at91_pll_calc(main_clock, 48000000 * 2);
695 pllb.rate_hz = at91_pll_rate(&pllb, main_clock, at91_pllb_usb_init); 699 pllb.rate_hz = at91_pll_rate(&pllb, main_clock, at91_pllb_usb_init);
696 if (cpu_is_at91rm9200()) { 700 if (cpu_is_at91rm9200()) {
701 reg = at91_pllb_usb_init |= AT91_PMC_USB96M;
697 uhpck.pmc_mask = AT91RM9200_PMC_UHP; 702 uhpck.pmc_mask = AT91RM9200_PMC_UHP;
698 udpck.pmc_mask = AT91RM9200_PMC_UDP; 703 udpck.pmc_mask = AT91RM9200_PMC_UDP;
699 at91_pmc_write(AT91_PMC_SCER, AT91RM9200_PMC_MCKUDP); 704 at91_pmc_write(AT91_PMC_SCER, AT91RM9200_PMC_MCKUDP);
700 } else if (cpu_is_at91sam9260() || cpu_is_at91sam9261() || 705 } else if (cpu_is_at91sam9260() || cpu_is_at91sam9261() ||
701 cpu_is_at91sam9263() || cpu_is_at91sam9g20() || 706 cpu_is_at91sam9263() || cpu_is_at91sam9g20() ||
702 cpu_is_at91sam9g10()) { 707 cpu_is_at91sam9g10()) {
708 reg = at91_pllb_usb_init |= AT91_PMC_USB96M;
709 uhpck.pmc_mask = AT91SAM926x_PMC_UHP;
710 udpck.pmc_mask = AT91SAM926x_PMC_UDP;
711 } else if (cpu_is_at91sam9n12()) {
712 /* Divider for USB clock is in USB clock register for 9n12 */
713 reg = AT91_PMC_USBS_PLLB;
714
715 /* For PLLB output 96M, set usb divider 2 (USBDIV + 1) */
716 reg |= AT91_PMC_OHCIUSBDIV_2;
717 at91_pmc_write(AT91_PMC_USB, reg);
718
719 /* Still setup masks */
703 uhpck.pmc_mask = AT91SAM926x_PMC_UHP; 720 uhpck.pmc_mask = AT91SAM926x_PMC_UHP;
704 udpck.pmc_mask = AT91SAM926x_PMC_UDP; 721 udpck.pmc_mask = AT91SAM926x_PMC_UDP;
705 } 722 }
706 at91_pmc_write(AT91_CKGR_PLLBR, 0); 723 at91_pmc_write(AT91_CKGR_PLLBR, 0);
707 724
708 udpck.rate_hz = at91_usb_rate(&pllb, pllb.rate_hz, at91_pllb_usb_init); 725 udpck.rate_hz = at91_usb_rate(&pllb, pllb.rate_hz, reg);
709 uhpck.rate_hz = at91_usb_rate(&pllb, pllb.rate_hz, at91_pllb_usb_init); 726 uhpck.rate_hz = at91_usb_rate(&pllb, pllb.rate_hz, reg);
710} 727}
711 728
712/* UPLL generated USB full speed clock init */ 729/* UPLL generated USB full speed clock init */
@@ -725,8 +742,7 @@ static void __init at91_upll_usbfs_clock_init(unsigned long main_clock)
725 /* Now set uhpck values */ 742 /* Now set uhpck values */
726 uhpck.parent = &utmi_clk; 743 uhpck.parent = &utmi_clk;
727 uhpck.pmc_mask = AT91SAM926x_PMC_UHP; 744 uhpck.pmc_mask = AT91SAM926x_PMC_UHP;
728 uhpck.rate_hz = utmi_clk.rate_hz; 745 uhpck.rate_hz = at91_usb_rate(&utmi_clk, utmi_clk.rate_hz, usbr);
729 uhpck.rate_hz /= 1 + ((at91_pmc_read(AT91_PMC_USB) & AT91_PMC_OHCIUSBDIV) >> 8);
730} 746}
731 747
732static int __init at91_pmc_init(unsigned long main_clock) 748static int __init at91_pmc_init(unsigned long main_clock)
diff --git a/arch/arm/mach-at91/cpuidle.c b/arch/arm/mach-at91/cpuidle.c
index 69f9e3bbf4e5..4ec6a6d9b9be 100644
--- a/arch/arm/mach-at91/cpuidle.c
+++ b/arch/arm/mach-at91/cpuidle.c
@@ -51,7 +51,7 @@ static struct cpuidle_driver at91_idle_driver = {
51 .states[1] = { 51 .states[1] = {
52 .enter = at91_enter_idle, 52 .enter = at91_enter_idle,
53 .exit_latency = 10, 53 .exit_latency = 10,
54 .target_residency = 100000, 54 .target_residency = 10000,
55 .flags = CPUIDLE_FLAG_TIME_VALID, 55 .flags = CPUIDLE_FLAG_TIME_VALID,
56 .name = "RAM_SR", 56 .name = "RAM_SR",
57 .desc = "WFI and DDR Self Refresh", 57 .desc = "WFI and DDR Self Refresh",
diff --git a/arch/arm/mach-at91/generic.h b/arch/arm/mach-at91/generic.h
index 78ab06548658..f6de36aefe85 100644
--- a/arch/arm/mach-at91/generic.h
+++ b/arch/arm/mach-at91/generic.h
@@ -85,4 +85,4 @@ extern void __init at91_gpio_irq_setup(void);
85extern int __init at91_gpio_of_irq_setup(struct device_node *node, 85extern int __init at91_gpio_of_irq_setup(struct device_node *node,
86 struct device_node *parent); 86 struct device_node *parent);
87 87
88extern int at91_extern_irq; 88extern u32 at91_get_extern_irq(void);
diff --git a/arch/arm/mach-at91/include/mach/at91_pmc.h b/arch/arm/mach-at91/include/mach/at91_pmc.h
index 2bd7f51b0b82..c604cc69acb5 100644
--- a/arch/arm/mach-at91/include/mach/at91_pmc.h
+++ b/arch/arm/mach-at91/include/mach/at91_pmc.h
@@ -130,7 +130,10 @@ extern void __iomem *at91_pmc_base;
130#define AT91_PMC_USBS (0x1 << 0) /* USB OHCI Input clock selection */ 130#define AT91_PMC_USBS (0x1 << 0) /* USB OHCI Input clock selection */
131#define AT91_PMC_USBS_PLLA (0 << 0) 131#define AT91_PMC_USBS_PLLA (0 << 0)
132#define AT91_PMC_USBS_UPLL (1 << 0) 132#define AT91_PMC_USBS_UPLL (1 << 0)
133#define AT91_PMC_USBS_PLLB (1 << 0) /* [AT91SAMN12 only] */
133#define AT91_PMC_OHCIUSBDIV (0xF << 8) /* Divider for USB OHCI Clock */ 134#define AT91_PMC_OHCIUSBDIV (0xF << 8) /* Divider for USB OHCI Clock */
135#define AT91_PMC_OHCIUSBDIV_1 (0x0 << 8)
136#define AT91_PMC_OHCIUSBDIV_2 (0x1 << 8)
134 137
135#define AT91_PMC_SMD 0x3c /* Soft Modem Clock Register [some SAM9 only] */ 138#define AT91_PMC_SMD 0x3c /* Soft Modem Clock Register [some SAM9 only] */
136#define AT91_PMC_SMDS (0x1 << 0) /* SMD input clock selection */ 139#define AT91_PMC_SMDS (0x1 << 0) /* SMD input clock selection */
diff --git a/arch/arm/mach-at91/irq.c b/arch/arm/mach-at91/irq.c
index e0ca59171022..3d192c5aee66 100644
--- a/arch/arm/mach-at91/irq.c
+++ b/arch/arm/mach-at91/irq.c
@@ -232,7 +232,14 @@ static void __maybe_unused at91_aic5_eoi(struct irq_data *d)
232 at91_aic_write(AT91_AIC5_EOICR, 0); 232 at91_aic_write(AT91_AIC5_EOICR, 0);
233} 233}
234 234
235unsigned long *at91_extern_irq; 235static unsigned long *at91_extern_irq;
236
237u32 at91_get_extern_irq(void)
238{
239 if (!at91_extern_irq)
240 return 0;
241 return *at91_extern_irq;
242}
236 243
237#define is_extern_irq(hwirq) test_bit(hwirq, at91_extern_irq) 244#define is_extern_irq(hwirq) test_bit(hwirq, at91_extern_irq)
238 245
diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c
index 530db304ec5e..15afb5d9271f 100644
--- a/arch/arm/mach-at91/pm.c
+++ b/arch/arm/mach-at91/pm.c
@@ -212,7 +212,7 @@ static int at91_pm_enter(suspend_state_t state)
212 (at91_pmc_read(AT91_PMC_PCSR) 212 (at91_pmc_read(AT91_PMC_PCSR)
213 | (1 << AT91_ID_FIQ) 213 | (1 << AT91_ID_FIQ)
214 | (1 << AT91_ID_SYS) 214 | (1 << AT91_ID_SYS)
215 | (at91_extern_irq)) 215 | (at91_get_extern_irq()))
216 & at91_aic_read(AT91_AIC_IMR), 216 & at91_aic_read(AT91_AIC_IMR),
217 state); 217 state);
218 218
diff --git a/arch/arm/mach-at91/setup.c b/arch/arm/mach-at91/setup.c
index e2f4bdd146d6..b17fbcf4d9e8 100644
--- a/arch/arm/mach-at91/setup.c
+++ b/arch/arm/mach-at91/setup.c
@@ -48,7 +48,7 @@ void __init at91_init_irq_default(void)
48void __init at91_init_interrupts(unsigned int *priority) 48void __init at91_init_interrupts(unsigned int *priority)
49{ 49{
50 /* Initialize the AIC interrupt controller */ 50 /* Initialize the AIC interrupt controller */
51 at91_aic_init(priority, at91_extern_irq); 51 at91_aic_init(priority, at91_boot_soc.extern_irq);
52 52
53 /* Enable GPIO interrupts */ 53 /* Enable GPIO interrupts */
54 at91_gpio_irq_setup(); 54 at91_gpio_irq_setup();
@@ -80,7 +80,7 @@ void __init at91_init_sram(int bank, unsigned long base, unsigned int length)
80 80
81 desc->pfn = __phys_to_pfn(base); 81 desc->pfn = __phys_to_pfn(base);
82 desc->length = length; 82 desc->length = length;
83 desc->type = MT_DEVICE; 83 desc->type = MT_MEMORY_NONCACHED;
84 84
85 pr_info("AT91: sram at 0x%lx of 0x%x mapped at 0x%lx\n", 85 pr_info("AT91: sram at 0x%lx of 0x%x mapped at 0x%lx\n",
86 base, length, desc->virtual); 86 base, length, desc->virtual);
diff --git a/arch/arm/mach-at91/soc.h b/arch/arm/mach-at91/soc.h
index 43a225f9e713..a1e1482c6da8 100644
--- a/arch/arm/mach-at91/soc.h
+++ b/arch/arm/mach-at91/soc.h
@@ -6,6 +6,7 @@
6 6
7struct at91_init_soc { 7struct at91_init_soc {
8 int builtin; 8 int builtin;
9 u32 extern_irq;
9 unsigned int *default_irq_priority; 10 unsigned int *default_irq_priority;
10 void (*map_io)(void); 11 void (*map_io)(void);
11 void (*ioremap_registers)(void); 12 void (*ioremap_registers)(void);
diff --git a/arch/arm/mach-davinci/board-sffsdr.c b/arch/arm/mach-davinci/board-sffsdr.c
index 739be7e738fe..513eee14f77d 100644
--- a/arch/arm/mach-davinci/board-sffsdr.c
+++ b/arch/arm/mach-davinci/board-sffsdr.c
@@ -151,7 +151,6 @@ static __init void davinci_sffsdr_init(void)
151} 151}
152 152
153MACHINE_START(SFFSDR, "Lyrtech SFFSDR") 153MACHINE_START(SFFSDR, "Lyrtech SFFSDR")
154 /* Maintainer: Hugo Villeneuve hugo.villeneuve@lyrtech.com */
155 .atag_offset = 0x100, 154 .atag_offset = 0x100,
156 .map_io = davinci_sffsdr_map_io, 155 .map_io = davinci_sffsdr_map_io,
157 .init_irq = davinci_irq_init, 156 .init_irq = davinci_irq_init,
diff --git a/arch/arm/mach-msm/clock-debug.c b/arch/arm/mach-msm/clock-debug.c
index 4886404d42f5..b0fbdf1cbdd1 100644
--- a/arch/arm/mach-msm/clock-debug.c
+++ b/arch/arm/mach-msm/clock-debug.c
@@ -104,7 +104,7 @@ int __init clock_debug_add(struct clk *clock)
104 if (!debugfs_base) 104 if (!debugfs_base)
105 return -ENOMEM; 105 return -ENOMEM;
106 106
107 strncpy(temp, clock->dbg_name, ARRAY_SIZE(temp)-1); 107 strlcpy(temp, clock->dbg_name, ARRAY_SIZE(temp));
108 for (ptr = temp; *ptr; ptr++) 108 for (ptr = temp; *ptr; ptr++)
109 *ptr = tolower(*ptr); 109 *ptr = tolower(*ptr);
110 110
diff --git a/arch/arm/mach-mxs/Kconfig b/arch/arm/mach-mxs/Kconfig
index 4dc2fbba0ecd..3a66635e7d17 100644
--- a/arch/arm/mach-mxs/Kconfig
+++ b/arch/arm/mach-mxs/Kconfig
@@ -3,7 +3,6 @@ config SOC_IMX23
3 select ARM_AMBA 3 select ARM_AMBA
4 select ARM_CPU_SUSPEND if PM 4 select ARM_CPU_SUSPEND if PM
5 select CPU_ARM926T 5 select CPU_ARM926T
6 select HAVE_PWM
7 select PINCTRL_IMX23 6 select PINCTRL_IMX23
8 7
9config SOC_IMX28 8config SOC_IMX28
@@ -12,7 +11,6 @@ config SOC_IMX28
12 select ARM_CPU_SUSPEND if PM 11 select ARM_CPU_SUSPEND if PM
13 select CPU_ARM926T 12 select CPU_ARM926T
14 select HAVE_CAN_FLEXCAN if CAN 13 select HAVE_CAN_FLEXCAN if CAN
15 select HAVE_PWM
16 select PINCTRL_IMX28 14 select PINCTRL_IMX28
17 15
18config ARCH_MXS 16config ARCH_MXS
diff --git a/arch/arm/mach-mxs/pm.h b/arch/arm/mach-mxs/pm.h
index f57e7cdece2e..09d77b00a96b 100644
--- a/arch/arm/mach-mxs/pm.h
+++ b/arch/arm/mach-mxs/pm.h
@@ -9,6 +9,10 @@
9#ifndef __ARCH_MXS_PM_H 9#ifndef __ARCH_MXS_PM_H
10#define __ARCH_MXS_PM_H 10#define __ARCH_MXS_PM_H
11 11
12#ifdef CONFIG_PM
12void mxs_pm_init(void); 13void mxs_pm_init(void);
14#else
15#define mxs_pm_init NULL
16#endif
13 17
14#endif 18#endif
diff --git a/arch/arm/mach-omap2/board-cm-t35.c b/arch/arm/mach-omap2/board-cm-t35.c
index ee6218c74807..d4622ed26252 100644
--- a/arch/arm/mach-omap2/board-cm-t35.c
+++ b/arch/arm/mach-omap2/board-cm-t35.c
@@ -293,7 +293,8 @@ static struct regulator_consumer_supply cm_t35_vsim_supply[] = {
293static struct regulator_consumer_supply cm_t35_vio_supplies[] = { 293static struct regulator_consumer_supply cm_t35_vio_supplies[] = {
294 REGULATOR_SUPPLY("vcc", "spi1.0"), 294 REGULATOR_SUPPLY("vcc", "spi1.0"),
295 REGULATOR_SUPPLY("vdds_dsi", "omapdss"), 295 REGULATOR_SUPPLY("vdds_dsi", "omapdss"),
296 REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi1"), 296 REGULATOR_SUPPLY("vdds_dsi", "omapdss_dpi.0"),
297 REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi.0"),
297}; 298};
298 299
299/* VMMC1 for MMC1 pins CMD, CLK, DAT0..DAT3 (20 mA, plus card == max 220 mA) */ 300/* VMMC1 for MMC1 pins CMD, CLK, DAT0..DAT3 (20 mA, plus card == max 220 mA) */
diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-omap2/board-devkit8000.c
index 576420544178..f1d91ba5d1ac 100644
--- a/arch/arm/mach-omap2/board-devkit8000.c
+++ b/arch/arm/mach-omap2/board-devkit8000.c
@@ -222,6 +222,7 @@ static struct twl4030_gpio_platform_data devkit8000_gpio_data = {
222 222
223static struct regulator_consumer_supply devkit8000_vpll1_supplies[] = { 223static struct regulator_consumer_supply devkit8000_vpll1_supplies[] = {
224 REGULATOR_SUPPLY("vdds_dsi", "omapdss"), 224 REGULATOR_SUPPLY("vdds_dsi", "omapdss"),
225 REGULATOR_SUPPLY("vdds_dsi", "omapdss_dpi.0"),
225 REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi.0"), 226 REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi.0"),
226}; 227};
227 228
diff --git a/arch/arm/mach-omap2/board-ldp.c b/arch/arm/mach-omap2/board-ldp.c
index d0d17bc58d9b..62e4f701b63b 100644
--- a/arch/arm/mach-omap2/board-ldp.c
+++ b/arch/arm/mach-omap2/board-ldp.c
@@ -272,7 +272,8 @@ static struct regulator_init_data ldp_vaux1 = {
272 272
273static struct regulator_consumer_supply ldp_vpll2_supplies[] = { 273static struct regulator_consumer_supply ldp_vpll2_supplies[] = {
274 REGULATOR_SUPPLY("vdds_dsi", "omapdss"), 274 REGULATOR_SUPPLY("vdds_dsi", "omapdss"),
275 REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi1"), 275 REGULATOR_SUPPLY("vdds_dsi", "omapdss_dpi.0"),
276 REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi.0"),
276}; 277};
277 278
278static struct regulator_init_data ldp_vpll2 = { 279static struct regulator_init_data ldp_vpll2 = {
diff --git a/arch/arm/mach-omap2/board-omap3pandora.c b/arch/arm/mach-omap2/board-omap3pandora.c
index 28133d5b4fed..b1547a0edfcd 100644
--- a/arch/arm/mach-omap2/board-omap3pandora.c
+++ b/arch/arm/mach-omap2/board-omap3pandora.c
@@ -343,6 +343,7 @@ static struct regulator_consumer_supply pandora_vmmc3_supply[] = {
343static struct regulator_consumer_supply pandora_vdds_supplies[] = { 343static struct regulator_consumer_supply pandora_vdds_supplies[] = {
344 REGULATOR_SUPPLY("vdds_sdi", "omapdss"), 344 REGULATOR_SUPPLY("vdds_sdi", "omapdss"),
345 REGULATOR_SUPPLY("vdds_dsi", "omapdss"), 345 REGULATOR_SUPPLY("vdds_dsi", "omapdss"),
346 REGULATOR_SUPPLY("vdds_dsi", "omapdss_dpi.0"),
346 REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi.0"), 347 REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi.0"),
347}; 348};
348 349
diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c b/arch/arm/mach-omap2/board-rx51-peripherals.c
index 18ca61e300b3..9c2dd102fbbb 100644
--- a/arch/arm/mach-omap2/board-rx51-peripherals.c
+++ b/arch/arm/mach-omap2/board-rx51-peripherals.c
@@ -553,6 +553,7 @@ static struct regulator_consumer_supply rx51_vio_supplies[] = {
553 553
554static struct regulator_consumer_supply rx51_vaux1_consumers[] = { 554static struct regulator_consumer_supply rx51_vaux1_consumers[] = {
555 REGULATOR_SUPPLY("vdds_sdi", "omapdss"), 555 REGULATOR_SUPPLY("vdds_sdi", "omapdss"),
556 REGULATOR_SUPPLY("vdds_sdi", "omapdss_sdi.0"),
556 /* Si4713 supply */ 557 /* Si4713 supply */
557 REGULATOR_SUPPLY("vdd", "2-0063"), 558 REGULATOR_SUPPLY("vdd", "2-0063"),
558 /* lis3lv02d */ 559 /* lis3lv02d */
diff --git a/arch/arm/mach-omap2/control.c b/arch/arm/mach-omap2/control.c
index 2adb2683f074..31e0dfe4a4ea 100644
--- a/arch/arm/mach-omap2/control.c
+++ b/arch/arm/mach-omap2/control.c
@@ -249,6 +249,7 @@ void omap_ctrl_write_dsp_boot_addr(u32 bootaddr)
249 u32 offset = cpu_is_omap243x() ? OMAP243X_CONTROL_IVA2_BOOTADDR : 249 u32 offset = cpu_is_omap243x() ? OMAP243X_CONTROL_IVA2_BOOTADDR :
250 cpu_is_omap34xx() ? OMAP343X_CONTROL_IVA2_BOOTADDR : 250 cpu_is_omap34xx() ? OMAP343X_CONTROL_IVA2_BOOTADDR :
251 cpu_is_omap44xx() ? OMAP4_CTRL_MODULE_CORE_DSP_BOOTADDR : 251 cpu_is_omap44xx() ? OMAP4_CTRL_MODULE_CORE_DSP_BOOTADDR :
252 soc_is_omap54xx() ? OMAP4_CTRL_MODULE_CORE_DSP_BOOTADDR :
252 0; 253 0;
253 254
254 if (!offset) { 255 if (!offset) {
diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
index 4269fc145698..daa0ff65f599 100644
--- a/arch/arm/mach-omap2/devices.c
+++ b/arch/arm/mach-omap2/devices.c
@@ -374,10 +374,8 @@ static void __init omap_init_mcpdm(void)
374 struct platform_device *pdev; 374 struct platform_device *pdev;
375 375
376 oh = omap_hwmod_lookup("mcpdm"); 376 oh = omap_hwmod_lookup("mcpdm");
377 if (!oh) { 377 if (!oh)
378 printk(KERN_ERR "Could not look up mcpdm hw_mod\n");
379 return; 378 return;
380 }
381 379
382 pdev = omap_device_build("omap-mcpdm", -1, oh, NULL, 0); 380 pdev = omap_device_build("omap-mcpdm", -1, oh, NULL, 0);
383 WARN(IS_ERR(pdev), "Can't build omap_device for omap-mcpdm.\n"); 381 WARN(IS_ERR(pdev), "Can't build omap_device for omap-mcpdm.\n");
@@ -395,10 +393,8 @@ static void __init omap_init_dmic(void)
395 struct platform_device *pdev; 393 struct platform_device *pdev;
396 394
397 oh = omap_hwmod_lookup("dmic"); 395 oh = omap_hwmod_lookup("dmic");
398 if (!oh) { 396 if (!oh)
399 pr_err("Could not look up dmic hw_mod\n");
400 return; 397 return;
401 }
402 398
403 pdev = omap_device_build("omap-dmic", -1, oh, NULL, 0); 399 pdev = omap_device_build("omap-dmic", -1, oh, NULL, 0);
404 WARN(IS_ERR(pdev), "Can't build omap_device for omap-dmic.\n"); 400 WARN(IS_ERR(pdev), "Can't build omap_device for omap-dmic.\n");
@@ -421,10 +417,8 @@ static void __init omap_init_hdmi_audio(void)
421 struct platform_device *pdev; 417 struct platform_device *pdev;
422 418
423 oh = omap_hwmod_lookup("dss_hdmi"); 419 oh = omap_hwmod_lookup("dss_hdmi");
424 if (!oh) { 420 if (!oh)
425 printk(KERN_ERR "Could not look up dss_hdmi hw_mod\n");
426 return; 421 return;
427 }
428 422
429 pdev = omap_device_build("omap-hdmi-audio-dai", -1, oh, NULL, 0); 423 pdev = omap_device_build("omap-hdmi-audio-dai", -1, oh, NULL, 0);
430 WARN(IS_ERR(pdev), 424 WARN(IS_ERR(pdev),
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
index 1272c41d4749..54e4c16ce539 100644
--- a/arch/arm/mach-omap2/id.c
+++ b/arch/arm/mach-omap2/id.c
@@ -601,7 +601,7 @@ void __init omap2_set_globals_tap(u32 class, void __iomem *tap)
601 601
602#ifdef CONFIG_SOC_BUS 602#ifdef CONFIG_SOC_BUS
603 603
604static const char const *omap_types[] = { 604static const char * const omap_types[] = {
605 [OMAP2_DEVICE_TYPE_TEST] = "TST", 605 [OMAP2_DEVICE_TYPE_TEST] = "TST",
606 [OMAP2_DEVICE_TYPE_EMU] = "EMU", 606 [OMAP2_DEVICE_TYPE_EMU] = "EMU",
607 [OMAP2_DEVICE_TYPE_SEC] = "HS", 607 [OMAP2_DEVICE_TYPE_SEC] = "HS",
diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c
index f6601563aa69..a7cf8d783bd0 100644
--- a/arch/arm/mach-omap2/serial.c
+++ b/arch/arm/mach-omap2/serial.c
@@ -176,6 +176,9 @@ static char *cmdline_find_option(char *str)
176 176
177static int __init omap_serial_early_init(void) 177static int __init omap_serial_early_init(void)
178{ 178{
179 if (of_have_populated_dt())
180 return -ENODEV;
181
179 do { 182 do {
180 char oh_name[MAX_UART_HWMOD_NAME_LEN]; 183 char oh_name[MAX_UART_HWMOD_NAME_LEN];
181 struct omap_hwmod *oh; 184 struct omap_hwmod *oh;
diff --git a/arch/arm/mach-omap2/twl-common.c b/arch/arm/mach-omap2/twl-common.c
index 51e138cc5398..c05898fbd634 100644
--- a/arch/arm/mach-omap2/twl-common.c
+++ b/arch/arm/mach-omap2/twl-common.c
@@ -140,6 +140,7 @@ static struct regulator_init_data omap3_vdac_idata = {
140 140
141static struct regulator_consumer_supply omap3_vpll2_supplies[] = { 141static struct regulator_consumer_supply omap3_vpll2_supplies[] = {
142 REGULATOR_SUPPLY("vdds_dsi", "omapdss"), 142 REGULATOR_SUPPLY("vdds_dsi", "omapdss"),
143 REGULATOR_SUPPLY("vdds_dsi", "omapdss_dpi.0"),
143 REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi.0"), 144 REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi.0"),
144}; 145};
145 146
diff --git a/arch/arm/mach-omap2/usb-host.c b/arch/arm/mach-omap2/usb-host.c
index aa27d7f5cbb7..609b330e5110 100644
--- a/arch/arm/mach-omap2/usb-host.c
+++ b/arch/arm/mach-omap2/usb-host.c
@@ -28,6 +28,7 @@
28#include <linux/io.h> 28#include <linux/io.h>
29#include <linux/gpio.h> 29#include <linux/gpio.h>
30#include <linux/usb/phy.h> 30#include <linux/usb/phy.h>
31#include <linux/usb/nop-usb-xceiv.h>
31 32
32#include "soc.h" 33#include "soc.h"
33#include "omap_device.h" 34#include "omap_device.h"
@@ -560,7 +561,8 @@ static int usbhs_add_regulator(char *name, char *dev_id, char *dev_supply,
560 struct regulator_init_data *reg_data; 561 struct regulator_init_data *reg_data;
561 struct fixed_voltage_config *config; 562 struct fixed_voltage_config *config;
562 struct platform_device *pdev; 563 struct platform_device *pdev;
563 int ret; 564 struct platform_device_info pdevinfo;
565 int ret = -ENOMEM;
564 566
565 supplies = kzalloc(sizeof(*supplies), GFP_KERNEL); 567 supplies = kzalloc(sizeof(*supplies), GFP_KERNEL);
566 if (!supplies) 568 if (!supplies)
@@ -571,7 +573,7 @@ static int usbhs_add_regulator(char *name, char *dev_id, char *dev_supply,
571 573
572 reg_data = kzalloc(sizeof(*reg_data), GFP_KERNEL); 574 reg_data = kzalloc(sizeof(*reg_data), GFP_KERNEL);
573 if (!reg_data) 575 if (!reg_data)
574 return -ENOMEM; 576 goto err_data;
575 577
576 reg_data->constraints.valid_ops_mask = REGULATOR_CHANGE_STATUS; 578 reg_data->constraints.valid_ops_mask = REGULATOR_CHANGE_STATUS;
577 reg_data->consumer_supplies = supplies; 579 reg_data->consumer_supplies = supplies;
@@ -580,39 +582,53 @@ static int usbhs_add_regulator(char *name, char *dev_id, char *dev_supply,
580 config = kmemdup(&hsusb_reg_config, sizeof(hsusb_reg_config), 582 config = kmemdup(&hsusb_reg_config, sizeof(hsusb_reg_config),
581 GFP_KERNEL); 583 GFP_KERNEL);
582 if (!config) 584 if (!config)
583 return -ENOMEM; 585 goto err_config;
586
587 config->supply_name = kstrdup(name, GFP_KERNEL);
588 if (!config->supply_name)
589 goto err_supplyname;
584 590
585 config->supply_name = name;
586 config->gpio = gpio; 591 config->gpio = gpio;
587 config->enable_high = polarity; 592 config->enable_high = polarity;
588 config->init_data = reg_data; 593 config->init_data = reg_data;
589 594
590 /* create a regulator device */ 595 /* create a regulator device */
591 pdev = kzalloc(sizeof(*pdev), GFP_KERNEL); 596 memset(&pdevinfo, 0, sizeof(pdevinfo));
592 if (!pdev) 597 pdevinfo.name = reg_name;
593 return -ENOMEM; 598 pdevinfo.id = PLATFORM_DEVID_AUTO;
599 pdevinfo.data = config;
600 pdevinfo.size_data = sizeof(*config);
594 601
595 pdev->id = PLATFORM_DEVID_AUTO; 602 pdev = platform_device_register_full(&pdevinfo);
596 pdev->name = reg_name; 603 if (IS_ERR(pdev)) {
597 pdev->dev.platform_data = config; 604 ret = PTR_ERR(pdev);
605 pr_err("%s: Failed registering regulator %s for %s : %d\n",
606 __func__, name, dev_id, ret);
607 goto err_register;
608 }
598 609
599 ret = platform_device_register(pdev); 610 return 0;
600 if (ret)
601 pr_err("%s: Failed registering regulator %s for %s\n",
602 __func__, name, dev_id);
603 611
612err_register:
613 kfree(config->supply_name);
614err_supplyname:
615 kfree(config);
616err_config:
617 kfree(reg_data);
618err_data:
619 kfree(supplies);
604 return ret; 620 return ret;
605} 621}
606 622
623#define MAX_STR 20
624
607int usbhs_init_phys(struct usbhs_phy_data *phy, int num_phys) 625int usbhs_init_phys(struct usbhs_phy_data *phy, int num_phys)
608{ 626{
609 char *rail_name; 627 char rail_name[MAX_STR];
610 int i, len; 628 int i;
611 struct platform_device *pdev; 629 struct platform_device *pdev;
612 char *phy_id; 630 char *phy_id;
613 631 struct platform_device_info pdevinfo;
614 /* the phy_id will be something like "nop_usb_xceiv.1" */
615 len = strlen(nop_name) + 3; /* 3 -> ".1" and NULL terminator */
616 632
617 for (i = 0; i < num_phys; i++) { 633 for (i = 0; i < num_phys; i++) {
618 634
@@ -627,25 +643,26 @@ int usbhs_init_phys(struct usbhs_phy_data *phy, int num_phys)
627 !gpio_is_valid(phy->vcc_gpio)) 643 !gpio_is_valid(phy->vcc_gpio))
628 continue; 644 continue;
629 645
630 /* create a NOP PHY device */ 646 phy_id = kmalloc(MAX_STR, GFP_KERNEL);
631 pdev = kzalloc(sizeof(*pdev), GFP_KERNEL); 647 if (!phy_id) {
632 if (!pdev) 648 pr_err("%s: kmalloc() failed\n", __func__);
633 return -ENOMEM;
634
635 pdev->id = phy->port;
636 pdev->name = nop_name;
637 pdev->dev.platform_data = phy->platform_data;
638
639 phy_id = kmalloc(len, GFP_KERNEL);
640 if (!phy_id)
641 return -ENOMEM; 649 return -ENOMEM;
650 }
642 651
643 scnprintf(phy_id, len, "nop_usb_xceiv.%d\n", 652 /* create a NOP PHY device */
644 pdev->id); 653 memset(&pdevinfo, 0, sizeof(pdevinfo));
645 654 pdevinfo.name = nop_name;
646 if (platform_device_register(pdev)) { 655 pdevinfo.id = phy->port;
647 pr_err("%s: Failed to register device %s\n", 656 pdevinfo.data = phy->platform_data;
648 __func__, phy_id); 657 pdevinfo.size_data = sizeof(struct nop_usb_xceiv_platform_data);
658
659 scnprintf(phy_id, MAX_STR, "nop_usb_xceiv.%d",
660 phy->port);
661 pdev = platform_device_register_full(&pdevinfo);
662 if (IS_ERR(pdev)) {
663 pr_err("%s: Failed to register device %s : %ld\n",
664 __func__, phy_id, PTR_ERR(pdev));
665 kfree(phy_id);
649 continue; 666 continue;
650 } 667 }
651 668
@@ -653,26 +670,15 @@ int usbhs_init_phys(struct usbhs_phy_data *phy, int num_phys)
653 670
654 /* Do we need RESET regulator ? */ 671 /* Do we need RESET regulator ? */
655 if (gpio_is_valid(phy->reset_gpio)) { 672 if (gpio_is_valid(phy->reset_gpio)) {
656 673 scnprintf(rail_name, MAX_STR,
657 rail_name = kmalloc(13, GFP_KERNEL); 674 "hsusb%d_reset", phy->port);
658 if (!rail_name)
659 return -ENOMEM;
660
661 scnprintf(rail_name, 13, "hsusb%d_reset", phy->port);
662
663 usbhs_add_regulator(rail_name, phy_id, "reset", 675 usbhs_add_regulator(rail_name, phy_id, "reset",
664 phy->reset_gpio, 1); 676 phy->reset_gpio, 1);
665 } 677 }
666 678
667 /* Do we need VCC regulator ? */ 679 /* Do we need VCC regulator ? */
668 if (gpio_is_valid(phy->vcc_gpio)) { 680 if (gpio_is_valid(phy->vcc_gpio)) {
669 681 scnprintf(rail_name, MAX_STR, "hsusb%d_vcc", phy->port);
670 rail_name = kmalloc(13, GFP_KERNEL);
671 if (!rail_name)
672 return -ENOMEM;
673
674 scnprintf(rail_name, 13, "hsusb%d_vcc", phy->port);
675
676 usbhs_add_regulator(rail_name, phy_id, "vcc", 682 usbhs_add_regulator(rail_name, phy_id, "vcc",
677 phy->vcc_gpio, phy->vcc_polarity); 683 phy->vcc_gpio, phy->vcc_polarity);
678 } 684 }
diff --git a/arch/arm/mach-prima2/common.c b/arch/arm/mach-prima2/common.c
index 4f94cd87972a..e588c2152133 100644
--- a/arch/arm/mach-prima2/common.c
+++ b/arch/arm/mach-prima2/common.c
@@ -17,16 +17,6 @@
17#include <linux/of_platform.h> 17#include <linux/of_platform.h>
18#include "common.h" 18#include "common.h"
19 19
20static struct of_device_id sirfsoc_of_bus_ids[] __initdata = {
21 { .compatible = "simple-bus", },
22 {},
23};
24
25void __init sirfsoc_mach_init(void)
26{
27 of_platform_bus_probe(NULL, sirfsoc_of_bus_ids, NULL);
28}
29
30void __init sirfsoc_init_late(void) 20void __init sirfsoc_init_late(void)
31{ 21{
32 sirfsoc_pm_init(); 22 sirfsoc_pm_init();
@@ -57,7 +47,6 @@ DT_MACHINE_START(ATLAS6_DT, "Generic ATLAS6 (Flattened Device Tree)")
57 .map_io = sirfsoc_map_io, 47 .map_io = sirfsoc_map_io,
58 .init_irq = irqchip_init, 48 .init_irq = irqchip_init,
59 .init_time = sirfsoc_init_time, 49 .init_time = sirfsoc_init_time,
60 .init_machine = sirfsoc_mach_init,
61 .init_late = sirfsoc_init_late, 50 .init_late = sirfsoc_init_late,
62 .dt_compat = atlas6_dt_match, 51 .dt_compat = atlas6_dt_match,
63 .restart = sirfsoc_restart, 52 .restart = sirfsoc_restart,
@@ -66,8 +55,8 @@ MACHINE_END
66 55
67#ifdef CONFIG_ARCH_PRIMA2 56#ifdef CONFIG_ARCH_PRIMA2
68static const char *prima2_dt_match[] __initdata = { 57static const char *prima2_dt_match[] __initdata = {
69 "sirf,prima2", 58 "sirf,prima2",
70 NULL 59 NULL
71}; 60};
72 61
73DT_MACHINE_START(PRIMA2_DT, "Generic PRIMA2 (Flattened Device Tree)") 62DT_MACHINE_START(PRIMA2_DT, "Generic PRIMA2 (Flattened Device Tree)")
@@ -77,7 +66,6 @@ DT_MACHINE_START(PRIMA2_DT, "Generic PRIMA2 (Flattened Device Tree)")
77 .init_irq = irqchip_init, 66 .init_irq = irqchip_init,
78 .init_time = sirfsoc_init_time, 67 .init_time = sirfsoc_init_time,
79 .dma_zone_size = SZ_256M, 68 .dma_zone_size = SZ_256M,
80 .init_machine = sirfsoc_mach_init,
81 .init_late = sirfsoc_init_late, 69 .init_late = sirfsoc_init_late,
82 .dt_compat = prima2_dt_match, 70 .dt_compat = prima2_dt_match,
83 .restart = sirfsoc_restart, 71 .restart = sirfsoc_restart,
@@ -96,7 +84,6 @@ DT_MACHINE_START(MARCO_DT, "Generic MARCO (Flattened Device Tree)")
96 .map_io = sirfsoc_map_io, 84 .map_io = sirfsoc_map_io,
97 .init_irq = irqchip_init, 85 .init_irq = irqchip_init,
98 .init_time = sirfsoc_init_time, 86 .init_time = sirfsoc_init_time,
99 .init_machine = sirfsoc_mach_init,
100 .init_late = sirfsoc_init_late, 87 .init_late = sirfsoc_init_late,
101 .dt_compat = marco_dt_match, 88 .dt_compat = marco_dt_match,
102 .restart = sirfsoc_restart, 89 .restart = sirfsoc_restart,
diff --git a/arch/arm/mach-prima2/pm.c b/arch/arm/mach-prima2/pm.c
index 8f595c0cc8d9..02cc34388b05 100644
--- a/arch/arm/mach-prima2/pm.c
+++ b/arch/arm/mach-prima2/pm.c
@@ -9,7 +9,7 @@
9#include <linux/kernel.h> 9#include <linux/kernel.h>
10#include <linux/suspend.h> 10#include <linux/suspend.h>
11#include <linux/slab.h> 11#include <linux/slab.h>
12#include <linux/module.h> 12#include <linux/export.h>
13#include <linux/of.h> 13#include <linux/of.h>
14#include <linux/of_address.h> 14#include <linux/of_address.h>
15#include <linux/of_device.h> 15#include <linux/of_device.h>
diff --git a/arch/arm/mach-tegra/pmc.c b/arch/arm/mach-tegra/pmc.c
index 32360e540ce6..eb3fa4aee0e4 100644
--- a/arch/arm/mach-tegra/pmc.c
+++ b/arch/arm/mach-tegra/pmc.c
@@ -234,7 +234,7 @@ static const struct of_device_id matches[] __initconst = {
234 { } 234 { }
235}; 235};
236 236
237static void tegra_pmc_parse_dt(void) 237static void __init tegra_pmc_parse_dt(void)
238{ 238{
239 struct device_node *np; 239 struct device_node *np;
240 u32 prop; 240 u32 prop;
diff --git a/drivers/char/hw_random/bcm2835-rng.c b/drivers/char/hw_random/bcm2835-rng.c
index eb7f14725ebd..43577ca780e3 100644
--- a/drivers/char/hw_random/bcm2835-rng.c
+++ b/drivers/char/hw_random/bcm2835-rng.c
@@ -110,4 +110,4 @@ module_platform_driver(bcm2835_rng_driver);
110 110
111MODULE_AUTHOR("Lubomir Rintel <lkundrak@v3.sk>"); 111MODULE_AUTHOR("Lubomir Rintel <lkundrak@v3.sk>");
112MODULE_DESCRIPTION("BCM2835 Random Number Generator (RNG) driver"); 112MODULE_DESCRIPTION("BCM2835 Random Number Generator (RNG) driver");
113MODULE_LICENSE("GPLv2"); 113MODULE_LICENSE("GPL v2");
diff --git a/drivers/clk/Makefile b/drivers/clk/Makefile
index 137d3e730f86..f0e46997bb12 100644
--- a/drivers/clk/Makefile
+++ b/drivers/clk/Makefile
@@ -18,7 +18,7 @@ obj-$(CONFIG_ARCH_SOCFPGA) += socfpga/
18obj-$(CONFIG_PLAT_SPEAR) += spear/ 18obj-$(CONFIG_PLAT_SPEAR) += spear/
19obj-$(CONFIG_ARCH_U300) += clk-u300.o 19obj-$(CONFIG_ARCH_U300) += clk-u300.o
20obj-$(CONFIG_COMMON_CLK_VERSATILE) += versatile/ 20obj-$(CONFIG_COMMON_CLK_VERSATILE) += versatile/
21obj-$(CONFIG_ARCH_PRIMA2) += clk-prima2.o 21obj-$(CONFIG_ARCH_SIRF) += clk-prima2.o
22obj-$(CONFIG_PLAT_ORION) += mvebu/ 22obj-$(CONFIG_PLAT_ORION) += mvebu/
23ifeq ($(CONFIG_COMMON_CLK), y) 23ifeq ($(CONFIG_COMMON_CLK), y)
24obj-$(CONFIG_ARCH_MMP) += mmp/ 24obj-$(CONFIG_ARCH_MMP) += mmp/
diff --git a/drivers/clocksource/bcm_kona_timer.c b/drivers/clocksource/bcm_kona_timer.c
index 350f49356458..ba3d85904c9a 100644
--- a/drivers/clocksource/bcm_kona_timer.c
+++ b/drivers/clocksource/bcm_kona_timer.c
@@ -103,16 +103,10 @@ static const struct of_device_id bcm_timer_ids[] __initconst = {
103 {}, 103 {},
104}; 104};
105 105
106static void __init kona_timers_init(void) 106static void __init kona_timers_init(struct device_node *node)
107{ 107{
108 struct device_node *node;
109 u32 freq; 108 u32 freq;
110 109
111 node = of_find_matching_node(NULL, bcm_timer_ids);
112
113 if (!node)
114 panic("No timer");
115
116 if (!of_property_read_u32(node, "clock-frequency", &freq)) 110 if (!of_property_read_u32(node, "clock-frequency", &freq))
117 arch_timer_rate = freq; 111 arch_timer_rate = freq;
118 else 112 else
@@ -199,13 +193,12 @@ static struct irqaction kona_timer_irq = {
199 .handler = kona_timer_interrupt, 193 .handler = kona_timer_interrupt,
200}; 194};
201 195
202static void __init kona_timer_init(void) 196static void __init kona_timer_init(struct device_node *node)
203{ 197{
204 kona_timers_init(); 198 kona_timers_init(node);
205 kona_timer_clockevents_init(); 199 kona_timer_clockevents_init();
206 setup_irq(timers.tmr_irq, &kona_timer_irq); 200 setup_irq(timers.tmr_irq, &kona_timer_irq);
207 kona_timer_set_next_event((arch_timer_rate / HZ), NULL); 201 kona_timer_set_next_event((arch_timer_rate / HZ), NULL);
208} 202}
209 203
210CLOCKSOURCE_OF_DECLARE(bcm_kona, "bcm,kona-timer", 204CLOCKSOURCE_OF_DECLARE(bcm_kona, "bcm,kona-timer", kona_timer_init);
211 kona_timer_init);
diff --git a/drivers/cpuidle/Kconfig b/drivers/cpuidle/Kconfig
index c4cc27e5c8a5..e21cdfa4002a 100644
--- a/drivers/cpuidle/Kconfig
+++ b/drivers/cpuidle/Kconfig
@@ -36,6 +36,7 @@ if CPU_IDLE
36config CPU_IDLE_CALXEDA 36config CPU_IDLE_CALXEDA
37 bool "CPU Idle Driver for Calxeda processors" 37 bool "CPU Idle Driver for Calxeda processors"
38 depends on ARCH_HIGHBANK 38 depends on ARCH_HIGHBANK
39 select ARM_CPU_SUSPEND
39 help 40 help
40 Select this to enable cpuidle on Calxeda processors. 41 Select this to enable cpuidle on Calxeda processors.
41 42
diff --git a/drivers/gpio/gpio-msm-v1.c b/drivers/gpio/gpio-msm-v1.c
index c798585a3fe5..fb2cc90d0134 100644
--- a/drivers/gpio/gpio-msm-v1.c
+++ b/drivers/gpio/gpio-msm-v1.c
@@ -630,7 +630,7 @@ static struct irq_chip msm_gpio_irq_chip = {
630 .irq_set_type = msm_gpio_irq_set_type, 630 .irq_set_type = msm_gpio_irq_set_type,
631}; 631};
632 632
633static int __devinit gpio_msm_v1_probe(struct platform_device *pdev) 633static int gpio_msm_v1_probe(struct platform_device *pdev)
634{ 634{
635 int i, j = 0; 635 int i, j = 0;
636 const struct platform_device_id *dev_id = platform_get_device_id(pdev); 636 const struct platform_device_id *dev_id = platform_get_device_id(pdev);
diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
index 631736e2e7ed..73e2e7db2b64 100644
--- a/drivers/i2c/busses/Kconfig
+++ b/drivers/i2c/busses/Kconfig
@@ -685,7 +685,7 @@ config I2C_SIMTEC
685 685
686config I2C_SIRF 686config I2C_SIRF
687 tristate "CSR SiRFprimaII I2C interface" 687 tristate "CSR SiRFprimaII I2C interface"
688 depends on ARCH_PRIMA2 688 depends on ARCH_SIRF
689 help 689 help
690 If you say yes to this option, support will be included for the 690 If you say yes to this option, support will be included for the
691 CSR SiRFprimaII I2C interface. 691 CSR SiRFprimaII I2C interface.
diff --git a/drivers/irqchip/irq-renesas-irqc.c b/drivers/irqchip/irq-renesas-irqc.c
index 927bff373aac..2f404ba61c6c 100644
--- a/drivers/irqchip/irq-renesas-irqc.c
+++ b/drivers/irqchip/irq-renesas-irqc.c
@@ -248,8 +248,8 @@ static int irqc_probe(struct platform_device *pdev)
248 248
249 return 0; 249 return 0;
250err3: 250err3:
251 for (; k >= 0; k--) 251 while (--k >= 0)
252 free_irq(p->irq[k - 1].requested_irq, &p->irq[k - 1]); 252 free_irq(p->irq[k].requested_irq, &p->irq[k]);
253 253
254 irq_domain_remove(p->irq_domain); 254 irq_domain_remove(p->irq_domain);
255err2: 255err2:
diff --git a/drivers/mtd/nand/Kconfig b/drivers/mtd/nand/Kconfig
index a60f6c17f57b..50543f166215 100644
--- a/drivers/mtd/nand/Kconfig
+++ b/drivers/mtd/nand/Kconfig
@@ -95,7 +95,7 @@ config MTD_NAND_OMAP2
95 95
96config MTD_NAND_OMAP_BCH 96config MTD_NAND_OMAP_BCH
97 depends on MTD_NAND && MTD_NAND_OMAP2 && ARCH_OMAP3 97 depends on MTD_NAND && MTD_NAND_OMAP2 && ARCH_OMAP3
98 bool "Enable support for hardware BCH error correction" 98 tristate "Enable support for hardware BCH error correction"
99 default n 99 default n
100 select BCH 100 select BCH
101 select BCH_CONST_PARAMS 101 select BCH_CONST_PARAMS
diff --git a/drivers/scsi/nsp32.c b/drivers/scsi/nsp32.c
index 1e3879dcbdcc..0665f9cfdb02 100644
--- a/drivers/scsi/nsp32.c
+++ b/drivers/scsi/nsp32.c
@@ -2899,7 +2899,7 @@ static void nsp32_do_bus_reset(nsp32_hw_data *data)
2899 * reset SCSI bus 2899 * reset SCSI bus
2900 */ 2900 */
2901 nsp32_write1(base, SCSI_BUS_CONTROL, BUSCTL_RST); 2901 nsp32_write1(base, SCSI_BUS_CONTROL, BUSCTL_RST);
2902 udelay(RESET_HOLD_TIME); 2902 mdelay(RESET_HOLD_TIME / 1000);
2903 nsp32_write1(base, SCSI_BUS_CONTROL, 0); 2903 nsp32_write1(base, SCSI_BUS_CONTROL, 0);
2904 for(i = 0; i < 5; i++) { 2904 for(i = 0; i < 5; i++) {
2905 intrdat = nsp32_read2(base, IRQ_STATUS); /* dummy read */ 2905 intrdat = nsp32_read2(base, IRQ_STATUS); /* dummy read */
diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
index 92a9345d7a6b..10f99f45a29b 100644
--- a/drivers/spi/Kconfig
+++ b/drivers/spi/Kconfig
@@ -404,7 +404,7 @@ config SPI_SH_HSPI
404 404
405config SPI_SIRF 405config SPI_SIRF
406 tristate "CSR SiRFprimaII SPI controller" 406 tristate "CSR SiRFprimaII SPI controller"
407 depends on ARCH_PRIMA2 407 depends on ARCH_SIRF
408 select SPI_BITBANG 408 select SPI_BITBANG
409 help 409 help
410 SPI driver for CSR SiRFprimaII SoCs 410 SPI driver for CSR SiRFprimaII SoCs
diff --git a/drivers/ssbi/ssbi.c b/drivers/ssbi/ssbi.c
index f32da0258a8e..e561d3be54a5 100644
--- a/drivers/ssbi/ssbi.c
+++ b/drivers/ssbi/ssbi.c
@@ -350,6 +350,7 @@ static struct of_device_id ssbi_match_table[] = {
350 { .compatible = "qcom,ssbi" }, 350 { .compatible = "qcom,ssbi" },
351 {} 351 {}
352}; 352};
353MODULE_DEVICE_TABLE(of, ssbi_match_table);
353 354
354static struct platform_driver ssbi_driver = { 355static struct platform_driver ssbi_driver = {
355 .probe = ssbi_probe, 356 .probe = ssbi_probe,
diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
index 46dd1c72feda..5e3d68917ffe 100644
--- a/drivers/tty/serial/Kconfig
+++ b/drivers/tty/serial/Kconfig
@@ -251,7 +251,7 @@ config SERIAL_SAMSUNG_CONSOLE
251 251
252config SERIAL_SIRFSOC 252config SERIAL_SIRFSOC
253 tristate "SiRF SoC Platform Serial port support" 253 tristate "SiRF SoC Platform Serial port support"
254 depends on ARCH_PRIMA2 254 depends on ARCH_SIRF
255 select SERIAL_CORE 255 select SERIAL_CORE
256 help 256 help
257 Support for the on-chip UART on the CSR SiRFprimaII series, 257 Support for the on-chip UART on the CSR SiRFprimaII series,
diff --git a/include/linux/irqchip.h b/include/linux/irqchip.h
index e0006f1d35a0..14d79131f53d 100644
--- a/include/linux/irqchip.h
+++ b/include/linux/irqchip.h
@@ -11,6 +11,10 @@
11#ifndef _LINUX_IRQCHIP_H 11#ifndef _LINUX_IRQCHIP_H
12#define _LINUX_IRQCHIP_H 12#define _LINUX_IRQCHIP_H
13 13
14#ifdef CONFIG_IRQCHIP
14void irqchip_init(void); 15void irqchip_init(void);
16#else
17static inline void irqchip_init(void) {}
18#endif
15 19
16#endif 20#endif
diff --git a/lib/build_OID_registry b/lib/build_OID_registry
index dfbdaab81bc8..5d9827217360 100755
--- a/lib/build_OID_registry
+++ b/lib/build_OID_registry
@@ -50,8 +50,6 @@ my @indices = ();
50my @lengths = (); 50my @lengths = ();
51my $total_length = 0; 51my $total_length = 0;
52 52
53print "Compiling ", $#names + 1, " OIDs\n";
54
55for (my $i = 0; $i <= $#names; $i++) { 53for (my $i = 0; $i <= $#names; $i++) {
56 my $name = $names[$i]; 54 my $name = $names[$i];
57 my $oid = $oids[$i]; 55 my $oid = $oids[$i];