diff options
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/ | |||
797 | ARM/CSR SIRFPRIMA2 MACHINE SUPPORT | 797 | ARM/CSR SIRFPRIMA2 MACHINE SUPPORT |
798 | M: Barry Song <baohua.song@csr.com> | 798 | M: Barry Song <baohua.song@csr.com> |
799 | L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) | 799 | L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) |
800 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/baohua/linux.git | ||
800 | S: Maintained | 801 | S: Maintained |
801 | F: arch/arm/mach-prima2/ | 802 | F: arch/arm/mach-prima2/ |
802 | F: drivers/dma/sirf-dma.c | 803 | F: drivers/dma/sirf-dma.c |
@@ -1135,6 +1136,7 @@ L: linux-samsung-soc@vger.kernel.org (moderated for non-subscribers) | |||
1135 | S: Maintained | 1136 | S: Maintained |
1136 | F: arch/arm/mach-s5p*/ | 1137 | F: arch/arm/mach-s5p*/ |
1137 | F: arch/arm/mach-exynos*/ | 1138 | F: arch/arm/mach-exynos*/ |
1139 | N: exynos | ||
1138 | 1140 | ||
1139 | ARM/SAMSUNG MOBILE MACHINE SUPPORT | 1141 | ARM/SAMSUNG MOBILE MACHINE SUPPORT |
1140 | M: Kyungmin Park <kyungmin.park@samsung.com> | 1142 | M: 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 | |||
168 | machine-$(CONFIG_ARCH_OMAP2PLUS) += omap2 | 168 | machine-$(CONFIG_ARCH_OMAP2PLUS) += omap2 |
169 | machine-$(CONFIG_ARCH_ORION5X) += orion5x | 169 | machine-$(CONFIG_ARCH_ORION5X) += orion5x |
170 | machine-$(CONFIG_ARCH_PICOXCELL) += picoxcell | 170 | machine-$(CONFIG_ARCH_PICOXCELL) += picoxcell |
171 | machine-$(CONFIG_ARCH_PRIMA2) += prima2 | 171 | machine-$(CONFIG_ARCH_SIRF) += prima2 |
172 | machine-$(CONFIG_ARCH_PXA) += pxa | 172 | machine-$(CONFIG_ARCH_PXA) += pxa |
173 | machine-$(CONFIG_ARCH_REALVIEW) += realview | 173 | machine-$(CONFIG_ARCH_REALVIEW) += realview |
174 | machine-$(CONFIG_ARCH_RPC) += rpc | 174 | machine-$(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 = { | |||
388 | AT91_SOC_START(at91rm9200) | 384 | AT91_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 = { | |||
400 | AT91_SOC_START(at91sam9260) | 398 | AT91_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 = { | |||
342 | AT91_SOC_START(at91sam9261) | 340 | AT91_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 = { | |||
378 | AT91_SOC_START(at91sam9263) | 377 | AT91_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 = { | |||
425 | AT91_SOC_START(at91sam9g45) | 424 | AT91_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 = { | |||
344 | AT91_SOC_START(at91sam9rl) | 343 | AT91_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) | |||
55 | void __init at91x40_initialize(unsigned long main_clock) | 55 | void __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 | ||
87 | void __init at91x40_init_interrupts(unsigned int priority[NR_AIC_IRQS]) | 85 | void __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 | ||
63 | static void __init sama5_dt_device_init(void) | 63 | static 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 */ |
684 | static void __init at91_pllb_usbfs_clock_init(unsigned long main_clock) | 686 | static 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 | ||
732 | static int __init at91_pmc_init(unsigned long main_clock) | 748 | static 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); | |||
85 | extern int __init at91_gpio_of_irq_setup(struct device_node *node, | 85 | extern int __init at91_gpio_of_irq_setup(struct device_node *node, |
86 | struct device_node *parent); | 86 | struct device_node *parent); |
87 | 87 | ||
88 | extern int at91_extern_irq; | 88 | extern 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 | ||
235 | unsigned long *at91_extern_irq; | 235 | static unsigned long *at91_extern_irq; |
236 | |||
237 | u32 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) | |||
48 | void __init at91_init_interrupts(unsigned int *priority) | 48 | void __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 | ||
7 | struct at91_init_soc { | 7 | struct 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 | ||
153 | MACHINE_START(SFFSDR, "Lyrtech SFFSDR") | 153 | MACHINE_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 | ||
9 | config SOC_IMX28 | 8 | config 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 | ||
18 | config ARCH_MXS | 16 | config 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 | ||
12 | void mxs_pm_init(void); | 13 | void 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[] = { | |||
293 | static struct regulator_consumer_supply cm_t35_vio_supplies[] = { | 293 | static 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 | ||
223 | static struct regulator_consumer_supply devkit8000_vpll1_supplies[] = { | 223 | static 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 | ||
273 | static struct regulator_consumer_supply ldp_vpll2_supplies[] = { | 273 | static 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 | ||
278 | static struct regulator_init_data ldp_vpll2 = { | 279 | static 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[] = { | |||
343 | static struct regulator_consumer_supply pandora_vdds_supplies[] = { | 343 | static 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 | ||
554 | static struct regulator_consumer_supply rx51_vaux1_consumers[] = { | 554 | static 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 | ||
604 | static const char const *omap_types[] = { | 604 | static 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 | ||
177 | static int __init omap_serial_early_init(void) | 177 | static 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 | ||
141 | static struct regulator_consumer_supply omap3_vpll2_supplies[] = { | 141 | static 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 | ||
612 | err_register: | ||
613 | kfree(config->supply_name); | ||
614 | err_supplyname: | ||
615 | kfree(config); | ||
616 | err_config: | ||
617 | kfree(reg_data); | ||
618 | err_data: | ||
619 | kfree(supplies); | ||
604 | return ret; | 620 | return ret; |
605 | } | 621 | } |
606 | 622 | ||
623 | #define MAX_STR 20 | ||
624 | |||
607 | int usbhs_init_phys(struct usbhs_phy_data *phy, int num_phys) | 625 | int 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 | ||
20 | static struct of_device_id sirfsoc_of_bus_ids[] __initdata = { | ||
21 | { .compatible = "simple-bus", }, | ||
22 | {}, | ||
23 | }; | ||
24 | |||
25 | void __init sirfsoc_mach_init(void) | ||
26 | { | ||
27 | of_platform_bus_probe(NULL, sirfsoc_of_bus_ids, NULL); | ||
28 | } | ||
29 | |||
30 | void __init sirfsoc_init_late(void) | 20 | void __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 |
68 | static const char *prima2_dt_match[] __initdata = { | 57 | static const char *prima2_dt_match[] __initdata = { |
69 | "sirf,prima2", | 58 | "sirf,prima2", |
70 | NULL | 59 | NULL |
71 | }; | 60 | }; |
72 | 61 | ||
73 | DT_MACHINE_START(PRIMA2_DT, "Generic PRIMA2 (Flattened Device Tree)") | 62 | DT_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 | ||
237 | static void tegra_pmc_parse_dt(void) | 237 | static 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 | ||
111 | MODULE_AUTHOR("Lubomir Rintel <lkundrak@v3.sk>"); | 111 | MODULE_AUTHOR("Lubomir Rintel <lkundrak@v3.sk>"); |
112 | MODULE_DESCRIPTION("BCM2835 Random Number Generator (RNG) driver"); | 112 | MODULE_DESCRIPTION("BCM2835 Random Number Generator (RNG) driver"); |
113 | MODULE_LICENSE("GPLv2"); | 113 | MODULE_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/ | |||
18 | obj-$(CONFIG_PLAT_SPEAR) += spear/ | 18 | obj-$(CONFIG_PLAT_SPEAR) += spear/ |
19 | obj-$(CONFIG_ARCH_U300) += clk-u300.o | 19 | obj-$(CONFIG_ARCH_U300) += clk-u300.o |
20 | obj-$(CONFIG_COMMON_CLK_VERSATILE) += versatile/ | 20 | obj-$(CONFIG_COMMON_CLK_VERSATILE) += versatile/ |
21 | obj-$(CONFIG_ARCH_PRIMA2) += clk-prima2.o | 21 | obj-$(CONFIG_ARCH_SIRF) += clk-prima2.o |
22 | obj-$(CONFIG_PLAT_ORION) += mvebu/ | 22 | obj-$(CONFIG_PLAT_ORION) += mvebu/ |
23 | ifeq ($(CONFIG_COMMON_CLK), y) | 23 | ifeq ($(CONFIG_COMMON_CLK), y) |
24 | obj-$(CONFIG_ARCH_MMP) += mmp/ | 24 | obj-$(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 | ||
106 | static void __init kona_timers_init(void) | 106 | static 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 | ||
202 | static void __init kona_timer_init(void) | 196 | static 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 | ||
210 | CLOCKSOURCE_OF_DECLARE(bcm_kona, "bcm,kona-timer", | 204 | CLOCKSOURCE_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 | |||
36 | config CPU_IDLE_CALXEDA | 36 | config 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 | ||
633 | static int __devinit gpio_msm_v1_probe(struct platform_device *pdev) | 633 | static 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 | ||
686 | config I2C_SIRF | 686 | config 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; |
250 | err3: | 250 | err3: |
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); |
255 | err2: | 255 | err2: |
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 | ||
96 | config MTD_NAND_OMAP_BCH | 96 | config 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 | ||
405 | config SPI_SIRF | 405 | config 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 | }; |
353 | MODULE_DEVICE_TABLE(of, ssbi_match_table); | ||
353 | 354 | ||
354 | static struct platform_driver ssbi_driver = { | 355 | static 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 | ||
252 | config SERIAL_SIRFSOC | 252 | config 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 | ||
14 | void irqchip_init(void); | 15 | void irqchip_init(void); |
16 | #else | ||
17 | static 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 = (); | |||
50 | my @lengths = (); | 50 | my @lengths = (); |
51 | my $total_length = 0; | 51 | my $total_length = 0; |
52 | 52 | ||
53 | print "Compiling ", $#names + 1, " OIDs\n"; | ||
54 | |||
55 | for (my $i = 0; $i <= $#names; $i++) { | 53 | for (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]; |