Преглед на файлове

lantiq: kernel 4.14: update dts files

Updated the devicetree source files to make use of the following
upstreamed drivers:

 - xrx200 ethernet phy
 - reset controller unit
 - dwc2
 - fpi

Use our custom xrx200 ethernet phy compatible to support boards, which
have switched the vr9 revision during lifetime, with a single devicetree
source file.

By switching to the dwc2 driver + usb phy framework, we don't need to used
our custom gpio power patch and can use a fixed regulator instead.

Signed-off-by: Hauke Mehrtens <[email protected]>
Signed-off-by: Mathias Kresin <[email protected]>
Hauke Mehrtens преди 8 години
родител
ревизия
6eaf8b3d89
променени са 38 файла, в които са добавени 794 реда и са изтрити 159 реда
  1. 17 1
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/ACMP252.dts
  2. 17 1
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/ARV4518PWR01.dtsi
  3. 17 1
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/ARV4519PW.dts
  4. 17 1
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/ARV4520PW.dts
  5. 17 1
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/ARV452CQW.dts
  6. 17 1
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/ARV7510PW22.dts
  7. 17 1
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/ARV7518PW.dts
  8. 4 0
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/ARV7519PW.dts
  9. 30 9
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/ARV7519RW22.dts
  10. 17 1
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/ARV752DPW.dts
  11. 17 1
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/ARV752DPW22.dts
  12. 17 2
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/ARV8539PW22.dts
  13. 9 7
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/ASL56026.dts
  14. 4 0
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/BTHOMEHUBV2B.dts
  15. 17 1
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/BTHOMEHUBV3A.dts
  16. 26 8
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/BTHOMEHUBV5A.dts
  17. 4 0
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/DGN1000B.dts
  18. 4 0
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/DGN3500.dtsi
  19. 7 6
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/DM200.dts
  20. 26 9
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/EASY80920.dtsi
  21. 17 9
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/FRITZ3370.dts
  22. 4 0
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/FRITZ7320.dts
  23. 17 7
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/FRITZ7360SL.dts
  24. 17 1
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/GIGASX76X.dts
  25. 18 1
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/H201L.dts
  26. 17 1
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/P2601HNFX.dts
  27. 31 10
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/P2812HNUFX.dtsi
  28. 32 9
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/TDW89X0.dtsi
  29. 9 7
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/VG3503J.dts
  30. 26 8
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/VGV7510KW22.dtsi
  31. 31 10
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/VGV7519.dtsi
  32. 31 9
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/VR200v.dts
  33. 17 1
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/WBMR.dts
  34. 31 9
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/WBMR300.dts
  35. 33 3
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/amazonse.dtsi
  36. 49 5
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/ar9.dtsi
  37. 33 3
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/danube.dtsi
  38. 80 15
      target/linux/lantiq/files-4.14/arch/mips/boot/dts/vr9.dtsi

+ 17 - 1
target/linux/lantiq/files-4.14/arch/mips/boot/dts/ACMP252.dts

@@ -13,6 +13,18 @@
 	memory@0 {
 		reg = <0x0 0x4000000>;
 	};
+
+	usb_vbus: regulator-usb-vbus {
+		compatible = "regulator-fixed";
+
+		regulator-name = "USB_VBUS";
+
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+
+		gpio = <&gpio 3 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
 };
 
 &gpio {
@@ -87,9 +99,13 @@
 	status = "okay";
 };
 
+&usb_phy {
+	status = "okay";
+	phy-supply = <&usb_vbus>;
+};
+
 &usb {
 	status = "okay";
-	gpios = <&gpio 3 GPIO_ACTIVE_HIGH>;
 };
 
 &vmmc {

+ 17 - 1
target/linux/lantiq/files-4.14/arch/mips/boot/dts/ARV4518PWR01.dtsi

@@ -96,6 +96,18 @@
 			gpios = <&gpiomm 3 GPIO_ACTIVE_LOW>;
 		};
 	};
+
+	usb_vbus: regulator-usb-vbus {
+		compatible = "regulator-fixed";
+
+		regulator-name = "USB_VBUS";
+
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+
+		gpio = <&gpio 14 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
 };
 
 &gpio {
@@ -178,9 +190,13 @@
 	req-mask = <0xf>;
 };
 
+&usb_phy {
+	status = "okay";
+	phy-supply = <&usb_vbus>;
+};
+
 &usb {
 	status = "okay";
-	gpios = <&gpio 14 GPIO_ACTIVE_HIGH>;
 };
 
 &vmmc {

+ 17 - 1
target/linux/lantiq/files-4.14/arch/mips/boot/dts/ARV4519PW.dts

@@ -106,6 +106,18 @@
 			gpios = <&gpiomm 6 GPIO_ACTIVE_LOW>;
 		};
 	};
+
+	usb_vbus: regulator-usb-vbus {
+		compatible = "regulator-fixed";
+
+		regulator-name = "USB_VBUS";
+
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+
+		gpio = <&gpio 14 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
 };
 
 &gpio {
@@ -175,9 +187,13 @@
 	req-mask = <0xf>;
 };
 
+&usb_phy {
+	status = "okay";
+	phy-supply = <&usb_vbus>;
+};
+
 &usb {
 	status = "okay";
-	gpios = <&gpio 14 GPIO_ACTIVE_HIGH>;
 };
 
 &vmmc {

+ 17 - 1
target/linux/lantiq/files-4.14/arch/mips/boot/dts/ARV4520PW.dts

@@ -112,6 +112,18 @@
 			info is missing
 		*/
 	};
+
+	usb_vbus: regulator-usb-vbus {
+		compatible = "regulator-fixed";
+
+		regulator-name = "USB_VBUS";
+
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+
+		gpio = <&gpio 28 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
 };
 
 &gpio {
@@ -199,9 +211,13 @@
 	gpio-reset = <&gpio 21 GPIO_ACTIVE_HIGH>;
 };
 
+&usb_phy {
+	status = "okay";
+	phy-supply = <&usb_vbus>;
+};
+
 &usb {
 	status = "okay";
-	gpios = <&gpio 28 GPIO_ACTIVE_HIGH>;
 };
 
 &vmmc {

+ 17 - 1
target/linux/lantiq/files-4.14/arch/mips/boot/dts/ARV452CQW.dts

@@ -124,6 +124,18 @@
 			gpios = <&gpiomm 9 GPIO_ACTIVE_LOW>;
 		};
 	};
+
+	usb_vbus: regulator-usb-vbus {
+		compatible = "regulator-fixed";
+
+		regulator-name = "USB_VBUS";
+
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+
+		gpio = <&gpio 28 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
 };
 
 &gpio {
@@ -217,9 +229,13 @@
 	gpio-reset = <&gpio 21 GPIO_ACTIVE_HIGH>;
 };
 
+&usb_phy {
+	status = "okay";
+	phy-supply = <&usb_vbus>;
+};
+
 &usb {
 	status = "okay";
-	gpios = <&gpio 28 GPIO_ACTIVE_HIGH>;
 };
 
 &vmmc {

+ 17 - 1
target/linux/lantiq/files-4.14/arch/mips/boot/dts/ARV7510PW22.dts

@@ -114,6 +114,18 @@
 			lantiq,output = <0>;
 		};
 	};
+
+	usb_vbus: regulator-usb-vbus {
+		compatible = "regulator-fixed";
+
+		regulator-name = "USB_VBUS";
+
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+
+		gpio = <&gpio 8 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
 };
 
 &gsw {
@@ -181,9 +193,13 @@
 	};
 };
 
+&usb_phy {
+	status = "okay";
+	phy-supply = <&usb_vbus>;
+};
+
 &usb {
 	status = "okay";
-	gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
 };
 
 &vmmc {

+ 17 - 1
target/linux/lantiq/files-4.14/arch/mips/boot/dts/ARV7518PW.dts

@@ -145,6 +145,18 @@
 			lantiq,open-drain = <1>;
 		};
 	};
+
+	usb_vbus: regulator-usb-vbus {
+		compatible = "regulator-fixed";
+
+		regulator-name = "USB_VBUS";
+
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+
+		gpio = <&gpio 14 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
 };
 
 &gpiomm {
@@ -213,9 +225,13 @@
 	};
 };
 
+&usb_phy {
+	status = "okay";
+	phy-supply = <&usb_vbus>;
+};
+
 &usb {
 	status = "okay";
-	gpios = <&gpio 14 GPIO_ACTIVE_HIGH>;
 };
 
 &vmmc {

+ 4 - 0
target/linux/lantiq/files-4.14/arch/mips/boot/dts/ARV7519PW.dts

@@ -214,6 +214,10 @@
 	};
 };
 
+&usb_phy {
+	status = "okay";
+};
+
 /* warning: passive port only works with active devices */
 &usb {
 	status = "okay";

+ 30 - 9
target/linux/lantiq/files-4.14/arch/mips/boot/dts/ARV7519RW22.dts

@@ -3,6 +3,7 @@
 #include "vr9.dtsi"
 
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/mips/lantiq_rcu_gphy.h>
 
 / {
 	compatible = "arcadyan,arv7519rw22", "lantiq,xway", "lantiq,vr9";
@@ -24,13 +25,6 @@
 		reg = <0x0 0x8000000>;
 	};
 
-	gphy-xrx200 {
-		compatible = "lantiq,phy-xrx200";
-		firmware1 = "lantiq/xrx200_phy22f_a14.bin";	/*VR9 1.1*/
-		firmware2 = "lantiq/xrx200_phy22f_a22.bin";	/*VR9 1.2*/
-		phys = [ 00 01 ];
-	};
-
 	gpio-keys-polled {
 		compatible = "gpio-keys-polled";
 		#address-cells = <1>;
@@ -87,6 +81,18 @@
 			gpios = <&gpio 29 GPIO_ACTIVE_LOW>;
 		};
 	};
+
+	usb_vbus: regulator-usb-vbus {
+		compatible = "regulator-fixed";
+
+		regulator-name = "USB_VBUS";
+
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+
+		gpio = <&gpio 32 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
 };
 
 &eth0 {
@@ -159,6 +165,13 @@
 	};
 };
 
+&gphy0 {
+	lantiq,gphy-mode = <GPHY_MODE_FE>;
+};
+
+&gphy1 {
+	lantiq,gphy-mode = <GPHY_MODE_FE>;
+};
 
 &gpio {
 	pinctrl-names = "default";
@@ -221,12 +234,20 @@
 	gpio-reset = <&gpio 21 GPIO_ACTIVE_HIGH>;
 };
 
+&usb_phy0 {
+	status = "okay";
+	phy-supply = <&usb_vbus>;
+};
+
+&usb_phy1 {
+	status = "okay";
+	phy-supply = <&usb_vbus>;
+};
+
 &usb0 {
 	status = "okay";
-	gpios = <&gpio 32 GPIO_ACTIVE_HIGH>;
 };
 
 &usb1 {
 	status = "okay";
-	gpios = <&gpio 32 GPIO_ACTIVE_HIGH>;
 };

+ 17 - 1
target/linux/lantiq/files-4.14/arch/mips/boot/dts/ARV752DPW.dts

@@ -152,6 +152,18 @@
 			lantiq,open-drain = <1>;
 		};
 	};
+
+	usb_vbus: regulator-usb-vbus {
+		compatible = "regulator-fixed";
+
+		regulator-name = "USB_VBUS";
+
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+
+		gpio = <&gpiomm 0 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
 };
 
 &gpiomm {
@@ -218,9 +230,13 @@
 	};
 };
 
+&usb_phy {
+	status = "okay";
+	phy-supply = <&usb_vbus>;
+};
+
 &usb {
 	status = "okay";
-	gpios = <&gpiomm 0 GPIO_ACTIVE_HIGH>;
 };
 
 &vmmc {

+ 17 - 1
target/linux/lantiq/files-4.14/arch/mips/boot/dts/ARV752DPW22.dts

@@ -122,6 +122,18 @@
 			gpios = <&gpiomm 14 GPIO_ACTIVE_LOW>;
 		};
 	};
+
+	usb_vbus: regulator-usb-vbus {
+		compatible = "regulator-fixed";
+
+		regulator-name = "USB_VBUS";
+
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+
+		gpio = <&gpiomm 0 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
 };
 
 &gpio {
@@ -240,9 +252,13 @@
 	};
 };
 
+&usb_phy {
+	status = "okay";
+	phy-supply = <&usb_vbus>;
+};
+
 &usb {
 	status = "okay";
-	gpios = <&gpiomm 0 GPIO_ACTIVE_HIGH>;
 };
 
 &vmmc {

+ 17 - 2
target/linux/lantiq/files-4.14/arch/mips/boot/dts/ARV8539PW22.dts

@@ -76,6 +76,18 @@
 			telefonie green is missing
 		*/
 	};
+
+	usb_vbus: regulator-usb-vbus {
+		compatible = "regulator-fixed";
+
+		regulator-name = "USB_VBUS";
+
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+
+		gpio = <&gpio 14 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
 };
 
 &gpio {
@@ -164,10 +176,13 @@
 	};
 };
 
+&usb_phy {
+	status = "okay";
+	phy-supply = <&usb_vbus>;
+};
+
 &usb {
 	status = "okay";
-	gpios = <&gpio 14 GPIO_ACTIVE_HIGH>;
-	lantiq,portmask = <0x3>;
 };
 
 &vmmc {

+ 9 - 7
target/linux/lantiq/files-4.14/arch/mips/boot/dts/ASL56026.dts

@@ -3,6 +3,7 @@
 #include "vr9.dtsi"
 
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/mips/lantiq_rcu_gphy.h>
 
 / {
 	compatible = "alphanetworks,asl56026", "lantiq,xway", "lantiq,vr9";
@@ -24,13 +25,6 @@
 		reg = <0x0 0x2000000>;
 	};
 
-	gphy-xrx200 {
-		compatible = "lantiq,phy-xrx200";
-		firmware1 = "lantiq/xrx200_phy22f_a14.bin";	/*VR9 1.1*/
-		firmware2 = "lantiq/xrx200_phy22f_a22.bin";	/*VR9 1.2*/
-		phys = [ 00 01 ];
-	};
-
 	gpio-keys-polled {
 		compatible = "gpio-keys-polled";
 		#address-cells = <1>;
@@ -120,6 +114,14 @@
 	};
 };
 
+&gphy0 {
+	lantiq,gphy-mode = <GPHY_MODE_FE>;
+};
+
+&gphy1 {
+	lantiq,gphy-mode = <GPHY_MODE_FE>;
+};
+
 &gpio {
 	pinctrl-names = "default";
 	pinctrl-0 = <&state_default>;

+ 4 - 0
target/linux/lantiq/files-4.14/arch/mips/boot/dts/BTHOMEHUBV2B.dts

@@ -248,6 +248,10 @@
 	};
 };
 
+&usb_phy {
+	status = "okay";
+};
+
 &usb {
 	status = "okay";
 };

+ 17 - 1
target/linux/lantiq/files-4.14/arch/mips/boot/dts/BTHOMEHUBV3A.dts

@@ -90,6 +90,18 @@
 			gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
 		};
 	};
+
+	usb_vbus: regulator-usb-vbus {
+		compatible = "regulator-fixed";
+
+		regulator-name = "USB_VBUS";
+
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+
+		gpio = <&gpio 33 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
 };
 
 &gpio {
@@ -193,7 +205,11 @@
 	};
 };
 
+&usb_phy0 {
+	status = "okay";
+	phy-supply = <&usb_vbus>;
+};
+
 &usb0 {
 	status = "okay";
-	gpios = <&gpio 33 GPIO_ACTIVE_HIGH>;
 };

+ 26 - 8
target/linux/lantiq/files-4.14/arch/mips/boot/dts/BTHOMEHUBV5A.dts

@@ -3,6 +3,7 @@
 #include "vr9.dtsi"
 
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/mips/lantiq_rcu_gphy.h>
 
 / {
 	compatible = "bt,homehub-v5a", "lantiq,xway", "lantiq,vr9";
@@ -25,13 +26,6 @@
 		reg = <0x0 0x8000000>;
 	};
 
-	gphy-xrx200 {
-		compatible = "lantiq,phy-xrx200";
-		firmware1 = "lantiq/xrx200_phy11g_a14.bin";	/*VR9 1.1*/
-		firmware2 = "lantiq/xrx200_phy11g_a22.bin";	/*VR9 1.2*/
-		phys = [ 00 01 ];
-	};
-
 	gpio-keys-polled {
 		compatible = "gpio-keys-polled";
 		#address-cells = <1>;
@@ -108,6 +102,18 @@
 			gpios = <&gpio 19 GPIO_ACTIVE_HIGH>;
 		};
 	};
+
+	usb_vbus: regulator-usb-vbus {
+		compatible = "regulator-fixed";
+
+		regulator-name = "USB_VBUS";
+
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+
+		gpio = <&gpio 33 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
 };
 
 &eth0 {
@@ -179,6 +185,14 @@
 	};
 };
 
+&gphy0 {
+	lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
+&gphy1 {
+	lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
 &gpio {
 	pinctrl-names = "default";
 	pinctrl-0 = <&state_default>;
@@ -275,7 +289,11 @@
 	};
 };
 
+&usb_phy0 {
+	status = "okay";
+	phy-supply = <&usb_vbus>;
+};
+
 &usb0 {
 	status = "okay";
-	gpios = <&gpio 33 GPIO_ACTIVE_HIGH>;
 };

+ 4 - 0
target/linux/lantiq/files-4.14/arch/mips/boot/dts/DGN1000B.dts

@@ -164,6 +164,10 @@
 	};
 };
 
+&usb_phy {
+	status = "okay";
+};
+
 &usb {
 	status = "okay";
 };

+ 4 - 0
target/linux/lantiq/files-4.14/arch/mips/boot/dts/DGN3500.dtsi

@@ -204,6 +204,10 @@
 	};
 };
 
+&usb_phy0 {
+	status = "okay";
+};
+
 &usb0 {
 	status = "okay";
 };

+ 7 - 6
target/linux/lantiq/files-4.14/arch/mips/boot/dts/DM200.dts

@@ -3,6 +3,7 @@
 #include "vr9.dtsi"
 
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/mips/lantiq_rcu_gphy.h>
 
 / {
 	compatible = "netgear,dm200", "lantiq,xway", "lantiq,vr9";
@@ -24,12 +25,6 @@
 		reg = <0x0 0x4000000>;
 	};
 
-	gphy-xrx200 {
-		compatible = "lantiq,phy-xrx200";
-		firmware = "lantiq/xrx200_phy22f_a22.bin";
-		phys = [ 01 ];
-	};
-
 	gpio-keys-polled {
 		compatible = "gpio-keys-polled";
 		#address-cells = <1>;
@@ -91,6 +86,8 @@
 };
 
 &eth0 {
+	lantiq,phys = <&gphy1>;
+
 	lan: interface@0 {
 		compatible = "lantiq,xrx200-pdi";
 		#address-cells = <1>;
@@ -118,6 +115,10 @@
 	};
 };
 
+&gphy1 {
+	lantiq,gphy-mode = <GPHY_MODE_FE>;
+};
+
 &gpio {
 	pinctrl-names = "default";
 	pinctrl-0 = <&state_default>;

+ 26 - 9
target/linux/lantiq/files-4.14/arch/mips/boot/dts/EASY80920.dtsi

@@ -1,6 +1,7 @@
 #include "vr9.dtsi"
 
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/mips/lantiq_rcu_gphy.h>
 
 / {
 	compatible = "lantiq,easy80920", "lantiq,xway", "lantiq,vr9";
@@ -22,13 +23,6 @@
 		reg = <0x0 0x4000000>;
 	};
 
-	gphy-xrx200 {
-		compatible = "lantiq,phy-xrx200";
-		firmware1 = "lantiq/xrx200_phy11g_a14.bin";
-		firmware2 = "lantiq/xrx200_phy11g_a22.bin";
-		phys = [ 00 01 ];
-	};
-
 	gpio-keys-polled {
 		compatible = "gpio-keys-polled";
 		#address-cells = <1>;
@@ -87,6 +81,18 @@
 			gpios = <&stp 12 GPIO_ACTIVE_HIGH>;
 		};
 	};
+
+	usb_vbus: regulator-usb-vbus {
+		compatible = "regulator-fixed";
+
+		regulator-name = "USB_VBUS";
+
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+
+		gpio = <&gpio 33 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
 };
 
 &eth0 {
@@ -167,6 +173,14 @@
 	};
 };
 
+&gphy0 {
+	lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
+&gphy1 {
+	lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
 &gpio {
 	pinctrl-names = "default";
 	pinctrl-0 = <&state_default>;
@@ -288,8 +302,11 @@
 	/* lantiq,rising; */
 };
 
+&usb_phy0 {
+	status = "okay";
+	phy-supply = <&usb_vbus>;
+};
+
 &usb0 {
 	status = "okay";
-	gpios = <&gpio 33 GPIO_ACTIVE_HIGH>;
-	lantiq,portmask = <0x3>;
 };

+ 17 - 9
target/linux/lantiq/files-4.14/arch/mips/boot/dts/FRITZ3370.dts

@@ -3,6 +3,7 @@
 #include "vr9.dtsi"
 
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/mips/lantiq_rcu_gphy.h>
 
 / {
 	compatible = "avm,fritz3370", "lantiq,xway", "lantiq,vr9";
@@ -26,12 +27,6 @@
 		reg = <0x0 0x8000000>;
 	};
 
-	gphy-xrx200 {
-		compatible = "lantiq,phy-xrx200";
-		firmware = "lantiq/xrx200_phy11g_a14.bin";
-		phys = [ 00 01 ];
-	};
-
 	gpio-keys-polled {
 		compatible = "gpio-keys-polled";
 		#address-cells = <1>;
@@ -147,6 +142,14 @@
 	};
 };
 
+&gphy0 {
+	lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
+&gphy1 {
+	lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
 &gpio {
 	pinctrl-names = "default";
 	pinctrl-0 = <&state_default>;
@@ -280,9 +283,14 @@
 	};
 };
 
+/*
+ * TODO: add phy-supply, gpio 5 GPIO_ACTIVE_HIGH and gpio 14 GPIO_ACTIVE_HIGH are
+ * related
+ */
+&usb_phy0 {
+	status = "okay";
+};
+
 &usb0 {
 	status = "okay";
-	gpios = <&gpio 5 GPIO_ACTIVE_HIGH
-		&gpio 14 GPIO_ACTIVE_HIGH>;
-	lantiq,portmask = <0x3>;
 };

+ 4 - 0
target/linux/lantiq/files-4.14/arch/mips/boot/dts/FRITZ7320.dts

@@ -154,6 +154,10 @@
 	};
 };
 
+&usb_phy0 {
+	status = "okay";
+};
+
 &usb0 {
 	status = "okay";
 };

+ 17 - 7
target/linux/lantiq/files-4.14/arch/mips/boot/dts/FRITZ7360SL.dts

@@ -3,6 +3,7 @@
 #include "vr9.dtsi"
 
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/mips/lantiq_rcu_gphy.h>
 
 / {
 	compatible = "avm,fritz7360sl", "lantiq,xway", "lantiq,vr9";
@@ -25,12 +26,6 @@
 		reg = <0x0 0x8000000>;
 	};
 
-	gphy-xrx200 {
-		compatible = "lantiq,phy-xrx200";
-		firmware = "lantiq/xrx200_phy11g_a22.bin";
-		phys = [ 00 01 ];
-	};
-
 	gpio-keys-polled {
 		compatible = "gpio-keys-polled";
 		#address-cells = <1>;
@@ -142,6 +137,14 @@
 	};
 };
 
+&gphy0 {
+	lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
+&gphy1 {
+	lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
 &gpio {
 	pinctrl-names = "default";
 	pinctrl-0 = <&state_default>;
@@ -219,9 +222,16 @@
 	};
 };
 
+&usb_phy0 {
+	status = "okay";
+};
+
+&usb_phy1 {
+	status = "okay";
+};
+
 &usb0 {
 	status = "okay";
-	lantiq,portmask = <0x3>;
 };
 
 &usb1 {

+ 17 - 1
target/linux/lantiq/files-4.14/arch/mips/boot/dts/GIGASX76X.dts

@@ -39,6 +39,18 @@
 			gpios = <&gpio 19 GPIO_ACTIVE_HIGH>;
 		};
 	};
+
+	usb_vbus: regulator-usb-vbus {
+		compatible = "regulator-fixed";
+
+		regulator-name = "USB_VBUS";
+
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+
+		gpio = <&gpio 29 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
 };
 
 &gpio {
@@ -103,9 +115,13 @@
 	gpio-reset = <&gpio 21 GPIO_ACTIVE_HIGH>;
 };
 
+&usb_phy {
+	status = "okay";
+	phy-supply = <&usb_vbus>;
+};
+
 &usb {
 	status = "okay";
-	gpios = <&gpio 29 GPIO_ACTIVE_HIGH>;
 };
 
 &vmmc {

+ 18 - 1
target/linux/lantiq/files-4.14/arch/mips/boot/dts/H201L.dts

@@ -104,6 +104,18 @@
 			gpios = <&gpio 7 GPIO_ACTIVE_HIGH>;
 		};
 	};
+
+	usb_vbus: regulator-usb-vbus {
+		compatible = "regulator-fixed";
+
+		regulator-name = "USB_VBUS";
+
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+
+		gpio = <&gpio 36 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
 };
 
 &gpio {
@@ -151,7 +163,12 @@
 	};
 };
 
+&usb_phy0 {
+	status = "okay";
+	phy-supply = <&usb_vbus>;
+};
+
+
 &usb0 {
 	status = "okay";
-	gpios = <&gpio 36 GPIO_ACTIVE_HIGH>;
 };

+ 17 - 1
target/linux/lantiq/files-4.14/arch/mips/boot/dts/P2601HNFX.dts

@@ -128,6 +128,18 @@
 			lantiq,function = "mdio";
 		};
 	};
+
+	usb_vbus: regulator-usb-vbus {
+		compatible = "regulator-fixed";
+
+		regulator-name = "USB_VBUS";
+
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+
+		gpio = <&gpio 9 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
 };
 
 &gsw {
@@ -172,7 +184,11 @@
 	lantiq,groups = <0x3>;
 };
 
+&usb_phy0 {
+	status = "okay";
+	phy-supply = <&usb_vbus>;
+};
+
 &usb0 {
 	status = "okay";
-	gpios = <&gpio 9 GPIO_ACTIVE_HIGH>;
 };

+ 31 - 10
target/linux/lantiq/files-4.14/arch/mips/boot/dts/P2812HNUFX.dtsi

@@ -1,6 +1,7 @@
 #include "vr9.dtsi"
 
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/mips/lantiq_rcu_gphy.h>
 
 / {
 	compatible = "zyxel,p-2812hnu", "lantiq,xway", "lantiq,vr9";
@@ -23,13 +24,6 @@
 		reg = <0x0 0x8000000>;
 	};
 
-	gphy-xrx200 {
-		compatible = "lantiq,phy-xrx200";
-		firmware1 = "lantiq/xrx200_phy11g_a14.bin";	/*VR9 1.1*/
-		firmware2 = "lantiq/xrx200_phy11g_a22.bin";	/*VR9 1.2*/
-		phys = [ 00 01 ];
-	};
-
 	gpio-keys-polled {
 		compatible = "gpio-keys-polled";
 		#address-cells = <1>;
@@ -102,6 +96,18 @@
 			gpios = <&gpio 28 GPIO_ACTIVE_LOW>;
 		};
 	};
+
+	usb_vbus: regulator-usb-vbus {
+		compatible = "regulator-fixed";
+
+		regulator-name = "USB_VBUS";
+
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+
+		gpio = <&gpio 33 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
 };
 
 &eth0 {
@@ -174,6 +180,14 @@
 	};
 };
 
+&gphy0 {
+	lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
+&gphy1 {
+	lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
 &gpio {
 	pinctrl-names = "default";
 	pinctrl-0 = <&state_default>;
@@ -264,13 +278,20 @@
 	lantiq,phy2 = <0x0>;
 };
 
+&usb_phy0 {
+	status = "okay";
+	phy-supply = <&usb_vbus>;
+};
+
+&usb_phy1 {
+	status = "okay";
+	phy-supply = <&usb_vbus>;
+};
+
 &usb0 {
 	status = "okay";
-	gpios = <&gpio 33 GPIO_ACTIVE_HIGH>;
-	lantiq,portmask = <0x3>;
 };
 
 &usb1 {
 	status = "okay";
-	gpios = <&gpio 33 GPIO_ACTIVE_HIGH>;
 };

+ 32 - 9
target/linux/lantiq/files-4.14/arch/mips/boot/dts/TDW89X0.dtsi

@@ -1,6 +1,7 @@
 #include "vr9.dtsi"
 
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/mips/lantiq_rcu_gphy.h>
 
 / {
 	compatible = "tplink,tdw89x0", "lantiq,xway", "lantiq,vr9";
@@ -25,12 +26,6 @@
 		reg = <0x0 0x4000000>;
 	};
 
-	gphy-xrx200 {
-		compatible = "lantiq,phy-xrx200";
-		firmware = "lantiq/xrx200_phy11g_a22.bin";
-		phys = [ 00 01 ];
-	};
-
 	gpio-keys-polled {
 		compatible = "gpio-keys-polled";
 		#address-cells = <1>;
@@ -92,6 +87,19 @@
 			gpios = <&ath9k 0 GPIO_ACTIVE_HIGH>;
 		};
 	};
+
+
+	usb_vbus: regulator-usb-vbus {
+		compatible = "regulator-fixed";
+
+		regulator-name = "USB_VBUS";
+
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+
+		gpio = <&gpio 33 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
 };
 
 &eth0 {
@@ -155,6 +163,14 @@
 	};
 };
 
+&gphy0 {
+	lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
+&gphy1 {
+	lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
 &gpio {
 	pinctrl-names = "default";
 	pinctrl-0 = <&state_default>;
@@ -263,13 +279,20 @@
 	};
 };
 
+&usb_phy0 {
+	status = "okay";
+	phy-supply = <&usb_vbus>;
+};
+
+&usb_phy1 {
+	status = "okay";
+	phy-supply = <&usb_vbus>;
+};
+
 &usb0 {
 	status = "okay";
-	gpios = <&gpio 33 GPIO_ACTIVE_HIGH>;
-	lantiq,portmask = <0x3>;
 };
 
 &usb1 {
 	status = "okay";
-	gpios = <&gpio 33 GPIO_ACTIVE_HIGH>;
 };

+ 9 - 7
target/linux/lantiq/files-4.14/arch/mips/boot/dts/VG3503J.dts

@@ -3,6 +3,7 @@
 #include "vr9.dtsi"
 
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/mips/lantiq_rcu_gphy.h>
 
 / {
 	compatible = "arcadyan,vg3503j", "lantiq,xway", "lantiq,vr9";
@@ -24,13 +25,6 @@
 		reg = <0x0 0x2000000>;
 	};
 
-	gphy-xrx200 {
-		compatible = "lantiq,phy-xrx200";
-		firmware1 = "lantiq/xrx200_phy11g_a14.bin";	/*VR9 1.1*/
-		firmware2 = "lantiq/xrx200_phy11g_a22.bin";	/*VR9 1.2*/
-		phys = [ 00 01 ];
-	};
-
 	gpio-keys-polled {
 		compatible = "gpio-keys-polled";
 		#address-cells = <1>;
@@ -109,6 +103,14 @@
 	};
 };
 
+&gphy0 {
+	lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
+&gphy1 {
+	lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
 &gpio {
 	pinctrl-names = "default";
 	pinctrl-0 = <&state_default>;

+ 26 - 8
target/linux/lantiq/files-4.14/arch/mips/boot/dts/VGV7510KW22.dtsi

@@ -1,6 +1,7 @@
 #include "vr9.dtsi"
 
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/mips/lantiq_rcu_gphy.h>
 
 / {
 	compatible = "arcadyan,vgv7510kw22", "lantiq,xway", "lantiq,vr9";
@@ -23,13 +24,6 @@
 		reg = <0x0 0x4000000>;
 	};
 
-	gphy-xrx200 {
-		compatible = "lantiq,phy-xrx200";
-		firmware1 = "lantiq/xrx200_phy22f_a14.bin";	/*VR9 1.1*/
-		firmware2 = "lantiq/xrx200_phy22f_a22.bin";	/*VR9 1.2*/
-		phys = [ 00 01 ];
-	};
-
 	gpio-keys-polled {
 		compatible = "gpio-keys-polled";
 		#address-cells = <1>;
@@ -98,6 +92,18 @@
 			gpios = <&gpio 29 GPIO_ACTIVE_LOW>;
 		};
 	};
+
+	usb_vbus: regulator-usb-vbus {
+		compatible = "regulator-fixed";
+
+		regulator-name = "USB_VBUS";
+
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+
+		gpio = <&gpio 47 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
 };
 
 &eth0 {
@@ -171,6 +177,14 @@
 	};
 };
 
+&gphy0 {
+	lantiq,gphy-mode = <GPHY_MODE_FE>;
+};
+
+&gphy1 {
+	lantiq,gphy-mode = <GPHY_MODE_FE>;
+};
+
 &gpio {
 	pinctrl-names = "default";
 	pinctrl-0 = <&state_default>;
@@ -237,9 +251,13 @@
 	status = "disabled";
 };
 
+&usb_phy0 {
+	status = "okay";
+	phy-supply = <&usb_vbus>;
+};
+
 &usb0 {
 	status = "okay";
-	gpios = <&gpio 47 GPIO_ACTIVE_HIGH>;
 };
 
 &vmmc {

+ 31 - 10
target/linux/lantiq/files-4.14/arch/mips/boot/dts/VGV7519.dtsi

@@ -1,6 +1,7 @@
 #include "vr9.dtsi"
 
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/mips/lantiq_rcu_gphy.h>
 
 / {
 	compatible = "arcadyan,vgv7519", "lantiq,xway", "lantiq,vr9";
@@ -23,13 +24,6 @@
 		reg = <0x0 0x4000000>;
 	};
 
-	gphy-xrx200 {
-		compatible = "lantiq,phy-xrx200";
-		firmware1 = "lantiq/xrx200_phy11g_a14.bin";	/*VR9 1.1*/
-		firmware2 = "lantiq/xrx200_phy11g_a22.bin";	/*VR9 1.2*/
-		phys = [ 00 01 ];
-	};
-
 	gpio-keys-polled {
 		compatible = "gpio-keys-polled";
 		#address-cells = <1>;
@@ -118,6 +112,18 @@
 			gpios = <&stp 15 GPIO_ACTIVE_LOW>;
 		};
 	};
+
+	usb_vbus: regulator-usb-vbus {
+		compatible = "regulator-fixed";
+
+		regulator-name = "USB_VBUS";
+
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+
+		gpio = <&gpio 32 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
 };
 
 &eth0 {
@@ -191,6 +197,14 @@
 	};
 };
 
+&gphy0 {
+	lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
+&gphy1 {
+	lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
 &gpio {
 	pinctrl-names = "default";
 	pinctrl-0 = <&state_default>;
@@ -272,15 +286,22 @@
 	/* lantiq,rising; */
 };
 
+&usb_phy0 {
+	status = "okay";
+	phy-supply = <&usb_vbus>;
+};
+
+&usb_phy1 {
+	status = "okay";
+	phy-supply = <&usb_vbus>;
+};
+
 &usb0 {
 	status = "okay";
-	gpios = <&gpio 32 GPIO_ACTIVE_HIGH>;
-	lantiq,portmask = <0x3>;
 };
 
 &usb1 {
 	status = "okay";
-	gpios = <&gpio 32 GPIO_ACTIVE_HIGH>;
 };
 
 &vmmc {

+ 31 - 9
target/linux/lantiq/files-4.14/arch/mips/boot/dts/VR200v.dts

@@ -3,6 +3,7 @@
 #include "vr9.dtsi"
 
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/mips/lantiq_rcu_gphy.h>
 
 / {
 	compatible = "tplink,vr200v", "lantiq,xway", "lantiq,vr9";
@@ -26,12 +27,6 @@
 		reg = <0x0 0x7f00000>;
 	};
 
-	gphy-xrx200 {
-		compatible = "lantiq,phy-xrx200";
-		firmware = "lantiq/xrx200_phy11g_a22.bin";
-		phys = [ 00 01 ];
-	};
-
 	gpio-keys-polled {
 		compatible = "gpio-keys-polled";
 		#address-cells = <1>;
@@ -98,6 +93,18 @@
 			gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
 		};
 	};
+
+	usb_vbus: regulator-usb-vbus {
+		compatible = "regulator-fixed";
+
+		regulator-name = "USB_VBUS";
+
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+
+		gpio = <&gpio 33 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
 };
 
 &eth0 {
@@ -161,6 +168,14 @@
 	};
 };
 
+&gphy0 {
+	lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
+&gphy1 {
+	lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
 &gpio {
 	pinctrl-names = "default";
 	pinctrl-0 = <&state_default>;
@@ -271,13 +286,20 @@
 	};
 };
 
+&usb_phy0 {
+	status = "okay";
+	phy-supply = <&usb_vbus>;
+};
+
+&usb_phy1 {
+	status = "okay";
+	phy-supply = <&usb_vbus>;
+};
+
 &usb0 {
 	status = "okay";
-	gpios = <&gpio 33 GPIO_ACTIVE_HIGH>;
-	lantiq,portmask = <0x3>;
 };
 
 &usb1 {
 	status = "okay";
-	gpios = <&gpio 33 GPIO_ACTIVE_HIGH>;
 };

+ 17 - 1
target/linux/lantiq/files-4.14/arch/mips/boot/dts/WBMR.dts

@@ -97,6 +97,18 @@
 			default-state = "on";
 		};
 	};
+
+	usb_vbus: regulator-usb-vbus {
+		compatible = "regulator-fixed";
+
+		regulator-name = "USB_VBUS";
+
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+
+		gpio = <&gpio 36 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
 };
 
 &gpio {
@@ -177,7 +189,11 @@
 	};
 };
 
+&usb_phy0 {
+	status = "okay";
+	phy-supply = <&usb_vbus>;
+};
+
 &usb0 {
 	status = "okay";
-	gpios = <&gpio 36 GPIO_ACTIVE_HIGH>;
 };

+ 31 - 9
target/linux/lantiq/files-4.14/arch/mips/boot/dts/WBMR300.dts

@@ -3,6 +3,7 @@
 #include "vr9.dtsi"
 
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/mips/lantiq_rcu_gphy.h>
 
 / {
 	compatible = "buffalo,wbmr-300hpd", "lantiq,xway", "lantiq,vr9";
@@ -26,12 +27,6 @@
 		reg = <0x0 0x4000000>;
 	};
 
-	gphy-xrx200 {
-		compatible = "lantiq,phy-xrx200";
-		firmware = "lantiq/xrx200_phy22f_a22.bin";
-		phys = [ 00 01 ];
-	};
-
 	gpio_poweroff {
 		compatible = "gpio-poweroff";
 		gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
@@ -145,6 +140,18 @@
 			gpios = <&gpio 49 GPIO_ACTIVE_HIGH>;
 		};
 	};
+
+	usb_vbus: regulator-usb-vbus {
+		compatible = "regulator-fixed";
+
+		regulator-name = "USB_VBUS";
+
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+
+		gpio = <&gpio 33 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
 };
 
 &eth0 {
@@ -206,6 +213,14 @@
 	};
 };
 
+&gphy0 {
+	lantiq,gphy-mode = <GPHY_MODE_FE>;
+};
+
+&gphy1 {
+	lantiq,gphy-mode = <GPHY_MODE_FE>;
+};
+
 &gpio {
 	pinctrl-names = "default";
 	pinctrl-0 = <&state_default>;
@@ -295,13 +310,20 @@
 	};
 };
 
+&usb_phy0 {
+	status = "okay";
+	phy-supply = <&usb_vbus>;
+};
+
+&usb_phy1 {
+	status = "okay";
+	phy-supply = <&usb_vbus>;
+};
+
 &usb0 {
 	status = "okay";
-	gpios = <&gpio 33 GPIO_ACTIVE_HIGH>;
-	lantiq,portmask = <0x3>;
 };
 
 &usb1 {
 	status = "okay";
-	gpios = <&gpio 33 GPIO_ACTIVE_HIGH>;
 };

+ 33 - 3
target/linux/lantiq/files-4.14/arch/mips/boot/dts/amazonse.dtsi

@@ -75,8 +75,36 @@
 		};
 
 		rcu0: rcu@203000 {
-			compatible = "lantiq,rcu-xway";
+			compatible = "lantiq,ase-rcu", "simple-mfd", "syscon";
 			reg = <0x203000 0x1000>;
+			ranges = <0x0 0x203000 0x100>;
+			big-endian;
+
+			reset: reset-controller@10 {
+				compatible = "lantiq,danube-reset";
+				reg = <0x10 4>, <0x14 4>;
+
+				#reset-cells = <2>;
+			};
+
+			usb_phy: usb2-phy@18 {
+				compatible = "lantiq,ase-usb2-phy";
+				reg = <0x18 4>;
+				status = "disabled";
+
+				resets = <&reset 4 4>;
+				reset-names = "ctrl";
+				#phy-cells = <0>;
+			};
+
+			reboot@10 {
+				compatible = "syscon-reboot";
+				reg = <0x10 4>;
+
+				regmap = <&rcu0>;
+				offset = <0x10>;
+				mask = <0x40000000>;
+			};
 		};
 	};
 
@@ -134,13 +162,15 @@
 			interrupts = <81>;
 		};
 
-		usb: ifxhcd@e101000 {
-			compatible = "lantiq,ase-usb", "lantiq,ifxhcd-ase";
+		usb: usb@e101000 {
+			compatible = "lantiq,ase-usb";
 			reg = <0xe101000 0x1000
 				0xe120000 0x3f000>;
 			interrupt-parent = <&icu0>;
 			interrupts = <39>;
 			dr_mode = "host";
+			phys = <&usb_phy>;
+			phy-names = "usb2-phy";
 			status = "disabled";
 		};
 

+ 49 - 5
target/linux/lantiq/files-4.14/arch/mips/boot/dts/ar9.dtsi

@@ -42,8 +42,10 @@
 		};
 
 		watchdog@803f0 {
-			compatible = "lantiq,wdt";
+			compatible = "lantiq,xrx100-wdt", "lantiq,xrx100-wdt";
 			reg = <0x803f0 0x10>;
+
+			regmap = <&rcu0>;
 		};
 	};
 
@@ -75,8 +77,46 @@
 		};
 
 		rcu0: rcu@203000 {
-			compatible = "lantiq,rcu-xway";
+			compatible = "lantiq,xrx100-rcu", "simple-mfd", "syscon";
 			reg = <0x203000 0x1000>;
+			ranges = <0x0 0x203000 0x100>;
+			big-endian;
+
+			reset: reset-controller@10 {
+				compatible = "lantiq,xrx100-reset", "lantiq,danube-reset";
+				reg = <0x10 4>, <0x14 4>;
+
+				#reset-cells = <2>;
+			};
+
+			usb_phy0: usb2-phy@18 {
+				compatible = "lantiq,xrx100-usb2-phy";
+				reg = <0x18 4>;
+				status = "disabled";
+
+				resets = <&reset 4 4>;
+				reset-names = "ctrl";
+				#phy-cells = <0>;
+			};
+
+			usb_phy1: usb2-phy@34 {
+				compatible = "lantiq,xrx100-usb2-phy";
+				reg = <0x34 4>;
+				status = "disabled";
+
+				resets = <&reset 28 28>;
+				reset-names = "ctrl";
+				#phy-cells = <0>;
+			};
+
+			reboot@10 {
+				compatible = "syscon-reboot";
+				reg = <0x10 4>;
+
+				regmap = <&rcu0>;
+				offset = <0x10>;
+				mask = <0x40000000>;
+			};
 		};
 	};
 
@@ -144,23 +184,27 @@
 			interrupts = <112 113 114>;
 		};
 
-		usb0: ifxhcd@e101000 {
-			compatible = "lantiq,arx100-usb", "lantiq,ifxhcd-arx100";
+		usb0: usb@e101000 {
+			compatible = "lantiq,arx100-usb";
 			reg = <0xe101000 0x1000
 				0xe120000 0x3f000>;
 			interrupt-parent = <&icu0>;
 			interrupts = <62 91>;
 			dr_mode = "host";
+			phys = <&usb_phy0>;
+			phy-names = "usb2-phy";
 			status = "disabled";
 		};
 
-		usb1: ifxhcd@e106000 {
+		usb1: usb@e106000 {
 			compatible = "lantiq,arx100-usb";
 			reg = <0xe106000 0x1000
 				0xe1e0000 0x3f000>;
 			interrupt-parent = <&icu0>;
 			interrupts = <91>;
 			dr_mode = "host";
+			phys = <&usb_phy1>;
+			phy-names = "usb2-phy";
 			status = "disabled";
 		};
 

+ 33 - 3
target/linux/lantiq/files-4.14/arch/mips/boot/dts/danube.dtsi

@@ -83,8 +83,36 @@
 		};
 
 		rcu0: rcu@203000 {
-			compatible = "lantiq,rcu-xway";
+			compatible = "lantiq,danube-rcu", "simple-mfd", "syscon";
 			reg = <0x203000 0x1000>;
+			ranges = <0x0 0x203000 0x100>;
+			big-endian;
+
+			reset: reset-controller@10 {
+				compatible = "lantiq,danube-reset";
+				reg = <0x10 4>, <0x14 4>;
+
+				#reset-cells = <2>;
+			};
+
+			usb_phy: usb2-phy@18 {
+				compatible = "lantiq,danube-usb2-phy";
+				reg = <0x18 4>;
+				status = "disabled";
+
+				resets = <&reset 4 4>;
+				reset-names = "ctrl";
+				#phy-cells = <0>;
+			};
+
+			reboot@10 {
+				compatible = "syscon-reboot";
+				reg = <0x10 4>;
+
+				regmap = <&rcu0>;
+				offset = <0x10>;
+				mask = <0x40000000>;
+			};
 		};
 	};
 
@@ -152,13 +180,15 @@
 			interrupts = <112 113 114>;
 		};
 
-		usb: ifxhcd@e101000 {
-			compatible = "lantiq,danube-usb", "lantiq,ifxhcd-danube";
+		usb: usb@e101000 {
+			compatible = "lantiq,danube-usb";
 			reg = <0xe101000 0x1000
 				0xe120000 0x3f000>;
 			interrupt-parent = <&icu0>;
 			interrupts = <62>;
 			dr_mode = "host";
+			phys = <&usb_phy>;
+			phy-names = "usb2-phy";
 			status = "disabled";
 		};
 

+ 80 - 15
target/linux/lantiq/files-4.14/arch/mips/boot/dts/vr9.dtsi

@@ -46,8 +46,10 @@
 		};
 
 		watchdog@803f0 {
-			compatible = "lantiq,wdt";
+			compatible = "lantiq,xrx100-wdt", "lantiq,xrx100-wdt";
 			reg = <0x803f0 0x10>;
+
+			regmap = <&rcu0>;
 		};
 	};
 
@@ -91,25 +93,81 @@
 		};
 
 		rcu0: rcu@203000 {
-			compatible = "lantiq,rcu-xrx200";
-			reg = <0x203000 0x1000>;
-			/* irq for thermal sensor */
-			interrupt-parent = <&icu0>;
-			interrupts = <115>;
-		};
-
-		xbar0: xbar@400000 {
-			compatible = "lantiq,xbar-xway";
-			reg = <0x400000 0x1000>;
+			compatible = "lantiq,xrx200-rcu", "simple-mfd", "syscon";
+			reg = <0x203000 0x100>;
+			ranges = <0x0 0x203000 0x100>;
+			big-endian;
+
+			gphy0: gphy@20 {
+				compatible = "lantiq,xrx200-gphy";
+				reg = <0x20 0x4>;
+
+				resets = <&reset0 31 30>, <&reset1 7 7>;
+				reset-names = "gphy", "gphy2";
+			};
+
+			gphy1: gphy@68 {
+				compatible = "lantiq,xrx200-gphy";
+				reg = <0x68 0x4>;
+
+				resets = <&reset0 29 28>, <&reset1 6 6>;
+				reset-names = "gphy", "gphy2";
+			};
+
+			reset0: reset-controller@10 {
+				compatible = "lantiq,xrx200-reset";
+				reg = <0x10 4>, <0x14 4>;
+
+				#reset-cells = <2>;
+			};
+
+			reset1: reset-controller@48 {
+				compatible = "lantiq,xrx200-reset";
+				reg = <0x48 4>, <0x24 4>;
+
+				#reset-cells = <2>;
+			};
+
+			usb_phy0: usb2-phy@18 {
+				compatible = "lantiq,xrx200-usb2-phy";
+				reg = <0x18 4>, <0x38 4>;
+				status = "disabled";
+
+				resets = <&reset1 4 4>, <&reset0 4 4>;
+				reset-names = "phy", "ctrl";
+				#phy-cells = <0>;
+			};
+
+			usb_phy1: usb2-phy@34 {
+				compatible = "lantiq,xrx200-usb2-phy";
+				reg = <0x34 4>, <0x3c 4>;
+				status = "disabled";
+
+				resets = <&reset1 5 4>, <&reset0 4 4>;
+				reset-names = "phy", "ctrl";
+				#phy-cells = <0>;
+			};
+
+			reboot@10 {
+				compatible = "syscon-reboot";
+				reg = <0x10 4>;
+
+				regmap = <&rcu0>;
+				offset = <0x10>;
+				mask = <0x40000000>;
+			};
 		};
 	};
 
 	fpi@10000000 {
+		compatible = "lantiq,xrx200-fpi", "simple-bus";
+		ranges = <0x0 0x10000000 0xf000000>;
+		reg =	<0x1f400000 0x1000>,
+			<0x10000000 0xf000000>;
+		regmap = <&rcu0>;
+		offset-endianness = <0x4c>;
 		#address-cells = <1>;
 		#size-cells = <1>;
-		compatible = "lantiq,fpi", "simple-bus";
-		ranges = <0x0 0x10000000 0xeefffff>;
-		reg = <0x10000000 0xef00000>;
 
 		localbus: localbus@0 {
 			#address-cells = <2>;
@@ -191,12 +249,14 @@
 
 		usb0: usb@e101000 {
 			status = "disabled";
-			compatible = "lantiq,xrx200-usb", "lantiq,ifxhcd-xrx200";
+			compatible = "lantiq,xrx200-usb";
 			reg = <0xe101000 0x1000
 				0xe120000 0x3f000>;
 			interrupt-parent = <&icu0>;
 			interrupts = <62 91>;
 			dr_mode = "host";
+			phys = <&usb_phy0>;
+			phy-names = "usb2-phy";
 		};
 
 		usb1: usb@e106000 {
@@ -206,6 +266,8 @@
 			interrupt-parent = <&icu0>;
 			interrupts = <91>;
 			dr_mode = "host";
+			phys = <&usb_phy1>;
+			phy-names = "usb2-phy";
 		};
 
 		eth0: eth@e108000 {
@@ -219,6 +281,9 @@
 			>;
 			interrupt-parent = <&icu0>;
 			interrupts = <75 73 72>;
+			resets = <&reset0 21 16>, <&reset0 8 8>;
+			reset-names = "switch", "ppe";
+			lantiq,phys = <&gphy0>, <&gphy1>;
 		};
 
 		mei@e116000 {