Browse Source

Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc

Pull ARM SoC fixes from Arnd Bergmann:
 "A new set of bug fixes for 3.16, containing patches for seven
  platforms:

  at91:
    - drivers/misc fix for Kconfig PWM symbol
    - correction of several values in DT after conversion to CCF
    - fix at91sam9261/at91sam9261ek mistake in slow crystal vs. slow RC osc

  imx:
    - Use GPIO for card CD/WP on imx51-babbage and eukrea-mbimxsd51,
      because controller base CD/WP is not working in esdhc driver due to
      runtime PM support
    - A couple of random ventana gw5xxx board fixes
    - Add IMX_IPUV3_CORE back to defconfig, which gets lost when moving
      IPUv3 driver out of staging tree
    - Fix enet/fec clock selection on imx6sl
    - Fix display node on imx53-m53evk board
    - A couple of Cubox-i updates from Russell, which were omitted from
      the merge window due to dependency

  integrator:
    - fix an OF-related regression against 3.15

  mvebu:
    - mvebu (v7)
       - Fix broken SoC ID detection
       - Select ARM_CPU_SUSPEND for v7
       - Remove armada38x compatible string (no users yet)
       - Enable Dove SoC in mvebu_v7_defconfig
    - kirkwood
       - Fix phy-connection-type on GuruPlug board

  qcom:
    - enable gsbi driver in defconfig
    - fix section mismatch warning in serial driver

  samsung:
    - use WFI macro in platform_do_lowpower because exynos cpuhotplug
      includes a hardcoded WFI instruction and it causes compile error
      in Thumb-2 mode.
    - fix GIC reg sizes for exynos4 SoCs
    - remove reset timer counter value during boot and resume for mct
      to fix a big jump in printk timestamps
    - fix pm code to check cortex-A9 for another exynos SoCs
    - don't rely on firmware's secondary_cpu_start for mcpm

  sti:
    - Ethernet clocks were wrongly defined for STiH415/416 platforms
    - STiH416 B2020 revision E DTS file name contained uppercase, change to
      lowercase"

* tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (33 commits)
  ARM: at91/dt: sam9261: remove slow RC osc
  ARM: at91/dt: define sam9261ek slow crystal frequency
  ARM: at91/dt: sam9261: correctly define mainck
  ARM: at91/dt: sam9n12: correct PLLA ICPLL and OUT values
  ARM: at91/dt: sam9x5: correct PLLA ICPLL and OUT values
  misc: atmel_pwm: fix Kconfig symbols
  ARM: integrator: fix OF-related regression
  ARM: mvebu: Fix the improper use of the compatible string armada38x using a wildcard
  ARM: dts: kirkwood: fix phy-connection-type for Guruplug
  ARM: EXYNOS: Don't rely on firmware's secondary_cpu_start for mcpm
  ARM: dts: imx51-eukrea-mbimxsd51-baseboard: unbreak esdhc.
  ARM: dts: imx51-babbage: Fix esdhc setup
  ARM: dts: mx5: Move the display out of soc {} node
  ARM: dts: mx5: Fix IPU port node placement
  ARM: mvebu: select ARM_CPU_SUSPEND for Marvell EBU v7 platforms
  ARM: mvebu: Fix broken SoC ID detection
  ARM: imx_v6_v7_defconfig: Enable CONFIG_IMX_IPUV3_CORE
  ARM: multi_v7_defconfig: Add QCOM GSBI driver
  ARM: stih41x: Rename stih416-b2020-revE.dts to stih416-b2020e.dts
  tty: serial: msm: Fix section mismatch warning
  ...
Linus Torvalds 11 years ago
parent
commit
456febd299
43 changed files with 158 additions and 147 deletions
  1. 12 2
      Documentation/devicetree/bindings/arm/armada-38x.txt
  2. 1 1
      arch/arm/boot/dts/Makefile
  3. 1 1
      arch/arm/boot/dts/armada-380.dtsi
  4. 1 1
      arch/arm/boot/dts/armada-385-db.dts
  5. 1 1
      arch/arm/boot/dts/armada-385-rd.dts
  6. 1 1
      arch/arm/boot/dts/armada-385.dtsi
  7. 1 1
      arch/arm/boot/dts/armada-38x.dtsi
  8. 7 14
      arch/arm/boot/dts/at91sam9261.dtsi
  9. 4 0
      arch/arm/boot/dts/at91sam9261ek.dts
  10. 2 2
      arch/arm/boot/dts/at91sam9n12.dtsi
  11. 2 2
      arch/arm/boot/dts/at91sam9x5.dtsi
  12. 1 1
      arch/arm/boot/dts/exynos4.dtsi
  13. 5 5
      arch/arm/boot/dts/imx51-babbage.dts
  14. 2 2
      arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard.dts
  15. 19 21
      arch/arm/boot/dts/imx53-m53evk.dts
  16. 10 0
      arch/arm/boot/dts/imx6dl-hummingboard.dts
  17. 1 1
      arch/arm/boot/dts/imx6q-gw51xx.dts
  18. 27 0
      arch/arm/boot/dts/imx6qdl-cubox-i.dtsi
  19. 1 1
      arch/arm/boot/dts/imx6qdl-gw51xx.dtsi
  20. 2 2
      arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
  21. 1 1
      arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
  22. 0 13
      arch/arm/boot/dts/imx6qdl-microsom.dtsi
  23. 1 1
      arch/arm/boot/dts/imx6sl.dtsi
  24. 2 2
      arch/arm/boot/dts/kirkwood-guruplug-server-plus.dts
  25. 4 4
      arch/arm/boot/dts/stih415.dtsi
  26. 0 0
      arch/arm/boot/dts/stih416-b2020e.dts
  27. 4 4
      arch/arm/boot/dts/stih416.dtsi
  28. 1 0
      arch/arm/configs/imx_v6_v7_defconfig
  29. 1 0
      arch/arm/configs/multi_v7_defconfig
  30. 2 0
      arch/arm/configs/mvebu_v7_defconfig
  31. 1 7
      arch/arm/mach-exynos/hotplug.c
  32. 6 5
      arch/arm/mach-exynos/mcpm-exynos.c
  33. 9 6
      arch/arm/mach-exynos/pm.c
  34. 1 0
      arch/arm/mach-imx/clk-imx6sl.c
  35. 7 19
      arch/arm/mach-integrator/integrator_ap.c
  36. 6 17
      arch/arm/mach-integrator/integrator_cp.c
  37. 2 0
      arch/arm/mach-mvebu/Kconfig
  38. 3 6
      drivers/clocksource/exynos_mct.c
  39. 1 1
      drivers/misc/Kconfig
  40. 1 1
      drivers/tty/serial/msm_serial.c
  41. 2 1
      include/dt-bindings/clock/imx6sl-clock.h
  42. 1 0
      include/dt-bindings/clock/stih415-clks.h
  43. 1 0
      include/dt-bindings/clock/stih416-clks.h

+ 12 - 2
Documentation/devicetree/bindings/arm/armada-38x.txt

@@ -6,5 +6,15 @@ following property:
 
 
 Required root node property:
 Required root node property:
 
 
- - compatible: must contain either "marvell,armada380" or
-   "marvell,armada385" depending on the variant of the SoC being used.
+ - compatible: must contain "marvell,armada380"
+
+In addition, boards using the Marvell Armada 385 SoC shall have the
+following property before the previous one:
+
+Required root node property:
+
+compatible: must contain "marvell,armada385"
+
+Example:
+
+compatible = "marvell,a385-rd", "marvell,armada385", "marvell,armada380";

+ 1 - 1
arch/arm/boot/dts/Makefile

@@ -357,7 +357,7 @@ dtb-$(CONFIG_ARCH_STI)+= stih407-b2120.dtb \
 	stih415-b2020.dtb \
 	stih415-b2020.dtb \
 	stih416-b2000.dtb \
 	stih416-b2000.dtb \
 	stih416-b2020.dtb \
 	stih416-b2020.dtb \
-	stih416-b2020-revE.dtb
+	stih416-b2020e.dtb
 dtb-$(CONFIG_MACH_SUN4I) += \
 dtb-$(CONFIG_MACH_SUN4I) += \
 	sun4i-a10-a1000.dtb \
 	sun4i-a10-a1000.dtb \
 	sun4i-a10-cubieboard.dtb \
 	sun4i-a10-cubieboard.dtb \

+ 1 - 1
arch/arm/boot/dts/armada-380.dtsi

@@ -16,7 +16,7 @@
 
 
 / {
 / {
 	model = "Marvell Armada 380 family SoC";
 	model = "Marvell Armada 380 family SoC";
-	compatible = "marvell,armada380", "marvell,armada38x";
+	compatible = "marvell,armada380";
 
 
 	cpus {
 	cpus {
 		#address-cells = <1>;
 		#address-cells = <1>;

+ 1 - 1
arch/arm/boot/dts/armada-385-db.dts

@@ -16,7 +16,7 @@
 
 
 / {
 / {
 	model = "Marvell Armada 385 Development Board";
 	model = "Marvell Armada 385 Development Board";
-	compatible = "marvell,a385-db", "marvell,armada385", "marvell,armada38x";
+	compatible = "marvell,a385-db", "marvell,armada385", "marvell,armada380";
 
 
 	chosen {
 	chosen {
 		bootargs = "console=ttyS0,115200 earlyprintk";
 		bootargs = "console=ttyS0,115200 earlyprintk";

+ 1 - 1
arch/arm/boot/dts/armada-385-rd.dts

@@ -17,7 +17,7 @@
 
 
 / {
 / {
 	model = "Marvell Armada 385 Reference Design";
 	model = "Marvell Armada 385 Reference Design";
-	compatible = "marvell,a385-rd", "marvell,armada385", "marvell,armada38x";
+	compatible = "marvell,a385-rd", "marvell,armada385", "marvell,armada380";
 
 
 	chosen {
 	chosen {
 		bootargs = "console=ttyS0,115200 earlyprintk";
 		bootargs = "console=ttyS0,115200 earlyprintk";

+ 1 - 1
arch/arm/boot/dts/armada-385.dtsi

@@ -16,7 +16,7 @@
 
 
 / {
 / {
 	model = "Marvell Armada 385 family SoC";
 	model = "Marvell Armada 385 family SoC";
-	compatible = "marvell,armada385", "marvell,armada38x";
+	compatible = "marvell,armada385", "marvell,armada380";
 
 
 	cpus {
 	cpus {
 		#address-cells = <1>;
 		#address-cells = <1>;

+ 1 - 1
arch/arm/boot/dts/armada-38x.dtsi

@@ -20,7 +20,7 @@
 
 
 / {
 / {
 	model = "Marvell Armada 38x family SoC";
 	model = "Marvell Armada 38x family SoC";
-	compatible = "marvell,armada38x";
+	compatible = "marvell,armada380";
 
 
 	aliases {
 	aliases {
 		gpio0 = &gpio0;
 		gpio0 = &gpio0;

+ 7 - 14
arch/arm/boot/dts/at91sam9261.dtsi

@@ -568,24 +568,17 @@
 				#size-cells = <0>;
 				#size-cells = <0>;
 				#interrupt-cells = <1>;
 				#interrupt-cells = <1>;
 
 
-				slow_rc_osc: slow_rc_osc {
-					compatible = "fixed-clock";
+				main_osc: main_osc {
+					compatible = "atmel,at91rm9200-clk-main-osc";
 					#clock-cells = <0>;
 					#clock-cells = <0>;
-					clock-frequency = <32768>;
-					clock-accuracy = <50000000>;
-				};
-
-				clk32k: slck {
-					compatible = "atmel,at91sam9260-clk-slow";
-					#clock-cells = <0>;
-					clocks = <&slow_rc_osc &slow_xtal>;
+					interrupts-extended = <&pmc AT91_PMC_MOSCS>;
+					clocks = <&main_xtal>;
 				};
 				};
 
 
 				main: mainck {
 				main: mainck {
 					compatible = "atmel,at91rm9200-clk-main";
 					compatible = "atmel,at91rm9200-clk-main";
 					#clock-cells = <0>;
 					#clock-cells = <0>;
-					interrupts-extended = <&pmc AT91_PMC_MOSCS>;
-					clocks = <&main_xtal>;
+					clocks = <&main_osc>;
 				};
 				};
 
 
 				plla: pllack {
 				plla: pllack {
@@ -615,7 +608,7 @@
 					compatible = "atmel,at91rm9200-clk-master";
 					compatible = "atmel,at91rm9200-clk-master";
 					#clock-cells = <0>;
 					#clock-cells = <0>;
 					interrupts-extended = <&pmc AT91_PMC_MCKRDY>;
 					interrupts-extended = <&pmc AT91_PMC_MCKRDY>;
-					clocks = <&clk32k>, <&main>, <&plla>, <&pllb>;
+					clocks = <&slow_xtal>, <&main>, <&plla>, <&pllb>;
 					atmel,clk-output-range = <0 94000000>;
 					atmel,clk-output-range = <0 94000000>;
 					atmel,clk-divisors = <1 2 4 0>;
 					atmel,clk-divisors = <1 2 4 0>;
 				};
 				};
@@ -632,7 +625,7 @@
 					#address-cells = <1>;
 					#address-cells = <1>;
 					#size-cells = <0>;
 					#size-cells = <0>;
 					interrupt-parent = <&pmc>;
 					interrupt-parent = <&pmc>;
-					clocks = <&clk32k>, <&main>, <&plla>, <&pllb>;
+					clocks = <&slow_xtal>, <&main>, <&plla>, <&pllb>;
 
 
 					prog0: prog0 {
 					prog0: prog0 {
 						#clock-cells = <0>;
 						#clock-cells = <0>;

+ 4 - 0
arch/arm/boot/dts/at91sam9261ek.dts

@@ -20,6 +20,10 @@
 		reg = <0x20000000 0x4000000>;
 		reg = <0x20000000 0x4000000>;
 	};
 	};
 
 
+	slow_xtal {
+		clock-frequency = <32768>;
+	};
+
 	main_xtal {
 	main_xtal {
 		clock-frequency = <18432000>;
 		clock-frequency = <18432000>;
 	};
 	};

+ 2 - 2
arch/arm/boot/dts/at91sam9n12.dtsi

@@ -132,8 +132,8 @@
 								      <595000000 650000000 3 0>,
 								      <595000000 650000000 3 0>,
 								      <545000000 600000000 0 1>,
 								      <545000000 600000000 0 1>,
 								      <495000000 555000000 1 1>,
 								      <495000000 555000000 1 1>,
-								      <445000000 500000000 1 2>,
-								      <400000000 450000000 1 3>;
+								      <445000000 500000000 2 1>,
+								      <400000000 450000000 3 1>;
 				};
 				};
 
 
 				plladiv: plladivck {
 				plladiv: plladivck {

+ 2 - 2
arch/arm/boot/dts/at91sam9x5.dtsi

@@ -140,8 +140,8 @@
 								       595000000 650000000 3 0
 								       595000000 650000000 3 0
 								       545000000 600000000 0 1
 								       545000000 600000000 0 1
 								       495000000 555000000 1 1
 								       495000000 555000000 1 1
-								       445000000 500000000 1 2
-								       400000000 450000000 1 3>;
+								       445000000 500000000 2 1
+								       400000000 450000000 3 1>;
 				};
 				};
 
 
 				plladiv: plladivck {
 				plladiv: plladivck {

+ 1 - 1
arch/arm/boot/dts/exynos4.dtsi

@@ -113,7 +113,7 @@
 		compatible = "arm,cortex-a9-gic";
 		compatible = "arm,cortex-a9-gic";
 		#interrupt-cells = <3>;
 		#interrupt-cells = <3>;
 		interrupt-controller;
 		interrupt-controller;
-		reg = <0x10490000 0x1000>, <0x10480000 0x100>;
+		reg = <0x10490000 0x10000>, <0x10480000 0x10000>;
 	};
 	};
 
 
 	combiner: interrupt-controller@10440000 {
 	combiner: interrupt-controller@10440000 {

+ 5 - 5
arch/arm/boot/dts/imx51-babbage.dts

@@ -315,15 +315,15 @@
 &esdhc1 {
 &esdhc1 {
 	pinctrl-names = "default";
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_esdhc1>;
 	pinctrl-0 = <&pinctrl_esdhc1>;
-	fsl,cd-controller;
-	fsl,wp-controller;
+	cd-gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
+	wp-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
 	status = "okay";
 	status = "okay";
 };
 };
 
 
 &esdhc2 {
 &esdhc2 {
 	pinctrl-names = "default";
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_esdhc2>;
 	pinctrl-0 = <&pinctrl_esdhc2>;
-	cd-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
+	cd-gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
 	wp-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
 	wp-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
 	status = "okay";
 	status = "okay";
 };
 };
@@ -468,8 +468,8 @@
 				MX51_PAD_SD1_DATA1__SD1_DATA1		0x20d5
 				MX51_PAD_SD1_DATA1__SD1_DATA1		0x20d5
 				MX51_PAD_SD1_DATA2__SD1_DATA2		0x20d5
 				MX51_PAD_SD1_DATA2__SD1_DATA2		0x20d5
 				MX51_PAD_SD1_DATA3__SD1_DATA3		0x20d5
 				MX51_PAD_SD1_DATA3__SD1_DATA3		0x20d5
-				MX51_PAD_GPIO1_0__SD1_CD		0x20d5
-				MX51_PAD_GPIO1_1__SD1_WP		0x20d5
+				MX51_PAD_GPIO1_0__GPIO1_0		0x100
+				MX51_PAD_GPIO1_1__GPIO1_1		0x100
 			>;
 			>;
 		};
 		};
 
 

+ 2 - 2
arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard.dts

@@ -107,7 +107,7 @@
 &esdhc1 {
 &esdhc1 {
 	pinctrl-names = "default";
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_esdhc1 &pinctrl_esdhc1_cd>;
 	pinctrl-0 = <&pinctrl_esdhc1 &pinctrl_esdhc1_cd>;
-	fsl,cd-controller;
+	cd-gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
 	status = "okay";
 	status = "okay";
 };
 };
 
 
@@ -206,7 +206,7 @@
 
 
 		pinctrl_esdhc1_cd: esdhc1_cd {
 		pinctrl_esdhc1_cd: esdhc1_cd {
 			fsl,pins = <
 			fsl,pins = <
-				MX51_PAD_GPIO1_0__SD1_CD 0x20d5
+				MX51_PAD_GPIO1_0__GPIO1_0 0xd5
 			>;
 			>;
 		};
 		};
 
 

+ 19 - 21
arch/arm/boot/dts/imx53-m53evk.dts

@@ -21,27 +21,25 @@
 		      <0xb0000000 0x20000000>;
 		      <0xb0000000 0x20000000>;
 	};
 	};
 
 
-	soc {
-		display1: display@di1 {
-			compatible = "fsl,imx-parallel-display";
-			interface-pix-fmt = "bgr666";
-			pinctrl-names = "default";
-			pinctrl-0 = <&pinctrl_ipu_disp1>;
-
-			display-timings {
-				800x480p60 {
-					native-mode;
-					clock-frequency = <31500000>;
-					hactive = <800>;
-					vactive = <480>;
-					hfront-porch = <40>;
-					hback-porch = <88>;
-					hsync-len = <128>;
-					vback-porch = <33>;
-					vfront-porch = <9>;
-					vsync-len = <3>;
-					vsync-active = <1>;
-				};
+	display1: display@di1 {
+		compatible = "fsl,imx-parallel-display";
+		interface-pix-fmt = "bgr666";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_ipu_disp1>;
+
+		display-timings {
+			800x480p60 {
+				native-mode;
+				clock-frequency = <31500000>;
+				hactive = <800>;
+				vactive = <480>;
+				hfront-porch = <40>;
+				hback-porch = <88>;
+				hsync-len = <128>;
+				vback-porch = <33>;
+				vfront-porch = <9>;
+				vsync-len = <3>;
+				vsync-active = <1>;
 			};
 			};
 		};
 		};
 
 

+ 10 - 0
arch/arm/boot/dts/imx6dl-hummingboard.dts

@@ -143,6 +143,14 @@
 			fsl,pins = <MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x1b0b0>;
 			fsl,pins = <MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x1b0b0>;
 		};
 		};
 
 
+		pinctrl_hummingboard_usbotg_id: hummingboard-usbotg-id {
+			/*
+			 * Similar to pinctrl_usbotg_2, but we want it
+			 * pulled down for a fixed host connection.
+			 */
+			fsl,pins = <MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x13059>;
+		};
+
 		pinctrl_hummingboard_usbotg_vbus: hummingboard-usbotg-vbus {
 		pinctrl_hummingboard_usbotg_vbus: hummingboard-usbotg-vbus {
 			fsl,pins = <MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1b0b0>;
 			fsl,pins = <MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1b0b0>;
 		};
 		};
@@ -178,6 +186,8 @@
 };
 };
 
 
 &usbotg {
 &usbotg {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_hummingboard_usbotg_id>;
 	vbus-supply = <&reg_usbotg_vbus>;
 	vbus-supply = <&reg_usbotg_vbus>;
 	status = "okay";
 	status = "okay";
 };
 };

+ 1 - 1
arch/arm/boot/dts/imx6q-gw51xx.dts

@@ -11,7 +11,7 @@
 
 
 /dts-v1/;
 /dts-v1/;
 #include "imx6q.dtsi"
 #include "imx6q.dtsi"
-#include "imx6qdl-gw54xx.dtsi"
+#include "imx6qdl-gw51xx.dtsi"
 
 
 / {
 / {
 	model = "Gateworks Ventana i.MX6 Quad GW51XX";
 	model = "Gateworks Ventana i.MX6 Quad GW51XX";

+ 27 - 0
arch/arm/boot/dts/imx6qdl-cubox-i.dtsi

@@ -12,6 +12,19 @@
 		pinctrl-0 = <&pinctrl_cubox_i_ir>;
 		pinctrl-0 = <&pinctrl_cubox_i_ir>;
 	};
 	};
 
 
+	pwmleds {
+		compatible = "pwm-leds";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_cubox_i_pwm1>;
+
+		front {
+			active-low;
+			label = "imx6:red:front";
+			max-brightness = <248>;
+			pwms = <&pwm1 0 50000>;
+		};
+	};
+
 	regulators {
 	regulators {
 		compatible = "simple-bus";
 		compatible = "simple-bus";
 
 
@@ -109,6 +122,10 @@
 			>;
 			>;
 		};
 		};
 
 
+		pinctrl_cubox_i_pwm1: cubox-i-pwm1-front-led {
+			fsl,pins = <MX6QDL_PAD_DISP0_DAT8__PWM1_OUT 0x1b0b0>;
+		};
+
 		pinctrl_cubox_i_spdif: cubox-i-spdif {
 		pinctrl_cubox_i_spdif: cubox-i-spdif {
 			fsl,pins = <MX6QDL_PAD_GPIO_17__SPDIF_OUT 0x13091>;
 			fsl,pins = <MX6QDL_PAD_GPIO_17__SPDIF_OUT 0x13091>;
 		};
 		};
@@ -117,6 +134,14 @@
 			fsl,pins = <MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x4001b0b0>;
 			fsl,pins = <MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x4001b0b0>;
 		};
 		};
 
 
+		pinctrl_cubox_i_usbotg_id: cubox-i-usbotg-id {
+			/*
+			 * The Cubox-i pulls this low, but as it's pointless
+			 * leaving it as a pull-up, even if it is just 10uA.
+			 */
+			fsl,pins = <MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x13059>;
+		};
+
 		pinctrl_cubox_i_usbotg_vbus: cubox-i-usbotg-vbus {
 		pinctrl_cubox_i_usbotg_vbus: cubox-i-usbotg-vbus {
 			fsl,pins = <MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x4001b0b0>;
 			fsl,pins = <MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x4001b0b0>;
 		};
 		};
@@ -153,6 +178,8 @@
 };
 };
 
 
 &usbotg {
 &usbotg {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_cubox_i_usbotg_id>;
 	vbus-supply = <&reg_usbotg_vbus>;
 	vbus-supply = <&reg_usbotg_vbus>;
 	status = "okay";
 	status = "okay";
 };
 };

+ 1 - 1
arch/arm/boot/dts/imx6qdl-gw51xx.dtsi

@@ -161,7 +161,7 @@
 	status = "okay";
 	status = "okay";
 
 
 	pmic: ltc3676@3c {
 	pmic: ltc3676@3c {
-		compatible = "ltc,ltc3676";
+		compatible = "lltc,ltc3676";
 		reg = <0x3c>;
 		reg = <0x3c>;
 
 
 		regulators {
 		regulators {

+ 2 - 2
arch/arm/boot/dts/imx6qdl-gw52xx.dtsi

@@ -220,7 +220,7 @@
 	};
 	};
 
 
 	pmic: ltc3676@3c {
 	pmic: ltc3676@3c {
-		compatible = "ltc,ltc3676";
+		compatible = "lltc,ltc3676";
 		reg = <0x3c>;
 		reg = <0x3c>;
 
 
 		regulators {
 		regulators {
@@ -288,7 +288,7 @@
 	codec: sgtl5000@0a {
 	codec: sgtl5000@0a {
 		compatible = "fsl,sgtl5000";
 		compatible = "fsl,sgtl5000";
 		reg = <0x0a>;
 		reg = <0x0a>;
-		clocks = <&clks 169>;
+		clocks = <&clks 201>;
 		VDDA-supply = <&reg_1p8v>;
 		VDDA-supply = <&reg_1p8v>;
 		VDDIO-supply = <&reg_3p3v>;
 		VDDIO-supply = <&reg_3p3v>;
 	};
 	};

+ 1 - 1
arch/arm/boot/dts/imx6qdl-gw53xx.dtsi

@@ -234,7 +234,7 @@
 	};
 	};
 
 
 	pmic: ltc3676@3c {
 	pmic: ltc3676@3c {
-		compatible = "ltc,ltc3676";
+		compatible = "lltc,ltc3676";
 		reg = <0x3c>;
 		reg = <0x3c>;
 
 
 		regulators {
 		regulators {

+ 0 - 13
arch/arm/boot/dts/imx6qdl-microsom.dtsi

@@ -10,14 +10,6 @@
 				MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA	0x1b0b1
 				MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA	0x1b0b1
 			>;
 			>;
 		};
 		};
-
-		pinctrl_microsom_usbotg: microsom-usbotg {
-			/*
-			 * Similar to pinctrl_usbotg_2, but we want it
-			 * pulled down for a fixed host connection.
-			 */
-			fsl,pins = <MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x13059>;
-		};
 	};
 	};
 };
 };
 
 
@@ -26,8 +18,3 @@
 	pinctrl-0 = <&pinctrl_microsom_uart1>;
 	pinctrl-0 = <&pinctrl_microsom_uart1>;
 	status = "okay";
 	status = "okay";
 };
 };
-
-&usbotg {
-	pinctrl-names = "default";
-	pinctrl-0 = <&pinctrl_microsom_usbotg>;
-};

+ 1 - 1
arch/arm/boot/dts/imx6sl.dtsi

@@ -686,7 +686,7 @@
 				compatible = "fsl,imx6sl-fec", "fsl,imx25-fec";
 				compatible = "fsl,imx6sl-fec", "fsl,imx25-fec";
 				reg = <0x02188000 0x4000>;
 				reg = <0x02188000 0x4000>;
 				interrupts = <0 114 IRQ_TYPE_LEVEL_HIGH>;
 				interrupts = <0 114 IRQ_TYPE_LEVEL_HIGH>;
-				clocks = <&clks IMX6SL_CLK_ENET_REF>,
+				clocks = <&clks IMX6SL_CLK_ENET>,
 					 <&clks IMX6SL_CLK_ENET_REF>;
 					 <&clks IMX6SL_CLK_ENET_REF>;
 				clock-names = "ipg", "ahb";
 				clock-names = "ipg", "ahb";
 				status = "disabled";
 				status = "disabled";

+ 2 - 2
arch/arm/boot/dts/kirkwood-guruplug-server-plus.dts

@@ -105,7 +105,6 @@
 		compatible = "ethernet-phy-id0141.0cb0",
 		compatible = "ethernet-phy-id0141.0cb0",
 		             "ethernet-phy-ieee802.3-c22";
 		             "ethernet-phy-ieee802.3-c22";
 		reg = <0>;
 		reg = <0>;
-		phy-connection-type = "rgmii-id";
 	};
 	};
 
 
 	ethphy1: ethernet-phy@1 {
 	ethphy1: ethernet-phy@1 {
@@ -113,7 +112,6 @@
 		compatible = "ethernet-phy-id0141.0cb0",
 		compatible = "ethernet-phy-id0141.0cb0",
 		             "ethernet-phy-ieee802.3-c22";
 		             "ethernet-phy-ieee802.3-c22";
 		reg = <1>;
 		reg = <1>;
-		phy-connection-type = "rgmii-id";
 	};
 	};
 };
 };
 
 
@@ -121,6 +119,7 @@
 	status = "okay";
 	status = "okay";
 	ethernet0-port@0 {
 	ethernet0-port@0 {
 		phy-handle = <&ethphy0>;
 		phy-handle = <&ethphy0>;
+		phy-connection-type = "rgmii-id";
 	};
 	};
 };
 };
 
 
@@ -128,5 +127,6 @@
 	status = "okay";
 	status = "okay";
 	ethernet1-port@0 {
 	ethernet1-port@0 {
 		phy-handle = <&ethphy1>;
 		phy-handle = <&ethphy1>;
+		phy-connection-type = "rgmii-id";
 	};
 	};
 };
 };

+ 4 - 4
arch/arm/boot/dts/stih415.dtsi

@@ -169,8 +169,8 @@
 
 
 			pinctrl-names 	= "default";
 			pinctrl-names 	= "default";
 			pinctrl-0	= <&pinctrl_mii0>;
 			pinctrl-0	= <&pinctrl_mii0>;
-			clock-names	= "stmmaceth";
-			clocks		= <&clk_s_a1_ls CLK_GMAC0_PHY>;
+			clock-names	= "stmmaceth", "sti-ethclk";
+			clocks		= <&clk_s_a1_ls CLK_ICN_IF_2>, <&clk_s_a1_ls CLK_GMAC0_PHY>;
 		};
 		};
 
 
 		ethernet1: dwmac@fef08000 {
 		ethernet1: dwmac@fef08000 {
@@ -192,8 +192,8 @@
 			reset-names		= "stmmaceth";
 			reset-names		= "stmmaceth";
 			pinctrl-names 	= "default";
 			pinctrl-names 	= "default";
 			pinctrl-0	= <&pinctrl_mii1>;
 			pinctrl-0	= <&pinctrl_mii1>;
-			clock-names	= "stmmaceth";
-			clocks		= <&clk_s_a0_ls CLK_ETH1_PHY>;
+			clock-names	= "stmmaceth", "sti-ethclk";
+			clocks		= <&clk_s_a0_ls CLK_ICN_REG>, <&clk_s_a0_ls CLK_ETH1_PHY>;
 		};
 		};
 
 
 		rc: rc@fe518000 {
 		rc: rc@fe518000 {

+ 0 - 0
arch/arm/boot/dts/stih416-b2020-revE.dts → arch/arm/boot/dts/stih416-b2020e.dts


+ 4 - 4
arch/arm/boot/dts/stih416.dtsi

@@ -175,8 +175,8 @@
 			reset-names		= "stmmaceth";
 			reset-names		= "stmmaceth";
 			pinctrl-names 	= "default";
 			pinctrl-names 	= "default";
 			pinctrl-0	= <&pinctrl_mii0>;
 			pinctrl-0	= <&pinctrl_mii0>;
-			clock-names	= "stmmaceth";
-			clocks		= <&clk_s_a1_ls CLK_GMAC0_PHY>;
+			clock-names	= "stmmaceth", "sti-ethclk";
+			clocks		= <&clk_s_a1_ls CLK_ICN_IF_2>, <&clk_s_a1_ls CLK_GMAC0_PHY>;
 		};
 		};
 
 
 		ethernet1: dwmac@fef08000 {
 		ethernet1: dwmac@fef08000 {
@@ -197,8 +197,8 @@
 			reset-names	= "stmmaceth";
 			reset-names	= "stmmaceth";
 			pinctrl-names 	= "default";
 			pinctrl-names 	= "default";
 			pinctrl-0	= <&pinctrl_mii1>;
 			pinctrl-0	= <&pinctrl_mii1>;
-			clock-names	= "stmmaceth";
-			clocks		= <&clk_s_a0_ls CLK_ETH1_PHY>;
+			clock-names	= "stmmaceth", "sti-ethclk";
+			clocks		= <&clk_s_a0_ls CLK_ICN_REG>, <&clk_s_a0_ls CLK_ETH1_PHY>;
 		};
 		};
 
 
 		rc: rc@fe518000 {
 		rc: rc@fe518000 {

+ 1 - 0
arch/arm/configs/imx_v6_v7_defconfig

@@ -186,6 +186,7 @@ CONFIG_VIDEO_MX3=y
 CONFIG_V4L_MEM2MEM_DRIVERS=y
 CONFIG_V4L_MEM2MEM_DRIVERS=y
 CONFIG_VIDEO_CODA=y
 CONFIG_VIDEO_CODA=y
 CONFIG_SOC_CAMERA_OV2640=y
 CONFIG_SOC_CAMERA_OV2640=y
+CONFIG_IMX_IPUV3_CORE=y
 CONFIG_DRM=y
 CONFIG_DRM=y
 CONFIG_DRM_PANEL_SIMPLE=y
 CONFIG_DRM_PANEL_SIMPLE=y
 CONFIG_BACKLIGHT_LCD_SUPPORT=y
 CONFIG_BACKLIGHT_LCD_SUPPORT=y

+ 1 - 0
arch/arm/configs/multi_v7_defconfig

@@ -353,6 +353,7 @@ CONFIG_MFD_NVEC=y
 CONFIG_KEYBOARD_NVEC=y
 CONFIG_KEYBOARD_NVEC=y
 CONFIG_SERIO_NVEC_PS2=y
 CONFIG_SERIO_NVEC_PS2=y
 CONFIG_NVEC_POWER=y
 CONFIG_NVEC_POWER=y
+CONFIG_QCOM_GSBI=y
 CONFIG_COMMON_CLK_QCOM=y
 CONFIG_COMMON_CLK_QCOM=y
 CONFIG_MSM_GCC_8660=y
 CONFIG_MSM_GCC_8660=y
 CONFIG_MSM_MMCC_8960=y
 CONFIG_MSM_MMCC_8960=y

+ 2 - 0
arch/arm/configs/mvebu_v7_defconfig

@@ -14,6 +14,7 @@ CONFIG_MACH_ARMADA_370=y
 CONFIG_MACH_ARMADA_375=y
 CONFIG_MACH_ARMADA_375=y
 CONFIG_MACH_ARMADA_38X=y
 CONFIG_MACH_ARMADA_38X=y
 CONFIG_MACH_ARMADA_XP=y
 CONFIG_MACH_ARMADA_XP=y
+CONFIG_MACH_DOVE=y
 CONFIG_NEON=y
 CONFIG_NEON=y
 # CONFIG_CACHE_L2X0 is not set
 # CONFIG_CACHE_L2X0 is not set
 # CONFIG_SWP_EMULATE is not set
 # CONFIG_SWP_EMULATE is not set
@@ -52,6 +53,7 @@ CONFIG_INPUT_EVDEV=y
 CONFIG_KEYBOARD_GPIO=y
 CONFIG_KEYBOARD_GPIO=y
 CONFIG_SERIAL_8250=y
 CONFIG_SERIAL_8250=y
 CONFIG_SERIAL_8250_CONSOLE=y
 CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_OF_PLATFORM=y
 CONFIG_I2C=y
 CONFIG_I2C=y
 CONFIG_SPI=y
 CONFIG_SPI=y
 CONFIG_SPI_ORION=y
 CONFIG_SPI_ORION=y

+ 1 - 7
arch/arm/mach-exynos/hotplug.c

@@ -46,13 +46,7 @@ static inline void platform_do_lowpower(unsigned int cpu, int *spurious)
 		if (cpu == 1)
 		if (cpu == 1)
 			exynos_cpu_power_down(cpu);
 			exynos_cpu_power_down(cpu);
 
 
-		/*
-		 * here's the WFI
-		 */
-		asm(".word	0xe320f003\n"
-		    :
-		    :
-		    : "memory", "cc");
+		wfi();
 
 
 		if (pen_release == cpu_logical_map(cpu)) {
 		if (pen_release == cpu_logical_map(cpu)) {
 			/*
 			/*

+ 6 - 5
arch/arm/mach-exynos/mcpm-exynos.c

@@ -25,7 +25,6 @@
 
 
 #define EXYNOS5420_CPUS_PER_CLUSTER	4
 #define EXYNOS5420_CPUS_PER_CLUSTER	4
 #define EXYNOS5420_NR_CLUSTERS		2
 #define EXYNOS5420_NR_CLUSTERS		2
-#define MCPM_BOOT_ADDR_OFFSET		0x1c
 
 
 /*
 /*
  * The common v7_exit_coherency_flush API could not be used because of the
  * The common v7_exit_coherency_flush API could not be used because of the
@@ -343,11 +342,13 @@ static int __init exynos_mcpm_init(void)
 	pr_info("Exynos MCPM support installed\n");
 	pr_info("Exynos MCPM support installed\n");
 
 
 	/*
 	/*
-	 * Future entries into the kernel can now go
-	 * through the cluster entry vectors.
+	 * U-Boot SPL is hardcoded to jump to the start of ns_sram_base_addr
+	 * as part of secondary_cpu_start().  Let's redirect it to the
+	 * mcpm_entry_point().
 	 */
 	 */
-	__raw_writel(virt_to_phys(mcpm_entry_point),
-			ns_sram_base_addr + MCPM_BOOT_ADDR_OFFSET);
+	__raw_writel(0xe59f0000, ns_sram_base_addr);     /* ldr r0, [pc, #0] */
+	__raw_writel(0xe12fff10, ns_sram_base_addr + 4); /* bx  r0 */
+	__raw_writel(virt_to_phys(mcpm_entry_point), ns_sram_base_addr + 8);
 
 
 	iounmap(ns_sram_base_addr);
 	iounmap(ns_sram_base_addr);
 
 

+ 9 - 6
arch/arm/mach-exynos/pm.c

@@ -300,7 +300,7 @@ static int exynos_pm_suspend(void)
 	tmp = (S5P_USE_STANDBY_WFI0 | S5P_USE_STANDBY_WFE0);
 	tmp = (S5P_USE_STANDBY_WFI0 | S5P_USE_STANDBY_WFE0);
 	__raw_writel(tmp, S5P_CENTRAL_SEQ_OPTION);
 	__raw_writel(tmp, S5P_CENTRAL_SEQ_OPTION);
 
 
-	if (!soc_is_exynos5250())
+	if (read_cpuid_part_number() == ARM_CPU_PART_CORTEX_A9)
 		exynos_cpu_save_register();
 		exynos_cpu_save_register();
 
 
 	return 0;
 	return 0;
@@ -334,7 +334,7 @@ static void exynos_pm_resume(void)
 	if (exynos_pm_central_resume())
 	if (exynos_pm_central_resume())
 		goto early_wakeup;
 		goto early_wakeup;
 
 
-	if (!soc_is_exynos5250())
+	if (read_cpuid_part_number() == ARM_CPU_PART_CORTEX_A9)
 		exynos_cpu_restore_register();
 		exynos_cpu_restore_register();
 
 
 	/* For release retention */
 	/* For release retention */
@@ -353,7 +353,7 @@ static void exynos_pm_resume(void)
 
 
 	s3c_pm_do_restore_core(exynos_core_save, ARRAY_SIZE(exynos_core_save));
 	s3c_pm_do_restore_core(exynos_core_save, ARRAY_SIZE(exynos_core_save));
 
 
-	if (!soc_is_exynos5250())
+	if (read_cpuid_part_number() == ARM_CPU_PART_CORTEX_A9)
 		scu_enable(S5P_VA_SCU);
 		scu_enable(S5P_VA_SCU);
 
 
 early_wakeup:
 early_wakeup:
@@ -440,15 +440,18 @@ static int exynos_cpu_pm_notifier(struct notifier_block *self,
 	case CPU_PM_ENTER:
 	case CPU_PM_ENTER:
 		if (cpu == 0) {
 		if (cpu == 0) {
 			exynos_pm_central_suspend();
 			exynos_pm_central_suspend();
-			exynos_cpu_save_register();
+			if (read_cpuid_part_number() == ARM_CPU_PART_CORTEX_A9)
+				exynos_cpu_save_register();
 		}
 		}
 		break;
 		break;
 
 
 	case CPU_PM_EXIT:
 	case CPU_PM_EXIT:
 		if (cpu == 0) {
 		if (cpu == 0) {
-			if (!soc_is_exynos5250())
+			if (read_cpuid_part_number() ==
+					ARM_CPU_PART_CORTEX_A9) {
 				scu_enable(S5P_VA_SCU);
 				scu_enable(S5P_VA_SCU);
-			exynos_cpu_restore_register();
+				exynos_cpu_restore_register();
+			}
 			exynos_pm_central_resume();
 			exynos_pm_central_resume();
 		}
 		}
 		break;
 		break;

+ 1 - 0
arch/arm/mach-imx/clk-imx6sl.c

@@ -312,6 +312,7 @@ static void __init imx6sl_clocks_init(struct device_node *ccm_node)
 	clks[IMX6SL_CLK_ECSPI2]       = imx_clk_gate2("ecspi2",       "ecspi_root",        base + 0x6c, 2);
 	clks[IMX6SL_CLK_ECSPI2]       = imx_clk_gate2("ecspi2",       "ecspi_root",        base + 0x6c, 2);
 	clks[IMX6SL_CLK_ECSPI3]       = imx_clk_gate2("ecspi3",       "ecspi_root",        base + 0x6c, 4);
 	clks[IMX6SL_CLK_ECSPI3]       = imx_clk_gate2("ecspi3",       "ecspi_root",        base + 0x6c, 4);
 	clks[IMX6SL_CLK_ECSPI4]       = imx_clk_gate2("ecspi4",       "ecspi_root",        base + 0x6c, 6);
 	clks[IMX6SL_CLK_ECSPI4]       = imx_clk_gate2("ecspi4",       "ecspi_root",        base + 0x6c, 6);
+	clks[IMX6SL_CLK_ENET]         = imx_clk_gate2("enet",         "ipg",               base + 0x6c, 10);
 	clks[IMX6SL_CLK_EPIT1]        = imx_clk_gate2("epit1",        "perclk",            base + 0x6c, 12);
 	clks[IMX6SL_CLK_EPIT1]        = imx_clk_gate2("epit1",        "perclk",            base + 0x6c, 12);
 	clks[IMX6SL_CLK_EPIT2]        = imx_clk_gate2("epit2",        "perclk",            base + 0x6c, 14);
 	clks[IMX6SL_CLK_EPIT2]        = imx_clk_gate2("epit2",        "perclk",            base + 0x6c, 14);
 	clks[IMX6SL_CLK_EXTERN_AUDIO] = imx_clk_gate2("extern_audio", "extern_audio_podf", base + 0x6c, 16);
 	clks[IMX6SL_CLK_EXTERN_AUDIO] = imx_clk_gate2("extern_audio", "extern_audio_podf", base + 0x6c, 16);

+ 7 - 19
arch/arm/mach-integrator/integrator_ap.c

@@ -480,25 +480,18 @@ static const struct of_device_id ebi_match[] = {
 static void __init ap_init_of(void)
 static void __init ap_init_of(void)
 {
 {
 	unsigned long sc_dec;
 	unsigned long sc_dec;
-	struct device_node *root;
 	struct device_node *syscon;
 	struct device_node *syscon;
 	struct device_node *ebi;
 	struct device_node *ebi;
 	struct device *parent;
 	struct device *parent;
 	struct soc_device *soc_dev;
 	struct soc_device *soc_dev;
 	struct soc_device_attribute *soc_dev_attr;
 	struct soc_device_attribute *soc_dev_attr;
 	u32 ap_sc_id;
 	u32 ap_sc_id;
-	int err;
 	int i;
 	int i;
 
 
-	/* Here we create an SoC device for the root node */
-	root = of_find_node_by_path("/");
-	if (!root)
-		return;
-
-	syscon = of_find_matching_node(root, ap_syscon_match);
+	syscon = of_find_matching_node(NULL, ap_syscon_match);
 	if (!syscon)
 	if (!syscon)
 		return;
 		return;
-	ebi = of_find_matching_node(root, ebi_match);
+	ebi = of_find_matching_node(NULL, ebi_match);
 	if (!ebi)
 	if (!ebi)
 		return;
 		return;
 
 
@@ -509,19 +502,17 @@ static void __init ap_init_of(void)
 	if (!ebi_base)
 	if (!ebi_base)
 		return;
 		return;
 
 
+	of_platform_populate(NULL, of_default_bus_match_table,
+			ap_auxdata_lookup, NULL);
+
 	ap_sc_id = readl(ap_syscon_base);
 	ap_sc_id = readl(ap_syscon_base);
 
 
 	soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
 	soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
 	if (!soc_dev_attr)
 	if (!soc_dev_attr)
 		return;
 		return;
 
 
-	err = of_property_read_string(root, "compatible",
-				      &soc_dev_attr->soc_id);
-	if (err)
-		return;
-	err = of_property_read_string(root, "model", &soc_dev_attr->machine);
-	if (err)
-		return;
+	soc_dev_attr->soc_id = "XVC";
+	soc_dev_attr->machine = "Integrator/AP";
 	soc_dev_attr->family = "Integrator";
 	soc_dev_attr->family = "Integrator";
 	soc_dev_attr->revision = kasprintf(GFP_KERNEL, "%c",
 	soc_dev_attr->revision = kasprintf(GFP_KERNEL, "%c",
 					   'A' + (ap_sc_id & 0x0f));
 					   'A' + (ap_sc_id & 0x0f));
@@ -536,9 +527,6 @@ static void __init ap_init_of(void)
 	parent = soc_device_to_device(soc_dev);
 	parent = soc_device_to_device(soc_dev);
 	integrator_init_sysfs(parent, ap_sc_id);
 	integrator_init_sysfs(parent, ap_sc_id);
 
 
-	of_platform_populate(root, of_default_bus_match_table,
-			ap_auxdata_lookup, parent);
-
 	sc_dec = readl(ap_syscon_base + INTEGRATOR_SC_DEC_OFFSET);
 	sc_dec = readl(ap_syscon_base + INTEGRATOR_SC_DEC_OFFSET);
 	for (i = 0; i < 4; i++) {
 	for (i = 0; i < 4; i++) {
 		struct lm_device *lmdev;
 		struct lm_device *lmdev;

+ 6 - 17
arch/arm/mach-integrator/integrator_cp.c

@@ -279,20 +279,13 @@ static const struct of_device_id intcp_syscon_match[] = {
 
 
 static void __init intcp_init_of(void)
 static void __init intcp_init_of(void)
 {
 {
-	struct device_node *root;
 	struct device_node *cpcon;
 	struct device_node *cpcon;
 	struct device *parent;
 	struct device *parent;
 	struct soc_device *soc_dev;
 	struct soc_device *soc_dev;
 	struct soc_device_attribute *soc_dev_attr;
 	struct soc_device_attribute *soc_dev_attr;
 	u32 intcp_sc_id;
 	u32 intcp_sc_id;
-	int err;
 
 
-	/* Here we create an SoC device for the root node */
-	root = of_find_node_by_path("/");
-	if (!root)
-		return;
-
-	cpcon = of_find_matching_node(root, intcp_syscon_match);
+	cpcon = of_find_matching_node(NULL, intcp_syscon_match);
 	if (!cpcon)
 	if (!cpcon)
 		return;
 		return;
 
 
@@ -300,19 +293,17 @@ static void __init intcp_init_of(void)
 	if (!intcp_con_base)
 	if (!intcp_con_base)
 		return;
 		return;
 
 
+	of_platform_populate(NULL, of_default_bus_match_table,
+			     intcp_auxdata_lookup, NULL);
+
 	intcp_sc_id = readl(intcp_con_base);
 	intcp_sc_id = readl(intcp_con_base);
 
 
 	soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
 	soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
 	if (!soc_dev_attr)
 	if (!soc_dev_attr)
 		return;
 		return;
 
 
-	err = of_property_read_string(root, "compatible",
-				      &soc_dev_attr->soc_id);
-	if (err)
-		return;
-	err = of_property_read_string(root, "model", &soc_dev_attr->machine);
-	if (err)
-		return;
+	soc_dev_attr->soc_id = "XCV";
+	soc_dev_attr->machine = "Integrator/CP";
 	soc_dev_attr->family = "Integrator";
 	soc_dev_attr->family = "Integrator";
 	soc_dev_attr->revision = kasprintf(GFP_KERNEL, "%c",
 	soc_dev_attr->revision = kasprintf(GFP_KERNEL, "%c",
 					   'A' + (intcp_sc_id & 0x0f));
 					   'A' + (intcp_sc_id & 0x0f));
@@ -326,8 +317,6 @@ static void __init intcp_init_of(void)
 
 
 	parent = soc_device_to_device(soc_dev);
 	parent = soc_device_to_device(soc_dev);
 	integrator_init_sysfs(parent, intcp_sc_id);
 	integrator_init_sysfs(parent, intcp_sc_id);
-	of_platform_populate(root, of_default_bus_match_table,
-			intcp_auxdata_lookup, parent);
 }
 }
 
 
 static const char * intcp_dt_board_compat[] = {
 static const char * intcp_dt_board_compat[] = {

+ 2 - 0
arch/arm/mach-mvebu/Kconfig

@@ -10,6 +10,7 @@ menuconfig ARCH_MVEBU
 	select ZONE_DMA if ARM_LPAE
 	select ZONE_DMA if ARM_LPAE
 	select ARCH_REQUIRE_GPIOLIB
 	select ARCH_REQUIRE_GPIOLIB
 	select PCI_QUIRKS if PCI
 	select PCI_QUIRKS if PCI
+	select OF_ADDRESS_PCI
 
 
 if ARCH_MVEBU
 if ARCH_MVEBU
 
 
@@ -17,6 +18,7 @@ config MACH_MVEBU_V7
 	bool
 	bool
 	select ARMADA_370_XP_TIMER
 	select ARMADA_370_XP_TIMER
 	select CACHE_L2X0
 	select CACHE_L2X0
+	select ARM_CPU_SUSPEND
 
 
 config MACH_ARMADA_370
 config MACH_ARMADA_370
 	bool "Marvell Armada 370 boards" if ARCH_MULTI_V7
 	bool "Marvell Armada 370 boards" if ARCH_MULTI_V7

+ 3 - 6
drivers/clocksource/exynos_mct.c

@@ -153,13 +153,10 @@ static void exynos4_mct_write(unsigned int value, unsigned long offset)
 }
 }
 
 
 /* Clocksource handling */
 /* Clocksource handling */
-static void exynos4_mct_frc_start(u32 hi, u32 lo)
+static void exynos4_mct_frc_start(void)
 {
 {
 	u32 reg;
 	u32 reg;
 
 
-	exynos4_mct_write(lo, EXYNOS4_MCT_G_CNT_L);
-	exynos4_mct_write(hi, EXYNOS4_MCT_G_CNT_U);
-
 	reg = __raw_readl(reg_base + EXYNOS4_MCT_G_TCON);
 	reg = __raw_readl(reg_base + EXYNOS4_MCT_G_TCON);
 	reg |= MCT_G_TCON_START;
 	reg |= MCT_G_TCON_START;
 	exynos4_mct_write(reg, EXYNOS4_MCT_G_TCON);
 	exynos4_mct_write(reg, EXYNOS4_MCT_G_TCON);
@@ -181,7 +178,7 @@ static cycle_t exynos4_frc_read(struct clocksource *cs)
 
 
 static void exynos4_frc_resume(struct clocksource *cs)
 static void exynos4_frc_resume(struct clocksource *cs)
 {
 {
-	exynos4_mct_frc_start(0, 0);
+	exynos4_mct_frc_start();
 }
 }
 
 
 struct clocksource mct_frc = {
 struct clocksource mct_frc = {
@@ -200,7 +197,7 @@ static u64 notrace exynos4_read_sched_clock(void)
 
 
 static void __init exynos4_clocksource_init(void)
 static void __init exynos4_clocksource_init(void)
 {
 {
-	exynos4_mct_frc_start(0, 0);
+	exynos4_mct_frc_start();
 
 
 	if (clocksource_register_hz(&mct_frc, clk_rate))
 	if (clocksource_register_hz(&mct_frc, clk_rate))
 		panic("%s: can't register clocksource\n", mct_frc.name);
 		panic("%s: can't register clocksource\n", mct_frc.name);

+ 1 - 1
drivers/misc/Kconfig

@@ -54,7 +54,7 @@ config AD525X_DPOT_SPI
 config ATMEL_PWM
 config ATMEL_PWM
 	tristate "Atmel AT32/AT91 PWM support"
 	tristate "Atmel AT32/AT91 PWM support"
 	depends on HAVE_CLK
 	depends on HAVE_CLK
-	depends on AVR32 || AT91SAM9263 || AT91SAM9RL || AT91SAM9G45
+	depends on AVR32 || ARCH_AT91SAM9263 || ARCH_AT91SAM9RL || ARCH_AT91SAM9G45
 	help
 	help
 	  This option enables device driver support for the PWM channels
 	  This option enables device driver support for the PWM channels
 	  on certain Atmel processors.  Pulse Width Modulation is used for
 	  on certain Atmel processors.  Pulse Width Modulation is used for

+ 1 - 1
drivers/tty/serial/msm_serial.c

@@ -991,7 +991,7 @@ static const struct of_device_id msm_uartdm_table[] = {
 	{ }
 	{ }
 };
 };
 
 
-static int __init msm_serial_probe(struct platform_device *pdev)
+static int msm_serial_probe(struct platform_device *pdev)
 {
 {
 	struct msm_port *msm_port;
 	struct msm_port *msm_port;
 	struct resource *resource;
 	struct resource *resource;

+ 2 - 1
include/dt-bindings/clock/imx6sl-clock.h

@@ -145,6 +145,7 @@
 #define IMX6SL_CLK_USDHC4		132
 #define IMX6SL_CLK_USDHC4		132
 #define IMX6SL_CLK_PLL4_AUDIO_DIV	133
 #define IMX6SL_CLK_PLL4_AUDIO_DIV	133
 #define IMX6SL_CLK_SPBA			134
 #define IMX6SL_CLK_SPBA			134
-#define IMX6SL_CLK_END			135
+#define IMX6SL_CLK_ENET			135
+#define IMX6SL_CLK_END			136
 
 
 #endif /* __DT_BINDINGS_CLOCK_IMX6SL_H */
 #endif /* __DT_BINDINGS_CLOCK_IMX6SL_H */

+ 1 - 0
include/dt-bindings/clock/stih415-clks.h

@@ -10,6 +10,7 @@
 #define CLK_ETH1_PHY		4
 #define CLK_ETH1_PHY		4
 
 
 /* CLOCKGEN A1 */
 /* CLOCKGEN A1 */
+#define CLK_ICN_IF_2		0
 #define CLK_GMAC0_PHY		3
 #define CLK_GMAC0_PHY		3
 
 
 #endif
 #endif

+ 1 - 0
include/dt-bindings/clock/stih416-clks.h

@@ -10,6 +10,7 @@
 #define CLK_ETH1_PHY		4
 #define CLK_ETH1_PHY		4
 
 
 /* CLOCKGEN A1 */
 /* CLOCKGEN A1 */
+#define CLK_ICN_IF_2		0
 #define CLK_GMAC0_PHY		3
 #define CLK_GMAC0_PHY		3
 
 
 #endif
 #endif