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 = <®_usb0_vbus>;
> >> + usb0_vbus_power-supply = <®_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 [email protected].
For more options, visit https://groups.google.com/d/optout.