Re: [PATCH V3 6/8] ARM: dts: sun8i: v3s: add EHCI and OHCI to v3s dts

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

 



On Fri, Aug 25, 2023 at 10:53:26PM +0100, Andre Przywara wrote:
> On Fri, 25 Aug 2023 10:58:00 -0500
> Chris Morgan <macromorgan@xxxxxxxxxxx> wrote:
> 
> Hi Chris,
> 
> > On Thu, Aug 24, 2023 at 10:21:50PM +0100, Andre Przywara wrote:
> > > On Wed, 23 Aug 2023 16:25:52 -0500
> > > Chris Morgan <macroalpha82@xxxxxxxxx> wrote:
> > > 
> > > Hi Chris,
> > >   
> > > > From: Chris Morgan <macromorgan@xxxxxxxxxxx>
> > > > 
> > > > Add the EHCI and OHCI controller to the Allwinner v3s to support using
> > > > USB in host mode.  
> > > 
> > > Alright, so was it really that easy? I was afraid we left out host mode
> > > for a reason back then ....  
> > 
> > Can't speak to that, but it is working for me as both a host and a
> > gadget.
> > 
> > >   
> > > > 
> > > > Signed-off-by: Chris Morgan <macromorgan@xxxxxxxxxxx>
> > > > ---
> > > >  arch/arm/boot/dts/allwinner/sun8i-v3s.dtsi | 19 +++++++++++++++++++
> > > >  1 file changed, 19 insertions(+)
> > > > 
> > > > diff --git a/arch/arm/boot/dts/allwinner/sun8i-v3s.dtsi b/arch/arm/boot/dts/allwinner/sun8i-v3s.dtsi
> > > > index c87476ea31e2..eb63dd274305 100644
> > > > --- a/arch/arm/boot/dts/allwinner/sun8i-v3s.dtsi
> > > > +++ b/arch/arm/boot/dts/allwinner/sun8i-v3s.dtsi
> > > > @@ -319,6 +319,25 @@ usbphy: phy@1c19400 {
> > > >  			#phy-cells = <1>;
> > > >  		};
> > > >  
> > > > +		ehci: usb@1c1a000 {
> > > > +			compatible = "allwinner,sun8i-v3s-ehci", "generic-ehci";
> > > > +			reg = <0x01c1a000 0x100>;
> > > > +			interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
> > > > +			clocks = <&ccu CLK_BUS_EHCI0>, <&ccu CLK_BUS_OHCI0>;
> > > > +			resets = <&ccu RST_BUS_EHCI0>, <&ccu RST_BUS_OHCI0>;  
> > > 
> > > Please add the link the PHY here:
> > > 			phys = <&usbphy 0>;
> > > 			phy-names = "usb";  
> > 
> > usbphy 0 doesn't work, but if I do phys = <&usbphy 1>; for here and the
> > OHCI node it does work. Is that expected/acceptable?
> 
> Well, that means it doesn't work, because the V3s has only one PHY, so
> "1" is invalid, and will either be ignored or rejected (any hints in
> dmesg?)

Nothing in dmesg that I can see.

> 
> > By "doesn't work"
> > I mean the device is always in HOST mode if I use 0 and switches
> > correctly (the extcon shows HOST=0 when unplugged or plugged into my
> > computer, and shows HOST=1 if I plug in a device which I assume is
> > the desired behavior).
> 
> You mean the latter part was with <usbphy 1>, and that's the same
> behaviour as without the property?
> That would mean that this part is still broken - I think somewhere in
> the PHY driver. But this is a generic issue, and not specific to the
> V3s, and your patch is just revealing it.
> 
> I will try to have a look in the next few days, to find the real
> culprit.

Yep. <usbphy 0> means it stays in host mode; no phy or <usbphy 1> means
it works in both. For now I'll set it to the proper usbphy 0 and note
that for the moment otg doesn't work. Unlike the problem with the RTC
regulator this doesn't really harm the overall experience; and for now
anyone making custom firmware that relies on OTG can simply delete the
phy property and it will work.

V4 incoming soon. Thank you.
Chris

> 
> Cheers,
> Andre
> 
> > > > +			status = "disabled";
> > > > +		};
> > > > +
> > > > +		ohci: usb@1c1a400 {
> > > > +			compatible = "allwinner,sun8i-v3s-ohci", "generic-ohci";
> > > > +			reg = <0x01c1a400 0x100>;
> > > > +			interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
> > > > +			clocks = <&ccu CLK_BUS_EHCI0>, <&ccu CLK_BUS_OHCI0>,
> > > > +				 <&ccu CLK_USB_OHCI0>;
> > > > +			resets = <&ccu RST_BUS_EHCI0>, <&ccu RST_BUS_OHCI0>;  
> > > 
> > > ... and here.
> > > 
> > > That would be definitely the right thing to do, but please check
> > > whether it still works, especially OTG operation.
> > > 
> > > The addresses, clocks, resets and interrupts match the manual.
> > > 
> > > Cheers,
> > > Andre.
> > > 
> > >   
> > > > +			status = "disabled";
> > > > +		};
> > > > +
> > > >  		ccu: clock@1c20000 {
> > > >  			compatible = "allwinner,sun8i-v3s-ccu";
> > > >  			reg = <0x01c20000 0x400>;  
> > >   
> > 
> > Thank you,
> > Chris
> > 
> 



[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