diff mbox

[1/3] ARM: dts: Turn on USB host vbus on rk3288-evb

Message ID 1406676273-20701-2-git-send-email-dianders@chromium.org (mailing list archive)
State New, archived
Headers show

Commit Message

Doug Anderson July 29, 2014, 11:24 p.m. UTC
There is no phy driver that works on the Rockchip board for either USB
host port yet.  For now just hardcode the vbus signal to be on all the
time which makes both the dwc2 host and the EHCI port work.

Signed-off-by: Doug Anderson <dianders@chromium.org>
---
 arch/arm/boot/dts/rk3288-evb.dtsi | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

Comments

Heiko Stuebner July 30, 2014, 11:24 a.m. UTC | #1
Am Dienstag, 29. Juli 2014, 16:24:31 schrieb Doug Anderson:
> There is no phy driver that works on the Rockchip board for either USB
> host port yet.  For now just hardcode the vbus signal to be on all the
> time which makes both the dwc2 host and the EHCI port work.
> 
> Signed-off-by: Doug Anderson <dianders@chromium.org>
> ---
>  arch/arm/boot/dts/rk3288-evb.dtsi | 18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/rk3288-evb.dtsi
> b/arch/arm/boot/dts/rk3288-evb.dtsi index 749e20d..efd625e 100644
> --- a/arch/arm/boot/dts/rk3288-evb.dtsi
> +++ b/arch/arm/boot/dts/rk3288-evb.dtsi
> @@ -35,6 +35,18 @@
>  			debounce-interval = <100>;
>  		};
>  	};
> +
> +	/* This turns on vbus for both host0 (ehci) and host1 (dwc2) */
> +	usb_host_vbus_regulator: usb-host-vbus-regulator {
> +		compatible = "regulator-fixed";
> +		enable-active-high;
> +		gpio = <&gpio0 14 GPIO_ACTIVE_HIGH>;
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&usb_host_vbus>;
> +		regulator-name = "usb-host-vbus";
> +		regulator-always-on;
> +		regulator-boot-on;
> +	};
>  };

It seems I have a slightly outdated schematics pdf for the evb ... and only 
see the OTG vbus pin, on <&gpio0 12>, but am missing the whole host vbus.

Could you think about finding another name for the handle? For example, in my 
incomplete evb-schematics the supply coming from the otg regulator is called 
vcc50_usb and there should be something similar for the host supply, so I'd 
like something like

	vcc50_usbhost: usb-host-vbus-regulator { /* or whatever it gets called */
	...
	};

simply to keep with the supply names defined in the schematics - makes reading 
easier.


Heiko

> 
>  &i2c0 {
> @@ -71,4 +83,10 @@
>  			rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
>  		};
>  	};
> +
> +	usb-host {
> +		usb_host_vbus: usb-host-vbus {
> +			rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
> +		};
> +	};
>  };
Doug Anderson July 30, 2014, 3:13 p.m. UTC | #2
Heiko,

On Wed, Jul 30, 2014 at 4:24 AM, Heiko Stübner <heiko@sntech.de> wrote:
> Am Dienstag, 29. Juli 2014, 16:24:31 schrieb Doug Anderson:
>> There is no phy driver that works on the Rockchip board for either USB
>> host port yet.  For now just hardcode the vbus signal to be on all the
>> time which makes both the dwc2 host and the EHCI port work.
>>
>> Signed-off-by: Doug Anderson <dianders@chromium.org>
>> ---
>>  arch/arm/boot/dts/rk3288-evb.dtsi | 18 ++++++++++++++++++
>>  1 file changed, 18 insertions(+)
>>
>> diff --git a/arch/arm/boot/dts/rk3288-evb.dtsi
>> b/arch/arm/boot/dts/rk3288-evb.dtsi index 749e20d..efd625e 100644
>> --- a/arch/arm/boot/dts/rk3288-evb.dtsi
>> +++ b/arch/arm/boot/dts/rk3288-evb.dtsi
>> @@ -35,6 +35,18 @@
>>                       debounce-interval = <100>;
>>               };
>>       };
>> +
>> +     /* This turns on vbus for both host0 (ehci) and host1 (dwc2) */
>> +     usb_host_vbus_regulator: usb-host-vbus-regulator {
>> +             compatible = "regulator-fixed";
>> +             enable-active-high;
>> +             gpio = <&gpio0 14 GPIO_ACTIVE_HIGH>;
>> +             pinctrl-names = "default";
>> +             pinctrl-0 = <&usb_host_vbus>;
>> +             regulator-name = "usb-host-vbus";
>> +             regulator-always-on;
>> +             regulator-boot-on;
>> +     };
>>  };
>
> It seems I have a slightly outdated schematics pdf for the evb ... and only
> see the OTG vbus pin, on <&gpio0 12>, but am missing the whole host vbus.

I have schematics that claim to be from January 25, 2014 and claim to
be rev 1.0.  On my schematics:

* GPIO0_B4 (12) = OTG_VBUS_DRV = pin 233 of the mainboard connector
* GPIO0_B6 (14) = HOST_VBUS_DRV = pin 239 of the mainboard connector

On the mainboard schematics I have the OTG signal (233) doesn't
actually go to the OTG port.  It goes to a debug header and nowhere
else.  The HOST VBUS controls VBUS on both of the two "host" ports.


> Could you think about finding another name for the handle? For example, in my
> incomplete evb-schematics the supply coming from the otg regulator is called
> vcc50_usb and there should be something similar for the host supply, so I'd
> like something like
>
>         vcc50_usbhost: usb-host-vbus-regulator { /* or whatever it gets called */
>         ...
>         };
>
> simply to keep with the supply names defined in the schematics - makes reading
> easier.

I did!  ;)  ...but I matched my schematics, not yours.  Can you
provide the date / version number from your schematics and we can see
which is newer?  Just for reference I was emailed schematics last week
but that doesn't necessarily guarantee that they're the newest ones.


Given the above, I'm not planning to spin this patch unless you
confirm you want me to.  Thanks!  :)

-Doug
Heiko Stuebner July 30, 2014, 6:24 p.m. UTC | #3
Hi Doug,

Am Mittwoch, 30. Juli 2014, 08:13:52 schrieb Doug Anderson:
> On Wed, Jul 30, 2014 at 4:24 AM, Heiko Stübner <heiko@sntech.de> wrote:
> > Am Dienstag, 29. Juli 2014, 16:24:31 schrieb Doug Anderson:
> >> There is no phy driver that works on the Rockchip board for either USB
> >> host port yet.  For now just hardcode the vbus signal to be on all the
> >> time which makes both the dwc2 host and the EHCI port work.
> >> 
> >> Signed-off-by: Doug Anderson <dianders@chromium.org>
> >> ---
> >> 
> >>  arch/arm/boot/dts/rk3288-evb.dtsi | 18 ++++++++++++++++++
> >>  1 file changed, 18 insertions(+)
> >> 
> >> diff --git a/arch/arm/boot/dts/rk3288-evb.dtsi
> >> b/arch/arm/boot/dts/rk3288-evb.dtsi index 749e20d..efd625e 100644
> >> --- a/arch/arm/boot/dts/rk3288-evb.dtsi
> >> +++ b/arch/arm/boot/dts/rk3288-evb.dtsi
> >> @@ -35,6 +35,18 @@
> >> 
> >>                       debounce-interval = <100>;
> >>               
> >>               };
> >>       
> >>       };
> >> 
> >> +
> >> +     /* This turns on vbus for both host0 (ehci) and host1 (dwc2) */
> >> +     usb_host_vbus_regulator: usb-host-vbus-regulator {
> >> +             compatible = "regulator-fixed";
> >> +             enable-active-high;
> >> +             gpio = <&gpio0 14 GPIO_ACTIVE_HIGH>;
> >> +             pinctrl-names = "default";
> >> +             pinctrl-0 = <&usb_host_vbus>;
> >> +             regulator-name = "usb-host-vbus";
> >> +             regulator-always-on;
> >> +             regulator-boot-on;
> >> +     };
> >> 
> >>  };
> > 
> > It seems I have a slightly outdated schematics pdf for the evb ... and
> > only
> > see the OTG vbus pin, on <&gpio0 12>, but am missing the whole host vbus.
> 
> I have schematics that claim to be from January 25, 2014 and claim to
> be rev 1.0.  On my schematics:
> 
> * GPIO0_B4 (12) = OTG_VBUS_DRV = pin 233 of the mainboard connector
> * GPIO0_B6 (14) = HOST_VBUS_DRV = pin 239 of the mainboard connector
> 
> On the mainboard schematics I have the OTG signal (233) doesn't
> actually go to the OTG port.  It goes to a debug header and nowhere
> else.  The HOST VBUS controls VBUS on both of the two "host" ports.
> 
> > Could you think about finding another name for the handle? For example, in
> > my incomplete evb-schematics the supply coming from the otg regulator is
> > called vcc50_usb and there should be something similar for the host
> > supply, so I'd like something like
> > 
> >         vcc50_usbhost: usb-host-vbus-regulator { /* or whatever it gets
> >         called */
> >         ...
> >         };
> > 
> > simply to keep with the supply names defined in the schematics - makes
> > reading easier.
> 
> I did!  ;)  ...but I matched my schematics, not yours.  Can you
> provide the date / version number from your schematics and we can see
> which is newer?  Just for reference I was emailed schematics last week
> but that doesn't necessarily guarantee that they're the newest ones.

the schematics I have is "RK3288_BETA", REV 0.2, created in 2014/02/12, last 
changed on 2014/03/04.

At least in my schematics on page 16 of 44, the OTG_VBUS_DRV pin leads to a 
switch, that gets supplied by VCC50_BOOST and emits the VCC50_USB .
So, a later phy node should in the otg case probably have a
	whatever-supply = <&vcc50_usb>;
and not
	whatever-supply = <&usb_otg_vbus_regulator>


And there I'd guess the host supply will probably be structured similarly - 
even if I can't see it right now :-) .


> Given the above, I'm not planning to spin this patch unless you
> confirm you want me to.  Thanks!  :)

I'd like the regulator handle to be named after the supply name, not after the 
pin-name :-) .


Heiko
Doug Anderson July 30, 2014, 7:54 p.m. UTC | #4
Heiko,

On Wed, Jul 30, 2014 at 11:24 AM, Heiko Stübner <heiko@sntech.de> wrote:
> Hi Doug,
>
> Am Mittwoch, 30. Juli 2014, 08:13:52 schrieb Doug Anderson:
>> On Wed, Jul 30, 2014 at 4:24 AM, Heiko Stübner <heiko@sntech.de> wrote:
>> > Am Dienstag, 29. Juli 2014, 16:24:31 schrieb Doug Anderson:
>> >> There is no phy driver that works on the Rockchip board for either USB
>> >> host port yet.  For now just hardcode the vbus signal to be on all the
>> >> time which makes both the dwc2 host and the EHCI port work.
>> >>
>> >> Signed-off-by: Doug Anderson <dianders@chromium.org>
>> >> ---
>> >>
>> >>  arch/arm/boot/dts/rk3288-evb.dtsi | 18 ++++++++++++++++++
>> >>  1 file changed, 18 insertions(+)
>> >>
>> >> diff --git a/arch/arm/boot/dts/rk3288-evb.dtsi
>> >> b/arch/arm/boot/dts/rk3288-evb.dtsi index 749e20d..efd625e 100644
>> >> --- a/arch/arm/boot/dts/rk3288-evb.dtsi
>> >> +++ b/arch/arm/boot/dts/rk3288-evb.dtsi
>> >> @@ -35,6 +35,18 @@
>> >>
>> >>                       debounce-interval = <100>;
>> >>
>> >>               };
>> >>
>> >>       };
>> >>
>> >> +
>> >> +     /* This turns on vbus for both host0 (ehci) and host1 (dwc2) */
>> >> +     usb_host_vbus_regulator: usb-host-vbus-regulator {
>> >> +             compatible = "regulator-fixed";
>> >> +             enable-active-high;
>> >> +             gpio = <&gpio0 14 GPIO_ACTIVE_HIGH>;
>> >> +             pinctrl-names = "default";
>> >> +             pinctrl-0 = <&usb_host_vbus>;
>> >> +             regulator-name = "usb-host-vbus";
>> >> +             regulator-always-on;
>> >> +             regulator-boot-on;
>> >> +     };
>> >>
>> >>  };
>> >
>> > It seems I have a slightly outdated schematics pdf for the evb ... and
>> > only
>> > see the OTG vbus pin, on <&gpio0 12>, but am missing the whole host vbus.
>>
>> I have schematics that claim to be from January 25, 2014 and claim to
>> be rev 1.0.  On my schematics:
>>
>> * GPIO0_B4 (12) = OTG_VBUS_DRV = pin 233 of the mainboard connector
>> * GPIO0_B6 (14) = HOST_VBUS_DRV = pin 239 of the mainboard connector
>>
>> On the mainboard schematics I have the OTG signal (233) doesn't
>> actually go to the OTG port.  It goes to a debug header and nowhere
>> else.  The HOST VBUS controls VBUS on both of the two "host" ports.
>>
>> > Could you think about finding another name for the handle? For example, in
>> > my incomplete evb-schematics the supply coming from the otg regulator is
>> > called vcc50_usb and there should be something similar for the host
>> > supply, so I'd like something like
>> >
>> >         vcc50_usbhost: usb-host-vbus-regulator { /* or whatever it gets
>> >         called */
>> >         ...
>> >         };
>> >
>> > simply to keep with the supply names defined in the schematics - makes
>> > reading easier.
>>
>> I did!  ;)  ...but I matched my schematics, not yours.  Can you
>> provide the date / version number from your schematics and we can see
>> which is newer?  Just for reference I was emailed schematics last week
>> but that doesn't necessarily guarantee that they're the newest ones.
>
> the schematics I have is "RK3288_BETA", REV 0.2, created in 2014/02/12, last
> changed on 2014/03/04.

OK, yours is clearly newer.


> At least in my schematics on page 16 of 44, the OTG_VBUS_DRV pin leads to a
> switch, that gets supplied by VCC50_BOOST and emits the VCC50_USB .
> So, a later phy node should in the otg case probably have a
>         whatever-supply = <&vcc50_usb>;
> and not
>         whatever-supply = <&usb_otg_vbus_regulator>

Ah, nice.  I wonder if that's the "2.0" mainboard?  I've seen some
people with that.  I have a "1.0 mainboard".


> And there I'd guess the host supply will probably be structured similarly -
> even if I can't see it right now :-) .
>
>
>> Given the above, I'm not planning to spin this patch unless you
>> confirm you want me to.  Thanks!  :)
>
> I'd like the regulator handle to be named after the supply name, not after the
> pin-name :-) .

Got it.  That means I can use the pin name for the pinctrl, which is nice.

One thing I'm always wary of: hardware designers tend to like to
change the names of things from revision to revision.

-Doug
diff mbox

Patch

diff --git a/arch/arm/boot/dts/rk3288-evb.dtsi b/arch/arm/boot/dts/rk3288-evb.dtsi
index 749e20d..efd625e 100644
--- a/arch/arm/boot/dts/rk3288-evb.dtsi
+++ b/arch/arm/boot/dts/rk3288-evb.dtsi
@@ -35,6 +35,18 @@ 
 			debounce-interval = <100>;
 		};
 	};
+
+	/* This turns on vbus for both host0 (ehci) and host1 (dwc2) */
+	usb_host_vbus_regulator: usb-host-vbus-regulator {
+		compatible = "regulator-fixed";
+		enable-active-high;
+		gpio = <&gpio0 14 GPIO_ACTIVE_HIGH>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&usb_host_vbus>;
+		regulator-name = "usb-host-vbus";
+		regulator-always-on;
+		regulator-boot-on;
+	};
 };
 
 &i2c0 {
@@ -71,4 +83,10 @@ 
 			rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
 		};
 	};
+
+	usb-host {
+		usb_host_vbus: usb-host-vbus {
+			rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
+		};
+	};
 };