Configuring the OTG port as host versus OTG on Angstrom

Recently, the Angstrom kernel changed the kernel config for the OTG
port from host to OTG. Basically, what this mean is you need a mini-A
to mini-B cable to connect a hub now, instead of the mini-A to A
receptacle used when the port was USB host only.

I'm lucky and have a mini-A to mini-B cable and the mini-A to A
receptacle so I can use either config. We'd like to get an idea how
many people are effected by this change and if they are having trouble
with the hub cabling.

Once rev C boards are available, this is less of an issue since you
can connect the hub to the EHCI connector.

Philip

Philip Balister wrote:

many people are effected by this change and if they are having trouble
with the hub cabling.

We've been shorting the pins on the boards for development. USB won't be used in production, so it's a non-issue.

Hi,

Philip Balister schrieb:

Recently, the Angstrom kernel changed the kernel config for the OTG
port from host to OTG. Basically, what this mean is you need a mini-A
to mini-B cable to connect a hub now, instead of the mini-A to A
receptacle used when the port was USB host only.

I'm lucky and have a mini-A to mini-B cable and the mini-A to A
receptacle so I can use either config. We'd like to get an idea how
many people are effected by this change and if they are having trouble
with the hub cabling.

I miss the ability to echo "host", "peripheral", "otg" into some device
file to specify the operation mode. I know this was never possible with
the beagle's kernel but the musb driver in the N800 could do it and I
wonder what happened to that feature. :expressionless:

There is still this promisingly looking function in musb_core.c but I
haven't seen it having any effect:

static ssize_t
musb_mode_store(struct device *dev, struct device_attribute *attr,
    const char *buf, size_t n)
{
  struct musb *musb = dev_to_musb(dev);
  unsigned long flags;

  spin_lock_irqsave(&musb->lock, flags);
  if (!strncmp(buf, "host", 4))
    musb_platform_set_mode(musb, MUSB_HOST);
  if (!strncmp(buf, "peripheral", 10))
    musb_platform_set_mode(musb, MUSB_PERIPHERAL);
  if (!strncmp(buf, "otg", 3))
    musb_platform_set_mode(musb, MUSB_OTG);
  spin_unlock_irqrestore(&musb->lock, flags);

  return n;
}

Regards
Robert