Hi,

On Thursday, 05.04.2018 at 15:54, Andre Przywara wrote:
> >> So can you please replace the last line in the olinuxino.dts:
> >>
> >> -  usb0_vbus-supply = <&reg_usb0_vbus>;
> >> +  usb0_vbus_power-supply = <&reg_usb0_vbus>;
> >>
> >> Then you should not need the regulator-always-on hack above.
> > 
> > This does not work, I still see the same "disabling" message in dmesg and
> 
> Mmh, too bad. I was hoping to have found our culprit.
> Maybe it's an initialization ordering issue, because the pinctrl driver
> - which virtually everyone depends on - gets actually initialized quite
> late, so many drivers bail out with -EPROBE_DEFER on their first try. I
> I need to check if the USB PHY and the regulator drivers can cope with
> that properly.
> With that change, can you dump the output of:
> /sys/kernel/debug/regulator/regulator_summary
> Ideally even without that change. Would be curious to know what's
> actually going on with those regulators.

Actually, it looks like I messed up and did not notice another change that
has an effect on whether or not the USB-A port works.

While going to get the above dumps I noticed that the USB-A port was
working with a DT I thought it should not work with, so I retraced my steps
only to narrow things down to the following change I made during later
tests:

     &usb_otg {
            status = "okay";
    -        dr_mode = "otg";
    +        dr_mode = "host";
    };

With a "dr_mode" of "otg", I get "usb0-vbus: disabling" at boot and the
USB-A port has no power.

With a "dr_mode" of "host" I do NOT get that message, and the USB-A port
both has power and works correctly.

Just to be clear, in both cases:

 - I'm using kernel 4.16.0, with your DT changes from the "olinuxino"
   branch on Github,
 - this is *without* the change to "usb0_vbus_power-supply" we're
   discussing here,
 - the micro-B port has power, since the ATF change you supplied earlier is
   orthogonal to this(?).

Dumping /sys/kernel/debug/regulator/regulator_summary in the non-working
case ("dr_mode" = "otg"):

 regulator                      use open bypass voltage current     min     max
-------------------------------------------------------------------------------
 regulator-dummy                  0   22      0     0mV     0mA     0mV     0mV
    usb_phy_generic.0.auto                                          0mV     0mV
    vcc-3v3                       0    1      0  3300mV     0mA  3300mV  3300mV
       1c0f000.mmc                                               3300mV  3400mV
    vdd-cpux                      0    0      0  1100mV     0mA  1040mV  1300mV
    dcdc4                         0    0      0  1100mV     0mA     0mV     0mV
    vcc-ddr3                      0    0      0  1360mV     0mA  1360mV  1360mV
    vdd-sys                       0    0      0  1100mV     0mA  1100mV  1100mV
    dc1sw                         0    0      0     0mV     0mA     0mV     0mV
    vcc-pe                        0    0      0  2800mV     0mA  2800mV  2800mV
    vcc-pl                        0    1      0  3300mV     0mA  3300mV  3300mV
       1c10000.mmc                                               3300mV  3400mV
    vcc-pll-avcc                  0    0      0  3000mV     0mA  3000mV  3000mV
    vcc-hdmi                      0    0      0  3300mV     0mA  3300mV  3300mV
    vcc-mipi                      0    0      0  3300mV     0mA  3300mV  3300mV
    vcc-avdd-csi                  0    0      0  2800mV     0mA  2800mV  2800mV
    vcc-wifi-io                   1    1      0  3300mV     0mA  3300mV  3300mV
       1c10000.mmc                                               3300mV  3600mV
    cpvdd                         0    0      0  1800mV     0mA  1800mV  1800mV
    vcc-dvdd-csi                  0    0      0  1800mV     0mA  1800mV  1800mV
    eldo3                         0    0      0   700mV     0mA     0mV     0mV
    vcc-1v2-hsic                  0    0      0  1200mV     0mA  1200mV  1200mV
    vdd-cpus                      0    0      0  1100mV     0mA  1100mV  1100mV
    vcc-rtc                       0    0      0  3000mV     0mA  3000mV  3000mV
    ldo-io0                       0    0      0  3300mV     0mA     0mV     0mV
    ldo-io1                       0    0      0  3300mV     0mA     0mV     0mV
 usb0-vbus                        0    1      0  5000mV     0mA  5000mV  5000mV
    1c19400.phy                                                     0mV     0mV

In the working case ("dr_mode" = "host"), the difference from the above is:

     vcc-rtc                       0    0      0  3000mV     0mA  3000mV  3000mV
     ldo-io0                       0    0      0  3300mV     0mA     0mV     0mV
     ldo-io1                       0    0      0  3300mV     0mA     0mV     0mV
- usb0-vbus                        0    1      0  5000mV     0mA  5000mV  5000mV
+ usb0-vbus                        1    1      0  5000mV     0mA  5000mV  5000mV
     1c19400.phy                                                     0mV     0mV

Does this help? I hope I've not missed out anything accidentally while
collecting the data.

Cheers,

-mato

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to