aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/Kconfig1
-rw-r--r--arch/arm/boot/dts/am33xx.dtsi12
-rw-r--r--arch/arm/boot/dts/cros5250-common.dtsi8
-rw-r--r--arch/arm/boot/dts/exynos5250-smdk5250.dts2
-rw-r--r--arch/arm/boot/dts/exynos5250-snow.dts2
-rw-r--r--arch/arm/boot/dts/omap3-beagle-xm.dts1
-rw-r--r--arch/arm/boot/dts/omap3-evm.dts1
-rw-r--r--arch/arm/boot/dts/omap3-overo.dtsi1
-rw-r--r--arch/arm/boot/dts/omap3.dtsi1
-rw-r--r--arch/arm/boot/dts/omap36xx.dtsi6
-rw-r--r--arch/arm/boot/dts/omap4-sdp.dts14
-rw-r--r--arch/arm/boot/dts/omap4-var-som.dts2
-rw-r--r--arch/arm/boot/dts/omap4460.dtsi6
-rw-r--r--arch/arm/configs/omap2plus_defconfig4
-rw-r--r--arch/arm/kernel/devtree.c7
-rw-r--r--arch/arm/kernel/setup.c13
-rw-r--r--arch/arm/mach-exynos/include/mach/regs-pmu.h1
-rw-r--r--arch/arm/mach-exynos/pmu.c5
-rw-r--r--arch/arm/mach-imx/Kconfig5
-rw-r--r--arch/arm/mach-imx/Makefile1
-rw-r--r--arch/arm/mach-imx/common.h1
-rw-r--r--arch/arm/mach-imx/headsmp.S2
-rw-r--r--arch/arm/mach-imx/hotplug.c2
-rw-r--r--arch/arm/mach-imx/iram_alloc.c73
-rw-r--r--arch/arm/mach-omap1/dma.c8
-rw-r--r--arch/arm/mach-omap2/Kconfig2
-rw-r--r--arch/arm/mach-omap2/Makefile8
-rw-r--r--arch/arm/mach-omap2/board-omap3beagle.c6
-rw-r--r--arch/arm/mach-omap2/board-rx51-peripherals.c4
-rw-r--r--arch/arm/mach-omap2/gpmc.c38
-rw-r--r--arch/arm/mach-omap2/id.c13
-rw-r--r--arch/arm/mach-omap2/mux34xx.h6
-rw-r--r--arch/arm/mach-omap2/omap_device.c2
-rw-r--r--arch/arm/mach-omap2/soc.h2
-rw-r--r--arch/arm/mach-prima2/Kconfig2
-rw-r--r--arch/arm/mach-spear/spear13xx.c2
-rw-r--r--arch/arm/mach-tegra/Kconfig1
-rw-r--r--arch/arm/mach-ux500/Kconfig2
-rw-r--r--arch/arm/mach-ux500/board-mop500.c4
-rw-r--r--arch/arm/mach-ux500/cpu-db8500.c2
40 files changed, 126 insertions, 147 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 46e2b5228606..d423d58f938d 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -897,7 +897,6 @@ config ARCH_MULTI_V7
897 bool "ARMv7 based platforms (Cortex-A, PJ4, Scorpion, Krait)" 897 bool "ARMv7 based platforms (Cortex-A, PJ4, Scorpion, Krait)"
898 default y 898 default y
899 select ARCH_MULTI_V6_V7 899 select ARCH_MULTI_V6_V7
900 select ARCH_VEXPRESS
901 select CPU_V7 900 select CPU_V7
902 901
903config ARCH_MULTI_V6_V7 902config ARCH_MULTI_V6_V7
diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi
index d1101103aa51..1460d9b88adf 100644
--- a/arch/arm/boot/dts/am33xx.dtsi
+++ b/arch/arm/boot/dts/am33xx.dtsi
@@ -403,5 +403,17 @@
403 0x44d80000 0x2000>; /* M3 DMEM */ 403 0x44d80000 0x2000>; /* M3 DMEM */
404 ti,hwmods = "wkup_m3"; 404 ti,hwmods = "wkup_m3";
405 }; 405 };
406
407 gpmc: gpmc@50000000 {
408 compatible = "ti,am3352-gpmc";
409 ti,hwmods = "gpmc";
410 reg = <0x50000000 0x2000>;
411 interrupts = <100>;
412 num-cs = <7>;
413 num-waitpins = <2>;
414 #address-cells = <2>;
415 #size-cells = <1>;
416 status = "disabled";
417 };
406 }; 418 };
407}; 419};
diff --git a/arch/arm/boot/dts/cros5250-common.dtsi b/arch/arm/boot/dts/cros5250-common.dtsi
index 0a61bbb9102f..3f0239ec1bc5 100644
--- a/arch/arm/boot/dts/cros5250-common.dtsi
+++ b/arch/arm/boot/dts/cros5250-common.dtsi
@@ -175,6 +175,14 @@
175 i2c@12C70000 { 175 i2c@12C70000 {
176 samsung,i2c-sda-delay = <100>; 176 samsung,i2c-sda-delay = <100>;
177 samsung,i2c-max-bus-freq = <378000>; 177 samsung,i2c-max-bus-freq = <378000>;
178
179 trackpad {
180 reg = <0x67>;
181 compatible = "cypress,cyapa";
182 interrupts = <2 0>;
183 interrupt-parent = <&gpx1>;
184 wakeup-source;
185 };
178 }; 186 };
179 187
180 i2c@12C80000 { 188 i2c@12C80000 {
diff --git a/arch/arm/boot/dts/exynos5250-smdk5250.dts b/arch/arm/boot/dts/exynos5250-smdk5250.dts
index 26d856ba50a1..3e0c792e2767 100644
--- a/arch/arm/boot/dts/exynos5250-smdk5250.dts
+++ b/arch/arm/boot/dts/exynos5250-smdk5250.dts
@@ -214,7 +214,7 @@
214 }; 214 };
215 215
216 usb@12110000 { 216 usb@12110000 {
217 samsung,vbus-gpio = <&gpx2 6 1 3 3>; 217 samsung,vbus-gpio = <&gpx2 6 0>;
218 }; 218 };
219 219
220 dp-controller { 220 dp-controller {
diff --git a/arch/arm/boot/dts/exynos5250-snow.dts b/arch/arm/boot/dts/exynos5250-snow.dts
index bf4744bab445..d449feb7e143 100644
--- a/arch/arm/boot/dts/exynos5250-snow.dts
+++ b/arch/arm/boot/dts/exynos5250-snow.dts
@@ -183,7 +183,7 @@
183 }; 183 };
184 184
185 usb@12110000 { 185 usb@12110000 {
186 samsung,vbus-gpio = <&gpx1 1 1 3 3>; 186 samsung,vbus-gpio = <&gpx1 1 0>;
187 }; 187 };
188 188
189 fixed-rate-clocks { 189 fixed-rate-clocks {
diff --git a/arch/arm/boot/dts/omap3-beagle-xm.dts b/arch/arm/boot/dts/omap3-beagle-xm.dts
index 5a31964ae339..3046d1f81be0 100644
--- a/arch/arm/boot/dts/omap3-beagle-xm.dts
+++ b/arch/arm/boot/dts/omap3-beagle-xm.dts
@@ -122,6 +122,7 @@
122 122
123&usb_otg_hs { 123&usb_otg_hs {
124 interface-type = <0>; 124 interface-type = <0>;
125 usb-phy = <&usb2_phy>;
125 mode = <3>; 126 mode = <3>;
126 power = <50>; 127 power = <50>;
127}; 128};
diff --git a/arch/arm/boot/dts/omap3-evm.dts b/arch/arm/boot/dts/omap3-evm.dts
index 05f51e10ddd6..96d1c206a57b 100644
--- a/arch/arm/boot/dts/omap3-evm.dts
+++ b/arch/arm/boot/dts/omap3-evm.dts
@@ -68,6 +68,7 @@
68 68
69&usb_otg_hs { 69&usb_otg_hs {
70 interface-type = <0>; 70 interface-type = <0>;
71 usb-phy = <&usb2_phy>;
71 mode = <3>; 72 mode = <3>;
72 power = <50>; 73 power = <50>;
73}; 74};
diff --git a/arch/arm/boot/dts/omap3-overo.dtsi b/arch/arm/boot/dts/omap3-overo.dtsi
index d4a7280d18b7..a626c50041f6 100644
--- a/arch/arm/boot/dts/omap3-overo.dtsi
+++ b/arch/arm/boot/dts/omap3-overo.dtsi
@@ -73,6 +73,7 @@
73 73
74&usb_otg_hs { 74&usb_otg_hs {
75 interface-type = <0>; 75 interface-type = <0>;
76 usb-phy = <&usb2_phy>;
76 mode = <3>; 77 mode = <3>;
77 power = <50>; 78 power = <50>;
78}; 79};
diff --git a/arch/arm/boot/dts/omap3.dtsi b/arch/arm/boot/dts/omap3.dtsi
index 4ad03d9dbf0c..82a404da1c0d 100644
--- a/arch/arm/boot/dts/omap3.dtsi
+++ b/arch/arm/boot/dts/omap3.dtsi
@@ -519,7 +519,6 @@
519 interrupts = <0 92 0x4>, <0 93 0x4>; 519 interrupts = <0 92 0x4>, <0 93 0x4>;
520 interrupt-names = "mc", "dma"; 520 interrupt-names = "mc", "dma";
521 ti,hwmods = "usb_otg_hs"; 521 ti,hwmods = "usb_otg_hs";
522 usb-phy = <&usb2_phy>;
523 multipoint = <1>; 522 multipoint = <1>;
524 num-eps = <16>; 523 num-eps = <16>;
525 ram-bits = <12>; 524 ram-bits = <12>;
diff --git a/arch/arm/boot/dts/omap36xx.dtsi b/arch/arm/boot/dts/omap36xx.dtsi
index b89233e43b0f..f3447bc1b032 100644
--- a/arch/arm/boot/dts/omap36xx.dtsi
+++ b/arch/arm/boot/dts/omap36xx.dtsi
@@ -20,9 +20,9 @@
20 cpu@0 { 20 cpu@0 {
21 operating-points = < 21 operating-points = <
22 /* kHz uV */ 22 /* kHz uV */
23 300000 975000 23 300000 1012500
24 600000 1075000 24 600000 1200000
25 800000 1200000 25 800000 1325000
26 >; 26 >;
27 clock-latency = <300000>; /* From legacy driver */ 27 clock-latency = <300000>; /* From legacy driver */
28 }; 28 };
diff --git a/arch/arm/boot/dts/omap4-sdp.dts b/arch/arm/boot/dts/omap4-sdp.dts
index c387bdc1b1d1..a35d9cd58063 100644
--- a/arch/arm/boot/dts/omap4-sdp.dts
+++ b/arch/arm/boot/dts/omap4-sdp.dts
@@ -223,6 +223,15 @@
223 >; 223 >;
224 }; 224 };
225 225
226 mcspi1_pins: pinmux_mcspi1_pins {
227 pinctrl-single,pins = <
228 0xf2 0x100 /* mcspi1_clk.mcspi1_clk INPUT | MODE0 */
229 0xf4 0x100 /* mcspi1_somi.mcspi1_somi INPUT | MODE0 */
230 0xf6 0x100 /* mcspi1_simo.mcspi1_simo INPUT | MODE0 */
231 0xf8 0x100 /* mcspi1_cs0.mcspi1_cs0 INPUT | MODE0*/
232 >;
233 };
234
226 dss_hdmi_pins: pinmux_dss_hdmi_pins { 235 dss_hdmi_pins: pinmux_dss_hdmi_pins {
227 pinctrl-single,pins = < 236 pinctrl-single,pins = <
228 0x5a 0x118 /* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */ 237 0x5a 0x118 /* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */
@@ -358,12 +367,15 @@
358}; 367};
359 368
360&mcspi1 { 369&mcspi1 {
370 pinctrl-names = "default";
371 pinctrl-0 = <&mcspi1_pins>;
372
361 eth@0 { 373 eth@0 {
362 compatible = "ks8851"; 374 compatible = "ks8851";
363 spi-max-frequency = <24000000>; 375 spi-max-frequency = <24000000>;
364 reg = <0>; 376 reg = <0>;
365 interrupt-parent = <&gpio2>; 377 interrupt-parent = <&gpio2>;
366 interrupts = <2>; /* gpio line 34 */ 378 interrupts = <2 8>; /* gpio line 34, low triggered */
367 vdd-supply = <&vdd_eth>; 379 vdd-supply = <&vdd_eth>;
368 }; 380 };
369}; 381};
diff --git a/arch/arm/boot/dts/omap4-var-som.dts b/arch/arm/boot/dts/omap4-var-som.dts
index 222a413c2c51..7e04103779c4 100644
--- a/arch/arm/boot/dts/omap4-var-som.dts
+++ b/arch/arm/boot/dts/omap4-var-som.dts
@@ -68,7 +68,7 @@
68 spi-max-frequency = <24000000>; 68 spi-max-frequency = <24000000>;
69 reg = <0>; 69 reg = <0>;
70 interrupt-parent = <&gpio6>; 70 interrupt-parent = <&gpio6>;
71 interrupts = <11>; /* gpio line 171 */ 71 interrupts = <11 8>; /* gpio line 171, low triggered */
72 vdd-supply = <&vdd_eth>; 72 vdd-supply = <&vdd_eth>;
73 }; 73 };
74}; 74};
diff --git a/arch/arm/boot/dts/omap4460.dtsi b/arch/arm/boot/dts/omap4460.dtsi
index 7c2c23cc17ef..2cf227c86099 100644
--- a/arch/arm/boot/dts/omap4460.dtsi
+++ b/arch/arm/boot/dts/omap4460.dtsi
@@ -15,9 +15,9 @@
15 cpu@0 { 15 cpu@0 {
16 operating-points = < 16 operating-points = <
17 /* kHz uV */ 17 /* kHz uV */
18 350000 975000 18 350000 1025000
19 700000 1075000 19 700000 1200000
20 920000 1200000 20 920000 1313000
21 >; 21 >;
22 clock-latency = <300000>; /* From legacy driver */ 22 clock-latency = <300000>; /* From legacy driver */
23 }; 23 };
diff --git a/arch/arm/configs/omap2plus_defconfig b/arch/arm/configs/omap2plus_defconfig
index 33903ca0d879..c1ef64bc5abd 100644
--- a/arch/arm/configs/omap2plus_defconfig
+++ b/arch/arm/configs/omap2plus_defconfig
@@ -137,6 +137,8 @@ CONFIG_SERIAL_8250_DETECT_IRQ=y
137CONFIG_SERIAL_8250_RSA=y 137CONFIG_SERIAL_8250_RSA=y
138CONFIG_SERIAL_AMBA_PL011=y 138CONFIG_SERIAL_AMBA_PL011=y
139CONFIG_SERIAL_AMBA_PL011_CONSOLE=y 139CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
140CONFIG_SERIAL_OMAP=y
141CONFIG_SERIAL_OMAP_CONSOLE=y
140CONFIG_HW_RANDOM=y 142CONFIG_HW_RANDOM=y
141CONFIG_I2C_CHARDEV=y 143CONFIG_I2C_CHARDEV=y
142CONFIG_SPI=y 144CONFIG_SPI=y
@@ -153,6 +155,7 @@ CONFIG_OMAP_WATCHDOG=y
153CONFIG_TWL4030_WATCHDOG=y 155CONFIG_TWL4030_WATCHDOG=y
154CONFIG_MFD_TPS65217=y 156CONFIG_MFD_TPS65217=y
155CONFIG_MFD_TPS65910=y 157CONFIG_MFD_TPS65910=y
158CONFIG_TWL6040_CORE=y
156CONFIG_REGULATOR_TWL4030=y 159CONFIG_REGULATOR_TWL4030=y
157CONFIG_REGULATOR_TPS65023=y 160CONFIG_REGULATOR_TPS65023=y
158CONFIG_REGULATOR_TPS6507X=y 161CONFIG_REGULATOR_TPS6507X=y
@@ -195,6 +198,7 @@ CONFIG_SND_USB_AUDIO=m
195CONFIG_SND_SOC=m 198CONFIG_SND_SOC=m
196CONFIG_SND_OMAP_SOC=m 199CONFIG_SND_OMAP_SOC=m
197CONFIG_SND_OMAP_SOC_OMAP_TWL4030=m 200CONFIG_SND_OMAP_SOC_OMAP_TWL4030=m
201CONFIG_SND_OMAP_SOC_OMAP_ABE_TWL6040=m
198CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m 202CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m
199CONFIG_USB=y 203CONFIG_USB=y
200CONFIG_USB_DEBUG=y 204CONFIG_USB_DEBUG=y
diff --git a/arch/arm/kernel/devtree.c b/arch/arm/kernel/devtree.c
index 70f1bdeb241b..5af04f6daa33 100644
--- a/arch/arm/kernel/devtree.c
+++ b/arch/arm/kernel/devtree.c
@@ -180,6 +180,13 @@ struct machine_desc * __init setup_machine_fdt(unsigned int dt_phys)
180 unsigned long dt_root; 180 unsigned long dt_root;
181 const char *model; 181 const char *model;
182 182
183#ifdef CONFIG_ARCH_MULTIPLATFORM
184 DT_MACHINE_START(GENERIC_DT, "Generic DT based system")
185 MACHINE_END
186
187 mdesc_best = (struct machine_desc *)&__mach_desc_GENERIC_DT;
188#endif
189
183 if (!dt_phys) 190 if (!dt_phys)
184 return NULL; 191 return NULL;
185 192
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index 728007c4a2b7..1522c7ae31b0 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -18,6 +18,7 @@
18#include <linux/bootmem.h> 18#include <linux/bootmem.h>
19#include <linux/seq_file.h> 19#include <linux/seq_file.h>
20#include <linux/screen_info.h> 20#include <linux/screen_info.h>
21#include <linux/of_platform.h>
21#include <linux/init.h> 22#include <linux/init.h>
22#include <linux/kexec.h> 23#include <linux/kexec.h>
23#include <linux/of_fdt.h> 24#include <linux/of_fdt.h>
@@ -659,9 +660,19 @@ struct screen_info screen_info = {
659 660
660static int __init customize_machine(void) 661static int __init customize_machine(void)
661{ 662{
662 /* customizes platform devices, or adds new ones */ 663 /*
664 * customizes platform devices, or adds new ones
665 * On DT based machines, we fall back to populating the
666 * machine from the device tree, if no callback is provided,
667 * otherwise we would always need an init_machine callback.
668 */
663 if (machine_desc->init_machine) 669 if (machine_desc->init_machine)
664 machine_desc->init_machine(); 670 machine_desc->init_machine();
671#ifdef CONFIG_OF
672 else
673 of_platform_populate(NULL, of_default_bus_match_table,
674 NULL, NULL);
675#endif
665 return 0; 676 return 0;
666} 677}
667arch_initcall(customize_machine); 678arch_initcall(customize_machine);
diff --git a/arch/arm/mach-exynos/include/mach/regs-pmu.h b/arch/arm/mach-exynos/include/mach/regs-pmu.h
index 3f30aa1ae354..57344b7e98ce 100644
--- a/arch/arm/mach-exynos/include/mach/regs-pmu.h
+++ b/arch/arm/mach-exynos/include/mach/regs-pmu.h
@@ -344,6 +344,7 @@
344#define EXYNOS5_FSYS_ARM_OPTION S5P_PMUREG(0x2208) 344#define EXYNOS5_FSYS_ARM_OPTION S5P_PMUREG(0x2208)
345#define EXYNOS5_ISP_ARM_OPTION S5P_PMUREG(0x2288) 345#define EXYNOS5_ISP_ARM_OPTION S5P_PMUREG(0x2288)
346#define EXYNOS5_ARM_COMMON_OPTION S5P_PMUREG(0x2408) 346#define EXYNOS5_ARM_COMMON_OPTION S5P_PMUREG(0x2408)
347#define EXYNOS5_ARM_L2_OPTION S5P_PMUREG(0x2608)
347#define EXYNOS5_TOP_PWR_OPTION S5P_PMUREG(0x2C48) 348#define EXYNOS5_TOP_PWR_OPTION S5P_PMUREG(0x2C48)
348#define EXYNOS5_TOP_PWR_SYSMEM_OPTION S5P_PMUREG(0x2CC8) 349#define EXYNOS5_TOP_PWR_SYSMEM_OPTION S5P_PMUREG(0x2CC8)
349#define EXYNOS5_JPEG_MEM_OPTION S5P_PMUREG(0x2F48) 350#define EXYNOS5_JPEG_MEM_OPTION S5P_PMUREG(0x2F48)
diff --git a/arch/arm/mach-exynos/pmu.c b/arch/arm/mach-exynos/pmu.c
index daebc1abc966..97d688526258 100644
--- a/arch/arm/mach-exynos/pmu.c
+++ b/arch/arm/mach-exynos/pmu.c
@@ -228,6 +228,7 @@ static struct exynos_pmu_conf exynos5250_pmu_config[] = {
228 { EXYNOS5_DIS_IRQ_ISP_ARM_CENTRAL_SYS_PWR_REG, { 0x0, 0x0, 0x0} }, 228 { EXYNOS5_DIS_IRQ_ISP_ARM_CENTRAL_SYS_PWR_REG, { 0x0, 0x0, 0x0} },
229 { EXYNOS5_ARM_COMMON_SYS_PWR_REG, { 0x0, 0x0, 0x2} }, 229 { EXYNOS5_ARM_COMMON_SYS_PWR_REG, { 0x0, 0x0, 0x2} },
230 { EXYNOS5_ARM_L2_SYS_PWR_REG, { 0x3, 0x3, 0x3} }, 230 { EXYNOS5_ARM_L2_SYS_PWR_REG, { 0x3, 0x3, 0x3} },
231 { EXYNOS5_ARM_L2_OPTION, { 0x10, 0x10, 0x0 } },
231 { EXYNOS5_CMU_ACLKSTOP_SYS_PWR_REG, { 0x1, 0x0, 0x1} }, 232 { EXYNOS5_CMU_ACLKSTOP_SYS_PWR_REG, { 0x1, 0x0, 0x1} },
232 { EXYNOS5_CMU_SCLKSTOP_SYS_PWR_REG, { 0x1, 0x0, 0x1} }, 233 { EXYNOS5_CMU_SCLKSTOP_SYS_PWR_REG, { 0x1, 0x0, 0x1} },
233 { EXYNOS5_CMU_RESET_SYS_PWR_REG, { 0x1, 0x1, 0x0} }, 234 { EXYNOS5_CMU_RESET_SYS_PWR_REG, { 0x1, 0x1, 0x0} },
@@ -353,11 +354,9 @@ static void exynos5_init_pmu(void)
353 354
354 /* 355 /*
355 * SKIP_DEACTIVATE_ACEACP_IN_PWDN_BITFIELD Enable 356 * SKIP_DEACTIVATE_ACEACP_IN_PWDN_BITFIELD Enable
356 * MANUAL_L2RSTDISABLE_CONTROL_BITFIELD Enable
357 */ 357 */
358 tmp = __raw_readl(EXYNOS5_ARM_COMMON_OPTION); 358 tmp = __raw_readl(EXYNOS5_ARM_COMMON_OPTION);
359 tmp |= (EXYNOS5_MANUAL_L2RSTDISABLE_CONTROL | 359 tmp |= EXYNOS5_SKIP_DEACTIVATE_ACEACP_IN_PWDN;
360 EXYNOS5_SKIP_DEACTIVATE_ACEACP_IN_PWDN);
361 __raw_writel(tmp, EXYNOS5_ARM_COMMON_OPTION); 360 __raw_writel(tmp, EXYNOS5_ARM_COMMON_OPTION);
362 361
363 /* 362 /*
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index 78f795d73cb6..ba44328464f3 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -5,6 +5,7 @@ config ARCH_MXC
5 select AUTO_ZRELADDR if !ZBOOT_ROM 5 select AUTO_ZRELADDR if !ZBOOT_ROM
6 select CLKDEV_LOOKUP 6 select CLKDEV_LOOKUP
7 select CLKSRC_MMIO 7 select CLKSRC_MMIO
8 select GENERIC_ALLOCATOR
8 select GENERIC_CLOCKEVENTS 9 select GENERIC_CLOCKEVENTS
9 select GENERIC_IRQ_CHIP 10 select GENERIC_IRQ_CHIP
10 select MULTI_IRQ_HANDLER 11 select MULTI_IRQ_HANDLER
@@ -61,10 +62,6 @@ config MXC_ULPI
61config ARCH_HAS_RNGA 62config ARCH_HAS_RNGA
62 bool 63 bool
63 64
64config IRAM_ALLOC
65 bool
66 select GENERIC_ALLOCATOR
67
68config HAVE_IMX_ANATOP 65config HAVE_IMX_ANATOP
69 bool 66 bool
70 67
diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile
index 930958973f81..70ae7c490ac0 100644
--- a/arch/arm/mach-imx/Makefile
+++ b/arch/arm/mach-imx/Makefile
@@ -23,7 +23,6 @@ obj-$(CONFIG_ARCH_MXC_IOMUX_V3) += iomux-v3.o
23obj-$(CONFIG_MXC_TZIC) += tzic.o 23obj-$(CONFIG_MXC_TZIC) += tzic.o
24obj-$(CONFIG_MXC_AVIC) += avic.o 24obj-$(CONFIG_MXC_AVIC) += avic.o
25 25
26obj-$(CONFIG_IRAM_ALLOC) += iram_alloc.o
27obj-$(CONFIG_MXC_ULPI) += ulpi.o 26obj-$(CONFIG_MXC_ULPI) += ulpi.o
28obj-$(CONFIG_MXC_USE_EPIT) += epit.o 27obj-$(CONFIG_MXC_USE_EPIT) += epit.o
29obj-$(CONFIG_MXC_DEBUG_BOARD) += 3ds_debugboard.o 28obj-$(CONFIG_MXC_DEBUG_BOARD) += 3ds_debugboard.o
diff --git a/arch/arm/mach-imx/common.h b/arch/arm/mach-imx/common.h
index 4cba7dbb079f..c08ae3f99cee 100644
--- a/arch/arm/mach-imx/common.h
+++ b/arch/arm/mach-imx/common.h
@@ -12,6 +12,7 @@
12#define __ASM_ARCH_MXC_COMMON_H__ 12#define __ASM_ARCH_MXC_COMMON_H__
13 13
14struct platform_device; 14struct platform_device;
15struct pt_regs;
15struct clk; 16struct clk;
16enum mxc_cpu_pwr_mode; 17enum mxc_cpu_pwr_mode;
17 18
diff --git a/arch/arm/mach-imx/headsmp.S b/arch/arm/mach-imx/headsmp.S
index a58c8b0527cc..67b9c48dcafe 100644
--- a/arch/arm/mach-imx/headsmp.S
+++ b/arch/arm/mach-imx/headsmp.S
@@ -24,7 +24,7 @@ ENTRY(v7_secondary_startup)
24ENDPROC(v7_secondary_startup) 24ENDPROC(v7_secondary_startup)
25#endif 25#endif
26 26
27#ifdef CONFIG_PM 27#ifdef CONFIG_ARM_CPU_SUSPEND
28/* 28/*
29 * The following code must assume it is running from physical address 29 * The following code must assume it is running from physical address
30 * where absolute virtual addresses to the data section have to be 30 * where absolute virtual addresses to the data section have to be
diff --git a/arch/arm/mach-imx/hotplug.c b/arch/arm/mach-imx/hotplug.c
index 5e91112dcbee..3daf1ed90579 100644
--- a/arch/arm/mach-imx/hotplug.c
+++ b/arch/arm/mach-imx/hotplug.c
@@ -11,7 +11,9 @@
11 */ 11 */
12 12
13#include <linux/errno.h> 13#include <linux/errno.h>
14#include <linux/jiffies.h>
14#include <asm/cp15.h> 15#include <asm/cp15.h>
16#include <asm/proc-fns.h>
15 17
16#include "common.h" 18#include "common.h"
17 19
diff --git a/arch/arm/mach-imx/iram_alloc.c b/arch/arm/mach-imx/iram_alloc.c
deleted file mode 100644
index e05cf407db65..000000000000
--- a/arch/arm/mach-imx/iram_alloc.c
+++ /dev/null
@@ -1,73 +0,0 @@
1/*
2 * Copyright (C) 2010 Freescale Semiconductor, Inc. All Rights Reserved.
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * as published by the Free Software Foundation; either version 2
7 * of the License, or (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
17 * MA 02110-1301, USA.
18 */
19
20#include <linux/kernel.h>
21#include <linux/io.h>
22#include <linux/module.h>
23#include <linux/spinlock.h>
24#include <linux/genalloc.h>
25#include "linux/platform_data/imx-iram.h"
26
27static unsigned long iram_phys_base;
28static void __iomem *iram_virt_base;
29static struct gen_pool *iram_pool;
30
31static inline void __iomem *iram_phys_to_virt(unsigned long p)
32{
33 return iram_virt_base + (p - iram_phys_base);
34}
35
36void __iomem *iram_alloc(unsigned int size, unsigned long *dma_addr)
37{
38 if (!iram_pool)
39 return NULL;
40
41 *dma_addr = gen_pool_alloc(iram_pool, size);
42 pr_debug("iram alloc - %dB@0x%lX\n", size, *dma_addr);
43 if (!*dma_addr)
44 return NULL;
45 return iram_phys_to_virt(*dma_addr);
46}
47EXPORT_SYMBOL(iram_alloc);
48
49void iram_free(unsigned long addr, unsigned int size)
50{
51 if (!iram_pool)
52 return;
53
54 gen_pool_free(iram_pool, addr, size);
55}
56EXPORT_SYMBOL(iram_free);
57
58int __init iram_init(unsigned long base, unsigned long size)
59{
60 iram_phys_base = base;
61
62 iram_pool = gen_pool_create(PAGE_SHIFT, -1);
63 if (!iram_pool)
64 return -ENOMEM;
65
66 gen_pool_add(iram_pool, base, size, -1);
67 iram_virt_base = ioremap(iram_phys_base, size);
68 if (!iram_virt_base)
69 return -EIO;
70
71 pr_debug("i.MX IRAM pool: %ld KB@0x%p\n", size / 1024, iram_virt_base);
72 return 0;
73}
diff --git a/arch/arm/mach-omap1/dma.c b/arch/arm/mach-omap1/dma.c
index 1a4e887f028d..68ab858e27b7 100644
--- a/arch/arm/mach-omap1/dma.c
+++ b/arch/arm/mach-omap1/dma.c
@@ -301,7 +301,7 @@ static int __init omap1_system_dma_init(void)
301 if (ret) { 301 if (ret) {
302 dev_err(&pdev->dev, "%s: Unable to add resources for %s%d\n", 302 dev_err(&pdev->dev, "%s: Unable to add resources for %s%d\n",
303 __func__, pdev->name, pdev->id); 303 __func__, pdev->name, pdev->id);
304 goto exit_device_put; 304 goto exit_iounmap;
305 } 305 }
306 306
307 p = kzalloc(sizeof(struct omap_system_dma_plat_info), GFP_KERNEL); 307 p = kzalloc(sizeof(struct omap_system_dma_plat_info), GFP_KERNEL);
@@ -309,7 +309,7 @@ static int __init omap1_system_dma_init(void)
309 dev_err(&pdev->dev, "%s: Unable to allocate 'p' for %s\n", 309 dev_err(&pdev->dev, "%s: Unable to allocate 'p' for %s\n",
310 __func__, pdev->name); 310 __func__, pdev->name);
311 ret = -ENOMEM; 311 ret = -ENOMEM;
312 goto exit_device_del; 312 goto exit_iounmap;
313 } 313 }
314 314
315 d = kzalloc(sizeof(struct omap_dma_dev_attr), GFP_KERNEL); 315 d = kzalloc(sizeof(struct omap_dma_dev_attr), GFP_KERNEL);
@@ -402,8 +402,8 @@ exit_release_d:
402 kfree(d); 402 kfree(d);
403exit_release_p: 403exit_release_p:
404 kfree(p); 404 kfree(p);
405exit_device_del: 405exit_iounmap:
406 platform_device_del(pdev); 406 iounmap(dma_base);
407exit_device_put: 407exit_device_put:
408 platform_device_put(pdev); 408 platform_device_put(pdev);
409 409
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index 857b1f097fd8..f49cd51e162a 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -37,8 +37,6 @@ config ARCH_OMAP2PLUS_TYPICAL
37 select NEON if ARCH_OMAP3 || ARCH_OMAP4 || SOC_OMAP5 37 select NEON if ARCH_OMAP3 || ARCH_OMAP4 || SOC_OMAP5
38 select PM_RUNTIME 38 select PM_RUNTIME
39 select REGULATOR 39 select REGULATOR
40 select SERIAL_OMAP
41 select SERIAL_OMAP_CONSOLE
42 select TWL4030_CORE if ARCH_OMAP3 || ARCH_OMAP4 40 select TWL4030_CORE if ARCH_OMAP3 || ARCH_OMAP4
43 select TWL4030_POWER if ARCH_OMAP3 || ARCH_OMAP4 41 select TWL4030_POWER if ARCH_OMAP3 || ARCH_OMAP4
44 select VFP 42 select VFP
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
index 62bb352c2d37..55a9d6777683 100644
--- a/arch/arm/mach-omap2/Makefile
+++ b/arch/arm/mach-omap2/Makefile
@@ -32,12 +32,12 @@ obj-$(CONFIG_SOC_HAS_OMAP2_SDRC) += sdrc.o
32 32
33# SMP support ONLY available for OMAP4 33# SMP support ONLY available for OMAP4
34 34
35obj-$(CONFIG_SMP) += omap-smp.o omap-headsmp.o 35smp-$(CONFIG_SMP) += omap-smp.o omap-headsmp.o
36obj-$(CONFIG_HOTPLUG_CPU) += omap-hotplug.o 36smp-$(CONFIG_HOTPLUG_CPU) += omap-hotplug.o
37omap-4-5-common = omap4-common.o omap-wakeupgen.o \ 37omap-4-5-common = omap4-common.o omap-wakeupgen.o \
38 sleep44xx.o 38 sleep44xx.o
39obj-$(CONFIG_ARCH_OMAP4) += $(omap-4-5-common) 39obj-$(CONFIG_ARCH_OMAP4) += $(omap-4-5-common) $(smp-y)
40obj-$(CONFIG_SOC_OMAP5) += $(omap-4-5-common) 40obj-$(CONFIG_SOC_OMAP5) += $(omap-4-5-common) $(smp-y)
41 41
42plus_sec := $(call as-instr,.arch_extension sec,+sec) 42plus_sec := $(call as-instr,.arch_extension sec,+sec)
43AFLAGS_omap-headsmp.o :=-Wa,-march=armv7-a$(plus_sec) 43AFLAGS_omap-headsmp.o :=-Wa,-march=armv7-a$(plus_sec)
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
index 6de78605c0af..04c116555412 100644
--- a/arch/arm/mach-omap2/board-omap3beagle.c
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
@@ -112,13 +112,13 @@ static u8 omap3_beagle_version;
112 */ 112 */
113static struct { 113static struct {
114 int mmc1_gpio_wp; 114 int mmc1_gpio_wp;
115 int usb_pwr_level; 115 bool usb_pwr_level; /* 0 - Active Low, 1 - Active High */
116 int dvi_pd_gpio; 116 int dvi_pd_gpio;
117 int usr_button_gpio; 117 int usr_button_gpio;
118 int mmc_caps; 118 int mmc_caps;
119} beagle_config = { 119} beagle_config = {
120 .mmc1_gpio_wp = -EINVAL, 120 .mmc1_gpio_wp = -EINVAL,
121 .usb_pwr_level = GPIOF_OUT_INIT_LOW, 121 .usb_pwr_level = 0,
122 .dvi_pd_gpio = -EINVAL, 122 .dvi_pd_gpio = -EINVAL,
123 .usr_button_gpio = 4, 123 .usr_button_gpio = 4,
124 .mmc_caps = MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA, 124 .mmc_caps = MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA,
@@ -178,7 +178,7 @@ static void __init omap3_beagle_init_rev(void)
178 case 0: 178 case 0:
179 printk(KERN_INFO "OMAP3 Beagle Rev: xM Ax/Bx\n"); 179 printk(KERN_INFO "OMAP3 Beagle Rev: xM Ax/Bx\n");
180 omap3_beagle_version = OMAP3BEAGLE_BOARD_XM; 180 omap3_beagle_version = OMAP3BEAGLE_BOARD_XM;
181 beagle_config.usb_pwr_level = GPIOF_OUT_INIT_HIGH; 181 beagle_config.usb_pwr_level = 1;
182 beagle_config.mmc_caps &= ~MMC_CAP_8_BIT_DATA; 182 beagle_config.mmc_caps &= ~MMC_CAP_8_BIT_DATA;
183 break; 183 break;
184 case 2: 184 case 2:
diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c b/arch/arm/mach-omap2/board-rx51-peripherals.c
index 1a884670a6c4..18ca61e300b3 100644
--- a/arch/arm/mach-omap2/board-rx51-peripherals.c
+++ b/arch/arm/mach-omap2/board-rx51-peripherals.c
@@ -73,11 +73,11 @@
73#define LIS302_IRQ1_GPIO 181 73#define LIS302_IRQ1_GPIO 181
74#define LIS302_IRQ2_GPIO 180 /* Not yet in use */ 74#define LIS302_IRQ2_GPIO 180 /* Not yet in use */
75 75
76/* list all spi devices here */ 76/* List all SPI devices here. Note that the list/probe order seems to matter! */
77enum { 77enum {
78 RX51_SPI_WL1251, 78 RX51_SPI_WL1251,
79 RX51_SPI_MIPID, /* LCD panel */
80 RX51_SPI_TSC2005, /* Touch Controller */ 79 RX51_SPI_TSC2005, /* Touch Controller */
80 RX51_SPI_MIPID, /* LCD panel */
81}; 81};
82 82
83static struct wl12xx_platform_data wl1251_pdata; 83static struct wl12xx_platform_data wl1251_pdata;
diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c
index ed946df5ad8a..6c4da1254f53 100644
--- a/arch/arm/mach-omap2/gpmc.c
+++ b/arch/arm/mach-omap2/gpmc.c
@@ -1520,36 +1520,22 @@ static int gpmc_probe_dt(struct platform_device *pdev)
1520 return ret; 1520 return ret;
1521 } 1521 }
1522 1522
1523 for_each_node_by_name(child, "nand") { 1523 for_each_child_of_node(pdev->dev.of_node, child) {
1524 ret = gpmc_probe_nand_child(pdev, child);
1525 if (ret < 0) {
1526 of_node_put(child);
1527 return ret;
1528 }
1529 }
1530 1524
1531 for_each_node_by_name(child, "onenand") { 1525 if (!child->name)
1532 ret = gpmc_probe_onenand_child(pdev, child); 1526 continue;
1533 if (ret < 0) {
1534 of_node_put(child);
1535 return ret;
1536 }
1537 }
1538 1527
1539 for_each_node_by_name(child, "nor") { 1528 if (of_node_cmp(child->name, "nand") == 0)
1540 ret = gpmc_probe_generic_child(pdev, child); 1529 ret = gpmc_probe_nand_child(pdev, child);
1541 if (ret < 0) { 1530 else if (of_node_cmp(child->name, "onenand") == 0)
1542 of_node_put(child); 1531 ret = gpmc_probe_onenand_child(pdev, child);
1543 return ret; 1532 else if (of_node_cmp(child->name, "ethernet") == 0 ||
1544 } 1533 of_node_cmp(child->name, "nor") == 0)
1545 } 1534 ret = gpmc_probe_generic_child(pdev, child);
1546 1535
1547 for_each_node_by_name(child, "ethernet") { 1536 if (WARN(ret < 0, "%s: probing gpmc child %s failed\n",
1548 ret = gpmc_probe_generic_child(pdev, child); 1537 __func__, child->full_name))
1549 if (ret < 0) {
1550 of_node_put(child); 1538 of_node_put(child);
1551 return ret;
1552 }
1553 } 1539 }
1554 1540
1555 return 0; 1541 return 0;
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
index 0f4c18e6e60c..1272c41d4749 100644
--- a/arch/arm/mach-omap2/id.c
+++ b/arch/arm/mach-omap2/id.c
@@ -419,11 +419,15 @@ void __init omap3xxx_check_revision(void)
419 cpu_rev = "1.0"; 419 cpu_rev = "1.0";
420 break; 420 break;
421 case 1: 421 case 1:
422 /* FALLTHROUGH */
423 default:
424 omap_revision = AM335X_REV_ES2_0; 422 omap_revision = AM335X_REV_ES2_0;
425 cpu_rev = "2.0"; 423 cpu_rev = "2.0";
426 break; 424 break;
425 case 2:
426 /* FALLTHROUGH */
427 default:
428 omap_revision = AM335X_REV_ES2_1;
429 cpu_rev = "2.1";
430 break;
427 } 431 }
428 break; 432 break;
429 case 0xb8f2: 433 case 0xb8f2:
@@ -644,13 +648,12 @@ void __init omap_soc_device_init(void)
644 soc_dev_attr->revision = soc_rev; 648 soc_dev_attr->revision = soc_rev;
645 649
646 soc_dev = soc_device_register(soc_dev_attr); 650 soc_dev = soc_device_register(soc_dev_attr);
647 if (IS_ERR_OR_NULL(soc_dev)) { 651 if (IS_ERR(soc_dev)) {
648 kfree(soc_dev_attr); 652 kfree(soc_dev_attr);
649 return; 653 return;
650 } 654 }
651 655
652 parent = soc_device_to_device(soc_dev); 656 parent = soc_device_to_device(soc_dev);
653 if (!IS_ERR_OR_NULL(parent)) 657 device_create_file(parent, &omap_soc_attr);
654 device_create_file(parent, &omap_soc_attr);
655} 658}
656#endif /* CONFIG_SOC_BUS */ 659#endif /* CONFIG_SOC_BUS */
diff --git a/arch/arm/mach-omap2/mux34xx.h b/arch/arm/mach-omap2/mux34xx.h
index 6543ebf8ecfc..3f26d297c082 100644
--- a/arch/arm/mach-omap2/mux34xx.h
+++ b/arch/arm/mach-omap2/mux34xx.h
@@ -393,6 +393,10 @@
393#define OMAP3_CONTROL_PADCONF_SAD2D_SWAKEUP_OFFSET 0xa1c 393#define OMAP3_CONTROL_PADCONF_SAD2D_SWAKEUP_OFFSET 0xa1c
394#define OMAP3_CONTROL_PADCONF_JTAG_RTCK_OFFSET 0xa1e 394#define OMAP3_CONTROL_PADCONF_JTAG_RTCK_OFFSET 0xa1e
395#define OMAP3_CONTROL_PADCONF_JTAG_TDO_OFFSET 0xa20 395#define OMAP3_CONTROL_PADCONF_JTAG_TDO_OFFSET 0xa20
396#define OMAP3_CONTROL_PADCONF_GPIO_127 0xa24
397#define OMAP3_CONTROL_PADCONF_GPIO_126 0xa26
398#define OMAP3_CONTROL_PADCONF_GPIO_128 0xa28
399#define OMAP3_CONTROL_PADCONF_GPIO_129 0xa2a
396 400
397#define OMAP3_CONTROL_PADCONF_MUX_SIZE \ 401#define OMAP3_CONTROL_PADCONF_MUX_SIZE \
398 (OMAP3_CONTROL_PADCONF_JTAG_TDO_OFFSET + 0x2) 402 (OMAP3_CONTROL_PADCONF_GPIO_129 + 0x2)
diff --git a/arch/arm/mach-omap2/omap_device.c b/arch/arm/mach-omap2/omap_device.c
index eeea4fa28fbc..e6d230700b2b 100644
--- a/arch/arm/mach-omap2/omap_device.c
+++ b/arch/arm/mach-omap2/omap_device.c
@@ -876,4 +876,4 @@ static int __init omap_device_late_init(void)
876 bus_for_each_dev(&platform_bus_type, NULL, NULL, omap_device_late_idle); 876 bus_for_each_dev(&platform_bus_type, NULL, NULL, omap_device_late_idle);
877 return 0; 877 return 0;
878} 878}
879omap_late_initcall(omap_device_late_init); 879omap_late_initcall_sync(omap_device_late_init);
diff --git a/arch/arm/mach-omap2/soc.h b/arch/arm/mach-omap2/soc.h
index 18fdeeb3a44a..197cc16870d9 100644
--- a/arch/arm/mach-omap2/soc.h
+++ b/arch/arm/mach-omap2/soc.h
@@ -396,6 +396,7 @@ IS_OMAP_TYPE(3430, 0x3430)
396#define AM335X_CLASS 0x33500033 396#define AM335X_CLASS 0x33500033
397#define AM335X_REV_ES1_0 AM335X_CLASS 397#define AM335X_REV_ES1_0 AM335X_CLASS
398#define AM335X_REV_ES2_0 (AM335X_CLASS | (0x1 << 8)) 398#define AM335X_REV_ES2_0 (AM335X_CLASS | (0x1 << 8))
399#define AM335X_REV_ES2_1 (AM335X_CLASS | (0x2 << 8))
399 400
400#define OMAP443X_CLASS 0x44300044 401#define OMAP443X_CLASS 0x44300044
401#define OMAP4430_REV_ES1_0 (OMAP443X_CLASS | (0x10 << 8)) 402#define OMAP4430_REV_ES1_0 (OMAP443X_CLASS | (0x10 << 8))
@@ -496,6 +497,7 @@ level(__##fn);
496#define omap_subsys_initcall(fn) omap_initcall(subsys_initcall, fn) 497#define omap_subsys_initcall(fn) omap_initcall(subsys_initcall, fn)
497#define omap_device_initcall(fn) omap_initcall(device_initcall, fn) 498#define omap_device_initcall(fn) omap_initcall(device_initcall, fn)
498#define omap_late_initcall(fn) omap_initcall(late_initcall, fn) 499#define omap_late_initcall(fn) omap_initcall(late_initcall, fn)
500#define omap_late_initcall_sync(fn) omap_initcall(late_initcall_sync, fn)
499 501
500#endif /* __ASSEMBLY__ */ 502#endif /* __ASSEMBLY__ */
501 503
diff --git a/arch/arm/mach-prima2/Kconfig b/arch/arm/mach-prima2/Kconfig
index 80ca974b2f82..6988b117fc17 100644
--- a/arch/arm/mach-prima2/Kconfig
+++ b/arch/arm/mach-prima2/Kconfig
@@ -38,7 +38,7 @@ config ARCH_MARCO
38 select CPU_V7 38 select CPU_V7
39 select HAVE_ARM_SCU if SMP 39 select HAVE_ARM_SCU if SMP
40 select HAVE_SMP 40 select HAVE_SMP
41 select SMP_ON_UP 41 select SMP_ON_UP if SMP
42 help 42 help
43 Support for CSR SiRFSoC ARM Cortex A9 Platform 43 Support for CSR SiRFSoC ARM Cortex A9 Platform
44 44
diff --git a/arch/arm/mach-spear/spear13xx.c b/arch/arm/mach-spear/spear13xx.c
index 3621599c38ad..7aa6e8cf830f 100644
--- a/arch/arm/mach-spear/spear13xx.c
+++ b/arch/arm/mach-spear/spear13xx.c
@@ -35,6 +35,8 @@ void __init spear13xx_l2x0_init(void)
35 * write alloc and 'Full line of zero' options 35 * write alloc and 'Full line of zero' options
36 * 36 *
37 */ 37 */
38 if (!IS_ENABLED(CONFIG_CACHE_L2X0))
39 return;
38 40
39 writel_relaxed(0x06, VA_L2CC_BASE + L2X0_PREFETCH_CTRL); 41 writel_relaxed(0x06, VA_L2CC_BASE + L2X0_PREFETCH_CTRL);
40 42
diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig
index 20c3b372cdf5..84d72fc36dfe 100644
--- a/arch/arm/mach-tegra/Kconfig
+++ b/arch/arm/mach-tegra/Kconfig
@@ -63,6 +63,7 @@ config ARCH_TEGRA_114_SOC
63 select ARM_ARCH_TIMER 63 select ARM_ARCH_TIMER
64 select ARM_GIC 64 select ARM_GIC
65 select ARM_L1_CACHE_SHIFT_6 65 select ARM_L1_CACHE_SHIFT_6
66 select CPU_FREQ_TABLE if CPU_FREQ
66 select CPU_V7 67 select CPU_V7
67 select PINCTRL 68 select PINCTRL
68 select PINCTRL_TEGRA114 69 select PINCTRL_TEGRA114
diff --git a/arch/arm/mach-ux500/Kconfig b/arch/arm/mach-ux500/Kconfig
index f66d7deae46d..6a4387e39df8 100644
--- a/arch/arm/mach-ux500/Kconfig
+++ b/arch/arm/mach-ux500/Kconfig
@@ -19,6 +19,8 @@ if ARCH_U8500
19config UX500_SOC_COMMON 19config UX500_SOC_COMMON
20 bool 20 bool
21 default y 21 default y
22 select ABX500_CORE
23 select AB8500_CORE
22 select ARM_ERRATA_754322 24 select ARM_ERRATA_754322
23 select ARM_ERRATA_764369 if SMP 25 select ARM_ERRATA_764369 if SMP
24 select ARM_GIC 26 select ARM_GIC
diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c
index a15dd6b63a8f..3cd555ac6d0a 100644
--- a/arch/arm/mach-ux500/board-mop500.c
+++ b/arch/arm/mach-ux500/board-mop500.c
@@ -403,8 +403,8 @@ static int mop500_prox_activate(struct device *dev)
403 "no regulator\n"); 403 "no regulator\n");
404 return PTR_ERR(prox_regulator); 404 return PTR_ERR(prox_regulator);
405 } 405 }
406 regulator_enable(prox_regulator); 406
407 return 0; 407 return regulator_enable(prox_regulator);
408} 408}
409 409
410static void mop500_prox_deactivate(struct device *dev) 410static void mop500_prox_deactivate(struct device *dev)
diff --git a/arch/arm/mach-ux500/cpu-db8500.c b/arch/arm/mach-ux500/cpu-db8500.c
index 995928ba22fd..e90b5ab23b6d 100644
--- a/arch/arm/mach-ux500/cpu-db8500.c
+++ b/arch/arm/mach-ux500/cpu-db8500.c
@@ -191,7 +191,7 @@ static const char *db8500_read_soc_id(void)
191 /* Throw these device-specific numbers into the entropy pool */ 191 /* Throw these device-specific numbers into the entropy pool */
192 add_device_randomness(uid, 0x14); 192 add_device_randomness(uid, 0x14);
193 return kasprintf(GFP_KERNEL, "%08x%08x%08x%08x%08x", 193 return kasprintf(GFP_KERNEL, "%08x%08x%08x%08x%08x",
194 readl((u32 *)uid+1), 194 readl((u32 *)uid+0),
195 readl((u32 *)uid+1), readl((u32 *)uid+2), 195 readl((u32 *)uid+1), readl((u32 *)uid+2),
196 readl((u32 *)uid+3), readl((u32 *)uid+4)); 196 readl((u32 *)uid+3), readl((u32 *)uid+4));
197} 197}