diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2014-02-21 15:36:40 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2014-02-21 15:37:09 -0500 |
commit | d97a860c4f3de98ba5040a22f305b7159fe17cff (patch) | |
tree | 90c2155ec5a1f3115a9eb7a86f25d1a4610227c6 /arch/arm | |
parent | 3f67d962c64d9b6de9dab81bdbe6d5c94c80d9b9 (diff) | |
parent | d158fc7f36a25e19791d25a55da5623399a2644f (diff) |
Merge branch 'linus' into sched/core
Reason: Bring bakc upstream modification to resolve conflicts
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/arm')
71 files changed, 705 insertions, 96 deletions
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index b9d6a8b485e0..6d1e43d46187 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile | |||
@@ -38,6 +38,7 @@ dtb-$(CONFIG_ARCH_AT91) += at91sam9g35ek.dtb | |||
38 | dtb-$(CONFIG_ARCH_AT91) += at91sam9x25ek.dtb | 38 | dtb-$(CONFIG_ARCH_AT91) += at91sam9x25ek.dtb |
39 | dtb-$(CONFIG_ARCH_AT91) += at91sam9x35ek.dtb | 39 | dtb-$(CONFIG_ARCH_AT91) += at91sam9x35ek.dtb |
40 | # sama5d3 | 40 | # sama5d3 |
41 | dtb-$(CONFIG_ARCH_AT91) += at91-sama5d3_xplained.dtb | ||
41 | dtb-$(CONFIG_ARCH_AT91) += sama5d31ek.dtb | 42 | dtb-$(CONFIG_ARCH_AT91) += sama5d31ek.dtb |
42 | dtb-$(CONFIG_ARCH_AT91) += sama5d33ek.dtb | 43 | dtb-$(CONFIG_ARCH_AT91) += sama5d33ek.dtb |
43 | dtb-$(CONFIG_ARCH_AT91) += sama5d34ek.dtb | 44 | dtb-$(CONFIG_ARCH_AT91) += sama5d34ek.dtb |
diff --git a/arch/arm/boot/dts/at91-sama5d3_xplained.dts b/arch/arm/boot/dts/at91-sama5d3_xplained.dts new file mode 100644 index 000000000000..ce1375595e5f --- /dev/null +++ b/arch/arm/boot/dts/at91-sama5d3_xplained.dts | |||
@@ -0,0 +1,229 @@ | |||
1 | /* | ||
2 | * at91-sama5d3_xplained.dts - Device Tree file for the SAMA5D3 Xplained board | ||
3 | * | ||
4 | * Copyright (C) 2014 Atmel, | ||
5 | * 2014 Nicolas Ferre <nicolas.ferre@atmel.com> | ||
6 | * | ||
7 | * Licensed under GPLv2 or later. | ||
8 | */ | ||
9 | /dts-v1/; | ||
10 | #include "sama5d36.dtsi" | ||
11 | |||
12 | / { | ||
13 | model = "SAMA5D3 Xplained"; | ||
14 | compatible = "atmel,sama5d3-xplained", "atmel,sama5d3", "atmel,sama5"; | ||
15 | |||
16 | chosen { | ||
17 | bootargs = "console=ttyS0,115200"; | ||
18 | }; | ||
19 | |||
20 | memory { | ||
21 | reg = <0x20000000 0x10000000>; | ||
22 | }; | ||
23 | |||
24 | ahb { | ||
25 | apb { | ||
26 | mmc0: mmc@f0000000 { | ||
27 | pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3 &pinctrl_mmc0_dat4_7 &pinctrl_mmc0_cd>; | ||
28 | status = "okay"; | ||
29 | slot@0 { | ||
30 | reg = <0>; | ||
31 | bus-width = <8>; | ||
32 | cd-gpios = <&pioE 0 GPIO_ACTIVE_LOW>; | ||
33 | }; | ||
34 | }; | ||
35 | |||
36 | spi0: spi@f0004000 { | ||
37 | cs-gpios = <&pioD 13 0>; | ||
38 | status = "okay"; | ||
39 | }; | ||
40 | |||
41 | can0: can@f000c000 { | ||
42 | status = "okay"; | ||
43 | }; | ||
44 | |||
45 | i2c0: i2c@f0014000 { | ||
46 | status = "okay"; | ||
47 | }; | ||
48 | |||
49 | i2c1: i2c@f0018000 { | ||
50 | status = "okay"; | ||
51 | }; | ||
52 | |||
53 | macb0: ethernet@f0028000 { | ||
54 | phy-mode = "rgmii"; | ||
55 | status = "okay"; | ||
56 | }; | ||
57 | |||
58 | usart0: serial@f001c000 { | ||
59 | status = "okay"; | ||
60 | }; | ||
61 | |||
62 | usart1: serial@f0020000 { | ||
63 | pinctrl-0 = <&pinctrl_usart1 &pinctrl_usart1_rts_cts>; | ||
64 | status = "okay"; | ||
65 | }; | ||
66 | |||
67 | uart0: serial@f0024000 { | ||
68 | status = "okay"; | ||
69 | }; | ||
70 | |||
71 | mmc1: mmc@f8000000 { | ||
72 | pinctrl-0 = <&pinctrl_mmc1_clk_cmd_dat0 &pinctrl_mmc1_dat1_3 &pinctrl_mmc1_cd>; | ||
73 | status = "okay"; | ||
74 | slot@0 { | ||
75 | reg = <0>; | ||
76 | bus-width = <4>; | ||
77 | cd-gpios = <&pioE 1 GPIO_ACTIVE_HIGH>; | ||
78 | }; | ||
79 | }; | ||
80 | |||
81 | spi1: spi@f8008000 { | ||
82 | cs-gpios = <&pioC 25 0>, <0>, <0>, <&pioD 16 0>; | ||
83 | status = "okay"; | ||
84 | }; | ||
85 | |||
86 | adc0: adc@f8018000 { | ||
87 | pinctrl-0 = < | ||
88 | &pinctrl_adc0_adtrg | ||
89 | &pinctrl_adc0_ad0 | ||
90 | &pinctrl_adc0_ad1 | ||
91 | &pinctrl_adc0_ad2 | ||
92 | &pinctrl_adc0_ad3 | ||
93 | &pinctrl_adc0_ad4 | ||
94 | &pinctrl_adc0_ad5 | ||
95 | &pinctrl_adc0_ad6 | ||
96 | &pinctrl_adc0_ad7 | ||
97 | &pinctrl_adc0_ad8 | ||
98 | &pinctrl_adc0_ad9 | ||
99 | >; | ||
100 | status = "okay"; | ||
101 | }; | ||
102 | |||
103 | i2c2: i2c@f801c000 { | ||
104 | dmas = <0>, <0>; /* Do not use DMA for i2c2 */ | ||
105 | status = "okay"; | ||
106 | }; | ||
107 | |||
108 | macb1: ethernet@f802c000 { | ||
109 | phy-mode = "rmii"; | ||
110 | status = "okay"; | ||
111 | }; | ||
112 | |||
113 | dbgu: serial@ffffee00 { | ||
114 | status = "okay"; | ||
115 | }; | ||
116 | |||
117 | pinctrl@fffff200 { | ||
118 | board { | ||
119 | pinctrl_mmc0_cd: mmc0_cd { | ||
120 | atmel,pins = | ||
121 | <AT91_PIOE 0 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; | ||
122 | }; | ||
123 | |||
124 | pinctrl_mmc1_cd: mmc1_cd { | ||
125 | atmel,pins = | ||
126 | <AT91_PIOE 1 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; | ||
127 | }; | ||
128 | |||
129 | pinctrl_usba_vbus: usba_vbus { | ||
130 | atmel,pins = | ||
131 | <AT91_PIOE 9 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>; /* PE9, conflicts with A9 */ | ||
132 | }; | ||
133 | }; | ||
134 | }; | ||
135 | |||
136 | pmc: pmc@fffffc00 { | ||
137 | main: mainck { | ||
138 | clock-frequency = <12000000>; | ||
139 | }; | ||
140 | }; | ||
141 | }; | ||
142 | |||
143 | nand0: nand@60000000 { | ||
144 | nand-bus-width = <8>; | ||
145 | nand-ecc-mode = "hw"; | ||
146 | atmel,has-pmecc; | ||
147 | atmel,pmecc-cap = <4>; | ||
148 | atmel,pmecc-sector-size = <512>; | ||
149 | nand-on-flash-bbt; | ||
150 | status = "okay"; | ||
151 | |||
152 | at91bootstrap@0 { | ||
153 | label = "at91bootstrap"; | ||
154 | reg = <0x0 0x40000>; | ||
155 | }; | ||
156 | |||
157 | bootloader@40000 { | ||
158 | label = "bootloader"; | ||
159 | reg = <0x40000 0x80000>; | ||
160 | }; | ||
161 | |||
162 | bootloaderenv@c0000 { | ||
163 | label = "bootloader env"; | ||
164 | reg = <0xc0000 0xc0000>; | ||
165 | }; | ||
166 | |||
167 | dtb@180000 { | ||
168 | label = "device tree"; | ||
169 | reg = <0x180000 0x80000>; | ||
170 | }; | ||
171 | |||
172 | kernel@200000 { | ||
173 | label = "kernel"; | ||
174 | reg = <0x200000 0x600000>; | ||
175 | }; | ||
176 | |||
177 | rootfs@800000 { | ||
178 | label = "rootfs"; | ||
179 | reg = <0x800000 0x0f800000>; | ||
180 | }; | ||
181 | }; | ||
182 | |||
183 | usb0: gadget@00500000 { | ||
184 | atmel,vbus-gpio = <&pioE 9 GPIO_ACTIVE_HIGH>; /* PE9, conflicts with A9 */ | ||
185 | pinctrl-names = "default"; | ||
186 | pinctrl-0 = <&pinctrl_usba_vbus>; | ||
187 | status = "okay"; | ||
188 | }; | ||
189 | |||
190 | usb1: ohci@00600000 { | ||
191 | num-ports = <3>; | ||
192 | atmel,vbus-gpio = <0 | ||
193 | &pioE 3 GPIO_ACTIVE_LOW | ||
194 | &pioE 4 GPIO_ACTIVE_LOW | ||
195 | >; | ||
196 | status = "okay"; | ||
197 | }; | ||
198 | |||
199 | usb2: ehci@00700000 { | ||
200 | status = "okay"; | ||
201 | }; | ||
202 | }; | ||
203 | |||
204 | gpio_keys { | ||
205 | compatible = "gpio-keys"; | ||
206 | |||
207 | bp3 { | ||
208 | label = "PB_USER"; | ||
209 | gpios = <&pioE 29 GPIO_ACTIVE_LOW>; | ||
210 | linux,code = <0x104>; | ||
211 | gpio-key,wakeup; | ||
212 | }; | ||
213 | }; | ||
214 | |||
215 | leds { | ||
216 | compatible = "gpio-leds"; | ||
217 | |||
218 | d2 { | ||
219 | label = "d2"; | ||
220 | gpios = <&pioE 23 GPIO_ACTIVE_LOW>; /* PE23, conflicts with A23, CTS2 */ | ||
221 | linux,default-trigger = "heartbeat"; | ||
222 | }; | ||
223 | |||
224 | d3 { | ||
225 | label = "d3"; | ||
226 | gpios = <&pioE 24 GPIO_ACTIVE_HIGH>; | ||
227 | }; | ||
228 | }; | ||
229 | }; | ||
diff --git a/arch/arm/boot/dts/at91sam9263.dtsi b/arch/arm/boot/dts/at91sam9263.dtsi index 0042f73068b0..fece8665fb63 100644 --- a/arch/arm/boot/dts/at91sam9263.dtsi +++ b/arch/arm/boot/dts/at91sam9263.dtsi | |||
@@ -523,7 +523,7 @@ | |||
523 | }; | 523 | }; |
524 | 524 | ||
525 | i2c0: i2c@fff88000 { | 525 | i2c0: i2c@fff88000 { |
526 | compatible = "atmel,at91sam9263-i2c"; | 526 | compatible = "atmel,at91sam9260-i2c"; |
527 | reg = <0xfff88000 0x100>; | 527 | reg = <0xfff88000 0x100>; |
528 | interrupts = <13 IRQ_TYPE_LEVEL_HIGH 6>; | 528 | interrupts = <13 IRQ_TYPE_LEVEL_HIGH 6>; |
529 | #address-cells = <1>; | 529 | #address-cells = <1>; |
diff --git a/arch/arm/boot/dts/at91sam9n12ek.dts b/arch/arm/boot/dts/at91sam9n12ek.dts index e9487f6f0166..924a6a6ffd0f 100644 --- a/arch/arm/boot/dts/at91sam9n12ek.dts +++ b/arch/arm/boot/dts/at91sam9n12ek.dts | |||
@@ -124,6 +124,10 @@ | |||
124 | nand-on-flash-bbt; | 124 | nand-on-flash-bbt; |
125 | status = "okay"; | 125 | status = "okay"; |
126 | }; | 126 | }; |
127 | |||
128 | usb0: ohci@00500000 { | ||
129 | status = "okay"; | ||
130 | }; | ||
127 | }; | 131 | }; |
128 | 132 | ||
129 | leds { | 133 | leds { |
diff --git a/arch/arm/boot/dts/bcm28155-ap.dts b/arch/arm/boot/dts/bcm28155-ap.dts index c7fa9fbb999c..5ff2382a49e4 100644 --- a/arch/arm/boot/dts/bcm28155-ap.dts +++ b/arch/arm/boot/dts/bcm28155-ap.dts | |||
@@ -13,6 +13,8 @@ | |||
13 | 13 | ||
14 | /dts-v1/; | 14 | /dts-v1/; |
15 | 15 | ||
16 | #include <dt-bindings/gpio/gpio.h> | ||
17 | |||
16 | #include "bcm11351.dtsi" | 18 | #include "bcm11351.dtsi" |
17 | 19 | ||
18 | / { | 20 | / { |
@@ -60,7 +62,7 @@ | |||
60 | 62 | ||
61 | sdio4: sdio@3f1b0000 { | 63 | sdio4: sdio@3f1b0000 { |
62 | max-frequency = <48000000>; | 64 | max-frequency = <48000000>; |
63 | cd-gpios = <&gpio 14 0>; | 65 | cd-gpios = <&gpio 14 GPIO_ACTIVE_LOW>; |
64 | status = "okay"; | 66 | status = "okay"; |
65 | }; | 67 | }; |
66 | 68 | ||
diff --git a/arch/arm/boot/dts/imx6dl-hummingboard.dts b/arch/arm/boot/dts/imx6dl-hummingboard.dts index fd8fc7cd53f3..5bfae54fb780 100644 --- a/arch/arm/boot/dts/imx6dl-hummingboard.dts +++ b/arch/arm/boot/dts/imx6dl-hummingboard.dts | |||
@@ -52,12 +52,6 @@ | |||
52 | }; | 52 | }; |
53 | }; | 53 | }; |
54 | 54 | ||
55 | codec: spdif-transmitter { | ||
56 | compatible = "linux,spdif-dit"; | ||
57 | pinctrl-names = "default"; | ||
58 | pinctrl-0 = <&pinctrl_hummingboard_spdif>; | ||
59 | }; | ||
60 | |||
61 | sound-spdif { | 55 | sound-spdif { |
62 | compatible = "fsl,imx-audio-spdif"; | 56 | compatible = "fsl,imx-audio-spdif"; |
63 | model = "imx-spdif"; | 57 | model = "imx-spdif"; |
@@ -111,7 +105,7 @@ | |||
111 | }; | 105 | }; |
112 | 106 | ||
113 | pinctrl_hummingboard_spdif: hummingboard-spdif { | 107 | pinctrl_hummingboard_spdif: hummingboard-spdif { |
114 | fsl,pins = <MX6QDL_PAD_GPIO_17__SPDIF_OUT 0x1b0b0>; | 108 | fsl,pins = <MX6QDL_PAD_GPIO_17__SPDIF_OUT 0x13091>; |
115 | }; | 109 | }; |
116 | 110 | ||
117 | pinctrl_hummingboard_usbh1_vbus: hummingboard-usbh1-vbus { | 111 | pinctrl_hummingboard_usbh1_vbus: hummingboard-usbh1-vbus { |
@@ -142,6 +136,8 @@ | |||
142 | }; | 136 | }; |
143 | 137 | ||
144 | &spdif { | 138 | &spdif { |
139 | pinctrl-names = "default"; | ||
140 | pinctrl-0 = <&pinctrl_hummingboard_spdif>; | ||
145 | status = "okay"; | 141 | status = "okay"; |
146 | }; | 142 | }; |
147 | 143 | ||
diff --git a/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi b/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi index 64daa3b311f6..c2a24888a276 100644 --- a/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi +++ b/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi | |||
@@ -46,12 +46,6 @@ | |||
46 | }; | 46 | }; |
47 | }; | 47 | }; |
48 | 48 | ||
49 | codec: spdif-transmitter { | ||
50 | compatible = "linux,spdif-dit"; | ||
51 | pinctrl-names = "default"; | ||
52 | pinctrl-0 = <&pinctrl_cubox_i_spdif>; | ||
53 | }; | ||
54 | |||
55 | sound-spdif { | 49 | sound-spdif { |
56 | compatible = "fsl,imx-audio-spdif"; | 50 | compatible = "fsl,imx-audio-spdif"; |
57 | model = "imx-spdif"; | 51 | model = "imx-spdif"; |
@@ -89,7 +83,7 @@ | |||
89 | }; | 83 | }; |
90 | 84 | ||
91 | pinctrl_cubox_i_spdif: cubox-i-spdif { | 85 | pinctrl_cubox_i_spdif: cubox-i-spdif { |
92 | fsl,pins = <MX6QDL_PAD_GPIO_17__SPDIF_OUT 0x1b0b0>; | 86 | fsl,pins = <MX6QDL_PAD_GPIO_17__SPDIF_OUT 0x13091>; |
93 | }; | 87 | }; |
94 | 88 | ||
95 | pinctrl_cubox_i_usbh1_vbus: cubox-i-usbh1-vbus { | 89 | pinctrl_cubox_i_usbh1_vbus: cubox-i-usbh1-vbus { |
@@ -121,6 +115,8 @@ | |||
121 | }; | 115 | }; |
122 | 116 | ||
123 | &spdif { | 117 | &spdif { |
118 | pinctrl-names = "default"; | ||
119 | pinctrl-0 = <&pinctrl_cubox_i_spdif>; | ||
124 | status = "okay"; | 120 | status = "okay"; |
125 | }; | 121 | }; |
126 | 122 | ||
diff --git a/arch/arm/boot/dts/qcom-msm8660-surf.dts b/arch/arm/boot/dts/qcom-msm8660-surf.dts index 1187185cf25b..68a72f5507b9 100644 --- a/arch/arm/boot/dts/qcom-msm8660-surf.dts +++ b/arch/arm/boot/dts/qcom-msm8660-surf.dts | |||
@@ -2,6 +2,8 @@ | |||
2 | 2 | ||
3 | /include/ "skeleton.dtsi" | 3 | /include/ "skeleton.dtsi" |
4 | 4 | ||
5 | #include <dt-bindings/clock/qcom,gcc-msm8660.h> | ||
6 | |||
5 | / { | 7 | / { |
6 | model = "Qualcomm MSM8660 SURF"; | 8 | model = "Qualcomm MSM8660 SURF"; |
7 | compatible = "qcom,msm8660-surf", "qcom,msm8660"; | 9 | compatible = "qcom,msm8660-surf", "qcom,msm8660"; |
@@ -37,11 +39,20 @@ | |||
37 | #interrupt-cells = <2>; | 39 | #interrupt-cells = <2>; |
38 | }; | 40 | }; |
39 | 41 | ||
42 | gcc: clock-controller@900000 { | ||
43 | compatible = "qcom,gcc-msm8660"; | ||
44 | #clock-cells = <1>; | ||
45 | #reset-cells = <1>; | ||
46 | reg = <0x900000 0x4000>; | ||
47 | }; | ||
48 | |||
40 | serial@19c40000 { | 49 | serial@19c40000 { |
41 | compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm"; | 50 | compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm"; |
42 | reg = <0x19c40000 0x1000>, | 51 | reg = <0x19c40000 0x1000>, |
43 | <0x19c00000 0x1000>; | 52 | <0x19c00000 0x1000>; |
44 | interrupts = <0 195 0x0>; | 53 | interrupts = <0 195 0x0>; |
54 | clocks = <&gcc GSBI12_UART_CLK>, <&gcc GSBI12_H_CLK>; | ||
55 | clock-names = "core", "iface"; | ||
45 | }; | 56 | }; |
46 | 57 | ||
47 | qcom,ssbi@500000 { | 58 | qcom,ssbi@500000 { |
diff --git a/arch/arm/boot/dts/qcom-msm8960-cdp.dts b/arch/arm/boot/dts/qcom-msm8960-cdp.dts index 6ccbac77931e..7c30de4fa302 100644 --- a/arch/arm/boot/dts/qcom-msm8960-cdp.dts +++ b/arch/arm/boot/dts/qcom-msm8960-cdp.dts | |||
@@ -2,6 +2,8 @@ | |||
2 | 2 | ||
3 | /include/ "skeleton.dtsi" | 3 | /include/ "skeleton.dtsi" |
4 | 4 | ||
5 | #include <dt-bindings/clock/qcom,gcc-msm8960.h> | ||
6 | |||
5 | / { | 7 | / { |
6 | model = "Qualcomm MSM8960 CDP"; | 8 | model = "Qualcomm MSM8960 CDP"; |
7 | compatible = "qcom,msm8960-cdp", "qcom,msm8960"; | 9 | compatible = "qcom,msm8960-cdp", "qcom,msm8960"; |
@@ -37,11 +39,27 @@ | |||
37 | reg = <0x800000 0x4000>; | 39 | reg = <0x800000 0x4000>; |
38 | }; | 40 | }; |
39 | 41 | ||
42 | gcc: clock-controller@900000 { | ||
43 | compatible = "qcom,gcc-msm8960"; | ||
44 | #clock-cells = <1>; | ||
45 | #reset-cells = <1>; | ||
46 | reg = <0x900000 0x4000>; | ||
47 | }; | ||
48 | |||
49 | clock-controller@4000000 { | ||
50 | compatible = "qcom,mmcc-msm8960"; | ||
51 | reg = <0x4000000 0x1000>; | ||
52 | #clock-cells = <1>; | ||
53 | #reset-cells = <1>; | ||
54 | }; | ||
55 | |||
40 | serial@16440000 { | 56 | serial@16440000 { |
41 | compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm"; | 57 | compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm"; |
42 | reg = <0x16440000 0x1000>, | 58 | reg = <0x16440000 0x1000>, |
43 | <0x16400000 0x1000>; | 59 | <0x16400000 0x1000>; |
44 | interrupts = <0 154 0x0>; | 60 | interrupts = <0 154 0x0>; |
61 | clocks = <&gcc GSBI5_UART_CLK>, <&gcc GSBI5_H_CLK>; | ||
62 | clock-names = "core", "iface"; | ||
45 | }; | 63 | }; |
46 | 64 | ||
47 | qcom,ssbi@500000 { | 65 | qcom,ssbi@500000 { |
diff --git a/arch/arm/boot/dts/qcom-msm8974.dtsi b/arch/arm/boot/dts/qcom-msm8974.dtsi index 6ac94967d2d3..9e5dadb101eb 100644 --- a/arch/arm/boot/dts/qcom-msm8974.dtsi +++ b/arch/arm/boot/dts/qcom-msm8974.dtsi | |||
@@ -2,6 +2,8 @@ | |||
2 | 2 | ||
3 | #include "skeleton.dtsi" | 3 | #include "skeleton.dtsi" |
4 | 4 | ||
5 | #include <dt-bindings/clock/qcom,gcc-msm8974.h> | ||
6 | |||
5 | / { | 7 | / { |
6 | model = "Qualcomm MSM8974"; | 8 | model = "Qualcomm MSM8974"; |
7 | compatible = "qcom,msm8974"; | 9 | compatible = "qcom,msm8974"; |
@@ -93,5 +95,27 @@ | |||
93 | compatible = "qcom,pshold"; | 95 | compatible = "qcom,pshold"; |
94 | reg = <0xfc4ab000 0x4>; | 96 | reg = <0xfc4ab000 0x4>; |
95 | }; | 97 | }; |
98 | |||
99 | gcc: clock-controller@fc400000 { | ||
100 | compatible = "qcom,gcc-msm8974"; | ||
101 | #clock-cells = <1>; | ||
102 | #reset-cells = <1>; | ||
103 | reg = <0xfc400000 0x4000>; | ||
104 | }; | ||
105 | |||
106 | mmcc: clock-controller@fd8c0000 { | ||
107 | compatible = "qcom,mmcc-msm8974"; | ||
108 | #clock-cells = <1>; | ||
109 | #reset-cells = <1>; | ||
110 | reg = <0xfd8c0000 0x6000>; | ||
111 | }; | ||
112 | |||
113 | serial@f991e000 { | ||
114 | compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; | ||
115 | reg = <0xf991e000 0x1000>; | ||
116 | interrupts = <0 108 0x0>; | ||
117 | clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>; | ||
118 | clock-names = "core", "iface"; | ||
119 | }; | ||
96 | }; | 120 | }; |
97 | }; | 121 | }; |
diff --git a/arch/arm/boot/dts/r8a7790.dtsi b/arch/arm/boot/dts/r8a7790.dtsi index f48487c2a970..71b1251f79c7 100644 --- a/arch/arm/boot/dts/r8a7790.dtsi +++ b/arch/arm/boot/dts/r8a7790.dtsi | |||
@@ -197,7 +197,7 @@ | |||
197 | reg = <0 0xe6508000 0 0x40>; | 197 | reg = <0 0xe6508000 0 0x40>; |
198 | interrupt-parent = <&gic>; | 198 | interrupt-parent = <&gic>; |
199 | interrupts = <0 287 IRQ_TYPE_LEVEL_HIGH>; | 199 | interrupts = <0 287 IRQ_TYPE_LEVEL_HIGH>; |
200 | clocks = <&mstp3_clks R8A7790_CLK_I2C0>; | 200 | clocks = <&mstp9_clks R8A7790_CLK_I2C0>; |
201 | status = "disabled"; | 201 | status = "disabled"; |
202 | }; | 202 | }; |
203 | 203 | ||
@@ -208,7 +208,7 @@ | |||
208 | reg = <0 0xe6518000 0 0x40>; | 208 | reg = <0 0xe6518000 0 0x40>; |
209 | interrupt-parent = <&gic>; | 209 | interrupt-parent = <&gic>; |
210 | interrupts = <0 288 IRQ_TYPE_LEVEL_HIGH>; | 210 | interrupts = <0 288 IRQ_TYPE_LEVEL_HIGH>; |
211 | clocks = <&mstp3_clks R8A7790_CLK_I2C1>; | 211 | clocks = <&mstp9_clks R8A7790_CLK_I2C1>; |
212 | status = "disabled"; | 212 | status = "disabled"; |
213 | }; | 213 | }; |
214 | 214 | ||
@@ -219,7 +219,7 @@ | |||
219 | reg = <0 0xe6530000 0 0x40>; | 219 | reg = <0 0xe6530000 0 0x40>; |
220 | interrupt-parent = <&gic>; | 220 | interrupt-parent = <&gic>; |
221 | interrupts = <0 286 IRQ_TYPE_LEVEL_HIGH>; | 221 | interrupts = <0 286 IRQ_TYPE_LEVEL_HIGH>; |
222 | clocks = <&mstp3_clks R8A7790_CLK_I2C2>; | 222 | clocks = <&mstp9_clks R8A7790_CLK_I2C2>; |
223 | status = "disabled"; | 223 | status = "disabled"; |
224 | }; | 224 | }; |
225 | 225 | ||
@@ -230,7 +230,7 @@ | |||
230 | reg = <0 0xe6540000 0 0x40>; | 230 | reg = <0 0xe6540000 0 0x40>; |
231 | interrupt-parent = <&gic>; | 231 | interrupt-parent = <&gic>; |
232 | interrupts = <0 290 IRQ_TYPE_LEVEL_HIGH>; | 232 | interrupts = <0 290 IRQ_TYPE_LEVEL_HIGH>; |
233 | clocks = <&mstp3_clks R8A7790_CLK_I2C3>; | 233 | clocks = <&mstp9_clks R8A7790_CLK_I2C3>; |
234 | status = "disabled"; | 234 | status = "disabled"; |
235 | }; | 235 | }; |
236 | 236 | ||
diff --git a/arch/arm/boot/dts/sama5d3.dtsi b/arch/arm/boot/dts/sama5d3.dtsi index 52447c17537a..3d5faf85f51b 100644 --- a/arch/arm/boot/dts/sama5d3.dtsi +++ b/arch/arm/boot/dts/sama5d3.dtsi | |||
@@ -1228,7 +1228,7 @@ | |||
1228 | compatible = "atmel,at91rm9200-ohci", "usb-ohci"; | 1228 | compatible = "atmel,at91rm9200-ohci", "usb-ohci"; |
1229 | reg = <0x00600000 0x100000>; | 1229 | reg = <0x00600000 0x100000>; |
1230 | interrupts = <32 IRQ_TYPE_LEVEL_HIGH 2>; | 1230 | interrupts = <32 IRQ_TYPE_LEVEL_HIGH 2>; |
1231 | clocks = <&usb>, <&uhphs_clk>, <&udphs_clk>, | 1231 | clocks = <&usb>, <&uhphs_clk>, <&uhphs_clk>, |
1232 | <&uhpck>; | 1232 | <&uhpck>; |
1233 | clock-names = "usb_clk", "ohci_clk", "hclk", "uhpck"; | 1233 | clock-names = "usb_clk", "ohci_clk", "hclk", "uhpck"; |
1234 | status = "disabled"; | 1234 | status = "disabled"; |
diff --git a/arch/arm/boot/dts/ste-href.dtsi b/arch/arm/boot/dts/ste-href.dtsi index 0c1e8d871ed1..6cb9b68e2188 100644 --- a/arch/arm/boot/dts/ste-href.dtsi +++ b/arch/arm/boot/dts/ste-href.dtsi | |||
@@ -188,7 +188,6 @@ | |||
188 | msp2: msp@80117000 { | 188 | msp2: msp@80117000 { |
189 | pinctrl-names = "default"; | 189 | pinctrl-names = "default"; |
190 | pinctrl-0 = <&msp2_default_mode>; | 190 | pinctrl-0 = <&msp2_default_mode>; |
191 | status = "okay"; | ||
192 | }; | 191 | }; |
193 | 192 | ||
194 | msp3: msp@80125000 { | 193 | msp3: msp@80125000 { |
diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi index 040bb0eba152..10666ca8aee1 100644 --- a/arch/arm/boot/dts/sun4i-a10.dtsi +++ b/arch/arm/boot/dts/sun4i-a10.dtsi | |||
@@ -315,7 +315,7 @@ | |||
315 | ranges; | 315 | ranges; |
316 | 316 | ||
317 | emac: ethernet@01c0b000 { | 317 | emac: ethernet@01c0b000 { |
318 | compatible = "allwinner,sun4i-emac"; | 318 | compatible = "allwinner,sun4i-a10-emac"; |
319 | reg = <0x01c0b000 0x1000>; | 319 | reg = <0x01c0b000 0x1000>; |
320 | interrupts = <55>; | 320 | interrupts = <55>; |
321 | clocks = <&ahb_gates 17>; | 321 | clocks = <&ahb_gates 17>; |
@@ -323,7 +323,7 @@ | |||
323 | }; | 323 | }; |
324 | 324 | ||
325 | mdio@01c0b080 { | 325 | mdio@01c0b080 { |
326 | compatible = "allwinner,sun4i-mdio"; | 326 | compatible = "allwinner,sun4i-a10-mdio"; |
327 | reg = <0x01c0b080 0x14>; | 327 | reg = <0x01c0b080 0x14>; |
328 | status = "disabled"; | 328 | status = "disabled"; |
329 | #address-cells = <1>; | 329 | #address-cells = <1>; |
diff --git a/arch/arm/boot/dts/sun5i-a10s.dtsi b/arch/arm/boot/dts/sun5i-a10s.dtsi index ea16054857a4..64961595e8d6 100644 --- a/arch/arm/boot/dts/sun5i-a10s.dtsi +++ b/arch/arm/boot/dts/sun5i-a10s.dtsi | |||
@@ -278,7 +278,7 @@ | |||
278 | ranges; | 278 | ranges; |
279 | 279 | ||
280 | emac: ethernet@01c0b000 { | 280 | emac: ethernet@01c0b000 { |
281 | compatible = "allwinner,sun4i-emac"; | 281 | compatible = "allwinner,sun4i-a10-emac"; |
282 | reg = <0x01c0b000 0x1000>; | 282 | reg = <0x01c0b000 0x1000>; |
283 | interrupts = <55>; | 283 | interrupts = <55>; |
284 | clocks = <&ahb_gates 17>; | 284 | clocks = <&ahb_gates 17>; |
@@ -286,7 +286,7 @@ | |||
286 | }; | 286 | }; |
287 | 287 | ||
288 | mdio@01c0b080 { | 288 | mdio@01c0b080 { |
289 | compatible = "allwinner,sun4i-mdio"; | 289 | compatible = "allwinner,sun4i-a10-mdio"; |
290 | reg = <0x01c0b080 0x14>; | 290 | reg = <0x01c0b080 0x14>; |
291 | status = "disabled"; | 291 | status = "disabled"; |
292 | #address-cells = <1>; | 292 | #address-cells = <1>; |
diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi index 119f066f0d98..9ff09484847b 100644 --- a/arch/arm/boot/dts/sun7i-a20.dtsi +++ b/arch/arm/boot/dts/sun7i-a20.dtsi | |||
@@ -340,7 +340,7 @@ | |||
340 | ranges; | 340 | ranges; |
341 | 341 | ||
342 | emac: ethernet@01c0b000 { | 342 | emac: ethernet@01c0b000 { |
343 | compatible = "allwinner,sun4i-emac"; | 343 | compatible = "allwinner,sun4i-a10-emac"; |
344 | reg = <0x01c0b000 0x1000>; | 344 | reg = <0x01c0b000 0x1000>; |
345 | interrupts = <0 55 4>; | 345 | interrupts = <0 55 4>; |
346 | clocks = <&ahb_gates 17>; | 346 | clocks = <&ahb_gates 17>; |
@@ -348,7 +348,7 @@ | |||
348 | }; | 348 | }; |
349 | 349 | ||
350 | mdio@01c0b080 { | 350 | mdio@01c0b080 { |
351 | compatible = "allwinner,sun4i-mdio"; | 351 | compatible = "allwinner,sun4i-a10-mdio"; |
352 | reg = <0x01c0b080 0x14>; | 352 | reg = <0x01c0b080 0x14>; |
353 | status = "disabled"; | 353 | status = "disabled"; |
354 | #address-cells = <1>; | 354 | #address-cells = <1>; |
diff --git a/arch/arm/boot/dts/zynq-7000.dtsi b/arch/arm/boot/dts/zynq-7000.dtsi index 5d7681be0580..8b67b19392ec 100644 --- a/arch/arm/boot/dts/zynq-7000.dtsi +++ b/arch/arm/boot/dts/zynq-7000.dtsi | |||
@@ -102,6 +102,26 @@ | |||
102 | clock-names = "pclk", "hclk", "tx_clk"; | 102 | clock-names = "pclk", "hclk", "tx_clk"; |
103 | }; | 103 | }; |
104 | 104 | ||
105 | sdhci0: ps7-sdhci@e0100000 { | ||
106 | compatible = "arasan,sdhci-8.9a"; | ||
107 | status = "disabled"; | ||
108 | clock-names = "clk_xin", "clk_ahb"; | ||
109 | clocks = <&clkc 21>, <&clkc 32>; | ||
110 | interrupt-parent = <&intc>; | ||
111 | interrupts = <0 24 4>; | ||
112 | reg = <0xe0100000 0x1000>; | ||
113 | } ; | ||
114 | |||
115 | sdhci1: ps7-sdhci@e0101000 { | ||
116 | compatible = "arasan,sdhci-8.9a"; | ||
117 | status = "disabled"; | ||
118 | clock-names = "clk_xin", "clk_ahb"; | ||
119 | clocks = <&clkc 22>, <&clkc 33>; | ||
120 | interrupt-parent = <&intc>; | ||
121 | interrupts = <0 47 4>; | ||
122 | reg = <0xe0101000 0x1000>; | ||
123 | } ; | ||
124 | |||
105 | slcr: slcr@f8000000 { | 125 | slcr: slcr@f8000000 { |
106 | compatible = "xlnx,zynq-slcr"; | 126 | compatible = "xlnx,zynq-slcr"; |
107 | reg = <0xF8000000 0x1000>; | 127 | reg = <0xF8000000 0x1000>; |
diff --git a/arch/arm/boot/dts/zynq-zc702.dts b/arch/arm/boot/dts/zynq-zc702.dts index 34d680a46b7e..c913f77a21eb 100644 --- a/arch/arm/boot/dts/zynq-zc702.dts +++ b/arch/arm/boot/dts/zynq-zc702.dts | |||
@@ -34,6 +34,10 @@ | |||
34 | phy-mode = "rgmii"; | 34 | phy-mode = "rgmii"; |
35 | }; | 35 | }; |
36 | 36 | ||
37 | &sdhci0 { | ||
38 | status = "okay"; | ||
39 | }; | ||
40 | |||
37 | &uart1 { | 41 | &uart1 { |
38 | status = "okay"; | 42 | status = "okay"; |
39 | }; | 43 | }; |
diff --git a/arch/arm/boot/dts/zynq-zc706.dts b/arch/arm/boot/dts/zynq-zc706.dts index b2835d5fc09a..88f62c50382e 100644 --- a/arch/arm/boot/dts/zynq-zc706.dts +++ b/arch/arm/boot/dts/zynq-zc706.dts | |||
@@ -35,6 +35,10 @@ | |||
35 | phy-mode = "rgmii"; | 35 | phy-mode = "rgmii"; |
36 | }; | 36 | }; |
37 | 37 | ||
38 | &sdhci0 { | ||
39 | status = "okay"; | ||
40 | }; | ||
41 | |||
38 | &uart1 { | 42 | &uart1 { |
39 | status = "okay"; | 43 | status = "okay"; |
40 | }; | 44 | }; |
diff --git a/arch/arm/boot/dts/zynq-zed.dts b/arch/arm/boot/dts/zynq-zed.dts index 2eda06889dfc..82d7ef1a9a9c 100644 --- a/arch/arm/boot/dts/zynq-zed.dts +++ b/arch/arm/boot/dts/zynq-zed.dts | |||
@@ -35,6 +35,10 @@ | |||
35 | phy-mode = "rgmii"; | 35 | phy-mode = "rgmii"; |
36 | }; | 36 | }; |
37 | 37 | ||
38 | &sdhci0 { | ||
39 | status = "okay"; | ||
40 | }; | ||
41 | |||
38 | &uart1 { | 42 | &uart1 { |
39 | status = "okay"; | 43 | status = "okay"; |
40 | }; | 44 | }; |
diff --git a/arch/arm/configs/keystone_defconfig b/arch/arm/configs/keystone_defconfig index a0182447d133..4582e160feab 100644 --- a/arch/arm/configs/keystone_defconfig +++ b/arch/arm/configs/keystone_defconfig | |||
@@ -142,6 +142,7 @@ CONFIG_USB_DWC3_DEBUG=y | |||
142 | CONFIG_USB_DWC3_VERBOSE=y | 142 | CONFIG_USB_DWC3_VERBOSE=y |
143 | CONFIG_KEYSTONE_USB_PHY=y | 143 | CONFIG_KEYSTONE_USB_PHY=y |
144 | CONFIG_DMADEVICES=y | 144 | CONFIG_DMADEVICES=y |
145 | CONFIG_TI_EDMA=y | ||
145 | CONFIG_COMMON_CLK_DEBUG=y | 146 | CONFIG_COMMON_CLK_DEBUG=y |
146 | CONFIG_MEMORY=y | 147 | CONFIG_MEMORY=y |
147 | CONFIG_EXT4_FS=y | 148 | CONFIG_EXT4_FS=y |
diff --git a/arch/arm/configs/msm_defconfig b/arch/arm/configs/msm_defconfig index 0219c65cefd5..c5858b9eb516 100644 --- a/arch/arm/configs/msm_defconfig +++ b/arch/arm/configs/msm_defconfig | |||
@@ -114,6 +114,10 @@ CONFIG_USB_GADGET_VBUS_DRAW=500 | |||
114 | CONFIG_NEW_LEDS=y | 114 | CONFIG_NEW_LEDS=y |
115 | CONFIG_RTC_CLASS=y | 115 | CONFIG_RTC_CLASS=y |
116 | CONFIG_STAGING=y | 116 | CONFIG_STAGING=y |
117 | CONFIG_COMMON_CLK_QCOM=y | ||
118 | CONFIG_MSM_GCC_8660=y | ||
119 | CONFIG_MSM_MMCC_8960=y | ||
120 | CONFIG_MSM_MMCC_8974=y | ||
117 | CONFIG_MSM_IOMMU=y | 121 | CONFIG_MSM_IOMMU=y |
118 | CONFIG_EXT2_FS=y | 122 | CONFIG_EXT2_FS=y |
119 | CONFIG_EXT2_FS_XATTR=y | 123 | CONFIG_EXT2_FS_XATTR=y |
diff --git a/arch/arm/configs/multi_v7_defconfig b/arch/arm/configs/multi_v7_defconfig index 687e4e811b2a..ee6982976d66 100644 --- a/arch/arm/configs/multi_v7_defconfig +++ b/arch/arm/configs/multi_v7_defconfig | |||
@@ -1,7 +1,12 @@ | |||
1 | CONFIG_SYSVIPC=y | ||
1 | CONFIG_IRQ_DOMAIN_DEBUG=y | 2 | CONFIG_IRQ_DOMAIN_DEBUG=y |
2 | CONFIG_NO_HZ=y | 3 | CONFIG_NO_HZ=y |
3 | CONFIG_HIGH_RES_TIMERS=y | 4 | CONFIG_HIGH_RES_TIMERS=y |
4 | CONFIG_BLK_DEV_INITRD=y | 5 | CONFIG_BLK_DEV_INITRD=y |
6 | CONFIG_EMBEDDED=y | ||
7 | CONFIG_MODULES=y | ||
8 | CONFIG_MODULE_UNLOAD=y | ||
9 | CONFIG_PARTITION_ADVANCED=y | ||
5 | CONFIG_ARCH_MVEBU=y | 10 | CONFIG_ARCH_MVEBU=y |
6 | CONFIG_MACH_ARMADA_370=y | 11 | CONFIG_MACH_ARMADA_370=y |
7 | CONFIG_MACH_ARMADA_XP=y | 12 | CONFIG_MACH_ARMADA_XP=y |
@@ -24,6 +29,7 @@ CONFIG_ARCH_OMAP3=y | |||
24 | CONFIG_ARCH_OMAP4=y | 29 | CONFIG_ARCH_OMAP4=y |
25 | CONFIG_SOC_OMAP5=y | 30 | CONFIG_SOC_OMAP5=y |
26 | CONFIG_SOC_AM33XX=y | 31 | CONFIG_SOC_AM33XX=y |
32 | CONFIG_SOC_DRA7XX=y | ||
27 | CONFIG_SOC_AM43XX=y | 33 | CONFIG_SOC_AM43XX=y |
28 | CONFIG_ARCH_ROCKCHIP=y | 34 | CONFIG_ARCH_ROCKCHIP=y |
29 | CONFIG_ARCH_SOCFPGA=y | 35 | CONFIG_ARCH_SOCFPGA=y |
@@ -38,7 +44,7 @@ CONFIG_ARCH_TEGRA=y | |||
38 | CONFIG_ARCH_TEGRA_2x_SOC=y | 44 | CONFIG_ARCH_TEGRA_2x_SOC=y |
39 | CONFIG_ARCH_TEGRA_3x_SOC=y | 45 | CONFIG_ARCH_TEGRA_3x_SOC=y |
40 | CONFIG_ARCH_TEGRA_114_SOC=y | 46 | CONFIG_ARCH_TEGRA_114_SOC=y |
41 | CONFIG_TEGRA_PCI=y | 47 | CONFIG_ARCH_TEGRA_124_SOC=y |
42 | CONFIG_TEGRA_EMC_SCALING_ENABLE=y | 48 | CONFIG_TEGRA_EMC_SCALING_ENABLE=y |
43 | CONFIG_ARCH_U8500=y | 49 | CONFIG_ARCH_U8500=y |
44 | CONFIG_MACH_HREFV60=y | 50 | CONFIG_MACH_HREFV60=y |
@@ -49,19 +55,55 @@ CONFIG_ARCH_VEXPRESS_CA9X4=y | |||
49 | CONFIG_ARCH_VIRT=y | 55 | CONFIG_ARCH_VIRT=y |
50 | CONFIG_ARCH_WM8850=y | 56 | CONFIG_ARCH_WM8850=y |
51 | CONFIG_ARCH_ZYNQ=y | 57 | CONFIG_ARCH_ZYNQ=y |
58 | CONFIG_TRUSTED_FOUNDATIONS=y | ||
59 | CONFIG_PCI=y | ||
60 | CONFIG_PCI_MSI=y | ||
61 | CONFIG_PCI_MVEBU=y | ||
62 | CONFIG_PCI_TEGRA=y | ||
52 | CONFIG_SMP=y | 63 | CONFIG_SMP=y |
53 | CONFIG_HIGHPTE=y | 64 | CONFIG_HIGHPTE=y |
65 | CONFIG_CMA=y | ||
54 | CONFIG_ARM_APPENDED_DTB=y | 66 | CONFIG_ARM_APPENDED_DTB=y |
55 | CONFIG_ARM_ATAG_DTB_COMPAT=y | 67 | CONFIG_ARM_ATAG_DTB_COMPAT=y |
68 | CONFIG_KEXEC=y | ||
69 | CONFIG_CPU_FREQ=y | ||
70 | CONFIG_CPU_FREQ_STAT_DETAILS=y | ||
71 | CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y | ||
72 | CONFIG_CPU_IDLE=y | ||
56 | CONFIG_NET=y | 73 | CONFIG_NET=y |
74 | CONFIG_PACKET=y | ||
57 | CONFIG_UNIX=y | 75 | CONFIG_UNIX=y |
58 | CONFIG_INET=y | 76 | CONFIG_INET=y |
59 | CONFIG_IP_PNP=y | 77 | CONFIG_IP_PNP=y |
60 | CONFIG_IP_PNP_DHCP=y | 78 | CONFIG_IP_PNP_DHCP=y |
79 | CONFIG_IP_PNP_BOOTP=y | ||
80 | CONFIG_IP_PNP_RARP=y | ||
81 | CONFIG_IPV6_ROUTER_PREF=y | ||
82 | CONFIG_IPV6_OPTIMISTIC_DAD=y | ||
83 | CONFIG_INET6_AH=m | ||
84 | CONFIG_INET6_ESP=m | ||
85 | CONFIG_INET6_IPCOMP=m | ||
86 | CONFIG_IPV6_MIP6=m | ||
87 | CONFIG_IPV6_TUNNEL=m | ||
88 | CONFIG_IPV6_MULTIPLE_TABLES=y | ||
89 | CONFIG_CFG80211=m | ||
90 | CONFIG_MAC80211=m | ||
91 | CONFIG_RFKILL=y | ||
92 | CONFIG_RFKILL_INPUT=y | ||
93 | CONFIG_RFKILL_GPIO=y | ||
61 | CONFIG_DEVTMPFS=y | 94 | CONFIG_DEVTMPFS=y |
62 | CONFIG_DEVTMPFS_MOUNT=y | 95 | CONFIG_DEVTMPFS_MOUNT=y |
96 | CONFIG_DMA_CMA=y | ||
63 | CONFIG_OMAP_OCP2SCP=y | 97 | CONFIG_OMAP_OCP2SCP=y |
98 | CONFIG_MTD=y | ||
99 | CONFIG_MTD_M25P80=y | ||
100 | CONFIG_BLK_DEV_LOOP=y | ||
101 | CONFIG_ICS932S401=y | ||
102 | CONFIG_APDS9802ALS=y | ||
103 | CONFIG_ISL29003=y | ||
64 | CONFIG_BLK_DEV_SD=y | 104 | CONFIG_BLK_DEV_SD=y |
105 | CONFIG_BLK_DEV_SR=y | ||
106 | CONFIG_SCSI_MULTI_LUN=y | ||
65 | CONFIG_ATA=y | 107 | CONFIG_ATA=y |
66 | CONFIG_SATA_AHCI_PLATFORM=y | 108 | CONFIG_SATA_AHCI_PLATFORM=y |
67 | CONFIG_SATA_HIGHBANK=y | 109 | CONFIG_SATA_HIGHBANK=y |
@@ -69,13 +111,30 @@ CONFIG_SATA_MV=y | |||
69 | CONFIG_NETDEVICES=y | 111 | CONFIG_NETDEVICES=y |
70 | CONFIG_SUN4I_EMAC=y | 112 | CONFIG_SUN4I_EMAC=y |
71 | CONFIG_NET_CALXEDA_XGMAC=y | 113 | CONFIG_NET_CALXEDA_XGMAC=y |
114 | CONFIG_MVNETA=y | ||
72 | CONFIG_KS8851=y | 115 | CONFIG_KS8851=y |
116 | CONFIG_R8169=y | ||
73 | CONFIG_SMSC911X=y | 117 | CONFIG_SMSC911X=y |
74 | CONFIG_STMMAC_ETH=y | 118 | CONFIG_STMMAC_ETH=y |
75 | CONFIG_ICPLUS_PHY=y | ||
76 | CONFIG_MDIO_SUN4I=y | ||
77 | CONFIG_TI_CPSW=y | 119 | CONFIG_TI_CPSW=y |
120 | CONFIG_AT803X_PHY=y | ||
121 | CONFIG_MARVELL_PHY=y | ||
122 | CONFIG_ICPLUS_PHY=y | ||
123 | CONFIG_USB_PEGASUS=y | ||
124 | CONFIG_USB_USBNET=y | ||
125 | CONFIG_USB_NET_SMSC75XX=y | ||
126 | CONFIG_USB_NET_SMSC95XX=y | ||
127 | CONFIG_BRCMFMAC=m | ||
128 | CONFIG_RT2X00=m | ||
129 | CONFIG_RT2800USB=m | ||
130 | CONFIG_INPUT_EVDEV=y | ||
131 | CONFIG_KEYBOARD_GPIO=y | ||
132 | CONFIG_KEYBOARD_TEGRA=y | ||
78 | CONFIG_KEYBOARD_SPEAR=y | 133 | CONFIG_KEYBOARD_SPEAR=y |
134 | CONFIG_KEYBOARD_CROS_EC=y | ||
135 | CONFIG_MOUSE_PS2_ELANTECH=y | ||
136 | CONFIG_INPUT_MISC=y | ||
137 | CONFIG_INPUT_MPU3050=y | ||
79 | CONFIG_SERIO_AMBAKMI=y | 138 | CONFIG_SERIO_AMBAKMI=y |
80 | CONFIG_SERIAL_8250=y | 139 | CONFIG_SERIAL_8250=y |
81 | CONFIG_SERIAL_8250_CONSOLE=y | 140 | CONFIG_SERIAL_8250_CONSOLE=y |
@@ -98,30 +157,81 @@ CONFIG_SERIAL_FSL_LPUART=y | |||
98 | CONFIG_SERIAL_FSL_LPUART_CONSOLE=y | 157 | CONFIG_SERIAL_FSL_LPUART_CONSOLE=y |
99 | CONFIG_SERIAL_ST_ASC=y | 158 | CONFIG_SERIAL_ST_ASC=y |
100 | CONFIG_SERIAL_ST_ASC_CONSOLE=y | 159 | CONFIG_SERIAL_ST_ASC_CONSOLE=y |
160 | CONFIG_I2C_CHARDEV=y | ||
161 | CONFIG_I2C_MUX=y | ||
162 | CONFIG_I2C_MUX_PINCTRL=y | ||
101 | CONFIG_I2C_DESIGNWARE_PLATFORM=y | 163 | CONFIG_I2C_DESIGNWARE_PLATFORM=y |
164 | CONFIG_I2C_MV64XXX=y | ||
102 | CONFIG_I2C_SIRF=y | 165 | CONFIG_I2C_SIRF=y |
103 | CONFIG_I2C_TEGRA=y | 166 | CONFIG_I2C_TEGRA=y |
104 | CONFIG_SPI=y | 167 | CONFIG_SPI=y |
105 | CONFIG_SPI_OMAP24XX=y | 168 | CONFIG_SPI_OMAP24XX=y |
169 | CONFIG_SPI_ORION=y | ||
106 | CONFIG_SPI_PL022=y | 170 | CONFIG_SPI_PL022=y |
107 | CONFIG_SPI_SIRF=y | 171 | CONFIG_SPI_SIRF=y |
108 | CONFIG_SPI_TEGRA114=y | 172 | CONFIG_SPI_TEGRA114=y |
173 | CONFIG_SPI_TEGRA20_SFLASH=y | ||
109 | CONFIG_SPI_TEGRA20_SLINK=y | 174 | CONFIG_SPI_TEGRA20_SLINK=y |
110 | CONFIG_PINCTRL_SINGLE=y | 175 | CONFIG_PINCTRL_AS3722=y |
176 | CONFIG_PINCTRL_PALMAS=y | ||
177 | CONFIG_GPIO_SYSFS=y | ||
111 | CONFIG_GPIO_GENERIC_PLATFORM=y | 178 | CONFIG_GPIO_GENERIC_PLATFORM=y |
179 | CONFIG_GPIO_PCA953X_IRQ=y | ||
112 | CONFIG_GPIO_TWL4030=y | 180 | CONFIG_GPIO_TWL4030=y |
113 | CONFIG_REGULATOR_GPIO=y | 181 | CONFIG_GPIO_PALMAS=y |
182 | CONFIG_GPIO_TPS6586X=y | ||
183 | CONFIG_GPIO_TPS65910=y | ||
184 | CONFIG_BATTERY_SBS=y | ||
185 | CONFIG_CHARGER_TPS65090=y | ||
186 | CONFIG_POWER_RESET_AS3722=y | ||
187 | CONFIG_POWER_RESET_GPIO=y | ||
188 | CONFIG_SENSORS_LM90=y | ||
189 | CONFIG_THERMAL=y | ||
190 | CONFIG_ARMADA_THERMAL=y | ||
191 | CONFIG_MFD_AS3722=y | ||
192 | CONFIG_MFD_CROS_EC=y | ||
193 | CONFIG_MFD_CROS_EC_SPI=y | ||
194 | CONFIG_MFD_MAX8907=y | ||
195 | CONFIG_MFD_PALMAS=y | ||
196 | CONFIG_MFD_TPS65090=y | ||
197 | CONFIG_MFD_TPS6586X=y | ||
198 | CONFIG_MFD_TPS65910=y | ||
199 | CONFIG_REGULATOR_VIRTUAL_CONSUMER=y | ||
114 | CONFIG_REGULATOR_AB8500=y | 200 | CONFIG_REGULATOR_AB8500=y |
201 | CONFIG_REGULATOR_AS3722=y | ||
202 | CONFIG_REGULATOR_GPIO=y | ||
203 | CONFIG_REGULATOR_MAX8907=y | ||
204 | CONFIG_REGULATOR_PALMAS=y | ||
115 | CONFIG_REGULATOR_TPS51632=y | 205 | CONFIG_REGULATOR_TPS51632=y |
116 | CONFIG_REGULATOR_TPS62360=y | 206 | CONFIG_REGULATOR_TPS62360=y |
207 | CONFIG_REGULATOR_TPS65090=y | ||
208 | CONFIG_REGULATOR_TPS6586X=y | ||
209 | CONFIG_REGULATOR_TPS65910=y | ||
117 | CONFIG_REGULATOR_TWL4030=y | 210 | CONFIG_REGULATOR_TWL4030=y |
118 | CONFIG_REGULATOR_VEXPRESS=y | 211 | CONFIG_REGULATOR_VEXPRESS=y |
212 | CONFIG_MEDIA_SUPPORT=y | ||
213 | CONFIG_MEDIA_CAMERA_SUPPORT=y | ||
214 | CONFIG_MEDIA_USB_SUPPORT=y | ||
119 | CONFIG_DRM=y | 215 | CONFIG_DRM=y |
120 | CONFIG_TEGRA_HOST1X=y | ||
121 | CONFIG_DRM_TEGRA=y | 216 | CONFIG_DRM_TEGRA=y |
217 | CONFIG_DRM_PANEL_SIMPLE=y | ||
122 | CONFIG_FB_ARMCLCD=y | 218 | CONFIG_FB_ARMCLCD=y |
123 | CONFIG_FB_WM8505=y | 219 | CONFIG_FB_WM8505=y |
124 | CONFIG_FB_SIMPLE=y | 220 | CONFIG_FB_SIMPLE=y |
221 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | ||
222 | CONFIG_BACKLIGHT_CLASS_DEVICE=y | ||
223 | CONFIG_BACKLIGHT_PWM=y | ||
224 | CONFIG_FRAMEBUFFER_CONSOLE=y | ||
225 | CONFIG_SOUND=y | ||
226 | CONFIG_SND=y | ||
227 | CONFIG_SND_SOC=y | ||
228 | CONFIG_SND_SOC_TEGRA=y | ||
229 | CONFIG_SND_SOC_TEGRA_RT5640=y | ||
230 | CONFIG_SND_SOC_TEGRA_WM8753=y | ||
231 | CONFIG_SND_SOC_TEGRA_WM8903=y | ||
232 | CONFIG_SND_SOC_TEGRA_TRIMSLICE=y | ||
233 | CONFIG_SND_SOC_TEGRA_ALC5632=y | ||
234 | CONFIG_SND_SOC_TEGRA_MAX98090=y | ||
125 | CONFIG_USB=y | 235 | CONFIG_USB=y |
126 | CONFIG_USB_XHCI_HCD=y | 236 | CONFIG_USB_XHCI_HCD=y |
127 | CONFIG_USB_EHCI_HCD=y | 237 | CONFIG_USB_EHCI_HCD=y |
@@ -132,8 +242,6 @@ CONFIG_USB_STORAGE=y | |||
132 | CONFIG_USB_CHIPIDEA=y | 242 | CONFIG_USB_CHIPIDEA=y |
133 | CONFIG_USB_CHIPIDEA_HOST=y | 243 | CONFIG_USB_CHIPIDEA_HOST=y |
134 | CONFIG_AB8500_USB=y | 244 | CONFIG_AB8500_USB=y |
135 | CONFIG_NOP_USB_XCEIV=y | ||
136 | CONFIG_OMAP_USB2=y | ||
137 | CONFIG_OMAP_USB3=y | 245 | CONFIG_OMAP_USB3=y |
138 | CONFIG_SAMSUNG_USB2PHY=y | 246 | CONFIG_SAMSUNG_USB2PHY=y |
139 | CONFIG_SAMSUNG_USB3PHY=y | 247 | CONFIG_SAMSUNG_USB3PHY=y |
@@ -144,24 +252,32 @@ CONFIG_MMC=y | |||
144 | CONFIG_MMC_BLOCK_MINORS=16 | 252 | CONFIG_MMC_BLOCK_MINORS=16 |
145 | CONFIG_MMC_ARMMMCI=y | 253 | CONFIG_MMC_ARMMMCI=y |
146 | CONFIG_MMC_SDHCI=y | 254 | CONFIG_MMC_SDHCI=y |
147 | CONFIG_MMC_SDHCI_PLTFM=y | ||
148 | CONFIG_MMC_SDHCI_ESDHC_IMX=y | 255 | CONFIG_MMC_SDHCI_ESDHC_IMX=y |
149 | CONFIG_MMC_SDHCI_TEGRA=y | 256 | CONFIG_MMC_SDHCI_TEGRA=y |
150 | CONFIG_MMC_SDHCI_SPEAR=y | 257 | CONFIG_MMC_SDHCI_SPEAR=y |
151 | CONFIG_MMC_SDHCI_BCM_KONA=y | 258 | CONFIG_MMC_SDHCI_BCM_KONA=y |
152 | CONFIG_MMC_OMAP=y | 259 | CONFIG_MMC_OMAP=y |
153 | CONFIG_MMC_OMAP_HS=y | 260 | CONFIG_MMC_OMAP_HS=y |
261 | CONFIG_MMC_MVSDIO=y | ||
154 | CONFIG_EDAC=y | 262 | CONFIG_EDAC=y |
155 | CONFIG_EDAC_MM_EDAC=y | 263 | CONFIG_EDAC_MM_EDAC=y |
156 | CONFIG_EDAC_HIGHBANK_MC=y | 264 | CONFIG_EDAC_HIGHBANK_MC=y |
157 | CONFIG_EDAC_HIGHBANK_L2=y | 265 | CONFIG_EDAC_HIGHBANK_L2=y |
158 | CONFIG_RTC_CLASS=y | 266 | CONFIG_RTC_CLASS=y |
267 | CONFIG_RTC_DRV_AS3722=y | ||
268 | CONFIG_RTC_DRV_MAX8907=y | ||
269 | CONFIG_RTC_DRV_PALMAS=y | ||
159 | CONFIG_RTC_DRV_TWL4030=y | 270 | CONFIG_RTC_DRV_TWL4030=y |
271 | CONFIG_RTC_DRV_TPS6586X=y | ||
272 | CONFIG_RTC_DRV_TPS65910=y | ||
273 | CONFIG_RTC_DRV_EM3027=y | ||
160 | CONFIG_RTC_DRV_PL031=y | 274 | CONFIG_RTC_DRV_PL031=y |
161 | CONFIG_RTC_DRV_VT8500=y | 275 | CONFIG_RTC_DRV_VT8500=y |
276 | CONFIG_RTC_DRV_MV=y | ||
162 | CONFIG_RTC_DRV_TEGRA=y | 277 | CONFIG_RTC_DRV_TEGRA=y |
163 | CONFIG_DMADEVICES=y | 278 | CONFIG_DMADEVICES=y |
164 | CONFIG_DW_DMAC=y | 279 | CONFIG_DW_DMAC=y |
280 | CONFIG_MV_XOR=y | ||
165 | CONFIG_TEGRA20_APB_DMA=y | 281 | CONFIG_TEGRA20_APB_DMA=y |
166 | CONFIG_STE_DMA40=y | 282 | CONFIG_STE_DMA40=y |
167 | CONFIG_SIRF_DMA=y | 283 | CONFIG_SIRF_DMA=y |
@@ -171,15 +287,34 @@ CONFIG_IMX_SDMA=y | |||
171 | CONFIG_IMX_DMA=y | 287 | CONFIG_IMX_DMA=y |
172 | CONFIG_MXS_DMA=y | 288 | CONFIG_MXS_DMA=y |
173 | CONFIG_DMA_OMAP=y | 289 | CONFIG_DMA_OMAP=y |
290 | CONFIG_STAGING=y | ||
291 | CONFIG_SENSORS_ISL29018=y | ||
292 | CONFIG_SENSORS_ISL29028=y | ||
293 | CONFIG_MFD_NVEC=y | ||
294 | CONFIG_KEYBOARD_NVEC=y | ||
295 | CONFIG_SERIO_NVEC_PS2=y | ||
296 | CONFIG_NVEC_POWER=y | ||
297 | CONFIG_TEGRA_IOMMU_GART=y | ||
298 | CONFIG_TEGRA_IOMMU_SMMU=y | ||
299 | CONFIG_MEMORY=y | ||
300 | CONFIG_IIO=y | ||
301 | CONFIG_AK8975=y | ||
174 | CONFIG_PWM=y | 302 | CONFIG_PWM=y |
303 | CONFIG_PWM_TEGRA=y | ||
175 | CONFIG_PWM_VT8500=y | 304 | CONFIG_PWM_VT8500=y |
305 | CONFIG_OMAP_USB2=y | ||
176 | CONFIG_EXT4_FS=y | 306 | CONFIG_EXT4_FS=y |
307 | CONFIG_VFAT_FS=y | ||
177 | CONFIG_TMPFS=y | 308 | CONFIG_TMPFS=y |
309 | CONFIG_SQUASHFS=y | ||
310 | CONFIG_SQUASHFS_LZO=y | ||
311 | CONFIG_SQUASHFS_XZ=y | ||
178 | CONFIG_NFS_FS=y | 312 | CONFIG_NFS_FS=y |
179 | CONFIG_NFS_V3_ACL=y | 313 | CONFIG_NFS_V3_ACL=y |
180 | CONFIG_NFS_V4=y | 314 | CONFIG_NFS_V4=y |
181 | CONFIG_ROOT_NFS=y | 315 | CONFIG_ROOT_NFS=y |
182 | CONFIG_PRINTK_TIME=y | 316 | CONFIG_PRINTK_TIME=y |
183 | CONFIG_DEBUG_FS=y | 317 | CONFIG_DEBUG_FS=y |
184 | CONFIG_DEBUG_KERNEL=y | 318 | CONFIG_MAGIC_SYSRQ=y |
185 | CONFIG_LOCKUP_DETECTOR=y | 319 | CONFIG_LOCKUP_DETECTOR=y |
320 | CONFIG_CRYPTO_DEV_TEGRA_AES=y | ||
diff --git a/arch/arm/configs/tegra_defconfig b/arch/arm/configs/tegra_defconfig index 5fdc9a09d339..00fe9e9710fd 100644 --- a/arch/arm/configs/tegra_defconfig +++ b/arch/arm/configs/tegra_defconfig | |||
@@ -29,11 +29,11 @@ CONFIG_ARCH_TEGRA_3x_SOC=y | |||
29 | CONFIG_ARCH_TEGRA_114_SOC=y | 29 | CONFIG_ARCH_TEGRA_114_SOC=y |
30 | CONFIG_ARCH_TEGRA_124_SOC=y | 30 | CONFIG_ARCH_TEGRA_124_SOC=y |
31 | CONFIG_TEGRA_EMC_SCALING_ENABLE=y | 31 | CONFIG_TEGRA_EMC_SCALING_ENABLE=y |
32 | CONFIG_TRUSTED_FOUNDATIONS=y | ||
32 | CONFIG_PCI=y | 33 | CONFIG_PCI=y |
33 | CONFIG_PCI_MSI=y | 34 | CONFIG_PCI_MSI=y |
34 | CONFIG_PCI_TEGRA=y | 35 | CONFIG_PCI_TEGRA=y |
35 | CONFIG_PCIEPORTBUS=y | 36 | CONFIG_PCIEPORTBUS=y |
36 | CONFIG_TRUSTED_FOUNDATIONS=y | ||
37 | CONFIG_SMP=y | 37 | CONFIG_SMP=y |
38 | CONFIG_PREEMPT=y | 38 | CONFIG_PREEMPT=y |
39 | CONFIG_AEABI=y | 39 | CONFIG_AEABI=y |
@@ -125,7 +125,6 @@ CONFIG_SERIAL_TEGRA=y | |||
125 | CONFIG_SERIAL_OF_PLATFORM=y | 125 | CONFIG_SERIAL_OF_PLATFORM=y |
126 | # CONFIG_HW_RANDOM is not set | 126 | # CONFIG_HW_RANDOM is not set |
127 | # CONFIG_I2C_COMPAT is not set | 127 | # CONFIG_I2C_COMPAT is not set |
128 | CONFIG_I2C_MUX=y | ||
129 | CONFIG_I2C_MUX_PINCTRL=y | 128 | CONFIG_I2C_MUX_PINCTRL=y |
130 | CONFIG_I2C_TEGRA=y | 129 | CONFIG_I2C_TEGRA=y |
131 | CONFIG_SPI=y | 130 | CONFIG_SPI=y |
@@ -169,9 +168,8 @@ CONFIG_MEDIA_CAMERA_SUPPORT=y | |||
169 | CONFIG_MEDIA_USB_SUPPORT=y | 168 | CONFIG_MEDIA_USB_SUPPORT=y |
170 | CONFIG_USB_VIDEO_CLASS=m | 169 | CONFIG_USB_VIDEO_CLASS=m |
171 | CONFIG_DRM=y | 170 | CONFIG_DRM=y |
172 | CONFIG_DRM_PANEL=y | ||
173 | CONFIG_DRM_PANEL_SIMPLE=y | ||
174 | CONFIG_DRM_TEGRA=y | 171 | CONFIG_DRM_TEGRA=y |
172 | CONFIG_DRM_PANEL_SIMPLE=y | ||
175 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | 173 | CONFIG_BACKLIGHT_LCD_SUPPORT=y |
176 | # CONFIG_LCD_CLASS_DEVICE is not set | 174 | # CONFIG_LCD_CLASS_DEVICE is not set |
177 | CONFIG_BACKLIGHT_CLASS_DEVICE=y | 175 | CONFIG_BACKLIGHT_CLASS_DEVICE=y |
@@ -206,10 +204,7 @@ CONFIG_MMC_BLOCK_MINORS=16 | |||
206 | CONFIG_MMC_SDHCI=y | 204 | CONFIG_MMC_SDHCI=y |
207 | CONFIG_MMC_SDHCI_PLTFM=y | 205 | CONFIG_MMC_SDHCI_PLTFM=y |
208 | CONFIG_MMC_SDHCI_TEGRA=y | 206 | CONFIG_MMC_SDHCI_TEGRA=y |
209 | CONFIG_NEW_LEDS=y | ||
210 | CONFIG_LEDS_CLASS=y | ||
211 | CONFIG_LEDS_GPIO=y | 207 | CONFIG_LEDS_GPIO=y |
212 | CONFIG_LEDS_TRIGGERS=y | ||
213 | CONFIG_LEDS_TRIGGER_TIMER=y | 208 | CONFIG_LEDS_TRIGGER_TIMER=y |
214 | CONFIG_LEDS_TRIGGER_ONESHOT=y | 209 | CONFIG_LEDS_TRIGGER_ONESHOT=y |
215 | CONFIG_LEDS_TRIGGER_HEARTBEAT=y | 210 | CONFIG_LEDS_TRIGGER_HEARTBEAT=y |
@@ -235,7 +230,6 @@ CONFIG_KEYBOARD_NVEC=y | |||
235 | CONFIG_SERIO_NVEC_PS2=y | 230 | CONFIG_SERIO_NVEC_PS2=y |
236 | CONFIG_NVEC_POWER=y | 231 | CONFIG_NVEC_POWER=y |
237 | CONFIG_NVEC_PAZ00=y | 232 | CONFIG_NVEC_PAZ00=y |
238 | CONFIG_COMMON_CLK_DEBUG=y | ||
239 | CONFIG_TEGRA_IOMMU_GART=y | 233 | CONFIG_TEGRA_IOMMU_GART=y |
240 | CONFIG_TEGRA_IOMMU_SMMU=y | 234 | CONFIG_TEGRA_IOMMU_SMMU=y |
241 | CONFIG_MEMORY=y | 235 | CONFIG_MEMORY=y |
@@ -265,6 +259,7 @@ CONFIG_NLS_CODEPAGE_437=y | |||
265 | CONFIG_NLS_ISO8859_1=y | 259 | CONFIG_NLS_ISO8859_1=y |
266 | CONFIG_PRINTK_TIME=y | 260 | CONFIG_PRINTK_TIME=y |
267 | CONFIG_DEBUG_INFO=y | 261 | CONFIG_DEBUG_INFO=y |
262 | CONFIG_DEBUG_FS=y | ||
268 | CONFIG_MAGIC_SYSRQ=y | 263 | CONFIG_MAGIC_SYSRQ=y |
269 | CONFIG_DEBUG_SLAB=y | 264 | CONFIG_DEBUG_SLAB=y |
270 | CONFIG_DEBUG_VM=y | 265 | CONFIG_DEBUG_VM=y |
diff --git a/arch/arm/include/asm/cacheflush.h b/arch/arm/include/asm/cacheflush.h index e9a49fe0284e..8b8b61685a34 100644 --- a/arch/arm/include/asm/cacheflush.h +++ b/arch/arm/include/asm/cacheflush.h | |||
@@ -212,6 +212,7 @@ extern void copy_to_user_page(struct vm_area_struct *, struct page *, | |||
212 | static inline void __flush_icache_all(void) | 212 | static inline void __flush_icache_all(void) |
213 | { | 213 | { |
214 | __flush_icache_preferred(); | 214 | __flush_icache_preferred(); |
215 | dsb(); | ||
215 | } | 216 | } |
216 | 217 | ||
217 | /* | 218 | /* |
diff --git a/arch/arm/include/asm/pgtable-3level.h b/arch/arm/include/asm/pgtable-3level.h index 03243f7eeddf..85c60adc8b60 100644 --- a/arch/arm/include/asm/pgtable-3level.h +++ b/arch/arm/include/asm/pgtable-3level.h | |||
@@ -120,13 +120,16 @@ | |||
120 | /* | 120 | /* |
121 | * 2nd stage PTE definitions for LPAE. | 121 | * 2nd stage PTE definitions for LPAE. |
122 | */ | 122 | */ |
123 | #define L_PTE_S2_MT_UNCACHED (_AT(pteval_t, 0x5) << 2) /* MemAttr[3:0] */ | 123 | #define L_PTE_S2_MT_UNCACHED (_AT(pteval_t, 0x0) << 2) /* strongly ordered */ |
124 | #define L_PTE_S2_MT_WRITETHROUGH (_AT(pteval_t, 0xa) << 2) /* MemAttr[3:0] */ | 124 | #define L_PTE_S2_MT_WRITETHROUGH (_AT(pteval_t, 0xa) << 2) /* normal inner write-through */ |
125 | #define L_PTE_S2_MT_WRITEBACK (_AT(pteval_t, 0xf) << 2) /* MemAttr[3:0] */ | 125 | #define L_PTE_S2_MT_WRITEBACK (_AT(pteval_t, 0xf) << 2) /* normal inner write-back */ |
126 | #define L_PTE_S2_RDONLY (_AT(pteval_t, 1) << 6) /* HAP[1] */ | 126 | #define L_PTE_S2_MT_DEV_SHARED (_AT(pteval_t, 0x1) << 2) /* device */ |
127 | #define L_PTE_S2_RDWR (_AT(pteval_t, 3) << 6) /* HAP[2:1] */ | 127 | #define L_PTE_S2_MT_MASK (_AT(pteval_t, 0xf) << 2) |
128 | 128 | ||
129 | #define L_PMD_S2_RDWR (_AT(pmdval_t, 3) << 6) /* HAP[2:1] */ | 129 | #define L_PTE_S2_RDONLY (_AT(pteval_t, 1) << 6) /* HAP[1] */ |
130 | #define L_PTE_S2_RDWR (_AT(pteval_t, 3) << 6) /* HAP[2:1] */ | ||
131 | |||
132 | #define L_PMD_S2_RDWR (_AT(pmdval_t, 3) << 6) /* HAP[2:1] */ | ||
130 | 133 | ||
131 | /* | 134 | /* |
132 | * Hyp-mode PL2 PTE definitions for LPAE. | 135 | * Hyp-mode PL2 PTE definitions for LPAE. |
diff --git a/arch/arm/include/asm/spinlock.h b/arch/arm/include/asm/spinlock.h index ef3c6072aa45..ac4bfae26702 100644 --- a/arch/arm/include/asm/spinlock.h +++ b/arch/arm/include/asm/spinlock.h | |||
@@ -37,18 +37,9 @@ | |||
37 | 37 | ||
38 | static inline void dsb_sev(void) | 38 | static inline void dsb_sev(void) |
39 | { | 39 | { |
40 | #if __LINUX_ARM_ARCH__ >= 7 | 40 | |
41 | __asm__ __volatile__ ( | 41 | dsb(ishst); |
42 | "dsb ishst\n" | 42 | __asm__(SEV); |
43 | SEV | ||
44 | ); | ||
45 | #else | ||
46 | __asm__ __volatile__ ( | ||
47 | "mcr p15, 0, %0, c7, c10, 4\n" | ||
48 | SEV | ||
49 | : : "r" (0) | ||
50 | ); | ||
51 | #endif | ||
52 | } | 43 | } |
53 | 44 | ||
54 | /* | 45 | /* |
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c index b0df9761de6d..1e8b030dbefd 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c | |||
@@ -731,7 +731,7 @@ static void __init request_standard_resources(const struct machine_desc *mdesc) | |||
731 | kernel_data.end = virt_to_phys(_end - 1); | 731 | kernel_data.end = virt_to_phys(_end - 1); |
732 | 732 | ||
733 | for_each_memblock(memory, region) { | 733 | for_each_memblock(memory, region) { |
734 | res = memblock_virt_alloc_low(sizeof(*res), 0); | 734 | res = memblock_virt_alloc(sizeof(*res), 0); |
735 | res->name = "System RAM"; | 735 | res->name = "System RAM"; |
736 | res->start = __pfn_to_phys(memblock_region_memory_base_pfn(region)); | 736 | res->start = __pfn_to_phys(memblock_region_memory_base_pfn(region)); |
737 | res->end = __pfn_to_phys(memblock_region_memory_end_pfn(region)) - 1; | 737 | res->end = __pfn_to_phys(memblock_region_memory_end_pfn(region)) - 1; |
diff --git a/arch/arm/mach-hisi/Kconfig b/arch/arm/mach-hisi/Kconfig index 018ad67f1b38..1abae5f6a418 100644 --- a/arch/arm/mach-hisi/Kconfig +++ b/arch/arm/mach-hisi/Kconfig | |||
@@ -8,10 +8,9 @@ config ARCH_HI3xxx | |||
8 | select CLKSRC_OF | 8 | select CLKSRC_OF |
9 | select GENERIC_CLOCKEVENTS | 9 | select GENERIC_CLOCKEVENTS |
10 | select HAVE_ARM_SCU | 10 | select HAVE_ARM_SCU |
11 | select HAVE_ARM_TWD | 11 | select HAVE_ARM_TWD if SMP |
12 | select HAVE_SMP | 12 | select HAVE_SMP |
13 | select PINCTRL | 13 | select PINCTRL |
14 | select PINCTRL_SINGLE | 14 | select PINCTRL_SINGLE |
15 | select SMP | ||
16 | help | 15 | help |
17 | Support for Hisilicon Hi36xx/Hi37xx processor family | 16 | Support for Hisilicon Hi36xx/Hi37xx processor family |
diff --git a/arch/arm/mach-imx/clk-imx6q.c b/arch/arm/mach-imx/clk-imx6q.c index af2e582d2b74..4d677f442539 100644 --- a/arch/arm/mach-imx/clk-imx6q.c +++ b/arch/arm/mach-imx/clk-imx6q.c | |||
@@ -482,6 +482,9 @@ static void __init imx6q_clocks_init(struct device_node *ccm_node) | |||
482 | if (IS_ENABLED(CONFIG_PCI_IMX6)) | 482 | if (IS_ENABLED(CONFIG_PCI_IMX6)) |
483 | clk_set_parent(clk[lvds1_sel], clk[sata_ref]); | 483 | clk_set_parent(clk[lvds1_sel], clk[sata_ref]); |
484 | 484 | ||
485 | /* Set initial power mode */ | ||
486 | imx6q_set_lpm(WAIT_CLOCKED); | ||
487 | |||
485 | np = of_find_compatible_node(NULL, NULL, "fsl,imx6q-gpt"); | 488 | np = of_find_compatible_node(NULL, NULL, "fsl,imx6q-gpt"); |
486 | base = of_iomap(np, 0); | 489 | base = of_iomap(np, 0); |
487 | WARN_ON(!base); | 490 | WARN_ON(!base); |
diff --git a/arch/arm/mach-imx/clk-imx6sl.c b/arch/arm/mach-imx/clk-imx6sl.c index 3781a1853998..4c86f3035205 100644 --- a/arch/arm/mach-imx/clk-imx6sl.c +++ b/arch/arm/mach-imx/clk-imx6sl.c | |||
@@ -266,6 +266,9 @@ static void __init imx6sl_clocks_init(struct device_node *ccm_node) | |||
266 | /* Audio-related clocks configuration */ | 266 | /* Audio-related clocks configuration */ |
267 | clk_set_parent(clks[IMX6SL_CLK_SPDIF0_SEL], clks[IMX6SL_CLK_PLL3_PFD3]); | 267 | clk_set_parent(clks[IMX6SL_CLK_SPDIF0_SEL], clks[IMX6SL_CLK_PLL3_PFD3]); |
268 | 268 | ||
269 | /* Set initial power mode */ | ||
270 | imx6q_set_lpm(WAIT_CLOCKED); | ||
271 | |||
269 | np = of_find_compatible_node(NULL, NULL, "fsl,imx6sl-gpt"); | 272 | np = of_find_compatible_node(NULL, NULL, "fsl,imx6sl-gpt"); |
270 | base = of_iomap(np, 0); | 273 | base = of_iomap(np, 0); |
271 | WARN_ON(!base); | 274 | WARN_ON(!base); |
diff --git a/arch/arm/mach-imx/pm-imx6q.c b/arch/arm/mach-imx/pm-imx6q.c index 9d47adc078aa..7a9b98589db7 100644 --- a/arch/arm/mach-imx/pm-imx6q.c +++ b/arch/arm/mach-imx/pm-imx6q.c | |||
@@ -236,8 +236,6 @@ void __init imx6q_pm_init(void) | |||
236 | regmap_update_bits(gpr, IOMUXC_GPR1, IMX6Q_GPR1_GINT, | 236 | regmap_update_bits(gpr, IOMUXC_GPR1, IMX6Q_GPR1_GINT, |
237 | IMX6Q_GPR1_GINT); | 237 | IMX6Q_GPR1_GINT); |
238 | 238 | ||
239 | /* Set initial power mode */ | ||
240 | imx6q_set_lpm(WAIT_CLOCKED); | ||
241 | 239 | ||
242 | suspend_set_ops(&imx6q_pm_ops); | 240 | suspend_set_ops(&imx6q_pm_ops); |
243 | } | 241 | } |
diff --git a/arch/arm/mach-integrator/integrator_cp.c b/arch/arm/mach-integrator/integrator_cp.c index 5e84149d1790..a3ef961e4a93 100644 --- a/arch/arm/mach-integrator/integrator_cp.c +++ b/arch/arm/mach-integrator/integrator_cp.c | |||
@@ -64,6 +64,7 @@ static void __iomem *intcp_con_base; | |||
64 | 64 | ||
65 | /* | 65 | /* |
66 | * Logical Physical | 66 | * Logical Physical |
67 | * f1000000 10000000 Core module registers | ||
67 | * f1300000 13000000 Counter/Timer | 68 | * f1300000 13000000 Counter/Timer |
68 | * f1400000 14000000 Interrupt controller | 69 | * f1400000 14000000 Interrupt controller |
69 | * f1600000 16000000 UART 0 | 70 | * f1600000 16000000 UART 0 |
@@ -75,6 +76,11 @@ static void __iomem *intcp_con_base; | |||
75 | 76 | ||
76 | static struct map_desc intcp_io_desc[] __initdata __maybe_unused = { | 77 | static struct map_desc intcp_io_desc[] __initdata __maybe_unused = { |
77 | { | 78 | { |
79 | .virtual = IO_ADDRESS(INTEGRATOR_HDR_BASE), | ||
80 | .pfn = __phys_to_pfn(INTEGRATOR_HDR_BASE), | ||
81 | .length = SZ_4K, | ||
82 | .type = MT_DEVICE | ||
83 | }, { | ||
78 | .virtual = IO_ADDRESS(INTEGRATOR_CT_BASE), | 84 | .virtual = IO_ADDRESS(INTEGRATOR_CT_BASE), |
79 | .pfn = __phys_to_pfn(INTEGRATOR_CT_BASE), | 85 | .pfn = __phys_to_pfn(INTEGRATOR_CT_BASE), |
80 | .length = SZ_4K, | 86 | .length = SZ_4K, |
diff --git a/arch/arm/mach-iop32x/em7210.c b/arch/arm/mach-iop32x/em7210.c index 177cd073a83b..77e1ff057303 100644 --- a/arch/arm/mach-iop32x/em7210.c +++ b/arch/arm/mach-iop32x/em7210.c | |||
@@ -23,6 +23,7 @@ | |||
23 | #include <linux/mtd/physmap.h> | 23 | #include <linux/mtd/physmap.h> |
24 | #include <linux/platform_device.h> | 24 | #include <linux/platform_device.h> |
25 | #include <linux/i2c.h> | 25 | #include <linux/i2c.h> |
26 | #include <linux/gpio.h> | ||
26 | #include <mach/hardware.h> | 27 | #include <mach/hardware.h> |
27 | #include <linux/io.h> | 28 | #include <linux/io.h> |
28 | #include <linux/irq.h> | 29 | #include <linux/irq.h> |
@@ -176,11 +177,35 @@ static struct platform_device em7210_serial_device = { | |||
176 | .resource = &em7210_uart_resource, | 177 | .resource = &em7210_uart_resource, |
177 | }; | 178 | }; |
178 | 179 | ||
180 | #define EM7210_HARDWARE_POWER 0 | ||
181 | |||
179 | void em7210_power_off(void) | 182 | void em7210_power_off(void) |
180 | { | 183 | { |
181 | *IOP3XX_GPOE &= 0xfe; | 184 | int ret; |
182 | *IOP3XX_GPOD |= 0x01; | 185 | |
186 | ret = gpio_direction_output(EM7210_HARDWARE_POWER, 1); | ||
187 | if (ret) | ||
188 | pr_crit("could not drive power off GPIO high\n"); | ||
189 | } | ||
190 | |||
191 | static int __init em7210_request_gpios(void) | ||
192 | { | ||
193 | int ret; | ||
194 | |||
195 | if (!machine_is_em7210()) | ||
196 | return 0; | ||
197 | |||
198 | ret = gpio_request(EM7210_HARDWARE_POWER, "power"); | ||
199 | if (ret) { | ||
200 | pr_err("could not request power off GPIO\n"); | ||
201 | return 0; | ||
202 | } | ||
203 | |||
204 | pm_power_off = em7210_power_off; | ||
205 | |||
206 | return 0; | ||
183 | } | 207 | } |
208 | device_initcall(em7210_request_gpios); | ||
184 | 209 | ||
185 | static void __init em7210_init_machine(void) | 210 | static void __init em7210_init_machine(void) |
186 | { | 211 | { |
@@ -194,9 +219,6 @@ static void __init em7210_init_machine(void) | |||
194 | 219 | ||
195 | i2c_register_board_info(0, em7210_i2c_devices, | 220 | i2c_register_board_info(0, em7210_i2c_devices, |
196 | ARRAY_SIZE(em7210_i2c_devices)); | 221 | ARRAY_SIZE(em7210_i2c_devices)); |
197 | |||
198 | |||
199 | pm_power_off = em7210_power_off; | ||
200 | } | 222 | } |
201 | 223 | ||
202 | MACHINE_START(EM7210, "Lanner EM7210") | 224 | MACHINE_START(EM7210, "Lanner EM7210") |
diff --git a/arch/arm/mach-keystone/Kconfig b/arch/arm/mach-keystone/Kconfig index dabc5eee52e7..90a708fef541 100644 --- a/arch/arm/mach-keystone/Kconfig +++ b/arch/arm/mach-keystone/Kconfig | |||
@@ -10,7 +10,6 @@ config ARCH_KEYSTONE | |||
10 | select ARCH_WANT_OPTIONAL_GPIOLIB | 10 | select ARCH_WANT_OPTIONAL_GPIOLIB |
11 | select ARM_ERRATA_798181 if SMP | 11 | select ARM_ERRATA_798181 if SMP |
12 | select COMMON_CLK_KEYSTONE | 12 | select COMMON_CLK_KEYSTONE |
13 | select TI_EDMA | ||
14 | select ARCH_SUPPORTS_BIG_ENDIAN | 13 | select ARCH_SUPPORTS_BIG_ENDIAN |
15 | select ZONE_DMA if ARM_LPAE | 14 | select ZONE_DMA if ARM_LPAE |
16 | help | 15 | help |
diff --git a/arch/arm/mach-kirkwood/pm.c b/arch/arm/mach-kirkwood/pm.c index 8783a7184e73..c6ab8d9303a5 100644 --- a/arch/arm/mach-kirkwood/pm.c +++ b/arch/arm/mach-kirkwood/pm.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <linux/suspend.h> | 18 | #include <linux/suspend.h> |
19 | #include <linux/io.h> | 19 | #include <linux/io.h> |
20 | #include <mach/bridge-regs.h> | 20 | #include <mach/bridge-regs.h> |
21 | #include "common.h" | ||
21 | 22 | ||
22 | static void __iomem *ddr_operation_base; | 23 | static void __iomem *ddr_operation_base; |
23 | 24 | ||
@@ -65,9 +66,8 @@ static const struct platform_suspend_ops kirkwood_suspend_ops = { | |||
65 | .valid = kirkwood_pm_valid_standby, | 66 | .valid = kirkwood_pm_valid_standby, |
66 | }; | 67 | }; |
67 | 68 | ||
68 | int __init kirkwood_pm_init(void) | 69 | void __init kirkwood_pm_init(void) |
69 | { | 70 | { |
70 | ddr_operation_base = ioremap(DDR_OPERATION_BASE, 4); | 71 | ddr_operation_base = ioremap(DDR_OPERATION_BASE, 4); |
71 | suspend_set_ops(&kirkwood_suspend_ops); | 72 | suspend_set_ops(&kirkwood_suspend_ops); |
72 | return 0; | ||
73 | } | 73 | } |
diff --git a/arch/arm/mach-moxart/Kconfig b/arch/arm/mach-moxart/Kconfig index ba470d64493b..3795ae28a613 100644 --- a/arch/arm/mach-moxart/Kconfig +++ b/arch/arm/mach-moxart/Kconfig | |||
@@ -2,7 +2,6 @@ config ARCH_MOXART | |||
2 | bool "MOXA ART SoC" if ARCH_MULTI_V4T | 2 | bool "MOXA ART SoC" if ARCH_MULTI_V4T |
3 | select CPU_FA526 | 3 | select CPU_FA526 |
4 | select ARM_DMA_MEM_BUFFERABLE | 4 | select ARM_DMA_MEM_BUFFERABLE |
5 | select DMA_OF | ||
6 | select USE_OF | 5 | select USE_OF |
7 | select CLKSRC_OF | 6 | select CLKSRC_OF |
8 | select CLKSRC_MMIO | 7 | select CLKSRC_MMIO |
diff --git a/arch/arm/mach-mvebu/mvebu-soc-id.c b/arch/arm/mach-mvebu/mvebu-soc-id.c index fe4fc1cbdfaf..f3b325f6cbd4 100644 --- a/arch/arm/mach-mvebu/mvebu-soc-id.c +++ b/arch/arm/mach-mvebu/mvebu-soc-id.c | |||
@@ -88,7 +88,7 @@ static int __init mvebu_soc_id_init(void) | |||
88 | } | 88 | } |
89 | 89 | ||
90 | pci_base = of_iomap(child, 0); | 90 | pci_base = of_iomap(child, 0); |
91 | if (IS_ERR(pci_base)) { | 91 | if (pci_base == NULL) { |
92 | pr_err("cannot map registers\n"); | 92 | pr_err("cannot map registers\n"); |
93 | ret = -ENOMEM; | 93 | ret = -ENOMEM; |
94 | goto res_ioremap; | 94 | goto res_ioremap; |
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig index 653b489479e0..e2ce4f8366a7 100644 --- a/arch/arm/mach-omap2/Kconfig +++ b/arch/arm/mach-omap2/Kconfig | |||
@@ -54,7 +54,7 @@ config SOC_OMAP5 | |||
54 | select ARM_GIC | 54 | select ARM_GIC |
55 | select CPU_V7 | 55 | select CPU_V7 |
56 | select HAVE_ARM_SCU if SMP | 56 | select HAVE_ARM_SCU if SMP |
57 | select HAVE_ARM_TWD if LOCAL_TIMERS | 57 | select HAVE_ARM_TWD if SMP |
58 | select HAVE_SMP | 58 | select HAVE_SMP |
59 | select HAVE_ARM_ARCH_TIMER | 59 | select HAVE_ARM_ARCH_TIMER |
60 | select ARM_ERRATA_798181 if SMP | 60 | select ARM_ERRATA_798181 if SMP |
diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h index e51527835160..a6aae300542c 100644 --- a/arch/arm/mach-omap2/common.h +++ b/arch/arm/mach-omap2/common.h | |||
@@ -62,11 +62,17 @@ static inline int omap3_pm_init(void) | |||
62 | 62 | ||
63 | #if defined(CONFIG_PM) && defined(CONFIG_ARCH_OMAP4) | 63 | #if defined(CONFIG_PM) && defined(CONFIG_ARCH_OMAP4) |
64 | int omap4_pm_init(void); | 64 | int omap4_pm_init(void); |
65 | int omap4_pm_init_early(void); | ||
65 | #else | 66 | #else |
66 | static inline int omap4_pm_init(void) | 67 | static inline int omap4_pm_init(void) |
67 | { | 68 | { |
68 | return 0; | 69 | return 0; |
69 | } | 70 | } |
71 | |||
72 | static inline int omap4_pm_init_early(void) | ||
73 | { | ||
74 | return 0; | ||
75 | } | ||
70 | #endif | 76 | #endif |
71 | 77 | ||
72 | #ifdef CONFIG_OMAP_MUX | 78 | #ifdef CONFIG_OMAP_MUX |
@@ -236,6 +242,7 @@ static inline void __iomem *omap4_get_scu_base(void) | |||
236 | 242 | ||
237 | extern void __init gic_init_irq(void); | 243 | extern void __init gic_init_irq(void); |
238 | extern void gic_dist_disable(void); | 244 | extern void gic_dist_disable(void); |
245 | extern void gic_dist_enable(void); | ||
239 | extern bool gic_dist_disabled(void); | 246 | extern bool gic_dist_disabled(void); |
240 | extern void gic_timer_retrigger(void); | 247 | extern void gic_timer_retrigger(void); |
241 | extern void omap_smc1(u32 fn, u32 arg); | 248 | extern void omap_smc1(u32 fn, u32 arg); |
diff --git a/arch/arm/mach-omap2/cpuidle44xx.c b/arch/arm/mach-omap2/cpuidle44xx.c index 4c8982ae9529..4c158c838d40 100644 --- a/arch/arm/mach-omap2/cpuidle44xx.c +++ b/arch/arm/mach-omap2/cpuidle44xx.c | |||
@@ -80,6 +80,7 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev, | |||
80 | int index) | 80 | int index) |
81 | { | 81 | { |
82 | struct idle_statedata *cx = state_ptr + index; | 82 | struct idle_statedata *cx = state_ptr + index; |
83 | u32 mpuss_can_lose_context = 0; | ||
83 | 84 | ||
84 | /* | 85 | /* |
85 | * CPU0 has to wait and stay ON until CPU1 is OFF state. | 86 | * CPU0 has to wait and stay ON until CPU1 is OFF state. |
@@ -104,6 +105,9 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev, | |||
104 | } | 105 | } |
105 | } | 106 | } |
106 | 107 | ||
108 | mpuss_can_lose_context = (cx->mpu_state == PWRDM_POWER_RET) && | ||
109 | (cx->mpu_logic_state == PWRDM_POWER_OFF); | ||
110 | |||
107 | /* | 111 | /* |
108 | * Call idle CPU PM enter notifier chain so that | 112 | * Call idle CPU PM enter notifier chain so that |
109 | * VFP and per CPU interrupt context is saved. | 113 | * VFP and per CPU interrupt context is saved. |
@@ -118,9 +122,8 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev, | |||
118 | * Call idle CPU cluster PM enter notifier chain | 122 | * Call idle CPU cluster PM enter notifier chain |
119 | * to save GIC and wakeupgen context. | 123 | * to save GIC and wakeupgen context. |
120 | */ | 124 | */ |
121 | if ((cx->mpu_state == PWRDM_POWER_RET) && | 125 | if (mpuss_can_lose_context) |
122 | (cx->mpu_logic_state == PWRDM_POWER_OFF)) | 126 | cpu_cluster_pm_enter(); |
123 | cpu_cluster_pm_enter(); | ||
124 | } | 127 | } |
125 | 128 | ||
126 | omap4_enter_lowpower(dev->cpu, cx->cpu_state); | 129 | omap4_enter_lowpower(dev->cpu, cx->cpu_state); |
@@ -128,9 +131,23 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev, | |||
128 | 131 | ||
129 | /* Wakeup CPU1 only if it is not offlined */ | 132 | /* Wakeup CPU1 only if it is not offlined */ |
130 | if (dev->cpu == 0 && cpumask_test_cpu(1, cpu_online_mask)) { | 133 | if (dev->cpu == 0 && cpumask_test_cpu(1, cpu_online_mask)) { |
134 | |||
135 | if (IS_PM44XX_ERRATUM(PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD) && | ||
136 | mpuss_can_lose_context) | ||
137 | gic_dist_disable(); | ||
138 | |||
131 | clkdm_wakeup(cpu_clkdm[1]); | 139 | clkdm_wakeup(cpu_clkdm[1]); |
132 | omap_set_pwrdm_state(cpu_pd[1], PWRDM_POWER_ON); | 140 | omap_set_pwrdm_state(cpu_pd[1], PWRDM_POWER_ON); |
133 | clkdm_allow_idle(cpu_clkdm[1]); | 141 | clkdm_allow_idle(cpu_clkdm[1]); |
142 | |||
143 | if (IS_PM44XX_ERRATUM(PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD) && | ||
144 | mpuss_can_lose_context) { | ||
145 | while (gic_dist_disabled()) { | ||
146 | udelay(1); | ||
147 | cpu_relax(); | ||
148 | } | ||
149 | gic_timer_retrigger(); | ||
150 | } | ||
134 | } | 151 | } |
135 | 152 | ||
136 | /* | 153 | /* |
@@ -143,8 +160,7 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev, | |||
143 | * Call idle CPU cluster PM exit notifier chain | 160 | * Call idle CPU cluster PM exit notifier chain |
144 | * to restore GIC and wakeupgen context. | 161 | * to restore GIC and wakeupgen context. |
145 | */ | 162 | */ |
146 | if (dev->cpu == 0 && (cx->mpu_state == PWRDM_POWER_RET) && | 163 | if (dev->cpu == 0 && mpuss_can_lose_context) |
147 | (cx->mpu_logic_state == PWRDM_POWER_OFF)) | ||
148 | cpu_cluster_pm_exit(); | 164 | cpu_cluster_pm_exit(); |
149 | 165 | ||
150 | fail: | 166 | fail: |
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c index 47381fd8746f..d408b15b4fbf 100644 --- a/arch/arm/mach-omap2/io.c +++ b/arch/arm/mach-omap2/io.c | |||
@@ -641,6 +641,7 @@ void __init omap4430_init_early(void) | |||
641 | omap_cm_base_init(); | 641 | omap_cm_base_init(); |
642 | omap4xxx_check_revision(); | 642 | omap4xxx_check_revision(); |
643 | omap4xxx_check_features(); | 643 | omap4xxx_check_features(); |
644 | omap4_pm_init_early(); | ||
644 | omap44xx_prm_init(); | 645 | omap44xx_prm_init(); |
645 | omap44xx_voltagedomains_init(); | 646 | omap44xx_voltagedomains_init(); |
646 | omap44xx_powerdomains_init(); | 647 | omap44xx_powerdomains_init(); |
diff --git a/arch/arm/mach-omap2/omap-mpuss-lowpower.c b/arch/arm/mach-omap2/omap-mpuss-lowpower.c index f991016e2a6a..667915d236f3 100644 --- a/arch/arm/mach-omap2/omap-mpuss-lowpower.c +++ b/arch/arm/mach-omap2/omap-mpuss-lowpower.c | |||
@@ -271,6 +271,9 @@ int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state) | |||
271 | else | 271 | else |
272 | omap_pm_ops.finish_suspend(save_state); | 272 | omap_pm_ops.finish_suspend(save_state); |
273 | 273 | ||
274 | if (IS_PM44XX_ERRATUM(PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD) && cpu) | ||
275 | gic_dist_enable(); | ||
276 | |||
274 | /* | 277 | /* |
275 | * Restore the CPUx power state to ON otherwise CPUx | 278 | * Restore the CPUx power state to ON otherwise CPUx |
276 | * power domain can transitions to programmed low power | 279 | * power domain can transitions to programmed low power |
diff --git a/arch/arm/mach-omap2/omap-smp.c b/arch/arm/mach-omap2/omap-smp.c index 75e95d4fb448..17550aa39d0f 100644 --- a/arch/arm/mach-omap2/omap-smp.c +++ b/arch/arm/mach-omap2/omap-smp.c | |||
@@ -39,8 +39,6 @@ | |||
39 | 39 | ||
40 | #define OMAP5_CORE_COUNT 0x2 | 40 | #define OMAP5_CORE_COUNT 0x2 |
41 | 41 | ||
42 | u16 pm44xx_errata; | ||
43 | |||
44 | /* SCU base address */ | 42 | /* SCU base address */ |
45 | static void __iomem *scu_base; | 43 | static void __iomem *scu_base; |
46 | 44 | ||
@@ -217,10 +215,8 @@ static void __init omap4_smp_prepare_cpus(unsigned int max_cpus) | |||
217 | if (scu_base) | 215 | if (scu_base) |
218 | scu_enable(scu_base); | 216 | scu_enable(scu_base); |
219 | 217 | ||
220 | if (cpu_is_omap446x()) { | 218 | if (cpu_is_omap446x()) |
221 | startup_addr = omap4460_secondary_startup; | 219 | startup_addr = omap4460_secondary_startup; |
222 | pm44xx_errata |= PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD; | ||
223 | } | ||
224 | 220 | ||
225 | /* | 221 | /* |
226 | * Write the address of secondary startup routine into the | 222 | * Write the address of secondary startup routine into the |
diff --git a/arch/arm/mach-omap2/omap4-common.c b/arch/arm/mach-omap2/omap4-common.c index dd893ec4c8f2..6cd3f3772ecf 100644 --- a/arch/arm/mach-omap2/omap4-common.c +++ b/arch/arm/mach-omap2/omap4-common.c | |||
@@ -127,6 +127,12 @@ void gic_dist_disable(void) | |||
127 | __raw_writel(0x0, gic_dist_base_addr + GIC_DIST_CTRL); | 127 | __raw_writel(0x0, gic_dist_base_addr + GIC_DIST_CTRL); |
128 | } | 128 | } |
129 | 129 | ||
130 | void gic_dist_enable(void) | ||
131 | { | ||
132 | if (gic_dist_base_addr) | ||
133 | __raw_writel(0x1, gic_dist_base_addr + GIC_DIST_CTRL); | ||
134 | } | ||
135 | |||
130 | bool gic_dist_disabled(void) | 136 | bool gic_dist_disabled(void) |
131 | { | 137 | { |
132 | return !(__raw_readl(gic_dist_base_addr + GIC_DIST_CTRL) & 0x1); | 138 | return !(__raw_readl(gic_dist_base_addr + GIC_DIST_CTRL) & 0x1); |
diff --git a/arch/arm/mach-omap2/pm44xx.c b/arch/arm/mach-omap2/pm44xx.c index 82f0698933d8..eefb30cfcabd 100644 --- a/arch/arm/mach-omap2/pm44xx.c +++ b/arch/arm/mach-omap2/pm44xx.c | |||
@@ -24,6 +24,8 @@ | |||
24 | #include "powerdomain.h" | 24 | #include "powerdomain.h" |
25 | #include "pm.h" | 25 | #include "pm.h" |
26 | 26 | ||
27 | u16 pm44xx_errata; | ||
28 | |||
27 | struct power_state { | 29 | struct power_state { |
28 | struct powerdomain *pwrdm; | 30 | struct powerdomain *pwrdm; |
29 | u32 next_state; | 31 | u32 next_state; |
@@ -199,6 +201,19 @@ static inline int omap4_init_static_deps(void) | |||
199 | } | 201 | } |
200 | 202 | ||
201 | /** | 203 | /** |
204 | * omap4_pm_init_early - Does early initialization necessary for OMAP4+ devices | ||
205 | * | ||
206 | * Initializes basic stuff for power management functionality. | ||
207 | */ | ||
208 | int __init omap4_pm_init_early(void) | ||
209 | { | ||
210 | if (cpu_is_omap446x()) | ||
211 | pm44xx_errata |= PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD; | ||
212 | |||
213 | return 0; | ||
214 | } | ||
215 | |||
216 | /** | ||
202 | * omap4_pm_init - Init routine for OMAP4+ devices | 217 | * omap4_pm_init - Init routine for OMAP4+ devices |
203 | * | 218 | * |
204 | * Initializes all powerdomain and clockdomain target states | 219 | * Initializes all powerdomain and clockdomain target states |
diff --git a/arch/arm/mach-pxa/am300epd.c b/arch/arm/mach-pxa/am300epd.c index c9f309ae88c5..8b90c4f2d430 100644 --- a/arch/arm/mach-pxa/am300epd.c +++ b/arch/arm/mach-pxa/am300epd.c | |||
@@ -30,6 +30,7 @@ | |||
30 | 30 | ||
31 | #include <mach/gumstix.h> | 31 | #include <mach/gumstix.h> |
32 | #include <mach/mfp-pxa25x.h> | 32 | #include <mach/mfp-pxa25x.h> |
33 | #include <mach/irqs.h> | ||
33 | #include <linux/platform_data/video-pxafb.h> | 34 | #include <linux/platform_data/video-pxafb.h> |
34 | 35 | ||
35 | #include "generic.h" | 36 | #include "generic.h" |
diff --git a/arch/arm/mach-pxa/include/mach/balloon3.h b/arch/arm/mach-pxa/include/mach/balloon3.h index 954641e6c8b1..1b0825911e62 100644 --- a/arch/arm/mach-pxa/include/mach/balloon3.h +++ b/arch/arm/mach-pxa/include/mach/balloon3.h | |||
@@ -14,6 +14,8 @@ | |||
14 | #ifndef ASM_ARCH_BALLOON3_H | 14 | #ifndef ASM_ARCH_BALLOON3_H |
15 | #define ASM_ARCH_BALLOON3_H | 15 | #define ASM_ARCH_BALLOON3_H |
16 | 16 | ||
17 | #include "irqs.h" /* PXA_NR_BUILTIN_GPIO */ | ||
18 | |||
17 | enum balloon3_features { | 19 | enum balloon3_features { |
18 | BALLOON3_FEATURE_OHCI, | 20 | BALLOON3_FEATURE_OHCI, |
19 | BALLOON3_FEATURE_MMC, | 21 | BALLOON3_FEATURE_MMC, |
diff --git a/arch/arm/mach-pxa/include/mach/corgi.h b/arch/arm/mach-pxa/include/mach/corgi.h index f3c3493b468d..c030d955bbd7 100644 --- a/arch/arm/mach-pxa/include/mach/corgi.h +++ b/arch/arm/mach-pxa/include/mach/corgi.h | |||
@@ -13,6 +13,7 @@ | |||
13 | #ifndef __ASM_ARCH_CORGI_H | 13 | #ifndef __ASM_ARCH_CORGI_H |
14 | #define __ASM_ARCH_CORGI_H 1 | 14 | #define __ASM_ARCH_CORGI_H 1 |
15 | 15 | ||
16 | #include "irqs.h" /* PXA_NR_BUILTIN_GPIO */ | ||
16 | 17 | ||
17 | /* | 18 | /* |
18 | * Corgi (Non Standard) GPIO Definitions | 19 | * Corgi (Non Standard) GPIO Definitions |
diff --git a/arch/arm/mach-pxa/include/mach/csb726.h b/arch/arm/mach-pxa/include/mach/csb726.h index 2628e7b72116..00cfbbbf73f7 100644 --- a/arch/arm/mach-pxa/include/mach/csb726.h +++ b/arch/arm/mach-pxa/include/mach/csb726.h | |||
@@ -11,6 +11,8 @@ | |||
11 | #ifndef CSB726_H | 11 | #ifndef CSB726_H |
12 | #define CSB726_H | 12 | #define CSB726_H |
13 | 13 | ||
14 | #include "irqs.h" /* PXA_GPIO_TO_IRQ */ | ||
15 | |||
14 | #define CSB726_GPIO_IRQ_LAN 52 | 16 | #define CSB726_GPIO_IRQ_LAN 52 |
15 | #define CSB726_GPIO_IRQ_SM501 53 | 17 | #define CSB726_GPIO_IRQ_SM501 53 |
16 | #define CSB726_GPIO_MMC_DETECT 100 | 18 | #define CSB726_GPIO_MMC_DETECT 100 |
diff --git a/arch/arm/mach-pxa/include/mach/gumstix.h b/arch/arm/mach-pxa/include/mach/gumstix.h index dba14b6503ad..f7df27bbb42e 100644 --- a/arch/arm/mach-pxa/include/mach/gumstix.h +++ b/arch/arm/mach-pxa/include/mach/gumstix.h | |||
@@ -6,6 +6,7 @@ | |||
6 | * published by the Free Software Foundation. | 6 | * published by the Free Software Foundation. |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include "irqs.h" /* PXA_GPIO_TO_IRQ */ | ||
9 | 10 | ||
10 | /* BTRESET - Reset line to Bluetooth module, active low signal. */ | 11 | /* BTRESET - Reset line to Bluetooth module, active low signal. */ |
11 | #define GPIO_GUMSTIX_BTRESET 7 | 12 | #define GPIO_GUMSTIX_BTRESET 7 |
diff --git a/arch/arm/mach-pxa/include/mach/idp.h b/arch/arm/mach-pxa/include/mach/idp.h index 22a96f87232b..7e63f4680271 100644 --- a/arch/arm/mach-pxa/include/mach/idp.h +++ b/arch/arm/mach-pxa/include/mach/idp.h | |||
@@ -23,6 +23,7 @@ | |||
23 | * IDP hardware. | 23 | * IDP hardware. |
24 | */ | 24 | */ |
25 | 25 | ||
26 | #include "irqs.h" /* PXA_GPIO_TO_IRQ */ | ||
26 | 27 | ||
27 | #define IDP_FLASH_PHYS (PXA_CS0_PHYS) | 28 | #define IDP_FLASH_PHYS (PXA_CS0_PHYS) |
28 | #define IDP_ALT_FLASH_PHYS (PXA_CS1_PHYS) | 29 | #define IDP_ALT_FLASH_PHYS (PXA_CS1_PHYS) |
diff --git a/arch/arm/mach-pxa/include/mach/palmld.h b/arch/arm/mach-pxa/include/mach/palmld.h index 2c4471336570..b184f296023b 100644 --- a/arch/arm/mach-pxa/include/mach/palmld.h +++ b/arch/arm/mach-pxa/include/mach/palmld.h | |||
@@ -13,6 +13,8 @@ | |||
13 | #ifndef _INCLUDE_PALMLD_H_ | 13 | #ifndef _INCLUDE_PALMLD_H_ |
14 | #define _INCLUDE_PALMLD_H_ | 14 | #define _INCLUDE_PALMLD_H_ |
15 | 15 | ||
16 | #include "irqs.h" /* PXA_GPIO_TO_IRQ */ | ||
17 | |||
16 | /** HERE ARE GPIOs **/ | 18 | /** HERE ARE GPIOs **/ |
17 | 19 | ||
18 | /* GPIOs */ | 20 | /* GPIOs */ |
diff --git a/arch/arm/mach-pxa/include/mach/palmt5.h b/arch/arm/mach-pxa/include/mach/palmt5.h index 0bd4f036c72f..e342c5921405 100644 --- a/arch/arm/mach-pxa/include/mach/palmt5.h +++ b/arch/arm/mach-pxa/include/mach/palmt5.h | |||
@@ -15,6 +15,8 @@ | |||
15 | #ifndef _INCLUDE_PALMT5_H_ | 15 | #ifndef _INCLUDE_PALMT5_H_ |
16 | #define _INCLUDE_PALMT5_H_ | 16 | #define _INCLUDE_PALMT5_H_ |
17 | 17 | ||
18 | #include "irqs.h" /* PXA_GPIO_TO_IRQ */ | ||
19 | |||
18 | /** HERE ARE GPIOs **/ | 20 | /** HERE ARE GPIOs **/ |
19 | 21 | ||
20 | /* GPIOs */ | 22 | /* GPIOs */ |
diff --git a/arch/arm/mach-pxa/include/mach/palmtc.h b/arch/arm/mach-pxa/include/mach/palmtc.h index c383a21680b6..81c727b3cfd2 100644 --- a/arch/arm/mach-pxa/include/mach/palmtc.h +++ b/arch/arm/mach-pxa/include/mach/palmtc.h | |||
@@ -16,6 +16,8 @@ | |||
16 | #ifndef _INCLUDE_PALMTC_H_ | 16 | #ifndef _INCLUDE_PALMTC_H_ |
17 | #define _INCLUDE_PALMTC_H_ | 17 | #define _INCLUDE_PALMTC_H_ |
18 | 18 | ||
19 | #include "irqs.h" /* PXA_GPIO_TO_IRQ */ | ||
20 | |||
19 | /** HERE ARE GPIOs **/ | 21 | /** HERE ARE GPIOs **/ |
20 | 22 | ||
21 | /* GPIOs */ | 23 | /* GPIOs */ |
diff --git a/arch/arm/mach-pxa/include/mach/palmtx.h b/arch/arm/mach-pxa/include/mach/palmtx.h index f2e530380253..92bc1f05300d 100644 --- a/arch/arm/mach-pxa/include/mach/palmtx.h +++ b/arch/arm/mach-pxa/include/mach/palmtx.h | |||
@@ -16,6 +16,8 @@ | |||
16 | #ifndef _INCLUDE_PALMTX_H_ | 16 | #ifndef _INCLUDE_PALMTX_H_ |
17 | #define _INCLUDE_PALMTX_H_ | 17 | #define _INCLUDE_PALMTX_H_ |
18 | 18 | ||
19 | #include "irqs.h" /* PXA_GPIO_TO_IRQ */ | ||
20 | |||
19 | /** HERE ARE GPIOs **/ | 21 | /** HERE ARE GPIOs **/ |
20 | 22 | ||
21 | /* GPIOs */ | 23 | /* GPIOs */ |
diff --git a/arch/arm/mach-pxa/include/mach/pcm027.h b/arch/arm/mach-pxa/include/mach/pcm027.h index 6bf28de228bd..86ebd7b6c960 100644 --- a/arch/arm/mach-pxa/include/mach/pcm027.h +++ b/arch/arm/mach-pxa/include/mach/pcm027.h | |||
@@ -23,6 +23,8 @@ | |||
23 | * Definitions of CPU card resources only | 23 | * Definitions of CPU card resources only |
24 | */ | 24 | */ |
25 | 25 | ||
26 | #include "irqs.h" /* PXA_GPIO_TO_IRQ */ | ||
27 | |||
26 | /* phyCORE-PXA270 (PCM027) Interrupts */ | 28 | /* phyCORE-PXA270 (PCM027) Interrupts */ |
27 | #define PCM027_IRQ(x) (IRQ_BOARD_START + (x)) | 29 | #define PCM027_IRQ(x) (IRQ_BOARD_START + (x)) |
28 | #define PCM027_BTDET_IRQ PCM027_IRQ(0) | 30 | #define PCM027_BTDET_IRQ PCM027_IRQ(0) |
diff --git a/arch/arm/mach-pxa/include/mach/pcm990_baseboard.h b/arch/arm/mach-pxa/include/mach/pcm990_baseboard.h index 0260aaa2fc17..7e544c14967e 100644 --- a/arch/arm/mach-pxa/include/mach/pcm990_baseboard.h +++ b/arch/arm/mach-pxa/include/mach/pcm990_baseboard.h | |||
@@ -20,6 +20,7 @@ | |||
20 | */ | 20 | */ |
21 | 21 | ||
22 | #include <mach/pcm027.h> | 22 | #include <mach/pcm027.h> |
23 | #include "irqs.h" /* PXA_GPIO_TO_IRQ */ | ||
23 | 24 | ||
24 | /* | 25 | /* |
25 | * definitions relevant only when the PCM-990 | 26 | * definitions relevant only when the PCM-990 |
diff --git a/arch/arm/mach-pxa/include/mach/poodle.h b/arch/arm/mach-pxa/include/mach/poodle.h index f32ff75dcca8..b56b19351a03 100644 --- a/arch/arm/mach-pxa/include/mach/poodle.h +++ b/arch/arm/mach-pxa/include/mach/poodle.h | |||
@@ -15,6 +15,8 @@ | |||
15 | #ifndef __ASM_ARCH_POODLE_H | 15 | #ifndef __ASM_ARCH_POODLE_H |
16 | #define __ASM_ARCH_POODLE_H 1 | 16 | #define __ASM_ARCH_POODLE_H 1 |
17 | 17 | ||
18 | #include "irqs.h" /* PXA_GPIO_TO_IRQ */ | ||
19 | |||
18 | /* | 20 | /* |
19 | * GPIOs | 21 | * GPIOs |
20 | */ | 22 | */ |
diff --git a/arch/arm/mach-pxa/include/mach/spitz.h b/arch/arm/mach-pxa/include/mach/spitz.h index 0bfe6507c95d..25c9f62e46aa 100644 --- a/arch/arm/mach-pxa/include/mach/spitz.h +++ b/arch/arm/mach-pxa/include/mach/spitz.h | |||
@@ -15,8 +15,8 @@ | |||
15 | #define __ASM_ARCH_SPITZ_H 1 | 15 | #define __ASM_ARCH_SPITZ_H 1 |
16 | #endif | 16 | #endif |
17 | 17 | ||
18 | #include "irqs.h" /* PXA_NR_BUILTIN_GPIO, PXA_GPIO_TO_IRQ */ | ||
18 | #include <linux/fb.h> | 19 | #include <linux/fb.h> |
19 | #include <linux/gpio.h> | ||
20 | 20 | ||
21 | /* Spitz/Akita GPIOs */ | 21 | /* Spitz/Akita GPIOs */ |
22 | 22 | ||
diff --git a/arch/arm/mach-pxa/include/mach/tosa.h b/arch/arm/mach-pxa/include/mach/tosa.h index 2bb0e862598c..0497d95cef25 100644 --- a/arch/arm/mach-pxa/include/mach/tosa.h +++ b/arch/arm/mach-pxa/include/mach/tosa.h | |||
@@ -13,6 +13,8 @@ | |||
13 | #ifndef _ASM_ARCH_TOSA_H_ | 13 | #ifndef _ASM_ARCH_TOSA_H_ |
14 | #define _ASM_ARCH_TOSA_H_ 1 | 14 | #define _ASM_ARCH_TOSA_H_ 1 |
15 | 15 | ||
16 | #include "irqs.h" /* PXA_NR_BUILTIN_GPIO */ | ||
17 | |||
16 | /* TOSA Chip selects */ | 18 | /* TOSA Chip selects */ |
17 | #define TOSA_LCDC_PHYS PXA_CS4_PHYS | 19 | #define TOSA_LCDC_PHYS PXA_CS4_PHYS |
18 | /* Internel Scoop */ | 20 | /* Internel Scoop */ |
diff --git a/arch/arm/mach-pxa/include/mach/trizeps4.h b/arch/arm/mach-pxa/include/mach/trizeps4.h index d2ca01053f69..ae3ca013afab 100644 --- a/arch/arm/mach-pxa/include/mach/trizeps4.h +++ b/arch/arm/mach-pxa/include/mach/trizeps4.h | |||
@@ -10,6 +10,8 @@ | |||
10 | #ifndef _TRIPEPS4_H_ | 10 | #ifndef _TRIPEPS4_H_ |
11 | #define _TRIPEPS4_H_ | 11 | #define _TRIPEPS4_H_ |
12 | 12 | ||
13 | #include "irqs.h" /* PXA_GPIO_TO_IRQ */ | ||
14 | |||
13 | /* physical memory regions */ | 15 | /* physical memory regions */ |
14 | #define TRIZEPS4_FLASH_PHYS (PXA_CS0_PHYS) /* Flash region */ | 16 | #define TRIZEPS4_FLASH_PHYS (PXA_CS0_PHYS) /* Flash region */ |
15 | #define TRIZEPS4_DISK_PHYS (PXA_CS1_PHYS) /* Disk On Chip region */ | 17 | #define TRIZEPS4_DISK_PHYS (PXA_CS1_PHYS) /* Disk On Chip region */ |
diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig index 338640631e08..05fa505df585 100644 --- a/arch/arm/mach-shmobile/Kconfig +++ b/arch/arm/mach-shmobile/Kconfig | |||
@@ -8,7 +8,7 @@ config ARCH_SHMOBILE_MULTI | |||
8 | select CPU_V7 | 8 | select CPU_V7 |
9 | select GENERIC_CLOCKEVENTS | 9 | select GENERIC_CLOCKEVENTS |
10 | select HAVE_ARM_SCU if SMP | 10 | select HAVE_ARM_SCU if SMP |
11 | select HAVE_ARM_TWD if LOCAL_TIMERS | 11 | select HAVE_ARM_TWD if SMP |
12 | select HAVE_SMP | 12 | select HAVE_SMP |
13 | select ARM_GIC | 13 | select ARM_GIC |
14 | select MIGHT_HAVE_CACHE_L2X0 | 14 | select MIGHT_HAVE_CACHE_L2X0 |
diff --git a/arch/arm/mach-tegra/pm.c b/arch/arm/mach-tegra/pm.c index 4ae0286b468d..f55b05a29b55 100644 --- a/arch/arm/mach-tegra/pm.c +++ b/arch/arm/mach-tegra/pm.c | |||
@@ -24,6 +24,7 @@ | |||
24 | #include <linux/cpu_pm.h> | 24 | #include <linux/cpu_pm.h> |
25 | #include <linux/suspend.h> | 25 | #include <linux/suspend.h> |
26 | #include <linux/err.h> | 26 | #include <linux/err.h> |
27 | #include <linux/slab.h> | ||
27 | #include <linux/clk/tegra.h> | 28 | #include <linux/clk/tegra.h> |
28 | 29 | ||
29 | #include <asm/smp_plat.h> | 30 | #include <asm/smp_plat.h> |
diff --git a/arch/arm/mach-zynq/common.c b/arch/arm/mach-zynq/common.c index 1db2a5ca9ab8..8c09a8393fb6 100644 --- a/arch/arm/mach-zynq/common.c +++ b/arch/arm/mach-zynq/common.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <linux/of_irq.h> | 25 | #include <linux/of_irq.h> |
26 | #include <linux/of_platform.h> | 26 | #include <linux/of_platform.h> |
27 | #include <linux/of.h> | 27 | #include <linux/of.h> |
28 | #include <linux/memblock.h> | ||
28 | #include <linux/irqchip.h> | 29 | #include <linux/irqchip.h> |
29 | #include <linux/irqchip/arm-gic.h> | 30 | #include <linux/irqchip/arm-gic.h> |
30 | 31 | ||
@@ -41,6 +42,18 @@ | |||
41 | 42 | ||
42 | void __iomem *zynq_scu_base; | 43 | void __iomem *zynq_scu_base; |
43 | 44 | ||
45 | /** | ||
46 | * zynq_memory_init - Initialize special memory | ||
47 | * | ||
48 | * We need to stop things allocating the low memory as DMA can't work in | ||
49 | * the 1st 512K of memory. | ||
50 | */ | ||
51 | static void __init zynq_memory_init(void) | ||
52 | { | ||
53 | if (!__pa(PAGE_OFFSET)) | ||
54 | memblock_reserve(__pa(PAGE_OFFSET), __pa(swapper_pg_dir)); | ||
55 | } | ||
56 | |||
44 | static struct platform_device zynq_cpuidle_device = { | 57 | static struct platform_device zynq_cpuidle_device = { |
45 | .name = "cpuidle-zynq", | 58 | .name = "cpuidle-zynq", |
46 | }; | 59 | }; |
@@ -117,5 +130,6 @@ DT_MACHINE_START(XILINX_EP107, "Xilinx Zynq Platform") | |||
117 | .init_machine = zynq_init_machine, | 130 | .init_machine = zynq_init_machine, |
118 | .init_time = zynq_timer_init, | 131 | .init_time = zynq_timer_init, |
119 | .dt_compat = zynq_dt_match, | 132 | .dt_compat = zynq_dt_match, |
133 | .reserve = zynq_memory_init, | ||
120 | .restart = zynq_system_reset, | 134 | .restart = zynq_system_reset, |
121 | MACHINE_END | 135 | MACHINE_END |
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c index 1a77450e728a..11b3914660d2 100644 --- a/arch/arm/mm/dma-mapping.c +++ b/arch/arm/mm/dma-mapping.c | |||
@@ -1358,7 +1358,7 @@ static void *arm_iommu_alloc_attrs(struct device *dev, size_t size, | |||
1358 | *handle = DMA_ERROR_CODE; | 1358 | *handle = DMA_ERROR_CODE; |
1359 | size = PAGE_ALIGN(size); | 1359 | size = PAGE_ALIGN(size); |
1360 | 1360 | ||
1361 | if (gfp & GFP_ATOMIC) | 1361 | if (!(gfp & __GFP_WAIT)) |
1362 | return __iommu_alloc_atomic(dev, size, handle); | 1362 | return __iommu_alloc_atomic(dev, size, handle); |
1363 | 1363 | ||
1364 | /* | 1364 | /* |
diff --git a/arch/arm/mm/mm.h b/arch/arm/mm/mm.h index d5a982d15a88..7ea641b7aa7d 100644 --- a/arch/arm/mm/mm.h +++ b/arch/arm/mm/mm.h | |||
@@ -38,6 +38,7 @@ static inline pmd_t *pmd_off_k(unsigned long virt) | |||
38 | 38 | ||
39 | struct mem_type { | 39 | struct mem_type { |
40 | pteval_t prot_pte; | 40 | pteval_t prot_pte; |
41 | pteval_t prot_pte_s2; | ||
41 | pmdval_t prot_l1; | 42 | pmdval_t prot_l1; |
42 | pmdval_t prot_sect; | 43 | pmdval_t prot_sect; |
43 | unsigned int domain; | 44 | unsigned int domain; |
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c index 4f08c133cc25..a623cb3ad012 100644 --- a/arch/arm/mm/mmu.c +++ b/arch/arm/mm/mmu.c | |||
@@ -232,12 +232,16 @@ __setup("noalign", noalign_setup); | |||
232 | #endif /* ifdef CONFIG_CPU_CP15 / else */ | 232 | #endif /* ifdef CONFIG_CPU_CP15 / else */ |
233 | 233 | ||
234 | #define PROT_PTE_DEVICE L_PTE_PRESENT|L_PTE_YOUNG|L_PTE_DIRTY|L_PTE_XN | 234 | #define PROT_PTE_DEVICE L_PTE_PRESENT|L_PTE_YOUNG|L_PTE_DIRTY|L_PTE_XN |
235 | #define PROT_PTE_S2_DEVICE PROT_PTE_DEVICE | ||
235 | #define PROT_SECT_DEVICE PMD_TYPE_SECT|PMD_SECT_AP_WRITE | 236 | #define PROT_SECT_DEVICE PMD_TYPE_SECT|PMD_SECT_AP_WRITE |
236 | 237 | ||
237 | static struct mem_type mem_types[] = { | 238 | static struct mem_type mem_types[] = { |
238 | [MT_DEVICE] = { /* Strongly ordered / ARMv6 shared device */ | 239 | [MT_DEVICE] = { /* Strongly ordered / ARMv6 shared device */ |
239 | .prot_pte = PROT_PTE_DEVICE | L_PTE_MT_DEV_SHARED | | 240 | .prot_pte = PROT_PTE_DEVICE | L_PTE_MT_DEV_SHARED | |
240 | L_PTE_SHARED, | 241 | L_PTE_SHARED, |
242 | .prot_pte_s2 = s2_policy(PROT_PTE_S2_DEVICE) | | ||
243 | s2_policy(L_PTE_S2_MT_DEV_SHARED) | | ||
244 | L_PTE_SHARED, | ||
241 | .prot_l1 = PMD_TYPE_TABLE, | 245 | .prot_l1 = PMD_TYPE_TABLE, |
242 | .prot_sect = PROT_SECT_DEVICE | PMD_SECT_S, | 246 | .prot_sect = PROT_SECT_DEVICE | PMD_SECT_S, |
243 | .domain = DOMAIN_IO, | 247 | .domain = DOMAIN_IO, |
@@ -508,7 +512,8 @@ static void __init build_mem_type_table(void) | |||
508 | cp = &cache_policies[cachepolicy]; | 512 | cp = &cache_policies[cachepolicy]; |
509 | vecs_pgprot = kern_pgprot = user_pgprot = cp->pte; | 513 | vecs_pgprot = kern_pgprot = user_pgprot = cp->pte; |
510 | s2_pgprot = cp->pte_s2; | 514 | s2_pgprot = cp->pte_s2; |
511 | hyp_device_pgprot = s2_device_pgprot = mem_types[MT_DEVICE].prot_pte; | 515 | hyp_device_pgprot = mem_types[MT_DEVICE].prot_pte; |
516 | s2_device_pgprot = mem_types[MT_DEVICE].prot_pte_s2; | ||
512 | 517 | ||
513 | /* | 518 | /* |
514 | * ARMv6 and above have extended page tables. | 519 | * ARMv6 and above have extended page tables. |
diff --git a/arch/arm/mm/proc-v6.S b/arch/arm/mm/proc-v6.S index 45dc29f85d56..32b3558321c4 100644 --- a/arch/arm/mm/proc-v6.S +++ b/arch/arm/mm/proc-v6.S | |||
@@ -208,7 +208,6 @@ __v6_setup: | |||
208 | mcr p15, 0, r0, c7, c14, 0 @ clean+invalidate D cache | 208 | mcr p15, 0, r0, c7, c14, 0 @ clean+invalidate D cache |
209 | mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache | 209 | mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache |
210 | mcr p15, 0, r0, c7, c15, 0 @ clean+invalidate cache | 210 | mcr p15, 0, r0, c7, c15, 0 @ clean+invalidate cache |
211 | mcr p15, 0, r0, c7, c10, 4 @ drain write buffer | ||
212 | #ifdef CONFIG_MMU | 211 | #ifdef CONFIG_MMU |
213 | mcr p15, 0, r0, c8, c7, 0 @ invalidate I + D TLBs | 212 | mcr p15, 0, r0, c8, c7, 0 @ invalidate I + D TLBs |
214 | mcr p15, 0, r0, c2, c0, 2 @ TTB control register | 213 | mcr p15, 0, r0, c2, c0, 2 @ TTB control register |
@@ -218,6 +217,8 @@ __v6_setup: | |||
218 | ALT_UP(orr r8, r8, #TTB_FLAGS_UP) | 217 | ALT_UP(orr r8, r8, #TTB_FLAGS_UP) |
219 | mcr p15, 0, r8, c2, c0, 1 @ load TTB1 | 218 | mcr p15, 0, r8, c2, c0, 1 @ load TTB1 |
220 | #endif /* CONFIG_MMU */ | 219 | #endif /* CONFIG_MMU */ |
220 | mcr p15, 0, r0, c7, c10, 4 @ drain write buffer and | ||
221 | @ complete invalidations | ||
221 | adr r5, v6_crval | 222 | adr r5, v6_crval |
222 | ldmia r5, {r5, r6} | 223 | ldmia r5, {r5, r6} |
223 | ARM_BE8(orr r6, r6, #1 << 25) @ big-endian page tables | 224 | ARM_BE8(orr r6, r6, #1 << 25) @ big-endian page tables |
diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S index bd1781979a39..74f6033e76dd 100644 --- a/arch/arm/mm/proc-v7.S +++ b/arch/arm/mm/proc-v7.S | |||
@@ -351,7 +351,6 @@ __v7_setup: | |||
351 | 351 | ||
352 | 4: mov r10, #0 | 352 | 4: mov r10, #0 |
353 | mcr p15, 0, r10, c7, c5, 0 @ I+BTB cache invalidate | 353 | mcr p15, 0, r10, c7, c5, 0 @ I+BTB cache invalidate |
354 | dsb | ||
355 | #ifdef CONFIG_MMU | 354 | #ifdef CONFIG_MMU |
356 | mcr p15, 0, r10, c8, c7, 0 @ invalidate I + D TLBs | 355 | mcr p15, 0, r10, c8, c7, 0 @ invalidate I + D TLBs |
357 | v7_ttb_setup r10, r4, r8, r5 @ TTBCR, TTBRx setup | 356 | v7_ttb_setup r10, r4, r8, r5 @ TTBCR, TTBRx setup |
@@ -360,6 +359,7 @@ __v7_setup: | |||
360 | mcr p15, 0, r5, c10, c2, 0 @ write PRRR | 359 | mcr p15, 0, r5, c10, c2, 0 @ write PRRR |
361 | mcr p15, 0, r6, c10, c2, 1 @ write NMRR | 360 | mcr p15, 0, r6, c10, c2, 1 @ write NMRR |
362 | #endif | 361 | #endif |
362 | dsb @ Complete invalidations | ||
363 | #ifndef CONFIG_ARM_THUMBEE | 363 | #ifndef CONFIG_ARM_THUMBEE |
364 | mrc p15, 0, r0, c0, c1, 0 @ read ID_PFR0 for ThumbEE | 364 | mrc p15, 0, r0, c0, c1, 0 @ read ID_PFR0 for ThumbEE |
365 | and r0, r0, #(0xf << 12) @ ThumbEE enabled field | 365 | and r0, r0, #(0xf << 12) @ ThumbEE enabled field |
diff --git a/arch/arm/plat-orion/irq.c b/arch/arm/plat-orion/irq.c index c492e1b3dfdb..807df142444b 100644 --- a/arch/arm/plat-orion/irq.c +++ b/arch/arm/plat-orion/irq.c | |||
@@ -15,8 +15,51 @@ | |||
15 | #include <linux/io.h> | 15 | #include <linux/io.h> |
16 | #include <linux/of_address.h> | 16 | #include <linux/of_address.h> |
17 | #include <linux/of_irq.h> | 17 | #include <linux/of_irq.h> |
18 | #include <asm/exception.h> | ||
18 | #include <plat/irq.h> | 19 | #include <plat/irq.h> |
19 | #include <plat/orion-gpio.h> | 20 | #include <plat/orion-gpio.h> |
21 | #include <mach/bridge-regs.h> | ||
22 | |||
23 | #ifdef CONFIG_MULTI_IRQ_HANDLER | ||
24 | /* | ||
25 | * Compiling with both non-DT and DT support enabled, will | ||
26 | * break asm irq handler used by non-DT boards. Therefore, | ||
27 | * we provide a C-style irq handler even for non-DT boards, | ||
28 | * if MULTI_IRQ_HANDLER is set. | ||
29 | * | ||
30 | * Notes: | ||
31 | * - this is prepared for Kirkwood and Dove only, update | ||
32 | * accordingly if you add Orion5x or MV78x00. | ||
33 | * - Orion5x uses different macro names and has only one | ||
34 | * set of CAUSE/MASK registers. | ||
35 | * - MV78x00 uses the same macro names but has a third | ||
36 | * set of CAUSE/MASK registers. | ||
37 | * | ||
38 | */ | ||
39 | |||
40 | static void __iomem *orion_irq_base = IRQ_VIRT_BASE; | ||
41 | |||
42 | asmlinkage void | ||
43 | __exception_irq_entry orion_legacy_handle_irq(struct pt_regs *regs) | ||
44 | { | ||
45 | u32 stat; | ||
46 | |||
47 | stat = readl_relaxed(orion_irq_base + IRQ_CAUSE_LOW_OFF); | ||
48 | stat &= readl_relaxed(orion_irq_base + IRQ_MASK_LOW_OFF); | ||
49 | if (stat) { | ||
50 | unsigned int hwirq = __fls(stat); | ||
51 | handle_IRQ(hwirq, regs); | ||
52 | return; | ||
53 | } | ||
54 | stat = readl_relaxed(orion_irq_base + IRQ_CAUSE_HIGH_OFF); | ||
55 | stat &= readl_relaxed(orion_irq_base + IRQ_MASK_HIGH_OFF); | ||
56 | if (stat) { | ||
57 | unsigned int hwirq = 32 + __fls(stat); | ||
58 | handle_IRQ(hwirq, regs); | ||
59 | return; | ||
60 | } | ||
61 | } | ||
62 | #endif | ||
20 | 63 | ||
21 | void __init orion_irq_init(unsigned int irq_start, void __iomem *maskaddr) | 64 | void __init orion_irq_init(unsigned int irq_start, void __iomem *maskaddr) |
22 | { | 65 | { |
@@ -35,6 +78,10 @@ void __init orion_irq_init(unsigned int irq_start, void __iomem *maskaddr) | |||
35 | ct->chip.irq_unmask = irq_gc_mask_set_bit; | 78 | ct->chip.irq_unmask = irq_gc_mask_set_bit; |
36 | irq_setup_generic_chip(gc, IRQ_MSK(32), IRQ_GC_INIT_MASK_CACHE, | 79 | irq_setup_generic_chip(gc, IRQ_MSK(32), IRQ_GC_INIT_MASK_CACHE, |
37 | IRQ_NOREQUEST, IRQ_LEVEL | IRQ_NOPROBE); | 80 | IRQ_NOREQUEST, IRQ_LEVEL | IRQ_NOPROBE); |
81 | |||
82 | #ifdef CONFIG_MULTI_IRQ_HANDLER | ||
83 | set_handle_irq(orion_legacy_handle_irq); | ||
84 | #endif | ||
38 | } | 85 | } |
39 | 86 | ||
40 | #ifdef CONFIG_OF | 87 | #ifdef CONFIG_OF |