mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Christian Eggers <ceggers@arri.de>
To: <barebox@lists.infradead.org>, Ahmad Fatoum <a.fatoum@pengutronix.de>
Subject: Re: usbotg: otg_set_mode() can only be called once
Date: Thu, 24 Aug 2023 15:35:33 +0200	[thread overview]
Message-ID: <5731472.DvuYhMxLoT@n95hx1g2> (raw)
In-Reply-To: <a86f7a3c-202b-7348-4766-3c0579eed72f@pengutronix.de>

Hello Ahmad,

On Thursday, 24 August 2023, 15:23:17 CEST, Ahmad Fatoum wrote:
> Hello Christian,
> 
> On 24.08.23 14:04, Christian Eggers wrote:
> > ok, I should better read the manuals ...
> > 
> > "Once a specific mode has been selected it can't be changed later anymore."
> > 
> > In the past I used two OTG cores, one as device and one as host. So both
> > OTGs were set to a fixed drmode in the device tree.
> > 
> > No I need to implement both features via a single OTG.  But probably
> > I can use another criteria for choosing the correct boot methods instead of
> > trying both.
> 
> Obvious choices is checking [ "$bootsource" = serial ] or checking if device
> is gadget through ID pin or Type C controller.
> 
> Is that possible in your case?
I currently check for $bootsource which is sufficient. But using the USB-C CC
lines (that's why I am working on the ADC driver) sounds event better.  Currently
I use the ADC only for checking whether a device is connected (I am allowed to 
enable VBUS), but not for determining whether a host is connected (activate USB gadget).

regards,
Christian


> 
> Cheers,
> Ahmad
> 
> > 
> > 
> > On Thursday, 24 August 2023, 13:30:46 CEST, Christian Eggers wrote:
> >> Application:
> >>
> >> 1. Try to boot via fastboot (usb device)
> >> 2. Try to boot via usb drive (usb host)
> >>
> >> Problem:
> >>
> >> barebox@i.MX6ULL:/ setenv otg.mode=host
> >> imx-usb 2184000.usb@2184000.of: USB EHCI 1.00
> >> barebox@i.MX6ULL:/ setenv otg.mode=peripheral
> >> Cannot set parameter otg.mode: Device or resource busy
> >>
> >> Analysis:
> >>
> >> The otgdev core maintains one `struct otg_mode` per device.  The function
> >> checks whether the current mode is equal to USB_DR_MODE_OTG.  If not, it
> >> returns -EBUSY.  There is currently no way to reset the current mode back to
> >> USB_DR_MODE_OTG after it has been set to peripheral or host mode once.
> >>
> >>
> > 
> > 
> > 
> > 
> > 
> > 
> 
> 







      reply	other threads:[~2023-08-24 13:52 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-24 11:30 Christian Eggers
2023-08-24 12:04 ` Christian Eggers
2023-08-24 13:23   ` Ahmad Fatoum
2023-08-24 13:35     ` Christian Eggers [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5731472.DvuYhMxLoT@n95hx1g2 \
    --to=ceggers@arri.de \
    --cc=a.fatoum@pengutronix.de \
    --cc=barebox@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox