diff mbox

[v10,3/3] arm64: dts: mediatek: add xHCI & usb phy for mt8173

Message ID 1445140279-18121-4-git-send-email-chunfeng.yun@mediatek.com (mailing list archive)
State New, archived
Headers show

Commit Message

Chunfeng Yun (云春峰) Oct. 18, 2015, 3:51 a.m. UTC
add xHCI and phy drivers for MT8173-EVB

Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
---
 arch/arm64/boot/dts/mediatek/mt8173-evb.dts | 16 +++++++++++
 arch/arm64/boot/dts/mediatek/mt8173.dtsi    | 42 +++++++++++++++++++++++++++++
 2 files changed, 58 insertions(+)

Comments

Sergei Shtylyov Oct. 18, 2015, 11:01 a.m. UTC | #1
Hello.

On 10/18/2015 6:51 AM, Chunfeng Yun wrote:

> add xHCI and phy drivers for MT8173-EVB
>
> Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>

[...]

> diff --git a/arch/arm64/boot/dts/mediatek/mt8173.dtsi b/arch/arm64/boot/dts/mediatek/mt8173.dtsi
> index d18ee42..46f5f50 100644
> --- a/arch/arm64/boot/dts/mediatek/mt8173.dtsi
> +++ b/arch/arm64/boot/dts/mediatek/mt8173.dtsi
[...]
> @@ -487,6 +488,47 @@
>   			clock-names = "source", "hclk";
>   			status = "disabled";
>   		};
> +
> +		usb30: usb@11270000 {
> +			compatible = "mediatek,mt8173-xhci";
> +			reg = <0 0x11270000 0 0x1000>,
> +			      <0 0x11280700 0 0x0100>;
> +			interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_LOW>;
> +			power-domains = <&scpsys MT8173_POWER_DOMAIN_USB>;
> +			clocks = <&topckgen CLK_TOP_USB30_SEL>,
> +				 <&pericfg CLK_PERI_USB0>,
> +				 <&pericfg CLK_PERI_USB1>;
> +			clock-names = "sys_ck",
> +				      "wakeup_deb_p0",
> +				      "wakeup_deb_p1";
> +			phys = <&phy_port0 PHY_TYPE_USB3>,
> +			       <&phy_port1 PHY_TYPE_USB2>;
> +			mediatek,syscon-wakeup = <&pericfg>;
> +			status = "okay";
> +		};
> +
> +		u3phy: usb-phy@11290000 {
> +			compatible = "mediatek,mt8173-u3phy";
> +			reg = <0 0x11290000 0 0x800>;
> +			clocks = <&apmixedsys CLK_APMIXED_REF2USB_TX>;
> +			clock-names = "u3phya_ref";
> +			#address-cells = <2>;
> +			#size-cells = <2>;
> +			ranges;
> +			status = "okay";

    Don't you need the "power-domains" prop here as well?

> +
> +			phy_port0: port@11290800 {
> +				reg = <0 0x11290800 0 0x800>;
> +				#phy-cells = <1>;
> +				status = "okay";
> +			};
> +
> +			phy_port1: port@11291000 {
> +				reg = <0 0x11291000 0 0x800>;
> +				#phy-cells = <1>;
> +				status = "okay";
> +			};
> +		};
>   	};
>   };
>

MBR, Sergei
Chunfeng Yun (云春峰) Oct. 19, 2015, 5:31 a.m. UTC | #2
On Sun, 2015-10-18 at 14:01 +0300, Sergei Shtylyov wrote:
> Hello.
> 
> On 10/18/2015 6:51 AM, Chunfeng Yun wrote:
> 
> > add xHCI and phy drivers for MT8173-EVB
> >
> > Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
> 
> [...]
> 
> > diff --git a/arch/arm64/boot/dts/mediatek/mt8173.dtsi b/arch/arm64/boot/dts/mediatek/mt8173.dtsi
> > index d18ee42..46f5f50 100644
> > --- a/arch/arm64/boot/dts/mediatek/mt8173.dtsi
> > +++ b/arch/arm64/boot/dts/mediatek/mt8173.dtsi
> [...]
> > @@ -487,6 +488,47 @@
> >   			clock-names = "source", "hclk";
> >   			status = "disabled";
> >   		};
> > +
> > +		usb30: usb@11270000 {
> > +			compatible = "mediatek,mt8173-xhci";
> > +			reg = <0 0x11270000 0 0x1000>,
> > +			      <0 0x11280700 0 0x0100>;
> > +			interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_LOW>;
> > +			power-domains = <&scpsys MT8173_POWER_DOMAIN_USB>;
> > +			clocks = <&topckgen CLK_TOP_USB30_SEL>,
> > +				 <&pericfg CLK_PERI_USB0>,
> > +				 <&pericfg CLK_PERI_USB1>;
> > +			clock-names = "sys_ck",
> > +				      "wakeup_deb_p0",
> > +				      "wakeup_deb_p1";
> > +			phys = <&phy_port0 PHY_TYPE_USB3>,
> > +			       <&phy_port1 PHY_TYPE_USB2>;
> > +			mediatek,syscon-wakeup = <&pericfg>;
> > +			status = "okay";
> > +		};
> > +
> > +		u3phy: usb-phy@11290000 {
> > +			compatible = "mediatek,mt8173-u3phy";
> > +			reg = <0 0x11290000 0 0x800>;
> > +			clocks = <&apmixedsys CLK_APMIXED_REF2USB_TX>;
> > +			clock-names = "u3phya_ref";
> > +			#address-cells = <2>;
> > +			#size-cells = <2>;
> > +			ranges;
> > +			status = "okay";
> 
>     Don't you need the "power-domains" prop here as well?
No, the power-domains of MAC and PHY are separated, but PHY's can't be
operated by software.

Thanks.
> 
> > +
> > +			phy_port0: port@11290800 {
> > +				reg = <0 0x11290800 0 0x800>;
> > +				#phy-cells = <1>;
> > +				status = "okay";
> > +			};
> > +
> > +			phy_port1: port@11291000 {
> > +				reg = <0 0x11291000 0 0x800>;
> > +				#phy-cells = <1>;
> > +				status = "okay";
> > +			};
> > +		};
> >   	};
> >   };
> >
> 
> MBR, Sergei
>
diff mbox

Patch

diff --git a/arch/arm64/boot/dts/mediatek/mt8173-evb.dts b/arch/arm64/boot/dts/mediatek/mt8173-evb.dts
index 4be66ca..d039a1c 100644
--- a/arch/arm64/boot/dts/mediatek/mt8173-evb.dts
+++ b/arch/arm64/boot/dts/mediatek/mt8173-evb.dts
@@ -13,6 +13,7 @@ 
  */
 
 /dts-v1/;
+#include <dt-bindings/gpio/gpio.h>
 #include "mt8173.dtsi"
 
 / {
@@ -32,6 +33,15 @@ 
 	};
 
 	chosen { };
+
+	usb_p1_vbus: regulator@0 {
+		compatible = "regulator-fixed";
+		regulator-name = "usb_vbus";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		gpio = <&pio 130 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
 };
 
 &i2c1 {
@@ -390,3 +400,9 @@ 
 &uart0 {
 	status = "okay";
 };
+
+&usb30 {
+	vusb33-supply = <&mt6397_vusb_reg>;
+	vbus-supply = <&usb_p1_vbus>;
+	mediatek,wakeup-src = <1>;
+};
diff --git a/arch/arm64/boot/dts/mediatek/mt8173.dtsi b/arch/arm64/boot/dts/mediatek/mt8173.dtsi
index d18ee42..46f5f50 100644
--- a/arch/arm64/boot/dts/mediatek/mt8173.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8173.dtsi
@@ -14,6 +14,7 @@ 
 #include <dt-bindings/clock/mt8173-clk.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/phy/phy.h>
 #include <dt-bindings/power/mt8173-power.h>
 #include <dt-bindings/reset-controller/mt8173-resets.h>
 #include "mt8173-pinfunc.h"
@@ -487,6 +488,47 @@ 
 			clock-names = "source", "hclk";
 			status = "disabled";
 		};
+
+		usb30: usb@11270000 {
+			compatible = "mediatek,mt8173-xhci";
+			reg = <0 0x11270000 0 0x1000>,
+			      <0 0x11280700 0 0x0100>;
+			interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_LOW>;
+			power-domains = <&scpsys MT8173_POWER_DOMAIN_USB>;
+			clocks = <&topckgen CLK_TOP_USB30_SEL>,
+				 <&pericfg CLK_PERI_USB0>,
+				 <&pericfg CLK_PERI_USB1>;
+			clock-names = "sys_ck",
+				      "wakeup_deb_p0",
+				      "wakeup_deb_p1";
+			phys = <&phy_port0 PHY_TYPE_USB3>,
+			       <&phy_port1 PHY_TYPE_USB2>;
+			mediatek,syscon-wakeup = <&pericfg>;
+			status = "okay";
+		};
+
+		u3phy: usb-phy@11290000 {
+			compatible = "mediatek,mt8173-u3phy";
+			reg = <0 0x11290000 0 0x800>;
+			clocks = <&apmixedsys CLK_APMIXED_REF2USB_TX>;
+			clock-names = "u3phya_ref";
+			#address-cells = <2>;
+			#size-cells = <2>;
+			ranges;
+			status = "okay";
+
+			phy_port0: port@11290800 {
+				reg = <0 0x11290800 0 0x800>;
+				#phy-cells = <1>;
+				status = "okay";
+			};
+
+			phy_port1: port@11291000 {
+				reg = <0 0x11291000 0 0x800>;
+				#phy-cells = <1>;
+				status = "okay";
+			};
+		};
 	};
 };