Re: [RFCv1 2/3] ARM: dts: meson8b: odroidc1: fix USB power supplies for phy

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Martin,

On Sat, 9 Feb 2019 at 06:06, Martin Blumenstingl
<martin.blumenstingl@xxxxxxxxxxxxxx> wrote:
>
> Hi Anand,
>
> On Thu, Feb 7, 2019 at 7:33 AM Anand Moon <linux.amoon@xxxxxxxxx> wrote:
> >
> > Hi Martin,
> >
> > On Wed, 6 Feb 2019 at 16:58, Martin Blumenstingl
> > <martin.blumenstingl@xxxxxxxxxxxxxx> wrote:
> > >
> > > Hi Anand,
> > >
> > > On Tue, Feb 5, 2019 at 8:53 PM Anand Moon <linux.amoon@xxxxxxxxx> wrote:
> > > [...]
> > > > > my interpretationfor the Amlogic SoCs is:
> > > > > - vusb_a and vusb_d are generated internally, not sure if there's an
> > > > > external fixed regulator
> > > > > - there is no phy-supply (the PHY itself is powered by clock-gating
> > > > > using the CLKID_USB clock)
> > > > > - usb0 VBUS is controlled by GPIOAO_5
> > > > >
> > > >
> > > > But as per the device tree binding
> > > >
> > > > [0] https://elixir.bootlin.com/linux/v5.0-rc5/source/Documentation/devicetree/bindings/phy/meson8b-usb2-phy.txt
> > > > [1] https://elixir.bootlin.com/linux/v5.0-rc5/source/Documentation/devicetree/bindings/phy/phy-bindings.txt
> > > >
> > > > its uses phy-supply to enable power to usb phy which seem to be correct option.
> > > phy-bindings.txt states that "phy-supply" is a "Phandle to a regulator
> > > that provides power to the PHY".
> > > I have written the example in meson8b-usb2-phy.txt and I think it's
> > > wrong (back when I wrote it I didn't know about the "vbus-supply"
> > > property on the controller and I didn't know about the VBUS
> > > constraints).
> > >
> > > I believe that the phy-supply property is intended for PHYs which need
> > > an external power supply (for example because they are not embedded
> > > into a SoC or if the SoC has separate voltage inputs for the PHY).
> > > I'm not aware of any PHY supply voltage on the Amlogic SoCs (I believe
> > > this is done internally within the SoC). instead they use clock gating
> > > to power down the PHY.
> > >
> > > as far as I understand the VBUS signal it depends on the USB mode:
> > > - host provides VBUS
> > > - peripheral devices are powered using this voltage
> > > - with OTG VBUS needs to be turned on or off depending on the current
> > > mode (host or peripheral)
> > > with the "phy-supply" property there's no way to manage the regulator
> > > depending on the USB mode (host or peripheral), it will always be
> > > "on".
> > >
> > >
> > > Regards
> > > Martin
> >
> > Thanks for the clarification.
> > But this dose not work setting the usb1_phy to use vbus-supply.
> >
> >  &usb1_phy {
> >         status = "okay";
> > +       vbus-supply = <&usb_vbus>;
> >  };
> >
> > I am attaching a small patch for testing.
> > [0] usbvbus.patch
> indeed, this is not working for me either.
> I checked my old notes at [0] -> it works for me when setting
> "vbus-supply" at the usb controller (not the PHY).
>
> with the following snippet:
>   &usb1 {
>     status = "okay";
>     vbus-supply = <&usb_vbus>;
>   };
> I get:
> # cat /sys/kernel/debug/regulator/regulator_summary | grep -i usb
>    c90c0000.usb                  1                                 0mA
>     0mV     0mV
>    c90c0000.usb                  1                                 0mA
>     0mV     0mV
>    USB_VBUS                      1    1      0 unknown  5000mV     0mA
>  5000mV  5000mV
>       c90c0000.usb               1                                 0mA
>     0mV     0mV
>
> can you please try this on your board as well?
>
> > Here is the summary of the above patch.
> >
> > 1. hot-plugins of usb device is not working.
> > 2. only cold/warm boot let the device come up.
> > 3. not power is supplied to the usb ports.
> > 4. no power module is registered with the regulator summary.
> with "vbus-supply" moved to the usb1 node I get the following result:
> 1. same: hot-plugins of usb device is not working
> 2. different: a reboot doesn't make devices come up
> 3. same: no power is supplied to the USB ports (in my case this causes
> #2, but it's not clear why there's no power...)
> 4. different: the regulator is registered with the USB controller in debugfs
>
Here the the logs after I applied the above changes

[1] https://pastebin.com/rVa8gxNG

with below message.

[   14.793044] usb 1-1.3: reset high-speed USB device number 3 using dwc2
[   18.253011] usb 1-1.3: reset high-speed USB device number 3 using dwc2
[   21.643017] usb 1-1.3: reset high-speed USB device number 3 using dwc2
[   25.033012] usb 1-1.3: reset high-speed USB device number 3 using dwc2
[   28.412995] usb 1-1.3: reset high-speed USB device number 3 using dwc2

So this is not correct solution to the problem.

>
> Regards
> Martin
>
>
> [0] https://lkml.org/lkml/2019/1/18/960

Best Regards

-Anand



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux