diff options
Diffstat (limited to 'arch')
66 files changed, 477 insertions, 299 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index f95ba14ae3d0..ab864d9545dd 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -371,7 +371,6 @@ config ARCH_CNS3XXX | |||
371 | config ARCH_CLPS711X | 371 | config ARCH_CLPS711X |
372 | bool "Cirrus Logic CLPS711x/EP721x/EP731x-based" | 372 | bool "Cirrus Logic CLPS711x/EP721x/EP731x-based" |
373 | select ARCH_REQUIRE_GPIOLIB | 373 | select ARCH_REQUIRE_GPIOLIB |
374 | select ARCH_USES_GETTIMEOFFSET | ||
375 | select AUTO_ZRELADDR | 374 | select AUTO_ZRELADDR |
376 | select CLKDEV_LOOKUP | 375 | select CLKDEV_LOOKUP |
377 | select COMMON_CLK | 376 | select COMMON_CLK |
diff --git a/arch/arm/boot/dts/armada-370-db.dts b/arch/arm/boot/dts/armada-370-db.dts index 00044026ef1f..9b82facb2561 100644 --- a/arch/arm/boot/dts/armada-370-db.dts +++ b/arch/arm/boot/dts/armada-370-db.dts | |||
@@ -26,7 +26,7 @@ | |||
26 | 26 | ||
27 | memory { | 27 | memory { |
28 | device_type = "memory"; | 28 | device_type = "memory"; |
29 | reg = <0x00000000 0x20000000>; /* 512 MB */ | 29 | reg = <0x00000000 0x40000000>; /* 1 GB */ |
30 | }; | 30 | }; |
31 | 31 | ||
32 | soc { | 32 | soc { |
diff --git a/arch/arm/boot/dts/armada-370-xp.dtsi b/arch/arm/boot/dts/armada-370-xp.dtsi index cf6c48a09eac..4c0abe85405f 100644 --- a/arch/arm/boot/dts/armada-370-xp.dtsi +++ b/arch/arm/boot/dts/armada-370-xp.dtsi | |||
@@ -50,17 +50,19 @@ | |||
50 | ranges; | 50 | ranges; |
51 | 51 | ||
52 | serial@d0012000 { | 52 | serial@d0012000 { |
53 | compatible = "ns16550"; | 53 | compatible = "snps,dw-apb-uart"; |
54 | reg = <0xd0012000 0x100>; | 54 | reg = <0xd0012000 0x100>; |
55 | reg-shift = <2>; | 55 | reg-shift = <2>; |
56 | interrupts = <41>; | 56 | interrupts = <41>; |
57 | reg-io-width = <4>; | ||
57 | status = "disabled"; | 58 | status = "disabled"; |
58 | }; | 59 | }; |
59 | serial@d0012100 { | 60 | serial@d0012100 { |
60 | compatible = "ns16550"; | 61 | compatible = "snps,dw-apb-uart"; |
61 | reg = <0xd0012100 0x100>; | 62 | reg = <0xd0012100 0x100>; |
62 | reg-shift = <2>; | 63 | reg-shift = <2>; |
63 | interrupts = <42>; | 64 | interrupts = <42>; |
65 | reg-io-width = <4>; | ||
64 | status = "disabled"; | 66 | status = "disabled"; |
65 | }; | 67 | }; |
66 | 68 | ||
diff --git a/arch/arm/boot/dts/armada-xp-mv78230.dtsi b/arch/arm/boot/dts/armada-xp-mv78230.dtsi index c45c7b4dc352..e041f42ed711 100644 --- a/arch/arm/boot/dts/armada-xp-mv78230.dtsi +++ b/arch/arm/boot/dts/armada-xp-mv78230.dtsi | |||
@@ -34,7 +34,14 @@ | |||
34 | reg = <0>; | 34 | reg = <0>; |
35 | clocks = <&cpuclk 0>; | 35 | clocks = <&cpuclk 0>; |
36 | }; | 36 | }; |
37 | } | 37 | |
38 | cpu@1 { | ||
39 | device_type = "cpu"; | ||
40 | compatible = "marvell,sheeva-v7"; | ||
41 | reg = <1>; | ||
42 | clocks = <&cpuclk 1>; | ||
43 | }; | ||
44 | }; | ||
38 | 45 | ||
39 | soc { | 46 | soc { |
40 | pinctrl { | 47 | pinctrl { |
@@ -43,27 +50,25 @@ | |||
43 | }; | 50 | }; |
44 | 51 | ||
45 | gpio0: gpio@d0018100 { | 52 | gpio0: gpio@d0018100 { |
46 | compatible = "marvell,armadaxp-gpio"; | 53 | compatible = "marvell,orion-gpio"; |
47 | reg = <0xd0018100 0x40>, | 54 | reg = <0xd0018100 0x40>; |
48 | <0xd0018800 0x30>; | ||
49 | ngpios = <32>; | 55 | ngpios = <32>; |
50 | gpio-controller; | 56 | gpio-controller; |
51 | #gpio-cells = <2>; | 57 | #gpio-cells = <2>; |
52 | interrupt-controller; | 58 | interrupt-controller; |
53 | #interrupts-cells = <2>; | 59 | #interrupts-cells = <2>; |
54 | interrupts = <16>, <17>, <18>, <19>; | 60 | interrupts = <82>, <83>, <84>, <85>; |
55 | }; | 61 | }; |
56 | 62 | ||
57 | gpio1: gpio@d0018140 { | 63 | gpio1: gpio@d0018140 { |
58 | compatible = "marvell,armadaxp-gpio"; | 64 | compatible = "marvell,orion-gpio"; |
59 | reg = <0xd0018140 0x40>, | 65 | reg = <0xd0018140 0x40>; |
60 | <0xd0018840 0x30>; | ||
61 | ngpios = <17>; | 66 | ngpios = <17>; |
62 | gpio-controller; | 67 | gpio-controller; |
63 | #gpio-cells = <2>; | 68 | #gpio-cells = <2>; |
64 | interrupt-controller; | 69 | interrupt-controller; |
65 | #interrupts-cells = <2>; | 70 | #interrupts-cells = <2>; |
66 | interrupts = <20>, <21>, <22>; | 71 | interrupts = <87>, <88>, <89>; |
67 | }; | 72 | }; |
68 | }; | 73 | }; |
69 | }; | 74 | }; |
diff --git a/arch/arm/boot/dts/armada-xp-mv78260.dtsi b/arch/arm/boot/dts/armada-xp-mv78260.dtsi index a2aee5707377..9e23bd8c9536 100644 --- a/arch/arm/boot/dts/armada-xp-mv78260.dtsi +++ b/arch/arm/boot/dts/armada-xp-mv78260.dtsi | |||
@@ -51,39 +51,44 @@ | |||
51 | }; | 51 | }; |
52 | 52 | ||
53 | gpio0: gpio@d0018100 { | 53 | gpio0: gpio@d0018100 { |
54 | compatible = "marvell,armadaxp-gpio"; | 54 | compatible = "marvell,orion-gpio"; |
55 | reg = <0xd0018100 0x40>, | 55 | reg = <0xd0018100 0x40>; |
56 | <0xd0018800 0x30>; | ||
57 | ngpios = <32>; | 56 | ngpios = <32>; |
58 | gpio-controller; | 57 | gpio-controller; |
59 | #gpio-cells = <2>; | 58 | #gpio-cells = <2>; |
60 | interrupt-controller; | 59 | interrupt-controller; |
61 | #interrupts-cells = <2>; | 60 | #interrupts-cells = <2>; |
62 | interrupts = <16>, <17>, <18>, <19>; | 61 | interrupts = <82>, <83>, <84>, <85>; |
63 | }; | 62 | }; |
64 | 63 | ||
65 | gpio1: gpio@d0018140 { | 64 | gpio1: gpio@d0018140 { |
66 | compatible = "marvell,armadaxp-gpio"; | 65 | compatible = "marvell,orion-gpio"; |
67 | reg = <0xd0018140 0x40>, | 66 | reg = <0xd0018140 0x40>; |
68 | <0xd0018840 0x30>; | ||
69 | ngpios = <32>; | 67 | ngpios = <32>; |
70 | gpio-controller; | 68 | gpio-controller; |
71 | #gpio-cells = <2>; | 69 | #gpio-cells = <2>; |
72 | interrupt-controller; | 70 | interrupt-controller; |
73 | #interrupts-cells = <2>; | 71 | #interrupts-cells = <2>; |
74 | interrupts = <20>, <21>, <22>, <23>; | 72 | interrupts = <87>, <88>, <89>, <90>; |
75 | }; | 73 | }; |
76 | 74 | ||
77 | gpio2: gpio@d0018180 { | 75 | gpio2: gpio@d0018180 { |
78 | compatible = "marvell,armadaxp-gpio"; | 76 | compatible = "marvell,orion-gpio"; |
79 | reg = <0xd0018180 0x40>, | 77 | reg = <0xd0018180 0x40>; |
80 | <0xd0018870 0x30>; | ||
81 | ngpios = <3>; | 78 | ngpios = <3>; |
82 | gpio-controller; | 79 | gpio-controller; |
83 | #gpio-cells = <2>; | 80 | #gpio-cells = <2>; |
84 | interrupt-controller; | 81 | interrupt-controller; |
85 | #interrupts-cells = <2>; | 82 | #interrupts-cells = <2>; |
86 | interrupts = <24>; | 83 | interrupts = <91>; |
84 | }; | ||
85 | |||
86 | ethernet@d0034000 { | ||
87 | compatible = "marvell,armada-370-neta"; | ||
88 | reg = <0xd0034000 0x2500>; | ||
89 | interrupts = <14>; | ||
90 | clocks = <&gateclk 1>; | ||
91 | status = "disabled"; | ||
87 | }; | 92 | }; |
88 | }; | 93 | }; |
89 | }; | 94 | }; |
diff --git a/arch/arm/boot/dts/armada-xp-mv78460.dtsi b/arch/arm/boot/dts/armada-xp-mv78460.dtsi index da03a129243a..965966110e38 100644 --- a/arch/arm/boot/dts/armada-xp-mv78460.dtsi +++ b/arch/arm/boot/dts/armada-xp-mv78460.dtsi | |||
@@ -66,39 +66,44 @@ | |||
66 | }; | 66 | }; |
67 | 67 | ||
68 | gpio0: gpio@d0018100 { | 68 | gpio0: gpio@d0018100 { |
69 | compatible = "marvell,armadaxp-gpio"; | 69 | compatible = "marvell,orion-gpio"; |
70 | reg = <0xd0018100 0x40>, | 70 | reg = <0xd0018100 0x40>; |
71 | <0xd0018800 0x30>; | ||
72 | ngpios = <32>; | 71 | ngpios = <32>; |
73 | gpio-controller; | 72 | gpio-controller; |
74 | #gpio-cells = <2>; | 73 | #gpio-cells = <2>; |
75 | interrupt-controller; | 74 | interrupt-controller; |
76 | #interrupts-cells = <2>; | 75 | #interrupts-cells = <2>; |
77 | interrupts = <16>, <17>, <18>, <19>; | 76 | interrupts = <82>, <83>, <84>, <85>; |
78 | }; | 77 | }; |
79 | 78 | ||
80 | gpio1: gpio@d0018140 { | 79 | gpio1: gpio@d0018140 { |
81 | compatible = "marvell,armadaxp-gpio"; | 80 | compatible = "marvell,orion-gpio"; |
82 | reg = <0xd0018140 0x40>, | 81 | reg = <0xd0018140 0x40>; |
83 | <0xd0018840 0x30>; | ||
84 | ngpios = <32>; | 82 | ngpios = <32>; |
85 | gpio-controller; | 83 | gpio-controller; |
86 | #gpio-cells = <2>; | 84 | #gpio-cells = <2>; |
87 | interrupt-controller; | 85 | interrupt-controller; |
88 | #interrupts-cells = <2>; | 86 | #interrupts-cells = <2>; |
89 | interrupts = <20>, <21>, <22>, <23>; | 87 | interrupts = <87>, <88>, <89>, <90>; |
90 | }; | 88 | }; |
91 | 89 | ||
92 | gpio2: gpio@d0018180 { | 90 | gpio2: gpio@d0018180 { |
93 | compatible = "marvell,armadaxp-gpio"; | 91 | compatible = "marvell,orion-gpio"; |
94 | reg = <0xd0018180 0x40>, | 92 | reg = <0xd0018180 0x40>; |
95 | <0xd0018870 0x30>; | ||
96 | ngpios = <3>; | 93 | ngpios = <3>; |
97 | gpio-controller; | 94 | gpio-controller; |
98 | #gpio-cells = <2>; | 95 | #gpio-cells = <2>; |
99 | interrupt-controller; | 96 | interrupt-controller; |
100 | #interrupts-cells = <2>; | 97 | #interrupts-cells = <2>; |
101 | interrupts = <24>; | 98 | interrupts = <91>; |
99 | }; | ||
100 | |||
101 | ethernet@d0034000 { | ||
102 | compatible = "marvell,armada-370-neta"; | ||
103 | reg = <0xd0034000 0x2500>; | ||
104 | interrupts = <14>; | ||
105 | clocks = <&gateclk 1>; | ||
106 | status = "disabled"; | ||
102 | }; | 107 | }; |
103 | }; | 108 | }; |
104 | }; | 109 | }; |
diff --git a/arch/arm/boot/dts/armada-xp.dtsi b/arch/arm/boot/dts/armada-xp.dtsi index 367aa3f94912..2e37ef101c90 100644 --- a/arch/arm/boot/dts/armada-xp.dtsi +++ b/arch/arm/boot/dts/armada-xp.dtsi | |||
@@ -42,17 +42,19 @@ | |||
42 | 42 | ||
43 | soc { | 43 | soc { |
44 | serial@d0012200 { | 44 | serial@d0012200 { |
45 | compatible = "ns16550"; | 45 | compatible = "snps,dw-apb-uart"; |
46 | reg = <0xd0012200 0x100>; | 46 | reg = <0xd0012200 0x100>; |
47 | reg-shift = <2>; | 47 | reg-shift = <2>; |
48 | interrupts = <43>; | 48 | interrupts = <43>; |
49 | reg-io-width = <4>; | ||
49 | status = "disabled"; | 50 | status = "disabled"; |
50 | }; | 51 | }; |
51 | serial@d0012300 { | 52 | serial@d0012300 { |
52 | compatible = "ns16550"; | 53 | compatible = "snps,dw-apb-uart"; |
53 | reg = <0xd0012300 0x100>; | 54 | reg = <0xd0012300 0x100>; |
54 | reg-shift = <2>; | 55 | reg-shift = <2>; |
55 | interrupts = <44>; | 56 | interrupts = <44>; |
57 | reg-io-width = <4>; | ||
56 | status = "disabled"; | 58 | status = "disabled"; |
57 | }; | 59 | }; |
58 | 60 | ||
@@ -93,14 +95,6 @@ | |||
93 | status = "disabled"; | 95 | status = "disabled"; |
94 | }; | 96 | }; |
95 | 97 | ||
96 | ethernet@d0034000 { | ||
97 | compatible = "marvell,armada-370-neta"; | ||
98 | reg = <0xd0034000 0x2500>; | ||
99 | interrupts = <14>; | ||
100 | clocks = <&gateclk 1>; | ||
101 | status = "disabled"; | ||
102 | }; | ||
103 | |||
104 | xor@d0060900 { | 98 | xor@d0060900 { |
105 | compatible = "marvell,orion-xor"; | 99 | compatible = "marvell,orion-xor"; |
106 | reg = <0xd0060900 0x100 | 100 | reg = <0xd0060900 0x100 |
diff --git a/arch/arm/boot/dts/dove-cubox.dts b/arch/arm/boot/dts/dove-cubox.dts index fed7d3f9f431..cdee96fca6e2 100644 --- a/arch/arm/boot/dts/dove-cubox.dts +++ b/arch/arm/boot/dts/dove-cubox.dts | |||
@@ -26,10 +26,15 @@ | |||
26 | }; | 26 | }; |
27 | 27 | ||
28 | &uart0 { status = "okay"; }; | 28 | &uart0 { status = "okay"; }; |
29 | &sdio0 { status = "okay"; }; | ||
30 | &sata0 { status = "okay"; }; | 29 | &sata0 { status = "okay"; }; |
31 | &i2c0 { status = "okay"; }; | 30 | &i2c0 { status = "okay"; }; |
32 | 31 | ||
32 | &sdio0 { | ||
33 | status = "okay"; | ||
34 | /* sdio0 card detect is connected to wrong pin on CuBox */ | ||
35 | cd-gpios = <&gpio0 12 1>; | ||
36 | }; | ||
37 | |||
33 | &spi0 { | 38 | &spi0 { |
34 | status = "okay"; | 39 | status = "okay"; |
35 | 40 | ||
@@ -42,9 +47,14 @@ | |||
42 | }; | 47 | }; |
43 | 48 | ||
44 | &pinctrl { | 49 | &pinctrl { |
45 | pinctrl-0 = <&pmx_gpio_18>; | 50 | pinctrl-0 = <&pmx_gpio_12 &pmx_gpio_18>; |
46 | pinctrl-names = "default"; | 51 | pinctrl-names = "default"; |
47 | 52 | ||
53 | pmx_gpio_12: pmx-gpio-12 { | ||
54 | marvell,pins = "mpp12"; | ||
55 | marvell,function = "gpio"; | ||
56 | }; | ||
57 | |||
48 | pmx_gpio_18: pmx-gpio-18 { | 58 | pmx_gpio_18: pmx-gpio-18 { |
49 | marvell,pins = "mpp18"; | 59 | marvell,pins = "mpp18"; |
50 | marvell,function = "gpio"; | 60 | marvell,function = "gpio"; |
diff --git a/arch/arm/boot/dts/dove.dtsi b/arch/arm/boot/dts/dove.dtsi index f3f7e9d8adca..42eac1ff3cc8 100644 --- a/arch/arm/boot/dts/dove.dtsi +++ b/arch/arm/boot/dts/dove.dtsi | |||
@@ -117,6 +117,7 @@ | |||
117 | pinctrl: pinctrl@d0200 { | 117 | pinctrl: pinctrl@d0200 { |
118 | compatible = "marvell,dove-pinctrl"; | 118 | compatible = "marvell,dove-pinctrl"; |
119 | reg = <0xd0200 0x10>; | 119 | reg = <0xd0200 0x10>; |
120 | clocks = <&gate_clk 22>; | ||
120 | }; | 121 | }; |
121 | 122 | ||
122 | spi0: spi@10600 { | 123 | spi0: spi@10600 { |
diff --git a/arch/arm/boot/dts/ecx-2000.dts b/arch/arm/boot/dts/ecx-2000.dts index 46477ac1de99..139b40cc3a23 100644 --- a/arch/arm/boot/dts/ecx-2000.dts +++ b/arch/arm/boot/dts/ecx-2000.dts | |||
@@ -32,6 +32,7 @@ | |||
32 | 32 | ||
33 | cpu@0 { | 33 | cpu@0 { |
34 | compatible = "arm,cortex-a15"; | 34 | compatible = "arm,cortex-a15"; |
35 | device_type = "cpu"; | ||
35 | reg = <0>; | 36 | reg = <0>; |
36 | clocks = <&a9pll>; | 37 | clocks = <&a9pll>; |
37 | clock-names = "cpu"; | 38 | clock-names = "cpu"; |
@@ -39,6 +40,7 @@ | |||
39 | 40 | ||
40 | cpu@1 { | 41 | cpu@1 { |
41 | compatible = "arm,cortex-a15"; | 42 | compatible = "arm,cortex-a15"; |
43 | device_type = "cpu"; | ||
42 | reg = <1>; | 44 | reg = <1>; |
43 | clocks = <&a9pll>; | 45 | clocks = <&a9pll>; |
44 | clock-names = "cpu"; | 46 | clock-names = "cpu"; |
@@ -46,6 +48,7 @@ | |||
46 | 48 | ||
47 | cpu@2 { | 49 | cpu@2 { |
48 | compatible = "arm,cortex-a15"; | 50 | compatible = "arm,cortex-a15"; |
51 | device_type = "cpu"; | ||
49 | reg = <2>; | 52 | reg = <2>; |
50 | clocks = <&a9pll>; | 53 | clocks = <&a9pll>; |
51 | clock-names = "cpu"; | 54 | clock-names = "cpu"; |
@@ -53,6 +56,7 @@ | |||
53 | 56 | ||
54 | cpu@3 { | 57 | cpu@3 { |
55 | compatible = "arm,cortex-a15"; | 58 | compatible = "arm,cortex-a15"; |
59 | device_type = "cpu"; | ||
56 | reg = <3>; | 60 | reg = <3>; |
57 | clocks = <&a9pll>; | 61 | clocks = <&a9pll>; |
58 | clock-names = "cpu"; | 62 | clock-names = "cpu"; |
diff --git a/arch/arm/boot/dts/exynos4210-smdkv310.dts b/arch/arm/boot/dts/exynos4210-smdkv310.dts index 9b23a8255e39..f63490707f3a 100644 --- a/arch/arm/boot/dts/exynos4210-smdkv310.dts +++ b/arch/arm/boot/dts/exynos4210-smdkv310.dts | |||
@@ -26,7 +26,7 @@ | |||
26 | }; | 26 | }; |
27 | 27 | ||
28 | chosen { | 28 | chosen { |
29 | bootargs = "root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC2,115200 init=/linuxrc"; | 29 | bootargs = "root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC1,115200 init=/linuxrc"; |
30 | }; | 30 | }; |
31 | 31 | ||
32 | sdhci@12530000 { | 32 | sdhci@12530000 { |
diff --git a/arch/arm/boot/dts/exynos5250.dtsi b/arch/arm/boot/dts/exynos5250.dtsi index 2e3b6efaf1a2..3acf594ea60b 100644 --- a/arch/arm/boot/dts/exynos5250.dtsi +++ b/arch/arm/boot/dts/exynos5250.dtsi | |||
@@ -574,7 +574,7 @@ | |||
574 | 574 | ||
575 | hdmi { | 575 | hdmi { |
576 | compatible = "samsung,exynos5-hdmi"; | 576 | compatible = "samsung,exynos5-hdmi"; |
577 | reg = <0x14530000 0x100000>; | 577 | reg = <0x14530000 0x70000>; |
578 | interrupts = <0 95 0>; | 578 | interrupts = <0 95 0>; |
579 | }; | 579 | }; |
580 | 580 | ||
diff --git a/arch/arm/boot/dts/exynos5440-ssdk5440.dts b/arch/arm/boot/dts/exynos5440-ssdk5440.dts index 921c83cf694f..81e2c964a900 100644 --- a/arch/arm/boot/dts/exynos5440-ssdk5440.dts +++ b/arch/arm/boot/dts/exynos5440-ssdk5440.dts | |||
@@ -21,7 +21,7 @@ | |||
21 | }; | 21 | }; |
22 | 22 | ||
23 | chosen { | 23 | chosen { |
24 | bootargs = "root=/dev/ram0 rw ramdisk=8192 initrd=0x81000000,8M console=ttySAC2,115200 init=/linuxrc"; | 24 | bootargs = "root=/dev/ram0 rw ramdisk=8192 initrd=0x81000000,8M console=ttySAC0,115200 init=/linuxrc"; |
25 | }; | 25 | }; |
26 | 26 | ||
27 | spi { | 27 | spi { |
diff --git a/arch/arm/boot/dts/highbank.dts b/arch/arm/boot/dts/highbank.dts index a9ae5d32e80d..5927a8df5625 100644 --- a/arch/arm/boot/dts/highbank.dts +++ b/arch/arm/boot/dts/highbank.dts | |||
@@ -30,33 +30,37 @@ | |||
30 | #address-cells = <1>; | 30 | #address-cells = <1>; |
31 | #size-cells = <0>; | 31 | #size-cells = <0>; |
32 | 32 | ||
33 | cpu@0 { | 33 | cpu@900 { |
34 | compatible = "arm,cortex-a9"; | 34 | compatible = "arm,cortex-a9"; |
35 | reg = <0>; | 35 | device_type = "cpu"; |
36 | reg = <0x900>; | ||
36 | next-level-cache = <&L2>; | 37 | next-level-cache = <&L2>; |
37 | clocks = <&a9pll>; | 38 | clocks = <&a9pll>; |
38 | clock-names = "cpu"; | 39 | clock-names = "cpu"; |
39 | }; | 40 | }; |
40 | 41 | ||
41 | cpu@1 { | 42 | cpu@901 { |
42 | compatible = "arm,cortex-a9"; | 43 | compatible = "arm,cortex-a9"; |
43 | reg = <1>; | 44 | device_type = "cpu"; |
45 | reg = <0x901>; | ||
44 | next-level-cache = <&L2>; | 46 | next-level-cache = <&L2>; |
45 | clocks = <&a9pll>; | 47 | clocks = <&a9pll>; |
46 | clock-names = "cpu"; | 48 | clock-names = "cpu"; |
47 | }; | 49 | }; |
48 | 50 | ||
49 | cpu@2 { | 51 | cpu@902 { |
50 | compatible = "arm,cortex-a9"; | 52 | compatible = "arm,cortex-a9"; |
51 | reg = <2>; | 53 | device_type = "cpu"; |
54 | reg = <0x902>; | ||
52 | next-level-cache = <&L2>; | 55 | next-level-cache = <&L2>; |
53 | clocks = <&a9pll>; | 56 | clocks = <&a9pll>; |
54 | clock-names = "cpu"; | 57 | clock-names = "cpu"; |
55 | }; | 58 | }; |
56 | 59 | ||
57 | cpu@3 { | 60 | cpu@903 { |
58 | compatible = "arm,cortex-a9"; | 61 | compatible = "arm,cortex-a9"; |
59 | reg = <3>; | 62 | device_type = "cpu"; |
63 | reg = <0x903>; | ||
60 | next-level-cache = <&L2>; | 64 | next-level-cache = <&L2>; |
61 | clocks = <&a9pll>; | 65 | clocks = <&a9pll>; |
62 | clock-names = "cpu"; | 66 | clock-names = "cpu"; |
diff --git a/arch/arm/boot/dts/imx23-olinuxino.dts b/arch/arm/boot/dts/imx23-olinuxino.dts index 7c43b8e70b9f..e7484e4ea659 100644 --- a/arch/arm/boot/dts/imx23-olinuxino.dts +++ b/arch/arm/boot/dts/imx23-olinuxino.dts | |||
@@ -39,17 +39,17 @@ | |||
39 | hog_pins_a: hog@0 { | 39 | hog_pins_a: hog@0 { |
40 | reg = <0>; | 40 | reg = <0>; |
41 | fsl,pinmux-ids = < | 41 | fsl,pinmux-ids = < |
42 | 0x2013 /* MX23_PAD_SSP1_DETECT__GPIO_2_1 */ | 42 | 0x0113 /* MX23_PAD_GPMI_ALE__GPIO_0_17 */ |
43 | >; | 43 | >; |
44 | fsl,drive-strength = <0>; | 44 | fsl,drive-strength = <0>; |
45 | fsl,voltage = <1>; | 45 | fsl,voltage = <1>; |
46 | fsl,pull-up = <0>; | 46 | fsl,pull-up = <0>; |
47 | }; | 47 | }; |
48 | 48 | ||
49 | led_pin_gpio0_17: led_gpio0_17@0 { | 49 | led_pin_gpio2_1: led_gpio2_1@0 { |
50 | reg = <0>; | 50 | reg = <0>; |
51 | fsl,pinmux-ids = < | 51 | fsl,pinmux-ids = < |
52 | 0x0113 /* MX23_PAD_GPMI_ALE__GPIO_0_17 */ | 52 | 0x2013 /* MX23_PAD_SSP1_DETECT__GPIO_2_1 */ |
53 | >; | 53 | >; |
54 | fsl,drive-strength = <0>; | 54 | fsl,drive-strength = <0>; |
55 | fsl,voltage = <1>; | 55 | fsl,voltage = <1>; |
@@ -110,7 +110,7 @@ | |||
110 | leds { | 110 | leds { |
111 | compatible = "gpio-leds"; | 111 | compatible = "gpio-leds"; |
112 | pinctrl-names = "default"; | 112 | pinctrl-names = "default"; |
113 | pinctrl-0 = <&led_pin_gpio0_17>; | 113 | pinctrl-0 = <&led_pin_gpio2_1>; |
114 | 114 | ||
115 | user { | 115 | user { |
116 | label = "green"; | 116 | label = "green"; |
diff --git a/arch/arm/boot/dts/kirkwood-6282.dtsi b/arch/arm/boot/dts/kirkwood-6282.dtsi index 9ae2004d5675..4ccea2130a6c 100644 --- a/arch/arm/boot/dts/kirkwood-6282.dtsi +++ b/arch/arm/boot/dts/kirkwood-6282.dtsi | |||
@@ -39,6 +39,7 @@ | |||
39 | #size-cells = <0>; | 39 | #size-cells = <0>; |
40 | interrupts = <32>; | 40 | interrupts = <32>; |
41 | clock-frequency = <100000>; | 41 | clock-frequency = <100000>; |
42 | clocks = <&gate_clk 7>; | ||
42 | status = "disabled"; | 43 | status = "disabled"; |
43 | }; | 44 | }; |
44 | }; | 45 | }; |
diff --git a/arch/arm/boot/dts/kirkwood-ns2-common.dtsi b/arch/arm/boot/dts/kirkwood-ns2-common.dtsi index 9bc6785ad228..77d21abfcdf7 100644 --- a/arch/arm/boot/dts/kirkwood-ns2-common.dtsi +++ b/arch/arm/boot/dts/kirkwood-ns2-common.dtsi | |||
@@ -1,4 +1,5 @@ | |||
1 | /include/ "kirkwood.dtsi" | 1 | /include/ "kirkwood.dtsi" |
2 | /include/ "kirkwood-6281.dtsi" | ||
2 | 3 | ||
3 | / { | 4 | / { |
4 | chosen { | 5 | chosen { |
@@ -6,6 +7,21 @@ | |||
6 | }; | 7 | }; |
7 | 8 | ||
8 | ocp@f1000000 { | 9 | ocp@f1000000 { |
10 | pinctrl: pinctrl@10000 { | ||
11 | pinctrl-0 = < &pmx_spi &pmx_twsi0 &pmx_uart0 | ||
12 | &pmx_ns2_sata0 &pmx_ns2_sata1>; | ||
13 | pinctrl-names = "default"; | ||
14 | |||
15 | pmx_ns2_sata0: pmx-ns2-sata0 { | ||
16 | marvell,pins = "mpp21"; | ||
17 | marvell,function = "sata0"; | ||
18 | }; | ||
19 | pmx_ns2_sata1: pmx-ns2-sata1 { | ||
20 | marvell,pins = "mpp20"; | ||
21 | marvell,function = "sata1"; | ||
22 | }; | ||
23 | }; | ||
24 | |||
9 | serial@12000 { | 25 | serial@12000 { |
10 | clock-frequency = <166666667>; | 26 | clock-frequency = <166666667>; |
11 | status = "okay"; | 27 | status = "okay"; |
diff --git a/arch/arm/boot/dts/kirkwood-topkick.dts b/arch/arm/boot/dts/kirkwood-topkick.dts index c0de5a7f660d..cd15452a52a6 100644 --- a/arch/arm/boot/dts/kirkwood-topkick.dts +++ b/arch/arm/boot/dts/kirkwood-topkick.dts | |||
@@ -82,4 +82,21 @@ | |||
82 | gpios = <&gpio1 16 1>; | 82 | gpios = <&gpio1 16 1>; |
83 | }; | 83 | }; |
84 | }; | 84 | }; |
85 | regulators { | ||
86 | compatible = "simple-bus"; | ||
87 | #address-cells = <1>; | ||
88 | #size-cells = <0>; | ||
89 | |||
90 | sata0_power: regulator@1 { | ||
91 | compatible = "regulator-fixed"; | ||
92 | reg = <1>; | ||
93 | regulator-name = "SATA0 Power"; | ||
94 | regulator-min-microvolt = <5000000>; | ||
95 | regulator-max-microvolt = <5000000>; | ||
96 | enable-active-high; | ||
97 | regulator-always-on; | ||
98 | regulator-boot-on; | ||
99 | gpio = <&gpio1 4 0>; | ||
100 | }; | ||
101 | }; | ||
85 | }; | 102 | }; |
diff --git a/arch/arm/boot/dts/kirkwood.dtsi b/arch/arm/boot/dts/kirkwood.dtsi index 7735cee4a9c6..110d6cbb795b 100644 --- a/arch/arm/boot/dts/kirkwood.dtsi +++ b/arch/arm/boot/dts/kirkwood.dtsi | |||
@@ -144,6 +144,7 @@ | |||
144 | compatible = "marvell,orion-ehci"; | 144 | compatible = "marvell,orion-ehci"; |
145 | reg = <0x50000 0x1000>; | 145 | reg = <0x50000 0x1000>; |
146 | interrupts = <19>; | 146 | interrupts = <19>; |
147 | clocks = <&gate_clk 3>; | ||
147 | status = "okay"; | 148 | status = "okay"; |
148 | }; | 149 | }; |
149 | 150 | ||
diff --git a/arch/arm/boot/dts/twl4030.dtsi b/arch/arm/boot/dts/twl4030.dtsi index 63411b036932..ed0bc9546837 100644 --- a/arch/arm/boot/dts/twl4030.dtsi +++ b/arch/arm/boot/dts/twl4030.dtsi | |||
@@ -19,6 +19,10 @@ | |||
19 | interrupts = <11>; | 19 | interrupts = <11>; |
20 | }; | 20 | }; |
21 | 21 | ||
22 | watchdog { | ||
23 | compatible = "ti,twl4030-wdt"; | ||
24 | }; | ||
25 | |||
22 | vdac: regulator-vdac { | 26 | vdac: regulator-vdac { |
23 | compatible = "ti,twl4030-vdac"; | 27 | compatible = "ti,twl4030-vdac"; |
24 | regulator-min-microvolt = <1800000>; | 28 | regulator-min-microvolt = <1800000>; |
diff --git a/arch/arm/configs/multi_v7_defconfig b/arch/arm/configs/multi_v7_defconfig index dbea6f4efe9f..2eeff1e64b6e 100644 --- a/arch/arm/configs/multi_v7_defconfig +++ b/arch/arm/configs/multi_v7_defconfig | |||
@@ -6,6 +6,7 @@ CONFIG_MACH_ARMADA_370=y | |||
6 | CONFIG_MACH_ARMADA_XP=y | 6 | CONFIG_MACH_ARMADA_XP=y |
7 | CONFIG_ARCH_HIGHBANK=y | 7 | CONFIG_ARCH_HIGHBANK=y |
8 | CONFIG_ARCH_SOCFPGA=y | 8 | CONFIG_ARCH_SOCFPGA=y |
9 | CONFIG_ARCH_SUNXI=y | ||
9 | # CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA is not set | 10 | # CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA is not set |
10 | CONFIG_ARM_ERRATA_754322=y | 11 | CONFIG_ARM_ERRATA_754322=y |
11 | CONFIG_SMP=y | 12 | CONFIG_SMP=y |
diff --git a/arch/arm/configs/mvebu_defconfig b/arch/arm/configs/mvebu_defconfig index a702fb345c01..b5bc96cb65a7 100644 --- a/arch/arm/configs/mvebu_defconfig +++ b/arch/arm/configs/mvebu_defconfig | |||
@@ -33,9 +33,7 @@ CONFIG_MVNETA=y | |||
33 | CONFIG_MARVELL_PHY=y | 33 | CONFIG_MARVELL_PHY=y |
34 | CONFIG_SERIAL_8250=y | 34 | CONFIG_SERIAL_8250=y |
35 | CONFIG_SERIAL_8250_CONSOLE=y | 35 | CONFIG_SERIAL_8250_CONSOLE=y |
36 | CONFIG_SERIAL_OF_PLATFORM=y | 36 | CONFIG_SERIAL_8250_DW=y |
37 | CONFIG_I2C=y | ||
38 | CONFIG_I2C_MV64XXX=y | ||
39 | CONFIG_GPIOLIB=y | 37 | CONFIG_GPIOLIB=y |
40 | CONFIG_GPIO_SYSFS=y | 38 | CONFIG_GPIO_SYSFS=y |
41 | # CONFIG_USB_SUPPORT is not set | 39 | # CONFIG_USB_SUPPORT is not set |
diff --git a/arch/arm/configs/omap2plus_defconfig b/arch/arm/configs/omap2plus_defconfig index a1dc5c071e71..82ce8d738fa1 100644 --- a/arch/arm/configs/omap2plus_defconfig +++ b/arch/arm/configs/omap2plus_defconfig | |||
@@ -65,6 +65,8 @@ CONFIG_MAC80211_RC_PID=y | |||
65 | CONFIG_MAC80211_RC_DEFAULT_PID=y | 65 | CONFIG_MAC80211_RC_DEFAULT_PID=y |
66 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 66 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
67 | CONFIG_CONNECTOR=y | 67 | CONFIG_CONNECTOR=y |
68 | CONFIG_DEVTMPFS=y | ||
69 | CONFIG_DEVTMPFS_MOUNT=y | ||
68 | CONFIG_MTD=y | 70 | CONFIG_MTD=y |
69 | CONFIG_MTD_CMDLINE_PARTS=y | 71 | CONFIG_MTD_CMDLINE_PARTS=y |
70 | CONFIG_MTD_CHAR=y | 72 | CONFIG_MTD_CHAR=y |
@@ -132,9 +134,11 @@ CONFIG_POWER_SUPPLY=y | |||
132 | CONFIG_WATCHDOG=y | 134 | CONFIG_WATCHDOG=y |
133 | CONFIG_OMAP_WATCHDOG=y | 135 | CONFIG_OMAP_WATCHDOG=y |
134 | CONFIG_TWL4030_WATCHDOG=y | 136 | CONFIG_TWL4030_WATCHDOG=y |
137 | CONFIG_MFD_TPS65217=y | ||
135 | CONFIG_REGULATOR_TWL4030=y | 138 | CONFIG_REGULATOR_TWL4030=y |
136 | CONFIG_REGULATOR_TPS65023=y | 139 | CONFIG_REGULATOR_TPS65023=y |
137 | CONFIG_REGULATOR_TPS6507X=y | 140 | CONFIG_REGULATOR_TPS6507X=y |
141 | CONFIG_REGULATOR_TPS65217=y | ||
138 | CONFIG_FB=y | 142 | CONFIG_FB=y |
139 | CONFIG_FIRMWARE_EDID=y | 143 | CONFIG_FIRMWARE_EDID=y |
140 | CONFIG_FB_MODE_HELPERS=y | 144 | CONFIG_FB_MODE_HELPERS=y |
@@ -170,6 +174,7 @@ CONFIG_SND_DEBUG=y | |||
170 | CONFIG_SND_USB_AUDIO=m | 174 | CONFIG_SND_USB_AUDIO=m |
171 | CONFIG_SND_SOC=m | 175 | CONFIG_SND_SOC=m |
172 | CONFIG_SND_OMAP_SOC=m | 176 | CONFIG_SND_OMAP_SOC=m |
177 | CONFIG_SND_OMAP_SOC_OMAP_TWL4030=m | ||
173 | CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m | 178 | CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m |
174 | CONFIG_USB=y | 179 | CONFIG_USB=y |
175 | CONFIG_USB_DEBUG=y | 180 | CONFIG_USB_DEBUG=y |
diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig index 91d5b6f1d5af..e103c290bc9e 100644 --- a/arch/arm/mach-exynos/Kconfig +++ b/arch/arm/mach-exynos/Kconfig | |||
@@ -74,6 +74,8 @@ config SOC_EXYNOS5440 | |||
74 | depends on ARCH_EXYNOS5 | 74 | depends on ARCH_EXYNOS5 |
75 | select ARM_ARCH_TIMER | 75 | select ARM_ARCH_TIMER |
76 | select AUTO_ZRELADDR | 76 | select AUTO_ZRELADDR |
77 | select PINCTRL | ||
78 | select PINCTRL_EXYNOS5440 | ||
77 | help | 79 | help |
78 | Enable EXYNOS5440 SoC support | 80 | Enable EXYNOS5440 SoC support |
79 | 81 | ||
diff --git a/arch/arm/mach-exynos/common.c b/arch/arm/mach-exynos/common.c index d6d0dc651089..1a89824a5f78 100644 --- a/arch/arm/mach-exynos/common.c +++ b/arch/arm/mach-exynos/common.c | |||
@@ -424,11 +424,18 @@ static void __init exynos5_init_clocks(int xtal) | |||
424 | { | 424 | { |
425 | printk(KERN_DEBUG "%s: initializing clocks\n", __func__); | 425 | printk(KERN_DEBUG "%s: initializing clocks\n", __func__); |
426 | 426 | ||
427 | /* EXYNOS5440 can support only common clock framework */ | ||
428 | |||
429 | if (soc_is_exynos5440()) | ||
430 | return; | ||
431 | |||
432 | #ifdef CONFIG_SOC_EXYNOS5250 | ||
427 | s3c24xx_register_baseclocks(xtal); | 433 | s3c24xx_register_baseclocks(xtal); |
428 | s5p_register_clocks(xtal); | 434 | s5p_register_clocks(xtal); |
429 | 435 | ||
430 | exynos5_register_clocks(); | 436 | exynos5_register_clocks(); |
431 | exynos5_setup_clocks(); | 437 | exynos5_setup_clocks(); |
438 | #endif | ||
432 | } | 439 | } |
433 | 440 | ||
434 | #define COMBINER_ENABLE_SET 0x0 | 441 | #define COMBINER_ENABLE_SET 0x0 |
diff --git a/arch/arm/mach-highbank/highbank.c b/arch/arm/mach-highbank/highbank.c index dc248167d206..981dc1e1da51 100644 --- a/arch/arm/mach-highbank/highbank.c +++ b/arch/arm/mach-highbank/highbank.c | |||
@@ -135,7 +135,7 @@ static struct sys_timer highbank_timer = { | |||
135 | 135 | ||
136 | static void highbank_power_off(void) | 136 | static void highbank_power_off(void) |
137 | { | 137 | { |
138 | hignbank_set_pwr_shutdown(); | 138 | highbank_set_pwr_shutdown(); |
139 | 139 | ||
140 | while (1) | 140 | while (1) |
141 | cpu_do_idle(); | 141 | cpu_do_idle(); |
diff --git a/arch/arm/mach-highbank/hotplug.c b/arch/arm/mach-highbank/hotplug.c index 7b60faccd551..f30c52843396 100644 --- a/arch/arm/mach-highbank/hotplug.c +++ b/arch/arm/mach-highbank/hotplug.c | |||
@@ -30,7 +30,7 @@ void __ref highbank_cpu_die(unsigned int cpu) | |||
30 | { | 30 | { |
31 | flush_cache_all(); | 31 | flush_cache_all(); |
32 | 32 | ||
33 | highbank_set_cpu_jump(cpu, secondary_startup); | 33 | highbank_set_cpu_jump(cpu, phys_to_virt(0)); |
34 | highbank_set_core_pwr(); | 34 | highbank_set_core_pwr(); |
35 | 35 | ||
36 | cpu_do_idle(); | 36 | cpu_do_idle(); |
diff --git a/arch/arm/mach-highbank/platsmp.c b/arch/arm/mach-highbank/platsmp.c index 1129957f6c1d..4ecc864ac8b9 100644 --- a/arch/arm/mach-highbank/platsmp.c +++ b/arch/arm/mach-highbank/platsmp.c | |||
@@ -32,6 +32,7 @@ static void __cpuinit highbank_secondary_init(unsigned int cpu) | |||
32 | 32 | ||
33 | static int __cpuinit highbank_boot_secondary(unsigned int cpu, struct task_struct *idle) | 33 | static int __cpuinit highbank_boot_secondary(unsigned int cpu, struct task_struct *idle) |
34 | { | 34 | { |
35 | highbank_set_cpu_jump(cpu, secondary_startup); | ||
35 | gic_raise_softirq(cpumask_of(cpu), 0); | 36 | gic_raise_softirq(cpumask_of(cpu), 0); |
36 | return 0; | 37 | return 0; |
37 | } | 38 | } |
@@ -61,19 +62,8 @@ static void __init highbank_smp_init_cpus(void) | |||
61 | 62 | ||
62 | static void __init highbank_smp_prepare_cpus(unsigned int max_cpus) | 63 | static void __init highbank_smp_prepare_cpus(unsigned int max_cpus) |
63 | { | 64 | { |
64 | int i; | ||
65 | |||
66 | if (scu_base_addr) | 65 | if (scu_base_addr) |
67 | scu_enable(scu_base_addr); | 66 | scu_enable(scu_base_addr); |
68 | |||
69 | /* | ||
70 | * Write the address of secondary startup into the jump table | ||
71 | * The cores are in wfi and wait until they receive a soft interrupt | ||
72 | * and a non-zero value to jump to. Then the secondary CPU branches | ||
73 | * to this address. | ||
74 | */ | ||
75 | for (i = 1; i < max_cpus; i++) | ||
76 | highbank_set_cpu_jump(i, secondary_startup); | ||
77 | } | 67 | } |
78 | 68 | ||
79 | struct smp_operations highbank_smp_ops __initdata = { | 69 | struct smp_operations highbank_smp_ops __initdata = { |
diff --git a/arch/arm/mach-highbank/pm.c b/arch/arm/mach-highbank/pm.c index 74aa135966f0..04eddb4f4380 100644 --- a/arch/arm/mach-highbank/pm.c +++ b/arch/arm/mach-highbank/pm.c | |||
@@ -14,10 +14,12 @@ | |||
14 | * this program. If not, see <http://www.gnu.org/licenses/>. | 14 | * this program. If not, see <http://www.gnu.org/licenses/>. |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <linux/cpu_pm.h> | ||
17 | #include <linux/init.h> | 18 | #include <linux/init.h> |
18 | #include <linux/io.h> | 19 | #include <linux/io.h> |
19 | #include <linux/suspend.h> | 20 | #include <linux/suspend.h> |
20 | 21 | ||
22 | #include <asm/cacheflush.h> | ||
21 | #include <asm/proc-fns.h> | 23 | #include <asm/proc-fns.h> |
22 | #include <asm/suspend.h> | 24 | #include <asm/suspend.h> |
23 | 25 | ||
@@ -26,16 +28,31 @@ | |||
26 | 28 | ||
27 | static int highbank_suspend_finish(unsigned long val) | 29 | static int highbank_suspend_finish(unsigned long val) |
28 | { | 30 | { |
31 | outer_flush_all(); | ||
32 | outer_disable(); | ||
33 | |||
34 | highbank_set_pwr_suspend(); | ||
35 | |||
29 | cpu_do_idle(); | 36 | cpu_do_idle(); |
37 | |||
38 | highbank_clear_pwr_request(); | ||
30 | return 0; | 39 | return 0; |
31 | } | 40 | } |
32 | 41 | ||
33 | static int highbank_pm_enter(suspend_state_t state) | 42 | static int highbank_pm_enter(suspend_state_t state) |
34 | { | 43 | { |
35 | hignbank_set_pwr_suspend(); | 44 | cpu_pm_enter(); |
45 | cpu_cluster_pm_enter(); | ||
46 | |||
36 | highbank_set_cpu_jump(0, cpu_resume); | 47 | highbank_set_cpu_jump(0, cpu_resume); |
37 | cpu_suspend(0, highbank_suspend_finish); | 48 | cpu_suspend(0, highbank_suspend_finish); |
38 | 49 | ||
50 | cpu_cluster_pm_exit(); | ||
51 | cpu_pm_exit(); | ||
52 | |||
53 | highbank_smc1(0x102, 0x1); | ||
54 | if (scu_base_addr) | ||
55 | scu_enable(scu_base_addr); | ||
39 | return 0; | 56 | return 0; |
40 | } | 57 | } |
41 | 58 | ||
diff --git a/arch/arm/mach-highbank/sysregs.h b/arch/arm/mach-highbank/sysregs.h index e13e8ea7c6cb..70af9d13fcef 100644 --- a/arch/arm/mach-highbank/sysregs.h +++ b/arch/arm/mach-highbank/sysregs.h | |||
@@ -44,28 +44,43 @@ static inline void highbank_set_core_pwr(void) | |||
44 | writel_relaxed(1, sregs_base + SREG_CPU_PWR_CTRL(cpu)); | 44 | writel_relaxed(1, sregs_base + SREG_CPU_PWR_CTRL(cpu)); |
45 | } | 45 | } |
46 | 46 | ||
47 | static inline void hignbank_set_pwr_suspend(void) | 47 | static inline void highbank_clear_core_pwr(void) |
48 | { | ||
49 | int cpu = cpu_logical_map(smp_processor_id()); | ||
50 | if (scu_base_addr) | ||
51 | scu_power_mode(scu_base_addr, SCU_PM_NORMAL); | ||
52 | else | ||
53 | writel_relaxed(0, sregs_base + SREG_CPU_PWR_CTRL(cpu)); | ||
54 | } | ||
55 | |||
56 | static inline void highbank_set_pwr_suspend(void) | ||
48 | { | 57 | { |
49 | writel(HB_PWR_SUSPEND, sregs_base + HB_SREG_A9_PWR_REQ); | 58 | writel(HB_PWR_SUSPEND, sregs_base + HB_SREG_A9_PWR_REQ); |
50 | highbank_set_core_pwr(); | 59 | highbank_set_core_pwr(); |
51 | } | 60 | } |
52 | 61 | ||
53 | static inline void hignbank_set_pwr_shutdown(void) | 62 | static inline void highbank_set_pwr_shutdown(void) |
54 | { | 63 | { |
55 | writel(HB_PWR_SHUTDOWN, sregs_base + HB_SREG_A9_PWR_REQ); | 64 | writel(HB_PWR_SHUTDOWN, sregs_base + HB_SREG_A9_PWR_REQ); |
56 | highbank_set_core_pwr(); | 65 | highbank_set_core_pwr(); |
57 | } | 66 | } |
58 | 67 | ||
59 | static inline void hignbank_set_pwr_soft_reset(void) | 68 | static inline void highbank_set_pwr_soft_reset(void) |
60 | { | 69 | { |
61 | writel(HB_PWR_SOFT_RESET, sregs_base + HB_SREG_A9_PWR_REQ); | 70 | writel(HB_PWR_SOFT_RESET, sregs_base + HB_SREG_A9_PWR_REQ); |
62 | highbank_set_core_pwr(); | 71 | highbank_set_core_pwr(); |
63 | } | 72 | } |
64 | 73 | ||
65 | static inline void hignbank_set_pwr_hard_reset(void) | 74 | static inline void highbank_set_pwr_hard_reset(void) |
66 | { | 75 | { |
67 | writel(HB_PWR_HARD_RESET, sregs_base + HB_SREG_A9_PWR_REQ); | 76 | writel(HB_PWR_HARD_RESET, sregs_base + HB_SREG_A9_PWR_REQ); |
68 | highbank_set_core_pwr(); | 77 | highbank_set_core_pwr(); |
69 | } | 78 | } |
70 | 79 | ||
80 | static inline void highbank_clear_pwr_request(void) | ||
81 | { | ||
82 | writel(~0UL, sregs_base + HB_SREG_A9_PWR_REQ); | ||
83 | highbank_clear_core_pwr(); | ||
84 | } | ||
85 | |||
71 | #endif | 86 | #endif |
diff --git a/arch/arm/mach-highbank/system.c b/arch/arm/mach-highbank/system.c index aed96ad9bd4a..37d8384dcf19 100644 --- a/arch/arm/mach-highbank/system.c +++ b/arch/arm/mach-highbank/system.c | |||
@@ -22,9 +22,9 @@ | |||
22 | void highbank_restart(char mode, const char *cmd) | 22 | void highbank_restart(char mode, const char *cmd) |
23 | { | 23 | { |
24 | if (mode == 'h') | 24 | if (mode == 'h') |
25 | hignbank_set_pwr_hard_reset(); | 25 | highbank_set_pwr_hard_reset(); |
26 | else | 26 | else |
27 | hignbank_set_pwr_soft_reset(); | 27 | highbank_set_pwr_soft_reset(); |
28 | 28 | ||
29 | while (1) | 29 | while (1) |
30 | cpu_do_idle(); | 30 | cpu_do_idle(); |
diff --git a/arch/arm/mach-integrator/pci_v3.c b/arch/arm/mach-integrator/pci_v3.c index be50e795536d..e7fcea7f3300 100644 --- a/arch/arm/mach-integrator/pci_v3.c +++ b/arch/arm/mach-integrator/pci_v3.c | |||
@@ -475,13 +475,12 @@ int __init pci_v3_setup(int nr, struct pci_sys_data *sys) | |||
475 | { | 475 | { |
476 | int ret = 0; | 476 | int ret = 0; |
477 | 477 | ||
478 | if (!ap_syscon_base) | ||
479 | return -EINVAL; | ||
480 | |||
478 | if (nr == 0) { | 481 | if (nr == 0) { |
479 | sys->mem_offset = PHYS_PCI_MEM_BASE; | 482 | sys->mem_offset = PHYS_PCI_MEM_BASE; |
480 | ret = pci_v3_setup_resources(sys); | 483 | ret = pci_v3_setup_resources(sys); |
481 | /* Remap the Integrator system controller */ | ||
482 | ap_syscon_base = ioremap(INTEGRATOR_SC_BASE, 0x100); | ||
483 | if (!ap_syscon_base) | ||
484 | return -EINVAL; | ||
485 | } | 484 | } |
486 | 485 | ||
487 | return ret; | 486 | return ret; |
@@ -497,6 +496,13 @@ void __init pci_v3_preinit(void) | |||
497 | unsigned int temp; | 496 | unsigned int temp; |
498 | int ret; | 497 | int ret; |
499 | 498 | ||
499 | /* Remap the Integrator system controller */ | ||
500 | ap_syscon_base = ioremap(INTEGRATOR_SC_BASE, 0x100); | ||
501 | if (!ap_syscon_base) { | ||
502 | pr_err("unable to remap the AP syscon for PCIv3\n"); | ||
503 | return; | ||
504 | } | ||
505 | |||
500 | pcibios_min_mem = 0x00100000; | 506 | pcibios_min_mem = 0x00100000; |
501 | 507 | ||
502 | /* | 508 | /* |
diff --git a/arch/arm/mach-kirkwood/board-dt.c b/arch/arm/mach-kirkwood/board-dt.c index ff4150a2ad05..de4fd2bb1e27 100644 --- a/arch/arm/mach-kirkwood/board-dt.c +++ b/arch/arm/mach-kirkwood/board-dt.c | |||
@@ -67,6 +67,10 @@ static void __init kirkwood_legacy_clk_init(void) | |||
67 | orion_clkdev_add(NULL, "mv643xx_eth_port.1", | 67 | orion_clkdev_add(NULL, "mv643xx_eth_port.1", |
68 | of_clk_get_from_provider(&clkspec)); | 68 | of_clk_get_from_provider(&clkspec)); |
69 | 69 | ||
70 | clkspec.args[0] = CGC_BIT_SDIO; | ||
71 | orion_clkdev_add(NULL, "mvsdio", | ||
72 | of_clk_get_from_provider(&clkspec)); | ||
73 | |||
70 | } | 74 | } |
71 | 75 | ||
72 | static void __init kirkwood_of_clk_init(void) | 76 | static void __init kirkwood_of_clk_init(void) |
diff --git a/arch/arm/mach-kirkwood/board-ns2.c b/arch/arm/mach-kirkwood/board-ns2.c index 8821720ab5a4..f4632a809f68 100644 --- a/arch/arm/mach-kirkwood/board-ns2.c +++ b/arch/arm/mach-kirkwood/board-ns2.c | |||
@@ -18,47 +18,11 @@ | |||
18 | #include <linux/gpio.h> | 18 | #include <linux/gpio.h> |
19 | #include <linux/of.h> | 19 | #include <linux/of.h> |
20 | #include "common.h" | 20 | #include "common.h" |
21 | #include "mpp.h" | ||
22 | 21 | ||
23 | static struct mv643xx_eth_platform_data ns2_ge00_data = { | 22 | static struct mv643xx_eth_platform_data ns2_ge00_data = { |
24 | .phy_addr = MV643XX_ETH_PHY_ADDR(8), | 23 | .phy_addr = MV643XX_ETH_PHY_ADDR(8), |
25 | }; | 24 | }; |
26 | 25 | ||
27 | static unsigned int ns2_mpp_config[] __initdata = { | ||
28 | MPP0_SPI_SCn, | ||
29 | MPP1_SPI_MOSI, | ||
30 | MPP2_SPI_SCK, | ||
31 | MPP3_SPI_MISO, | ||
32 | MPP4_NF_IO6, | ||
33 | MPP5_NF_IO7, | ||
34 | MPP6_SYSRST_OUTn, | ||
35 | MPP7_GPO, /* Fan speed (bit 1) */ | ||
36 | MPP8_TW0_SDA, | ||
37 | MPP9_TW0_SCK, | ||
38 | MPP10_UART0_TXD, | ||
39 | MPP11_UART0_RXD, | ||
40 | MPP12_GPO, /* Red led */ | ||
41 | MPP14_GPIO, /* USB fuse */ | ||
42 | MPP16_GPIO, /* SATA 0 power */ | ||
43 | MPP17_GPIO, /* SATA 1 power */ | ||
44 | MPP18_NF_IO0, | ||
45 | MPP19_NF_IO1, | ||
46 | MPP20_SATA1_ACTn, | ||
47 | MPP21_SATA0_ACTn, | ||
48 | MPP22_GPIO, /* Fan speed (bit 0) */ | ||
49 | MPP23_GPIO, /* Fan power */ | ||
50 | MPP24_GPIO, /* USB mode select */ | ||
51 | MPP25_GPIO, /* Fan rotation fail */ | ||
52 | MPP26_GPIO, /* USB device vbus */ | ||
53 | MPP28_GPIO, /* USB enable host vbus */ | ||
54 | MPP29_GPIO, /* Blue led (slow register) */ | ||
55 | MPP30_GPIO, /* Blue led (command register) */ | ||
56 | MPP31_GPIO, /* Board power off */ | ||
57 | MPP32_GPIO, /* Power button (0 = Released, 1 = Pushed) */ | ||
58 | MPP33_GPO, /* Fan speed (bit 2) */ | ||
59 | 0 | ||
60 | }; | ||
61 | |||
62 | #define NS2_GPIO_POWER_OFF 31 | 26 | #define NS2_GPIO_POWER_OFF 31 |
63 | 27 | ||
64 | static void ns2_power_off(void) | 28 | static void ns2_power_off(void) |
@@ -71,8 +35,6 @@ void __init ns2_init(void) | |||
71 | /* | 35 | /* |
72 | * Basic setup. Needs to be called early. | 36 | * Basic setup. Needs to be called early. |
73 | */ | 37 | */ |
74 | kirkwood_mpp_conf(ns2_mpp_config); | ||
75 | |||
76 | if (of_machine_is_compatible("lacie,netspace_lite_v2") || | 38 | if (of_machine_is_compatible("lacie,netspace_lite_v2") || |
77 | of_machine_is_compatible("lacie,netspace_mini_v2")) | 39 | of_machine_is_compatible("lacie,netspace_mini_v2")) |
78 | ns2_ge00_data.phy_addr = MV643XX_ETH_PHY_ADDR(0); | 40 | ns2_ge00_data.phy_addr = MV643XX_ETH_PHY_ADDR(0); |
diff --git a/arch/arm/mach-kirkwood/board-usi_topkick.c b/arch/arm/mach-kirkwood/board-usi_topkick.c index 15e69fcde9f4..23d2dd1b1b1e 100644 --- a/arch/arm/mach-kirkwood/board-usi_topkick.c +++ b/arch/arm/mach-kirkwood/board-usi_topkick.c | |||
@@ -64,8 +64,6 @@ static unsigned int topkick_mpp_config[] __initdata = { | |||
64 | 0 | 64 | 0 |
65 | }; | 65 | }; |
66 | 66 | ||
67 | #define TOPKICK_SATA0_PWR_ENABLE 36 | ||
68 | |||
69 | void __init usi_topkick_init(void) | 67 | void __init usi_topkick_init(void) |
70 | { | 68 | { |
71 | /* | 69 | /* |
@@ -73,8 +71,6 @@ void __init usi_topkick_init(void) | |||
73 | */ | 71 | */ |
74 | kirkwood_mpp_conf(topkick_mpp_config); | 72 | kirkwood_mpp_conf(topkick_mpp_config); |
75 | 73 | ||
76 | /* SATA0 power enable */ | ||
77 | gpio_set_value(TOPKICK_SATA0_PWR_ENABLE, 1); | ||
78 | 74 | ||
79 | kirkwood_ge00_init(&topkick_ge00_data); | 75 | kirkwood_ge00_init(&topkick_ge00_data); |
80 | kirkwood_sdio_init(&topkick_mvsdio_data); | 76 | kirkwood_sdio_init(&topkick_mvsdio_data); |
diff --git a/arch/arm/mach-mvebu/Makefile b/arch/arm/mach-mvebu/Makefile index 5dcb369b58aa..99df4df680fd 100644 --- a/arch/arm/mach-mvebu/Makefile +++ b/arch/arm/mach-mvebu/Makefile | |||
@@ -1,6 +1,8 @@ | |||
1 | ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include \ | 1 | ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include \ |
2 | -I$(srctree)/arch/arm/plat-orion/include | 2 | -I$(srctree)/arch/arm/plat-orion/include |
3 | 3 | ||
4 | AFLAGS_coherency_ll.o := -Wa,-march=armv7-a | ||
5 | |||
4 | obj-y += system-controller.o | 6 | obj-y += system-controller.o |
5 | obj-$(CONFIG_MACH_ARMADA_370_XP) += armada-370-xp.o irq-armada-370-xp.o addr-map.o coherency.o coherency_ll.o pmsu.o | 7 | obj-$(CONFIG_MACH_ARMADA_370_XP) += armada-370-xp.o irq-armada-370-xp.o addr-map.o coherency.o coherency_ll.o pmsu.o |
6 | obj-$(CONFIG_SMP) += platsmp.o headsmp.o | 8 | obj-$(CONFIG_SMP) += platsmp.o headsmp.o |
diff --git a/arch/arm/mach-nomadik/board-nhk8815.c b/arch/arm/mach-nomadik/board-nhk8815.c index 98167a4319f7..9f19069248da 100644 --- a/arch/arm/mach-nomadik/board-nhk8815.c +++ b/arch/arm/mach-nomadik/board-nhk8815.c | |||
@@ -27,7 +27,6 @@ | |||
27 | #include <linux/pinctrl/machine.h> | 27 | #include <linux/pinctrl/machine.h> |
28 | #include <linux/platform_data/pinctrl-nomadik.h> | 28 | #include <linux/platform_data/pinctrl-nomadik.h> |
29 | #include <linux/platform_data/clocksource-nomadik-mtu.h> | 29 | #include <linux/platform_data/clocksource-nomadik-mtu.h> |
30 | #include <linux/platform_data/mtd-nomadik-nand.h> | ||
31 | #include <asm/hardware/vic.h> | 30 | #include <asm/hardware/vic.h> |
32 | #include <asm/sizes.h> | 31 | #include <asm/sizes.h> |
33 | #include <asm/mach-types.h> | 32 | #include <asm/mach-types.h> |
diff --git a/arch/arm/mach-nomadik/include/mach/irqs.h b/arch/arm/mach-nomadik/include/mach/irqs.h index b549d0571548..215f8cdb4004 100644 --- a/arch/arm/mach-nomadik/include/mach/irqs.h +++ b/arch/arm/mach-nomadik/include/mach/irqs.h | |||
@@ -22,49 +22,49 @@ | |||
22 | 22 | ||
23 | #include <mach/hardware.h> | 23 | #include <mach/hardware.h> |
24 | 24 | ||
25 | #define IRQ_VIC_START 1 /* first VIC interrupt is 1 */ | 25 | #define IRQ_VIC_START 32 /* first VIC interrupt is 1 */ |
26 | 26 | ||
27 | /* | 27 | /* |
28 | * Interrupt numbers generic for all Nomadik Chip cuts | 28 | * Interrupt numbers generic for all Nomadik Chip cuts |
29 | */ | 29 | */ |
30 | #define IRQ_WATCHDOG 1 | 30 | #define IRQ_WATCHDOG (IRQ_VIC_START+0) |
31 | #define IRQ_SOFTINT 2 | 31 | #define IRQ_SOFTINT (IRQ_VIC_START+1) |
32 | #define IRQ_CRYPTO 3 | 32 | #define IRQ_CRYPTO (IRQ_VIC_START+2) |
33 | #define IRQ_OWM 4 | 33 | #define IRQ_OWM (IRQ_VIC_START+3) |
34 | #define IRQ_MTU0 5 | 34 | #define IRQ_MTU0 (IRQ_VIC_START+4) |
35 | #define IRQ_MTU1 6 | 35 | #define IRQ_MTU1 (IRQ_VIC_START+5) |
36 | #define IRQ_GPIO0 7 | 36 | #define IRQ_GPIO0 (IRQ_VIC_START+6) |
37 | #define IRQ_GPIO1 8 | 37 | #define IRQ_GPIO1 (IRQ_VIC_START+7) |
38 | #define IRQ_GPIO2 9 | 38 | #define IRQ_GPIO2 (IRQ_VIC_START+8) |
39 | #define IRQ_GPIO3 10 | 39 | #define IRQ_GPIO3 (IRQ_VIC_START+9) |
40 | #define IRQ_RTC_RTT 11 | 40 | #define IRQ_RTC_RTT (IRQ_VIC_START+10) |
41 | #define IRQ_SSP 12 | 41 | #define IRQ_SSP (IRQ_VIC_START+11) |
42 | #define IRQ_UART0 13 | 42 | #define IRQ_UART0 (IRQ_VIC_START+12) |
43 | #define IRQ_DMA1 14 | 43 | #define IRQ_DMA1 (IRQ_VIC_START+13) |
44 | #define IRQ_CLCD_MDIF 15 | 44 | #define IRQ_CLCD_MDIF (IRQ_VIC_START+14) |
45 | #define IRQ_DMA0 16 | 45 | #define IRQ_DMA0 (IRQ_VIC_START+15) |
46 | #define IRQ_PWRFAIL 17 | 46 | #define IRQ_PWRFAIL (IRQ_VIC_START+16) |
47 | #define IRQ_UART1 18 | 47 | #define IRQ_UART1 (IRQ_VIC_START+17) |
48 | #define IRQ_FIRDA 19 | 48 | #define IRQ_FIRDA (IRQ_VIC_START+18) |
49 | #define IRQ_MSP0 20 | 49 | #define IRQ_MSP0 (IRQ_VIC_START+19) |
50 | #define IRQ_I2C0 21 | 50 | #define IRQ_I2C0 (IRQ_VIC_START+20) |
51 | #define IRQ_I2C1 22 | 51 | #define IRQ_I2C1 (IRQ_VIC_START+21) |
52 | #define IRQ_SDMMC 23 | 52 | #define IRQ_SDMMC (IRQ_VIC_START+22) |
53 | #define IRQ_USBOTG 24 | 53 | #define IRQ_USBOTG (IRQ_VIC_START+23) |
54 | #define IRQ_SVA_IT0 25 | 54 | #define IRQ_SVA_IT0 (IRQ_VIC_START+24) |
55 | #define IRQ_SVA_IT1 26 | 55 | #define IRQ_SVA_IT1 (IRQ_VIC_START+25) |
56 | #define IRQ_SAA_IT0 27 | 56 | #define IRQ_SAA_IT0 (IRQ_VIC_START+26) |
57 | #define IRQ_SAA_IT1 28 | 57 | #define IRQ_SAA_IT1 (IRQ_VIC_START+27) |
58 | #define IRQ_UART2 29 | 58 | #define IRQ_UART2 (IRQ_VIC_START+28) |
59 | #define IRQ_MSP2 30 | 59 | #define IRQ_MSP2 (IRQ_VIC_START+29) |
60 | #define IRQ_L2CC 49 | 60 | #define IRQ_L2CC (IRQ_VIC_START+30) |
61 | #define IRQ_HPI 50 | 61 | #define IRQ_HPI (IRQ_VIC_START+31) |
62 | #define IRQ_SKE 51 | 62 | #define IRQ_SKE (IRQ_VIC_START+32) |
63 | #define IRQ_KP 52 | 63 | #define IRQ_KP (IRQ_VIC_START+33) |
64 | #define IRQ_MEMST 55 | 64 | #define IRQ_MEMST (IRQ_VIC_START+34) |
65 | #define IRQ_SGA_IT 59 | 65 | #define IRQ_SGA_IT (IRQ_VIC_START+35) |
66 | #define IRQ_USBM 61 | 66 | #define IRQ_USBM (IRQ_VIC_START+36) |
67 | #define IRQ_MSP1 63 | 67 | #define IRQ_MSP1 (IRQ_VIC_START+37) |
68 | 68 | ||
69 | #define NOMADIK_GPIO_OFFSET (IRQ_VIC_START+64) | 69 | #define NOMADIK_GPIO_OFFSET (IRQ_VIC_START+64) |
70 | 70 | ||
diff --git a/arch/arm/mach-omap1/Makefile b/arch/arm/mach-omap1/Makefile index f0e69cbc5baa..222d58c0ae76 100644 --- a/arch/arm/mach-omap1/Makefile +++ b/arch/arm/mach-omap1/Makefile | |||
@@ -4,7 +4,7 @@ | |||
4 | 4 | ||
5 | # Common support | 5 | # Common support |
6 | obj-y := io.o id.o sram-init.o sram.o time.o irq.o mux.o flash.o \ | 6 | obj-y := io.o id.o sram-init.o sram.o time.o irq.o mux.o flash.o \ |
7 | serial.o devices.o dma.o | 7 | serial.o devices.o dma.o fb.o |
8 | obj-y += clock.o clock_data.o opp_data.o reset.o pm_bus.o timer.o | 8 | obj-y += clock.o clock_data.o opp_data.o reset.o pm_bus.o timer.o |
9 | 9 | ||
10 | ifneq ($(CONFIG_SND_OMAP_SOC_MCBSP),) | 10 | ifneq ($(CONFIG_SND_OMAP_SOC_MCBSP),) |
diff --git a/arch/arm/mach-omap1/board-ams-delta.c b/arch/arm/mach-omap1/board-ams-delta.c index a8fce3ccc707..2e98a3ac7c5e 100644 --- a/arch/arm/mach-omap1/board-ams-delta.c +++ b/arch/arm/mach-omap1/board-ams-delta.c | |||
@@ -160,7 +160,7 @@ static struct omap_lcd_config ams_delta_lcd_config __initdata = { | |||
160 | .ctrl_name = "internal", | 160 | .ctrl_name = "internal", |
161 | }; | 161 | }; |
162 | 162 | ||
163 | static struct omap_usb_config ams_delta_usb_config = { | 163 | static struct omap_usb_config ams_delta_usb_config __initdata = { |
164 | .register_host = 1, | 164 | .register_host = 1, |
165 | .hmc_mode = 16, | 165 | .hmc_mode = 16, |
166 | .pins[0] = 2, | 166 | .pins[0] = 2, |
diff --git a/arch/arm/mach-omap1/fb.c b/arch/arm/mach-omap1/fb.c new file mode 100644 index 000000000000..c770d45c7226 --- /dev/null +++ b/arch/arm/mach-omap1/fb.c | |||
@@ -0,0 +1,80 @@ | |||
1 | /* | ||
2 | * File: arch/arm/plat-omap/fb.c | ||
3 | * | ||
4 | * Framebuffer device registration for TI OMAP platforms | ||
5 | * | ||
6 | * Copyright (C) 2006 Nokia Corporation | ||
7 | * Author: Imre Deak <imre.deak@nokia.com> | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or modify it | ||
10 | * under the terms of the GNU General Public License as published by the | ||
11 | * Free Software Foundation; either version 2 of the License, or (at your | ||
12 | * option) any later version. | ||
13 | * | ||
14 | * This program is distributed in the hope that it will be useful, but | ||
15 | * WITHOUT ANY WARRANTY; without even the implied warranty of | ||
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
17 | * General Public License for more details. | ||
18 | * | ||
19 | * You should have received a copy of the GNU General Public License along | ||
20 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
21 | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||
22 | */ | ||
23 | |||
24 | #include <linux/module.h> | ||
25 | #include <linux/kernel.h> | ||
26 | #include <linux/mm.h> | ||
27 | #include <linux/init.h> | ||
28 | #include <linux/platform_device.h> | ||
29 | #include <linux/memblock.h> | ||
30 | #include <linux/io.h> | ||
31 | #include <linux/omapfb.h> | ||
32 | #include <linux/dma-mapping.h> | ||
33 | |||
34 | #include <asm/mach/map.h> | ||
35 | |||
36 | #if defined(CONFIG_FB_OMAP) || defined(CONFIG_FB_OMAP_MODULE) | ||
37 | |||
38 | static bool omapfb_lcd_configured; | ||
39 | static struct omapfb_platform_data omapfb_config; | ||
40 | |||
41 | static u64 omap_fb_dma_mask = ~(u32)0; | ||
42 | |||
43 | static struct platform_device omap_fb_device = { | ||
44 | .name = "omapfb", | ||
45 | .id = -1, | ||
46 | .dev = { | ||
47 | .dma_mask = &omap_fb_dma_mask, | ||
48 | .coherent_dma_mask = DMA_BIT_MASK(32), | ||
49 | .platform_data = &omapfb_config, | ||
50 | }, | ||
51 | .num_resources = 0, | ||
52 | }; | ||
53 | |||
54 | void __init omapfb_set_lcd_config(const struct omap_lcd_config *config) | ||
55 | { | ||
56 | omapfb_config.lcd = *config; | ||
57 | omapfb_lcd_configured = true; | ||
58 | } | ||
59 | |||
60 | static int __init omap_init_fb(void) | ||
61 | { | ||
62 | /* | ||
63 | * If the board file has not set the lcd config with | ||
64 | * omapfb_set_lcd_config(), don't bother registering the omapfb device | ||
65 | */ | ||
66 | if (!omapfb_lcd_configured) | ||
67 | return 0; | ||
68 | |||
69 | return platform_device_register(&omap_fb_device); | ||
70 | } | ||
71 | |||
72 | arch_initcall(omap_init_fb); | ||
73 | |||
74 | #else | ||
75 | |||
76 | void __init omapfb_set_lcd_config(const struct omap_lcd_config *config) | ||
77 | { | ||
78 | } | ||
79 | |||
80 | #endif | ||
diff --git a/arch/arm/mach-omap1/usb.c b/arch/arm/mach-omap1/usb.c index 104fed366b8f..1a1db5971cd9 100644 --- a/arch/arm/mach-omap1/usb.c +++ b/arch/arm/mach-omap1/usb.c | |||
@@ -629,8 +629,14 @@ static void __init omap_1510_usb_init(struct omap_usb_config *config) | |||
629 | static inline void omap_1510_usb_init(struct omap_usb_config *config) {} | 629 | static inline void omap_1510_usb_init(struct omap_usb_config *config) {} |
630 | #endif | 630 | #endif |
631 | 631 | ||
632 | void __init omap1_usb_init(struct omap_usb_config *pdata) | 632 | void __init omap1_usb_init(struct omap_usb_config *_pdata) |
633 | { | 633 | { |
634 | struct omap_usb_config *pdata; | ||
635 | |||
636 | pdata = kmemdup(_pdata, sizeof(*pdata), GFP_KERNEL); | ||
637 | if (!pdata) | ||
638 | return; | ||
639 | |||
634 | pdata->usb0_init = omap1_usb0_init; | 640 | pdata->usb0_init = omap1_usb0_init; |
635 | pdata->usb1_init = omap1_usb1_init; | 641 | pdata->usb1_init = omap1_usb1_init; |
636 | pdata->usb2_init = omap1_usb2_init; | 642 | pdata->usb2_init = omap1_usb2_init; |
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile index a8004f33b7e2..947cafe65aef 100644 --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile | |||
@@ -3,7 +3,7 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | # Common support | 5 | # Common support |
6 | obj-y := id.o io.o control.o mux.o devices.o serial.o gpmc.o timer.o pm.o \ | 6 | obj-y := id.o io.o control.o mux.o devices.o fb.o serial.o gpmc.o timer.o pm.o \ |
7 | common.o gpio.o dma.o wd_timer.o display.o i2c.o hdq1w.o omap_hwmod.o \ | 7 | common.o gpio.o dma.o wd_timer.o display.o i2c.o hdq1w.o omap_hwmod.o \ |
8 | omap_device.o sram.o | 8 | omap_device.o sram.o |
9 | 9 | ||
diff --git a/arch/arm/mach-omap2/cclock3xxx_data.c b/arch/arm/mach-omap2/cclock3xxx_data.c index bdf39481fbd6..6ef87580c33f 100644 --- a/arch/arm/mach-omap2/cclock3xxx_data.c +++ b/arch/arm/mach-omap2/cclock3xxx_data.c | |||
@@ -1167,6 +1167,8 @@ static const struct clk_ops emu_src_ck_ops = { | |||
1167 | .recalc_rate = &omap2_clksel_recalc, | 1167 | .recalc_rate = &omap2_clksel_recalc, |
1168 | .get_parent = &omap2_clksel_find_parent_index, | 1168 | .get_parent = &omap2_clksel_find_parent_index, |
1169 | .set_parent = &omap2_clksel_set_parent, | 1169 | .set_parent = &omap2_clksel_set_parent, |
1170 | .enable = &omap2_clkops_enable_clkdm, | ||
1171 | .disable = &omap2_clkops_disable_clkdm, | ||
1170 | }; | 1172 | }; |
1171 | 1173 | ||
1172 | static struct clk emu_src_ck; | 1174 | static struct clk emu_src_ck; |
diff --git a/arch/arm/mach-omap2/control.h b/arch/arm/mach-omap2/control.h index 3d944d3263d2..e6c328128a0a 100644 --- a/arch/arm/mach-omap2/control.h +++ b/arch/arm/mach-omap2/control.h | |||
@@ -234,7 +234,7 @@ | |||
234 | #define OMAP343X_PADCONF_ETK_D14 OMAP343X_PADCONF_ETK(16) | 234 | #define OMAP343X_PADCONF_ETK_D14 OMAP343X_PADCONF_ETK(16) |
235 | #define OMAP343X_PADCONF_ETK_D15 OMAP343X_PADCONF_ETK(17) | 235 | #define OMAP343X_PADCONF_ETK_D15 OMAP343X_PADCONF_ETK(17) |
236 | 236 | ||
237 | /* 34xx GENERAL_WKUP regist offsets */ | 237 | /* 34xx GENERAL_WKUP register offsets */ |
238 | #define OMAP343X_CONTROL_WKUP_DEBOBSMUX(i) (OMAP343X_CONTROL_GENERAL_WKUP + \ | 238 | #define OMAP343X_CONTROL_WKUP_DEBOBSMUX(i) (OMAP343X_CONTROL_GENERAL_WKUP + \ |
239 | 0x008 + (i)) | 239 | 0x008 + (i)) |
240 | #define OMAP343X_CONTROL_WKUP_DEBOBS0 (OMAP343X_CONTROL_GENERAL_WKUP + 0x008) | 240 | #define OMAP343X_CONTROL_WKUP_DEBOBS0 (OMAP343X_CONTROL_GENERAL_WKUP + 0x008) |
diff --git a/arch/arm/mach-omap2/dpll3xxx.c b/arch/arm/mach-omap2/dpll3xxx.c index 2bb18838cba9..0a02aab5df67 100644 --- a/arch/arm/mach-omap2/dpll3xxx.c +++ b/arch/arm/mach-omap2/dpll3xxx.c | |||
@@ -504,8 +504,7 @@ int omap3_noncore_dpll_set_rate(struct clk_hw *hw, unsigned long rate, | |||
504 | if (!cpu_is_omap44xx() && !cpu_is_omap3630()) { | 504 | if (!cpu_is_omap44xx() && !cpu_is_omap3630()) { |
505 | freqsel = _omap3_dpll_compute_freqsel(clk, | 505 | freqsel = _omap3_dpll_compute_freqsel(clk, |
506 | dd->last_rounded_n); | 506 | dd->last_rounded_n); |
507 | if (!freqsel) | 507 | WARN_ON(!freqsel); |
508 | WARN_ON(1); | ||
509 | } | 508 | } |
510 | 509 | ||
511 | pr_debug("%s: %s: set rate: locking rate to %lu.\n", | 510 | pr_debug("%s: %s: set rate: locking rate to %lu.\n", |
diff --git a/arch/arm/mach-omap2/drm.c b/arch/arm/mach-omap2/drm.c index fce5aa3fff49..4c7566c7e24a 100644 --- a/arch/arm/mach-omap2/drm.c +++ b/arch/arm/mach-omap2/drm.c | |||
@@ -27,7 +27,6 @@ | |||
27 | 27 | ||
28 | #include "omap_device.h" | 28 | #include "omap_device.h" |
29 | #include "omap_hwmod.h" | 29 | #include "omap_hwmod.h" |
30 | #include <plat/cpu.h> | ||
31 | 30 | ||
32 | #if defined(CONFIG_DRM_OMAP) || (CONFIG_DRM_OMAP_MODULE) | 31 | #if defined(CONFIG_DRM_OMAP) || (CONFIG_DRM_OMAP_MODULE) |
33 | 32 | ||
diff --git a/arch/arm/mach-omap2/dss-common.c b/arch/arm/mach-omap2/dss-common.c index 679a0478644f..4be5cfc81ab8 100644 --- a/arch/arm/mach-omap2/dss-common.c +++ b/arch/arm/mach-omap2/dss-common.c | |||
@@ -31,8 +31,7 @@ | |||
31 | #include <video/omap-panel-nokia-dsi.h> | 31 | #include <video/omap-panel-nokia-dsi.h> |
32 | #include <video/omap-panel-picodlp.h> | 32 | #include <video/omap-panel-picodlp.h> |
33 | 33 | ||
34 | #include <plat/cpu.h> | 34 | #include "soc.h" |
35 | |||
36 | #include "dss-common.h" | 35 | #include "dss-common.h" |
37 | #include "mux.h" | 36 | #include "mux.h" |
38 | 37 | ||
diff --git a/arch/arm/plat-omap/fb.c b/arch/arm/mach-omap2/fb.c index a3367b783fc7..d9bd965f6d07 100644 --- a/arch/arm/plat-omap/fb.c +++ b/arch/arm/mach-omap2/fb.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * File: arch/arm/plat-omap/fb.c | ||
3 | * | ||
4 | * Framebuffer device registration for TI OMAP platforms | 2 | * Framebuffer device registration for TI OMAP platforms |
5 | * | 3 | * |
6 | * Copyright (C) 2006 Nokia Corporation | 4 | * Copyright (C) 2006 Nokia Corporation |
@@ -33,7 +31,7 @@ | |||
33 | 31 | ||
34 | #include <asm/mach/map.h> | 32 | #include <asm/mach/map.h> |
35 | 33 | ||
36 | #include <plat/cpu.h> | 34 | #include "soc.h" |
37 | 35 | ||
38 | #ifdef CONFIG_OMAP2_VRFB | 36 | #ifdef CONFIG_OMAP2_VRFB |
39 | 37 | ||
@@ -94,45 +92,7 @@ static int __init omap_init_vrfb(void) | |||
94 | arch_initcall(omap_init_vrfb); | 92 | arch_initcall(omap_init_vrfb); |
95 | #endif | 93 | #endif |
96 | 94 | ||
97 | #if defined(CONFIG_FB_OMAP) || defined(CONFIG_FB_OMAP_MODULE) | 95 | #if defined(CONFIG_FB_OMAP2) || defined(CONFIG_FB_OMAP2_MODULE) |
98 | |||
99 | static bool omapfb_lcd_configured; | ||
100 | static struct omapfb_platform_data omapfb_config; | ||
101 | |||
102 | static u64 omap_fb_dma_mask = ~(u32)0; | ||
103 | |||
104 | static struct platform_device omap_fb_device = { | ||
105 | .name = "omapfb", | ||
106 | .id = -1, | ||
107 | .dev = { | ||
108 | .dma_mask = &omap_fb_dma_mask, | ||
109 | .coherent_dma_mask = DMA_BIT_MASK(32), | ||
110 | .platform_data = &omapfb_config, | ||
111 | }, | ||
112 | .num_resources = 0, | ||
113 | }; | ||
114 | |||
115 | void __init omapfb_set_lcd_config(const struct omap_lcd_config *config) | ||
116 | { | ||
117 | omapfb_config.lcd = *config; | ||
118 | omapfb_lcd_configured = true; | ||
119 | } | ||
120 | |||
121 | static int __init omap_init_fb(void) | ||
122 | { | ||
123 | /* | ||
124 | * If the board file has not set the lcd config with | ||
125 | * omapfb_set_lcd_config(), don't bother registering the omapfb device | ||
126 | */ | ||
127 | if (!omapfb_lcd_configured) | ||
128 | return 0; | ||
129 | |||
130 | return platform_device_register(&omap_fb_device); | ||
131 | } | ||
132 | |||
133 | arch_initcall(omap_init_fb); | ||
134 | |||
135 | #elif defined(CONFIG_FB_OMAP2) || defined(CONFIG_FB_OMAP2_MODULE) | ||
136 | 96 | ||
137 | static u64 omap_fb_dma_mask = ~(u32)0; | 97 | static u64 omap_fb_dma_mask = ~(u32)0; |
138 | static struct omapfb_platform_data omapfb_config; | 98 | static struct omapfb_platform_data omapfb_config; |
@@ -155,10 +115,4 @@ static int __init omap_init_fb(void) | |||
155 | 115 | ||
156 | arch_initcall(omap_init_fb); | 116 | arch_initcall(omap_init_fb); |
157 | 117 | ||
158 | #else | ||
159 | |||
160 | void __init omapfb_set_lcd_config(const struct omap_lcd_config *config) | ||
161 | { | ||
162 | } | ||
163 | |||
164 | #endif | 118 | #endif |
diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c index 081c71edddf4..646c14d9fdb9 100644 --- a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c | |||
@@ -2070,7 +2070,7 @@ static struct omap_hwmod_irq_info am33xx_usbss_mpu_irqs[] = { | |||
2070 | { .name = "usbss-irq", .irq = 17 + OMAP_INTC_START, }, | 2070 | { .name = "usbss-irq", .irq = 17 + OMAP_INTC_START, }, |
2071 | { .name = "musb0-irq", .irq = 18 + OMAP_INTC_START, }, | 2071 | { .name = "musb0-irq", .irq = 18 + OMAP_INTC_START, }, |
2072 | { .name = "musb1-irq", .irq = 19 + OMAP_INTC_START, }, | 2072 | { .name = "musb1-irq", .irq = 19 + OMAP_INTC_START, }, |
2073 | { .irq = -1 + OMAP_INTC_START, }, | 2073 | { .irq = -1, }, |
2074 | }; | 2074 | }; |
2075 | 2075 | ||
2076 | static struct omap_hwmod am33xx_usbss_hwmod = { | 2076 | static struct omap_hwmod am33xx_usbss_hwmod = { |
@@ -2515,7 +2515,7 @@ static struct omap_hwmod_ocp_if am33xx_l4_hs__cpgmac0 = { | |||
2515 | .user = OCP_USER_MPU, | 2515 | .user = OCP_USER_MPU, |
2516 | }; | 2516 | }; |
2517 | 2517 | ||
2518 | struct omap_hwmod_addr_space am33xx_mdio_addr_space[] = { | 2518 | static struct omap_hwmod_addr_space am33xx_mdio_addr_space[] = { |
2519 | { | 2519 | { |
2520 | .pa_start = 0x4A101000, | 2520 | .pa_start = 0x4A101000, |
2521 | .pa_end = 0x4A101000 + SZ_256 - 1, | 2521 | .pa_end = 0x4A101000 + SZ_256 - 1, |
@@ -2523,7 +2523,7 @@ struct omap_hwmod_addr_space am33xx_mdio_addr_space[] = { | |||
2523 | { } | 2523 | { } |
2524 | }; | 2524 | }; |
2525 | 2525 | ||
2526 | struct omap_hwmod_ocp_if am33xx_cpgmac0__mdio = { | 2526 | static struct omap_hwmod_ocp_if am33xx_cpgmac0__mdio = { |
2527 | .master = &am33xx_cpgmac0_hwmod, | 2527 | .master = &am33xx_cpgmac0_hwmod, |
2528 | .slave = &am33xx_mdio_hwmod, | 2528 | .slave = &am33xx_mdio_hwmod, |
2529 | .addr = am33xx_mdio_addr_space, | 2529 | .addr = am33xx_mdio_addr_space, |
diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c index f9fab942d5ba..129d5081ed15 100644 --- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c | |||
@@ -26,7 +26,6 @@ | |||
26 | 26 | ||
27 | #include <linux/omap-dma.h> | 27 | #include <linux/omap-dma.h> |
28 | 28 | ||
29 | #include <linux/platform_data/omap_ocp2scp.h> | ||
30 | #include <linux/platform_data/spi-omap2-mcspi.h> | 29 | #include <linux/platform_data/spi-omap2-mcspi.h> |
31 | #include <linux/platform_data/asoc-ti-mcbsp.h> | 30 | #include <linux/platform_data/asoc-ti-mcbsp.h> |
32 | #include <linux/platform_data/iommu-omap.h> | 31 | #include <linux/platform_data/iommu-omap.h> |
diff --git a/arch/arm/mach-omap2/omap_twl.c b/arch/arm/mach-omap2/omap_twl.c index fefd40166624..615e5b1fb025 100644 --- a/arch/arm/mach-omap2/omap_twl.c +++ b/arch/arm/mach-omap2/omap_twl.c | |||
@@ -292,8 +292,8 @@ int __init omap3_twl_set_sr_bit(bool enable) | |||
292 | if (twl_sr_enable_autoinit) | 292 | if (twl_sr_enable_autoinit) |
293 | pr_warning("%s: unexpected multiple calls\n", __func__); | 293 | pr_warning("%s: unexpected multiple calls\n", __func__); |
294 | 294 | ||
295 | ret = twl_i2c_read_u8(TWL4030_MODULE_PM_RECEIVER, &temp, | 295 | ret = twl_i2c_read_u8(TWL_MODULE_PM_RECEIVER, &temp, |
296 | TWL4030_DCDC_GLOBAL_CFG); | 296 | TWL4030_DCDC_GLOBAL_CFG); |
297 | if (ret) | 297 | if (ret) |
298 | goto err; | 298 | goto err; |
299 | 299 | ||
@@ -302,8 +302,8 @@ int __init omap3_twl_set_sr_bit(bool enable) | |||
302 | else | 302 | else |
303 | temp &= ~SMARTREFLEX_ENABLE; | 303 | temp &= ~SMARTREFLEX_ENABLE; |
304 | 304 | ||
305 | ret = twl_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER, temp, | 305 | ret = twl_i2c_write_u8(TWL_MODULE_PM_RECEIVER, temp, |
306 | TWL4030_DCDC_GLOBAL_CFG); | 306 | TWL4030_DCDC_GLOBAL_CFG); |
307 | if (!ret) { | 307 | if (!ret) { |
308 | twl_sr_enable_autoinit = true; | 308 | twl_sr_enable_autoinit = true; |
309 | return 0; | 309 | return 0; |
diff --git a/arch/arm/mach-omap2/pmu.c b/arch/arm/mach-omap2/pmu.c index 250d909e38bd..eb78ae7a3464 100644 --- a/arch/arm/mach-omap2/pmu.c +++ b/arch/arm/mach-omap2/pmu.c | |||
@@ -11,8 +11,6 @@ | |||
11 | * the Free Software Foundation; either version 2 of the License, or | 11 | * the Free Software Foundation; either version 2 of the License, or |
12 | * (at your option) any later version. | 12 | * (at your option) any later version. |
13 | */ | 13 | */ |
14 | #include <linux/pm_runtime.h> | ||
15 | |||
16 | #include <asm/pmu.h> | 14 | #include <asm/pmu.h> |
17 | 15 | ||
18 | #include "soc.h" | 16 | #include "soc.h" |
diff --git a/arch/arm/mach-omap2/prm2xxx.c b/arch/arm/mach-omap2/prm2xxx.c index faeab18696df..418de9c3b319 100644 --- a/arch/arm/mach-omap2/prm2xxx.c +++ b/arch/arm/mach-omap2/prm2xxx.c | |||
@@ -18,9 +18,8 @@ | |||
18 | #include <linux/io.h> | 18 | #include <linux/io.h> |
19 | #include <linux/irq.h> | 19 | #include <linux/irq.h> |
20 | 20 | ||
21 | #include "soc.h" | ||
21 | #include "common.h" | 22 | #include "common.h" |
22 | #include <plat/cpu.h> | ||
23 | |||
24 | #include "vp.h" | 23 | #include "vp.h" |
25 | #include "powerdomain.h" | 24 | #include "powerdomain.h" |
26 | #include "clockdomain.h" | 25 | #include "clockdomain.h" |
@@ -29,6 +28,14 @@ | |||
29 | #include "prm-regbits-24xx.h" | 28 | #include "prm-regbits-24xx.h" |
30 | 29 | ||
31 | /* | 30 | /* |
31 | * OMAP24xx PM_PWSTCTRL_*.POWERSTATE and PM_PWSTST_*.LASTSTATEENTERED bits - | ||
32 | * these are reversed from the bits used on OMAP3+ | ||
33 | */ | ||
34 | #define OMAP24XX_PWRDM_POWER_ON 0x0 | ||
35 | #define OMAP24XX_PWRDM_POWER_RET 0x1 | ||
36 | #define OMAP24XX_PWRDM_POWER_OFF 0x3 | ||
37 | |||
38 | /* | ||
32 | * omap2xxx_prm_reset_src_map - map from bits in the PRM_RSTST_WKUP | 39 | * omap2xxx_prm_reset_src_map - map from bits in the PRM_RSTST_WKUP |
33 | * hardware register (which are specific to the OMAP2xxx SoCs) to | 40 | * hardware register (which are specific to the OMAP2xxx SoCs) to |
34 | * reset source ID bit shifts (which is an OMAP SoC-independent | 41 | * reset source ID bit shifts (which is an OMAP SoC-independent |
@@ -69,6 +76,34 @@ static u32 omap2xxx_prm_read_reset_sources(void) | |||
69 | } | 76 | } |
70 | 77 | ||
71 | /** | 78 | /** |
79 | * omap2xxx_pwrst_to_common_pwrst - convert OMAP2xxx pwrst to common pwrst | ||
80 | * @omap2xxx_pwrst: OMAP2xxx hardware power state to convert | ||
81 | * | ||
82 | * Return the common power state bits corresponding to the OMAP2xxx | ||
83 | * hardware power state bits @omap2xxx_pwrst, or -EINVAL upon error. | ||
84 | */ | ||
85 | static int omap2xxx_pwrst_to_common_pwrst(u8 omap2xxx_pwrst) | ||
86 | { | ||
87 | u8 pwrst; | ||
88 | |||
89 | switch (omap2xxx_pwrst) { | ||
90 | case OMAP24XX_PWRDM_POWER_OFF: | ||
91 | pwrst = PWRDM_POWER_OFF; | ||
92 | break; | ||
93 | case OMAP24XX_PWRDM_POWER_RET: | ||
94 | pwrst = PWRDM_POWER_RET; | ||
95 | break; | ||
96 | case OMAP24XX_PWRDM_POWER_ON: | ||
97 | pwrst = PWRDM_POWER_ON; | ||
98 | break; | ||
99 | default: | ||
100 | return -EINVAL; | ||
101 | } | ||
102 | |||
103 | return pwrst; | ||
104 | } | ||
105 | |||
106 | /** | ||
72 | * omap2xxx_prm_dpll_reset - use DPLL reset to reboot the OMAP SoC | 107 | * omap2xxx_prm_dpll_reset - use DPLL reset to reboot the OMAP SoC |
73 | * | 108 | * |
74 | * Set the DPLL reset bit, which should reboot the SoC. This is the | 109 | * Set the DPLL reset bit, which should reboot the SoC. This is the |
@@ -98,10 +133,56 @@ int omap2xxx_clkdm_wakeup(struct clockdomain *clkdm) | |||
98 | return 0; | 133 | return 0; |
99 | } | 134 | } |
100 | 135 | ||
136 | static int omap2xxx_pwrdm_set_next_pwrst(struct powerdomain *pwrdm, u8 pwrst) | ||
137 | { | ||
138 | u8 omap24xx_pwrst; | ||
139 | |||
140 | switch (pwrst) { | ||
141 | case PWRDM_POWER_OFF: | ||
142 | omap24xx_pwrst = OMAP24XX_PWRDM_POWER_OFF; | ||
143 | break; | ||
144 | case PWRDM_POWER_RET: | ||
145 | omap24xx_pwrst = OMAP24XX_PWRDM_POWER_RET; | ||
146 | break; | ||
147 | case PWRDM_POWER_ON: | ||
148 | omap24xx_pwrst = OMAP24XX_PWRDM_POWER_ON; | ||
149 | break; | ||
150 | default: | ||
151 | return -EINVAL; | ||
152 | } | ||
153 | |||
154 | omap2_prm_rmw_mod_reg_bits(OMAP_POWERSTATE_MASK, | ||
155 | (omap24xx_pwrst << OMAP_POWERSTATE_SHIFT), | ||
156 | pwrdm->prcm_offs, OMAP2_PM_PWSTCTRL); | ||
157 | return 0; | ||
158 | } | ||
159 | |||
160 | static int omap2xxx_pwrdm_read_next_pwrst(struct powerdomain *pwrdm) | ||
161 | { | ||
162 | u8 omap2xxx_pwrst; | ||
163 | |||
164 | omap2xxx_pwrst = omap2_prm_read_mod_bits_shift(pwrdm->prcm_offs, | ||
165 | OMAP2_PM_PWSTCTRL, | ||
166 | OMAP_POWERSTATE_MASK); | ||
167 | |||
168 | return omap2xxx_pwrst_to_common_pwrst(omap2xxx_pwrst); | ||
169 | } | ||
170 | |||
171 | static int omap2xxx_pwrdm_read_pwrst(struct powerdomain *pwrdm) | ||
172 | { | ||
173 | u8 omap2xxx_pwrst; | ||
174 | |||
175 | omap2xxx_pwrst = omap2_prm_read_mod_bits_shift(pwrdm->prcm_offs, | ||
176 | OMAP2_PM_PWSTST, | ||
177 | OMAP_POWERSTATEST_MASK); | ||
178 | |||
179 | return omap2xxx_pwrst_to_common_pwrst(omap2xxx_pwrst); | ||
180 | } | ||
181 | |||
101 | struct pwrdm_ops omap2_pwrdm_operations = { | 182 | struct pwrdm_ops omap2_pwrdm_operations = { |
102 | .pwrdm_set_next_pwrst = omap2_pwrdm_set_next_pwrst, | 183 | .pwrdm_set_next_pwrst = omap2xxx_pwrdm_set_next_pwrst, |
103 | .pwrdm_read_next_pwrst = omap2_pwrdm_read_next_pwrst, | 184 | .pwrdm_read_next_pwrst = omap2xxx_pwrdm_read_next_pwrst, |
104 | .pwrdm_read_pwrst = omap2_pwrdm_read_pwrst, | 185 | .pwrdm_read_pwrst = omap2xxx_pwrdm_read_pwrst, |
105 | .pwrdm_set_logic_retst = omap2_pwrdm_set_logic_retst, | 186 | .pwrdm_set_logic_retst = omap2_pwrdm_set_logic_retst, |
106 | .pwrdm_set_mem_onst = omap2_pwrdm_set_mem_onst, | 187 | .pwrdm_set_mem_onst = omap2_pwrdm_set_mem_onst, |
107 | .pwrdm_set_mem_retst = omap2_pwrdm_set_mem_retst, | 188 | .pwrdm_set_mem_retst = omap2_pwrdm_set_mem_retst, |
diff --git a/arch/arm/mach-omap2/prm2xxx_3xxx.c b/arch/arm/mach-omap2/prm2xxx_3xxx.c index 30517f5af707..a3e121f94a86 100644 --- a/arch/arm/mach-omap2/prm2xxx_3xxx.c +++ b/arch/arm/mach-omap2/prm2xxx_3xxx.c | |||
@@ -103,28 +103,6 @@ int omap2_prm_deassert_hardreset(s16 prm_mod, u8 rst_shift, u8 st_shift) | |||
103 | /* Powerdomain low-level functions */ | 103 | /* Powerdomain low-level functions */ |
104 | 104 | ||
105 | /* Common functions across OMAP2 and OMAP3 */ | 105 | /* Common functions across OMAP2 and OMAP3 */ |
106 | int omap2_pwrdm_set_next_pwrst(struct powerdomain *pwrdm, u8 pwrst) | ||
107 | { | ||
108 | omap2_prm_rmw_mod_reg_bits(OMAP_POWERSTATE_MASK, | ||
109 | (pwrst << OMAP_POWERSTATE_SHIFT), | ||
110 | pwrdm->prcm_offs, OMAP2_PM_PWSTCTRL); | ||
111 | return 0; | ||
112 | } | ||
113 | |||
114 | int omap2_pwrdm_read_next_pwrst(struct powerdomain *pwrdm) | ||
115 | { | ||
116 | return omap2_prm_read_mod_bits_shift(pwrdm->prcm_offs, | ||
117 | OMAP2_PM_PWSTCTRL, | ||
118 | OMAP_POWERSTATE_MASK); | ||
119 | } | ||
120 | |||
121 | int omap2_pwrdm_read_pwrst(struct powerdomain *pwrdm) | ||
122 | { | ||
123 | return omap2_prm_read_mod_bits_shift(pwrdm->prcm_offs, | ||
124 | OMAP2_PM_PWSTST, | ||
125 | OMAP_POWERSTATEST_MASK); | ||
126 | } | ||
127 | |||
128 | int omap2_pwrdm_set_mem_onst(struct powerdomain *pwrdm, u8 bank, | 106 | int omap2_pwrdm_set_mem_onst(struct powerdomain *pwrdm, u8 bank, |
129 | u8 pwrst) | 107 | u8 pwrst) |
130 | { | 108 | { |
diff --git a/arch/arm/mach-omap2/prm3xxx.c b/arch/arm/mach-omap2/prm3xxx.c index db198d058584..e648bd55b072 100644 --- a/arch/arm/mach-omap2/prm3xxx.c +++ b/arch/arm/mach-omap2/prm3xxx.c | |||
@@ -18,9 +18,8 @@ | |||
18 | #include <linux/io.h> | 18 | #include <linux/io.h> |
19 | #include <linux/irq.h> | 19 | #include <linux/irq.h> |
20 | 20 | ||
21 | #include "soc.h" | ||
21 | #include "common.h" | 22 | #include "common.h" |
22 | #include <plat/cpu.h> | ||
23 | |||
24 | #include "vp.h" | 23 | #include "vp.h" |
25 | #include "powerdomain.h" | 24 | #include "powerdomain.h" |
26 | #include "prm3xxx.h" | 25 | #include "prm3xxx.h" |
@@ -278,6 +277,28 @@ static u32 omap3xxx_prm_read_reset_sources(void) | |||
278 | 277 | ||
279 | /* Powerdomain low-level functions */ | 278 | /* Powerdomain low-level functions */ |
280 | 279 | ||
280 | static int omap3_pwrdm_set_next_pwrst(struct powerdomain *pwrdm, u8 pwrst) | ||
281 | { | ||
282 | omap2_prm_rmw_mod_reg_bits(OMAP_POWERSTATE_MASK, | ||
283 | (pwrst << OMAP_POWERSTATE_SHIFT), | ||
284 | pwrdm->prcm_offs, OMAP2_PM_PWSTCTRL); | ||
285 | return 0; | ||
286 | } | ||
287 | |||
288 | static int omap3_pwrdm_read_next_pwrst(struct powerdomain *pwrdm) | ||
289 | { | ||
290 | return omap2_prm_read_mod_bits_shift(pwrdm->prcm_offs, | ||
291 | OMAP2_PM_PWSTCTRL, | ||
292 | OMAP_POWERSTATE_MASK); | ||
293 | } | ||
294 | |||
295 | static int omap3_pwrdm_read_pwrst(struct powerdomain *pwrdm) | ||
296 | { | ||
297 | return omap2_prm_read_mod_bits_shift(pwrdm->prcm_offs, | ||
298 | OMAP2_PM_PWSTST, | ||
299 | OMAP_POWERSTATEST_MASK); | ||
300 | } | ||
301 | |||
281 | /* Applicable only for OMAP3. Not supported on OMAP2 */ | 302 | /* Applicable only for OMAP3. Not supported on OMAP2 */ |
282 | static int omap3_pwrdm_read_prev_pwrst(struct powerdomain *pwrdm) | 303 | static int omap3_pwrdm_read_prev_pwrst(struct powerdomain *pwrdm) |
283 | { | 304 | { |
@@ -356,9 +377,9 @@ static int omap3_pwrdm_disable_hdwr_sar(struct powerdomain *pwrdm) | |||
356 | } | 377 | } |
357 | 378 | ||
358 | struct pwrdm_ops omap3_pwrdm_operations = { | 379 | struct pwrdm_ops omap3_pwrdm_operations = { |
359 | .pwrdm_set_next_pwrst = omap2_pwrdm_set_next_pwrst, | 380 | .pwrdm_set_next_pwrst = omap3_pwrdm_set_next_pwrst, |
360 | .pwrdm_read_next_pwrst = omap2_pwrdm_read_next_pwrst, | 381 | .pwrdm_read_next_pwrst = omap3_pwrdm_read_next_pwrst, |
361 | .pwrdm_read_pwrst = omap2_pwrdm_read_pwrst, | 382 | .pwrdm_read_pwrst = omap3_pwrdm_read_pwrst, |
362 | .pwrdm_read_prev_pwrst = omap3_pwrdm_read_prev_pwrst, | 383 | .pwrdm_read_prev_pwrst = omap3_pwrdm_read_prev_pwrst, |
363 | .pwrdm_set_logic_retst = omap2_pwrdm_set_logic_retst, | 384 | .pwrdm_set_logic_retst = omap2_pwrdm_set_logic_retst, |
364 | .pwrdm_read_logic_pwrst = omap3_pwrdm_read_logic_pwrst, | 385 | .pwrdm_read_logic_pwrst = omap3_pwrdm_read_logic_pwrst, |
diff --git a/arch/arm/mach-omap2/prm44xx.c b/arch/arm/mach-omap2/prm44xx.c index 7498bc77fe8b..c05a343d465d 100644 --- a/arch/arm/mach-omap2/prm44xx.c +++ b/arch/arm/mach-omap2/prm44xx.c | |||
@@ -56,9 +56,9 @@ static struct omap_prcm_irq_setup omap4_prcm_irq_setup = { | |||
56 | * enumeration) | 56 | * enumeration) |
57 | */ | 57 | */ |
58 | static struct prm_reset_src_map omap44xx_prm_reset_src_map[] = { | 58 | static struct prm_reset_src_map omap44xx_prm_reset_src_map[] = { |
59 | { OMAP4430_RST_GLOBAL_WARM_SW_SHIFT, | 59 | { OMAP4430_GLOBAL_WARM_SW_RST_SHIFT, |
60 | OMAP_GLOBAL_WARM_RST_SRC_ID_SHIFT }, | 60 | OMAP_GLOBAL_WARM_RST_SRC_ID_SHIFT }, |
61 | { OMAP4430_RST_GLOBAL_COLD_SW_SHIFT, | 61 | { OMAP4430_GLOBAL_COLD_RST_SHIFT, |
62 | OMAP_GLOBAL_COLD_RST_SRC_ID_SHIFT }, | 62 | OMAP_GLOBAL_COLD_RST_SRC_ID_SHIFT }, |
63 | { OMAP4430_MPU_SECURITY_VIOL_RST_SHIFT, | 63 | { OMAP4430_MPU_SECURITY_VIOL_RST_SHIFT, |
64 | OMAP_SECU_VIOL_RST_SRC_ID_SHIFT }, | 64 | OMAP_SECU_VIOL_RST_SRC_ID_SHIFT }, |
@@ -333,7 +333,7 @@ static u32 omap44xx_prm_read_reset_sources(void) | |||
333 | u32 r = 0; | 333 | u32 r = 0; |
334 | u32 v; | 334 | u32 v; |
335 | 335 | ||
336 | v = omap4_prm_read_inst_reg(OMAP4430_PRM_OCP_SOCKET_INST, | 336 | v = omap4_prm_read_inst_reg(OMAP4430_PRM_DEVICE_INST, |
337 | OMAP4_RM_RSTST); | 337 | OMAP4_RM_RSTST); |
338 | 338 | ||
339 | p = omap44xx_prm_reset_src_map; | 339 | p = omap44xx_prm_reset_src_map; |
diff --git a/arch/arm/mach-omap2/prm44xx.h b/arch/arm/mach-omap2/prm44xx.h index 22b0979206ca..8ee1fbdec561 100644 --- a/arch/arm/mach-omap2/prm44xx.h +++ b/arch/arm/mach-omap2/prm44xx.h | |||
@@ -62,8 +62,8 @@ | |||
62 | 62 | ||
63 | /* OMAP4 specific register offsets */ | 63 | /* OMAP4 specific register offsets */ |
64 | #define OMAP4_RM_RSTCTRL 0x0000 | 64 | #define OMAP4_RM_RSTCTRL 0x0000 |
65 | #define OMAP4_RM_RSTTIME 0x0004 | 65 | #define OMAP4_RM_RSTST 0x0004 |
66 | #define OMAP4_RM_RSTST 0x0008 | 66 | #define OMAP4_RM_RSTTIME 0x0008 |
67 | #define OMAP4_PM_PWSTCTRL 0x0000 | 67 | #define OMAP4_PM_PWSTCTRL 0x0000 |
68 | #define OMAP4_PM_PWSTST 0x0004 | 68 | #define OMAP4_PM_PWSTST 0x0004 |
69 | 69 | ||
diff --git a/arch/arm/mach-sunxi/sunxi.c b/arch/arm/mach-sunxi/sunxi.c index 9be910f7920b..1dc8a92e5a5f 100644 --- a/arch/arm/mach-sunxi/sunxi.c +++ b/arch/arm/mach-sunxi/sunxi.c | |||
@@ -80,8 +80,8 @@ static void __init sunxi_dt_init(void) | |||
80 | } | 80 | } |
81 | 81 | ||
82 | static const char * const sunxi_board_dt_compat[] = { | 82 | static const char * const sunxi_board_dt_compat[] = { |
83 | "allwinner,sun4i", | 83 | "allwinner,sun4i-a10", |
84 | "allwinner,sun5i", | 84 | "allwinner,sun5i-a13", |
85 | NULL, | 85 | NULL, |
86 | }; | 86 | }; |
87 | 87 | ||
diff --git a/arch/arm/plat-omap/Makefile b/arch/arm/plat-omap/Makefile index 9d9aa2f55129..a14a78a2f149 100644 --- a/arch/arm/plat-omap/Makefile +++ b/arch/arm/plat-omap/Makefile | |||
@@ -3,7 +3,7 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | # Common support | 5 | # Common support |
6 | obj-y := sram.o dma.o fb.o counter_32k.o | 6 | obj-y := sram.o dma.o counter_32k.o |
7 | obj-m := | 7 | obj-m := |
8 | obj-n := | 8 | obj-n := |
9 | obj- := | 9 | obj- := |
diff --git a/arch/arm/plat-omap/counter_32k.c b/arch/arm/plat-omap/counter_32k.c index f3771cdb9838..5b0b86bb34bb 100644 --- a/arch/arm/plat-omap/counter_32k.c +++ b/arch/arm/plat-omap/counter_32k.c | |||
@@ -22,6 +22,8 @@ | |||
22 | #include <asm/mach/time.h> | 22 | #include <asm/mach/time.h> |
23 | #include <asm/sched_clock.h> | 23 | #include <asm/sched_clock.h> |
24 | 24 | ||
25 | #include <plat/counter-32k.h> | ||
26 | |||
25 | /* OMAP2_32KSYNCNT_CR_OFF: offset of 32ksync counter register */ | 27 | /* OMAP2_32KSYNCNT_CR_OFF: offset of 32ksync counter register */ |
26 | #define OMAP2_32KSYNCNT_REV_OFF 0x0 | 28 | #define OMAP2_32KSYNCNT_REV_OFF 0x0 |
27 | #define OMAP2_32KSYNCNT_REV_SCHEME (0x3 << 30) | 29 | #define OMAP2_32KSYNCNT_REV_SCHEME (0x3 << 30) |
diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c index 89585c293554..d51b75bdcad4 100644 --- a/arch/arm/plat-omap/dmtimer.c +++ b/arch/arm/plat-omap/dmtimer.c | |||
@@ -898,19 +898,8 @@ static struct platform_driver omap_dm_timer_driver = { | |||
898 | }, | 898 | }, |
899 | }; | 899 | }; |
900 | 900 | ||
901 | static int __init omap_dm_timer_driver_init(void) | ||
902 | { | ||
903 | return platform_driver_register(&omap_dm_timer_driver); | ||
904 | } | ||
905 | |||
906 | static void __exit omap_dm_timer_driver_exit(void) | ||
907 | { | ||
908 | platform_driver_unregister(&omap_dm_timer_driver); | ||
909 | } | ||
910 | |||
911 | early_platform_init("earlytimer", &omap_dm_timer_driver); | 901 | early_platform_init("earlytimer", &omap_dm_timer_driver); |
912 | module_init(omap_dm_timer_driver_init); | 902 | module_platform_driver(omap_dm_timer_driver); |
913 | module_exit(omap_dm_timer_driver_exit); | ||
914 | 903 | ||
915 | MODULE_DESCRIPTION("OMAP Dual-Mode Timer Driver"); | 904 | MODULE_DESCRIPTION("OMAP Dual-Mode Timer Driver"); |
916 | MODULE_LICENSE("GPL"); | 905 | MODULE_LICENSE("GPL"); |
diff --git a/arch/arm/plat-omap/include/plat/cpu.h b/arch/arm/plat-omap/include/plat/cpu.h index b4516aba67ed..c9a66bf36c9a 100644 --- a/arch/arm/plat-omap/include/plat/cpu.h +++ b/arch/arm/plat-omap/include/plat/cpu.h | |||
@@ -32,8 +32,4 @@ | |||
32 | #include <mach/soc.h> | 32 | #include <mach/soc.h> |
33 | #endif | 33 | #endif |
34 | 34 | ||
35 | #ifdef CONFIG_ARCH_OMAP2PLUS | ||
36 | #include "../../mach-omap2/soc.h" | ||
37 | #endif | ||
38 | |||
39 | #endif | 35 | #endif |
diff --git a/arch/arm/plat-omap/sram.c b/arch/arm/plat-omap/sram.c index 743fc2836f7a..a5bc92d7e476 100644 --- a/arch/arm/plat-omap/sram.c +++ b/arch/arm/plat-omap/sram.c | |||
@@ -26,6 +26,8 @@ | |||
26 | 26 | ||
27 | #include <asm/mach/map.h> | 27 | #include <asm/mach/map.h> |
28 | 28 | ||
29 | #include <plat/sram.h> | ||
30 | |||
29 | #define ROUND_DOWN(value,boundary) ((value) & (~((boundary)-1))) | 31 | #define ROUND_DOWN(value,boundary) ((value) & (~((boundary)-1))) |
30 | 32 | ||
31 | static void __iomem *omap_sram_base; | 33 | static void __iomem *omap_sram_base; |
diff --git a/arch/arm/plat-samsung/include/plat/cpu.h b/arch/arm/plat-samsung/include/plat/cpu.h index e0072ce8d6e9..b69e11dc679d 100644 --- a/arch/arm/plat-samsung/include/plat/cpu.h +++ b/arch/arm/plat-samsung/include/plat/cpu.h | |||
@@ -43,7 +43,7 @@ extern unsigned long samsung_cpu_id; | |||
43 | #define EXYNOS4_CPU_MASK 0xFFFE0000 | 43 | #define EXYNOS4_CPU_MASK 0xFFFE0000 |
44 | 44 | ||
45 | #define EXYNOS5250_SOC_ID 0x43520000 | 45 | #define EXYNOS5250_SOC_ID 0x43520000 |
46 | #define EXYNOS5440_SOC_ID 0x54400000 | 46 | #define EXYNOS5440_SOC_ID 0xE5440000 |
47 | #define EXYNOS5_SOC_MASK 0xFFFFF000 | 47 | #define EXYNOS5_SOC_MASK 0xFFFFF000 |
48 | 48 | ||
49 | #define IS_SAMSUNG_CPU(name, id, mask) \ | 49 | #define IS_SAMSUNG_CPU(name, id, mask) \ |
diff --git a/arch/x86/pci/common.c b/arch/x86/pci/common.c index 1b1dda90a945..412e1286d1fc 100644 --- a/arch/x86/pci/common.c +++ b/arch/x86/pci/common.c | |||
@@ -434,7 +434,8 @@ static const struct dmi_system_id __devinitconst pciprobe_dmi_table[] = { | |||
434 | .callback = set_scan_all, | 434 | .callback = set_scan_all, |
435 | .ident = "Stratus/NEC ftServer", | 435 | .ident = "Stratus/NEC ftServer", |
436 | .matches = { | 436 | .matches = { |
437 | DMI_MATCH(DMI_SYS_VENDOR, "ftServer"), | 437 | DMI_MATCH(DMI_SYS_VENDOR, "Stratus"), |
438 | DMI_MATCH(DMI_PRODUCT_NAME, "ftServer"), | ||
438 | }, | 439 | }, |
439 | }, | 440 | }, |
440 | {} | 441 | {} |