Subject: [linux-sunxi] [PATCH] musb: sunxi: Ignore VBus errors in host-only mode

From: [email-masked] (Maxime Ripard)
Date: Mon, 14 Sep 2015 22:25:33 +0200

On Thu, Sep 10, 2015 at 08:38:38PM +0200, Hans de Goede wrote:
> Hi,
> 
> On 10-09-15 20:30, Maxime Ripard wrote:
> >On Thu, Sep 10, 2015 at 08:23:23PM +0200, Hans de Goede wrote:
> >>Hi,
> >>
> >>On 04-09-15 08:43, Olliver Schinagl wrote:
> >>>Hey Hans,
> >>>
> >>>On 07-08-15 10:45, Olliver Schinagl wrote:
> >>>><snip>
> >>>>>If you change the dr_mode to host then you _must_ also remove any id_det and vbus_det
> >>>>>gpio settings from the usb_phy node in the dts, as the sun4i phy code detects
> >>>>>host vs otg mode by checking for the presence of these.
> >>>>Yes, this fixes it and makes it work. Thanks.
> >>>>
> >>>I've been going back to this and am wondering if this is something I can look into to fix properly? E.g. if the dts sets dr_mode = host, can we simply ignore the pins and treat them as unset?
> >>
> >>AFAIK you cannot unset something in dts. The only solution I
> >>can comeup with is to add a dr_mode argument to the phy like
> >>we already have for the otg controller itself.
> >>
> >>This is something which we likely need to do anyways to add
> >>support for peripheral only mode, which we seem to need for
> >>some "hdmi sticks".
> >
> >I haven't really followed the rest of the discussion, so sorry if you
> >already talked about that, but why can't you just set the dr_mode to
> >peripheral in such a case?
> 
> This is about the usbphy code not the musb-controller code, which are
> 2 different dts nodes, atm only the musb-controller node has a
> dr_mode property, and the phy code decides between host-only
> and otg mode based on whether an id pin is assigned or not.
> 
> My proposal is to get rid of the id-pin hack to determine the mode
> and add a dr_mode property to the usbphy dts node.

I agree that we should get rid of that hack, especially since a lack
of an ID pin might also be used on a peripheral-only device.

However, we already have that information in the musb node, and
duplicating the info seems error prone. We already have a custom
function, maybe that's a case for another one, and that would allow to
handle "hard" cases more easily (like CONFIG_USB_MUSB_HOST selected,
with the otg node set to otg).

Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20150914/58e2107d/attachment.sig>