diff mbox

arm64: dts: rockchip: add USB 2.0 and 3.0 support on Ficus board

Message ID 20180712160008.30972-1-ezequiel@collabora.com (mailing list archive)
State New, archived
Headers show

Commit Message

Ezequiel Garcia July 12, 2018, 4 p.m. UTC
From: Enric Balletbo i Serra <enric.balletbo@collabora.com>

The board exposes two types A ports, one is USB 3.0, up to 5.0Gbps and
another one is USB 2.0 up to 480Mbps. Enable the USB PHYs and the USB
controllers to enable theses devices.

Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
---
Heiko,

Enric finally had some time to take a look at the schematics,
and help with the USB stuff. Thanks to him, USB host
is working now! \o/

USB Type-C will have to wait until we have some spare time
to debug the fusb302 driver.

 arch/arm64/boot/dts/rockchip/rk3399-ficus.dts | 85 +++++++++++++++++++
 1 file changed, 85 insertions(+)

Comments

Heiko Stübner July 12, 2018, 9:45 p.m. UTC | #1
Hi,

Am Donnerstag, 12. Juli 2018, 18:00:08 CEST schrieb Ezequiel Garcia:
> From: Enric Balletbo i Serra <enric.balletbo@collabora.com>
> 
> The board exposes two types A ports, one is USB 3.0, up to 5.0Gbps and
> another one is USB 2.0 up to 480Mbps. Enable the USB PHYs and the USB
> controllers to enable theses devices.
> 
> Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
> Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
> ---
> Heiko,
> 
> Enric finally had some time to take a look at the schematics,
> and help with the USB stuff. Thanks to him, USB host
> is working now! \o/

great to hear that
One issue below though.


> USB Type-C will have to wait until we have some spare time
> to debug the fusb302 driver.
>
>  arch/arm64/boot/dts/rockchip/rk3399-ficus.dts | 85 +++++++++++++++++++
>  1 file changed, 85 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/rockchip/rk3399-ficus.dts b/arch/arm64/boot/dts/rockchip/rk3399-ficus.dts
> index 0d14183dd4a9..d0631c02749c 100644
> --- a/arch/arm64/boot/dts/rockchip/rk3399-ficus.dts
> +++ b/arch/arm64/boot/dts/rockchip/rk3399-ficus.dts
> @@ -61,6 +61,16 @@
>  		vin-supply = <&vcc3v3_sys>;
>  	};
>  
> +	vcc5v0_host: vcc5v0-host-regulator {
> +		compatible = "regulator-fixed";
> +		enable-active-high;
> +		gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>;
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&host_vbus_drv>;
> +		regulator-name = "vcc5v0_host";
> +		regulator-always-on;

missing voltages and also a vin-supply.
These 5V don't come from thin air ;-) and I really like
seeing sane regulator trees.


Thanks
Heiko
Ezequiel Garcia July 12, 2018, 11:57 p.m. UTC | #2
On Thu, 2018-07-12 at 23:45 +0200, Heiko Stuebner wrote:
> Hi,
> 
> Am Donnerstag, 12. Juli 2018, 18:00:08 CEST schrieb Ezequiel Garcia:
> > From: Enric Balletbo i Serra <enric.balletbo@collabora.com>
> > 
> > The board exposes two types A ports, one is USB 3.0, up to 5.0Gbps and
> > another one is USB 2.0 up to 480Mbps. Enable the USB PHYs and the USB
> > controllers to enable theses devices.
> > 
> > Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
> > Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
> > ---
> > Heiko,
> > 
> > Enric finally had some time to take a look at the schematics,
> > and help with the USB stuff. Thanks to him, USB host
> > is working now! \o/
> 
> great to hear that
> One issue below though.
> 
> 
> > USB Type-C will have to wait until we have some spare time
> > to debug the fusb302 driver.
> > 
> >  arch/arm64/boot/dts/rockchip/rk3399-ficus.dts | 85 +++++++++++++++++++
> >  1 file changed, 85 insertions(+)
> > 
> > diff --git a/arch/arm64/boot/dts/rockchip/rk3399-ficus.dts b/arch/arm64/boot/dts/rockchip/rk3399-ficus.dts
> > index 0d14183dd4a9..d0631c02749c 100644
> > --- a/arch/arm64/boot/dts/rockchip/rk3399-ficus.dts
> > +++ b/arch/arm64/boot/dts/rockchip/rk3399-ficus.dts
> > @@ -61,6 +61,16 @@
> >  		vin-supply = <&vcc3v3_sys>;
> >  	};
> >  
> > +	vcc5v0_host: vcc5v0-host-regulator {
> > +		compatible = "regulator-fixed";
> > +		enable-active-high;
> > +		gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>;
> > +		pinctrl-names = "default";
> > +		pinctrl-0 = <&host_vbus_drv>;
> > +		regulator-name = "vcc5v0_host";
> > +		regulator-always-on;
> 
> missing voltages and also a vin-supply.

Indeed.

> These 5V don't come from thin air ;-) and I really like
> seeing sane regulator trees.
> 

Oh, right. And vcc3v3_pcie is also missing the min/max voltages,
so I'll add them.

I guess it's better to have these voltage properties -- despite they are
listed as optional.

Thanks for reviewing,
Eze
diff mbox

Patch

diff --git a/arch/arm64/boot/dts/rockchip/rk3399-ficus.dts b/arch/arm64/boot/dts/rockchip/rk3399-ficus.dts
index 0d14183dd4a9..d0631c02749c 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-ficus.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-ficus.dts
@@ -61,6 +61,16 @@ 
 		vin-supply = <&vcc3v3_sys>;
 	};
 
+	vcc5v0_host: vcc5v0-host-regulator {
+		compatible = "regulator-fixed";
+		enable-active-high;
+		gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&host_vbus_drv>;
+		regulator-name = "vcc5v0_host";
+		regulator-always-on;
+	};
+
 	vdd_log: vdd-log {
 		compatible = "pwm-regulator";
 		pwms = <&pwm2 0 25000 0>;
@@ -454,6 +464,13 @@ 
 				<1 14 RK_FUNC_GPIO &pcfg_pull_down>;
 		};
 	};
+
+	usb2 {
+		host_vbus_drv: host-vbus-drv {
+			rockchip,pins =
+				<4 27 RK_FUNC_GPIO &pcfg_pull_none>;
+		};
+	};
 };
 
 &pwm2 {
@@ -487,6 +504,40 @@ 
 	status = "okay";
 };
 
+&tcphy0 {
+	status = "okay";
+};
+
+&tcphy1 {
+	status = "okay";
+};
+
+&u2phy0 {
+	status = "okay";
+};
+
+&u2phy1 {
+	status = "okay";
+};
+
+&u2phy0_host {
+	phy-supply = <&vcc5v0_host>;
+	status = "okay";
+};
+
+&u2phy1_host {
+	phy-supply = <&vcc5v0_host>;
+	status = "okay";
+};
+
+&u2phy0_otg {
+	status = "okay";
+};
+
+&u2phy1_otg {
+	status = "okay";
+};
+
 &uart0 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&uart0_xfer &uart0_cts>;
@@ -497,6 +548,40 @@ 
 	status = "okay";
 };
 
+&usb_host0_ehci {
+	status = "okay";
+};
+
+&usb_host0_ohci {
+	status = "okay";
+};
+
+&usb_host1_ehci {
+	status = "okay";
+};
+
+&usb_host1_ohci {
+	status = "okay";
+};
+
+&usbdrd3_0 {
+	status = "okay";
+};
+
+&usbdrd_dwc3_0 {
+	status = "okay";
+	dr_mode = "host";
+};
+
+&usbdrd3_1 {
+	status = "okay";
+};
+
+&usbdrd_dwc3_1 {
+	status = "okay";
+	dr_mode = "host";
+};
+
 &vopb {
 	status = "okay";
 };