* FSUSB Port 0 in OAMP2430 SDP
@ 2007-08-04 19:37 Amit Gupta
2007-08-06 0:18 ` Felipe Balbi
0 siblings, 1 reply; 16+ messages in thread
From: Amit Gupta @ 2007-08-04 19:37 UTC (permalink / raw)
To: Linux OMAP
Hi
Thanks for the series of prompt replies.
I am still struck up in the code. I have gonr through the code of
isp1301_omap.c.
The Vbus_drv bit has already been set in the linux code in the
isp1301_set_host() in the following statement :-
isp1301_set_bits(isp, ISP1301_OTG_CONTROL_1, OTG1_VBUS_DRV);
So this means the care has already been taken care of setting the Vbus
to 5 volts.
And as per the statement above this line states the care has already
been taken care
of using mini A plug /mini B plug in the mini AB receptacle.
So the question arises that why is my port not getting powered up.
I am not sure what exactly needs to be done if I want to configure the
FSUSB port 0 as host port only since I am not aware of the OTG
configuratins/state machines.
And i am not sure how ISP1301_omap.c takes care of the host , device
and OTG configurations seperately.
Can any one suggest me settings I need to do within the ISP-1301 for
OMAP to act as host only since my OMAP gost controller is already
configured and is sending SOF interrupt messages but my port is not
getting powered up.
Also kindly tell me the current capablity support for the port. Will
it be able to power up the USB mouse.
Also how are the connections for FSUSB port 1 . Are they through
ISP-1301 transceiver only ?
Thanks & Regards
Amit
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: FSUSB Port 0 in OAMP2430 SDP
2007-08-04 19:37 FSUSB Port 0 in OAMP2430 SDP Amit Gupta
@ 2007-08-06 0:18 ` Felipe Balbi
2007-08-06 18:54 ` Amit Gupta
0 siblings, 1 reply; 16+ messages in thread
From: Felipe Balbi @ 2007-08-06 0:18 UTC (permalink / raw)
To: Amit Gupta; +Cc: Linux OMAP
On 8/4/07, Amit Gupta <amitjobs05@gmail.com> wrote:
> Hi
>
> Thanks for the series of prompt replies.
>
> I am still struck up in the code. I have gonr through the code of
> isp1301_omap.c.
> The Vbus_drv bit has already been set in the linux code in the
> isp1301_set_host() in the following statement :-
>
> isp1301_set_bits(isp, ISP1301_OTG_CONTROL_1, OTG1_VBUS_DRV);
>
> So this means the care has already been taken care of setting the Vbus
> to 5 volts.
> And as per the statement above this line states the care has already
> been taken care
> of using mini A plug /mini B plug in the mini AB receptacle.
>
> So the question arises that why is my port not getting powered up.
> I am not sure what exactly needs to be done if I want to configure the
> FSUSB port 0 as host port only since I am not aware of the OTG
> configuratins/state machines.
> And i am not sure how ISP1301_omap.c takes care of the host , device
> and OTG configurations seperately.
afaik OMAP2430SDP uses MUSB core inside OMAP chip. MUSB is an OTG core
and it changes roles by detecting the state of the id pin. This
detection is made on hardware not on software so it'll be a lot easier
to hack a mini-B cable and ground its id pin in order to convert it to
mini-A connector. This way, musb will know you're trying to become usb
host.
>
> Can any one suggest me settings I need to do within the ISP-1301 for
> OMAP to act as host only since my OMAP gost controller is already
> configured and is sending SOF interrupt messages but my port is not
> getting powered up.
SOF can happen on device also. Use the hacked-miniB cable and try again, please
>
> Also kindly tell me the current capablity support for the port. Will
> it be able to power up the USB mouse.
As an OTG controller, it can only provide 100mA current on the bus...
this is not enough for a usb mouse. But you can use a powered HUB
connected to fsusb port and the mouse connected through the hub
>
> Also how are the connections for FSUSB port 1 . Are they through
> ISP-1301 transceiver only ?
>
> Thanks & Regards
>
> Amit
> _______________________________________________
> Linux-omap-open-source mailing list
> Linux-omap-open-source@linux.omap.com
> http://linux.omap.com/mailman/listinfo/linux-omap-open-source
>
--
Best Regards,
Felipe Balbi
felipebalbi@users.sourceforge.net
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: FSUSB Port 0 in OAMP2430 SDP
2007-08-06 0:18 ` Felipe Balbi
@ 2007-08-06 18:54 ` Amit Gupta
2007-08-06 19:11 ` Felipe Balbi
0 siblings, 1 reply; 16+ messages in thread
From: Amit Gupta @ 2007-08-06 18:54 UTC (permalink / raw)
To: Felipe Balbi, Kamat, Nishant; +Cc: Linux OMAP
Hello
Thanks a lot for a prompt reply.
I understand that things can work out in the linux code if i ground the ID pin.
But logically speaking can you tell me what actuallly happpens if i
ground the ID pin . As per my understanding, it will just set the
ID_GND bit in the interrrupt staus register in the ISP1301 transceiver
and the interrupt will be generated in the OMAP2430 ie IRQ_OTG(78)
would be set. And once the interrupt is generated , it is upto the
linux code of the driver ie. isp1301_omap.c to configure the
transceiver(using I2C) in a certain manner so that the power up takes
place and Vbus becomes high. Setting the vbus_drv bit alone is not
solving the issue. We need to set 1 or 2 more registers before setting
this bit.
This seqence I am looking forward to(ISP 1301 transceiver
configuration for host mode).
Also as per my understanding for ISP1301 transceiver to configure as a
host only Vbus driving is required but this should happen after
configuring some other dependent registers.
Kindly help me in knowing the same so that I can configure the FSUSB
port 0 as host port only.
Can the powered hub be concerned as an alternative to the above
sequence since if i am only trying to power up the port and hence the
device through a setting in the transeiver then this can be done by
means of the powered hub(which will power all the ports) and hence
enumeration can take place there afterwards.
Thanks & Regards
Amit
On 8/6/07, Felipe Balbi <felipebalbi@users.sourceforge.net> wrote:
> On 8/4/07, Amit Gupta <amitjobs05@gmail.com> wrote:
> > Hi
> >
> > Thanks for the series of prompt replies.
> >
> > I am still struck up in the code. I have gonr through the code of
> > isp1301_omap.c.
> > The Vbus_drv bit has already been set in the linux code in the
> > isp1301_set_host() in the following statement :-
> >
> > isp1301_set_bits(isp, ISP1301_OTG_CONTROL_1, OTG1_VBUS_DRV);
> >
> > So this means the care has already been taken care of setting the Vbus
> > to 5 volts.
> > And as per the statement above this line states the care has already
> > been taken care
> > of using mini A plug /mini B plug in the mini AB receptacle.
> >
> > So the question arises that why is my port not getting powered up.
> > I am not sure what exactly needs to be done if I want to configure the
> > FSUSB port 0 as host port only since I am not aware of the OTG
> > configuratins/state machines.
> > And i am not sure how ISP1301_omap.c takes care of the host , device
> > and OTG configurations seperately.
>
> afaik OMAP2430SDP uses MUSB core inside OMAP chip. MUSB is an OTG core
> and it changes roles by detecting the state of the id pin. This
> detection is made on hardware not on software so it'll be a lot easier
> to hack a mini-B cable and ground its id pin in order to convert it to
> mini-A connector. This way, musb will know you're trying to become usb
> host.
>
> >
> > Can any one suggest me settings I need to do within the ISP-1301 for
> > OMAP to act as host only since my OMAP gost controller is already
> > configured and is sending SOF interrupt messages but my port is not
> > getting powered up.
>
> SOF can happen on device also. Use the hacked-miniB cable and try again, please
>
> >
> > Also kindly tell me the current capablity support for the port. Will
> > it be able to power up the USB mouse.
>
> As an OTG controller, it can only provide 100mA current on the bus...
> this is not enough for a usb mouse. But you can use a powered HUB
> connected to fsusb port and the mouse connected through the hub
>
> >
> > Also how are the connections for FSUSB port 1 . Are they through
> > ISP-1301 transceiver only ?
> >
> > Thanks & Regards
> >
> > Amit
> > _______________________________________________
> > Linux-omap-open-source mailing list
> > Linux-omap-open-source@linux.omap.com
> > http://linux.omap.com/mailman/listinfo/linux-omap-open-source
> >
>
>
> --
> Best Regards,
>
> Felipe Balbi
> felipebalbi@users.sourceforge.net
>
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: FSUSB Port 0 in OAMP2430 SDP
2007-08-06 18:54 ` Amit Gupta
@ 2007-08-06 19:11 ` Felipe Balbi
2007-08-06 19:29 ` Woodruff, Richard
0 siblings, 1 reply; 16+ messages in thread
From: Felipe Balbi @ 2007-08-06 19:11 UTC (permalink / raw)
To: Amit Gupta; +Cc: Linux OMAP
Hi,
On 8/6/07, Amit Gupta <amit_jobs05@inbox.com> wrote:
> Hello
>
> Thanks a lot for a prompt reply.
>
> I understand that things can work out in the linux code if i ground the ID pin.
>
> But logically speaking can you tell me what actuallly happpens if i
> ground the ID pin . As per my understanding, it will just set the
> ID_GND bit in the interrrupt staus register in the ISP1301 transceiver
> and the interrupt will be generated in the OMAP2430 ie IRQ_OTG(78)
> would be set. And once the interrupt is generated , it is upto the
> linux code of the driver ie. isp1301_omap.c to configure the
> transceiver(using I2C) in a certain manner so that the power up takes
> place and Vbus becomes high. Setting the vbus_drv bit alone is not
> solving the issue. We need to set 1 or 2 more registers before setting
> this bit.
I think more stuff happens in hardware then just setting those
registers. Probably the transceiver is applying some pull-up and/or
pull-down resistors when ID pin is grounded. I'd read musb & otg docs
again to remember what really happens there.
If you check OTG specs rev 1.3 it presents what happens when you ground ID pin.
> This seqence I am looking forward to(ISP 1301 transceiver
> configuration for host mode).
>
> Also as per my understanding for ISP1301 transceiver to configure as a
> host only Vbus driving is required but this should happen after
> configuring some other dependent registers.
> Kindly help me in knowing the same so that I can configure the FSUSB
> port 0 as host port only.
>
> Can the powered hub be concerned as an alternative to the above
> sequence since if i am only trying to power up the port and hence the
> device through a setting in the transeiver then this can be done by
> means of the powered hub(which will power all the ports) and hence
> enumeration can take place there afterwards.
I'm pretty sure you'll need a self-powered hub anyway 'cause MUSB can
only provide 100mA and if you wanna power a non-otg usb device it uses
up to 500mA. The self-powered hub masks this limits to the controller
as it'll power the usb devices itself.
afaik, a powered hub do not back-feed ports. So you'd need to hack it
also in order to provide 5V back to OMAP2430SDP. I was doing this with
N800 when it wasn't being able switch to host just by software. You
can hack a hub and try this also. After that, please report us so we
can see what's happening with OMAP2430SDP ;-)
thanks in advance
>
> Thanks & Regards
>
> Amit
>
>
>
> On 8/6/07, Felipe Balbi <felipebalbi@users.sourceforge.net> wrote:
> > On 8/4/07, Amit Gupta <amitjobs05@gmail.com> wrote:
> > > Hi
> > >
> > > Thanks for the series of prompt replies.
> > >
> > > I am still struck up in the code. I have gonr through the code of
> > > isp1301_omap.c.
> > > The Vbus_drv bit has already been set in the linux code in the
> > > isp1301_set_host() in the following statement :-
> > >
> > > isp1301_set_bits(isp, ISP1301_OTG_CONTROL_1, OTG1_VBUS_DRV);
> > >
> > > So this means the care has already been taken care of setting the Vbus
> > > to 5 volts.
> > > And as per the statement above this line states the care has already
> > > been taken care
> > > of using mini A plug /mini B plug in the mini AB receptacle.
> > >
> > > So the question arises that why is my port not getting powered up.
> > > I am not sure what exactly needs to be done if I want to configure the
> > > FSUSB port 0 as host port only since I am not aware of the OTG
> > > configuratins/state machines.
> > > And i am not sure how ISP1301_omap.c takes care of the host , device
> > > and OTG configurations seperately.
> >
> > afaik OMAP2430SDP uses MUSB core inside OMAP chip. MUSB is an OTG core
> > and it changes roles by detecting the state of the id pin. This
> > detection is made on hardware not on software so it'll be a lot easier
> > to hack a mini-B cable and ground its id pin in order to convert it to
> > mini-A connector. This way, musb will know you're trying to become usb
> > host.
> >
> > >
> > > Can any one suggest me settings I need to do within the ISP-1301 for
> > > OMAP to act as host only since my OMAP gost controller is already
> > > configured and is sending SOF interrupt messages but my port is not
> > > getting powered up.
> >
> > SOF can happen on device also. Use the hacked-miniB cable and try again, please
> >
> > >
> > > Also kindly tell me the current capablity support for the port. Will
> > > it be able to power up the USB mouse.
> >
> > As an OTG controller, it can only provide 100mA current on the bus...
> > this is not enough for a usb mouse. But you can use a powered HUB
> > connected to fsusb port and the mouse connected through the hub
> >
> > >
> > > Also how are the connections for FSUSB port 1 . Are they through
> > > ISP-1301 transceiver only ?
> > >
> > > Thanks & Regards
> > >
> > > Amit
> > > _______________________________________________
> > > Linux-omap-open-source mailing list
> > > Linux-omap-open-source@linux.omap.com
> > > http://linux.omap.com/mailman/listinfo/linux-omap-open-source
> > >
> >
> >
> > --
> > Best Regards,
> >
> > Felipe Balbi
> > felipebalbi@users.sourceforge.net
> >
>
--
Best Regards,
Felipe Balbi
felipebalbi@users.sourceforge.net
^ permalink raw reply [flat|nested] 16+ messages in thread
* RE: FSUSB Port 0 in OAMP2430 SDP
2007-08-06 19:11 ` Felipe Balbi
@ 2007-08-06 19:29 ` Woodruff, Richard
2007-08-06 20:10 ` Amit Gupta
0 siblings, 1 reply; 16+ messages in thread
From: Woodruff, Richard @ 2007-08-06 19:29 UTC (permalink / raw)
To: Felipe Balbi, Amit Gupta; +Cc: Linux OMAP
> I'm pretty sure you'll need a self-powered hub anyway 'cause MUSB can
> only provide 100mA and if you wanna power a non-otg usb device it uses
> up to 500mA. The self-powered hub masks this limits to the controller
> as it'll power the usb devices itself.
I think you are both right and wrong. Its been a few years since I looked, so their probably have been some changes.
MUSB likely doesn't supply power to anyone. The board's power supply will do this. What its capacity is depends on how it was setup. To be OTG stamp on it a device might need to stay at or below 100mA (might be self powered also). For the omap-device to get the stamp it might have to at least supply 100. Do both ends have the USB logo on them? Do you need them to be?
An OTG device to get certified need to support many devices ether. You can have a white list which allows limited support.
It might be you need to manually turn on some LDO or other on some detection interrupt. There was one board with the fs-usb block which had this kind of logic I dealt with. It had 2 ports, one gave just enough power for a target peripheral and another port gave lots of power.
I seem to recall some noise about raising the limits but that may have been a dream.
Regards,
Richard W.
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: FSUSB Port 0 in OAMP2430 SDP
2007-08-06 19:29 ` Woodruff, Richard
@ 2007-08-06 20:10 ` Amit Gupta
2007-08-08 20:28 ` Fwd: " Amit Gupta
0 siblings, 1 reply; 16+ messages in thread
From: Amit Gupta @ 2007-08-06 20:10 UTC (permalink / raw)
Cc: Linux OMAP
>>I think more stuff happens in hardware then just setting those
>>registers. Probably the transceiver is applying some pull-up and/or
>>pull-down resistors when ID pin is grounded. I'd read musb & otg docs
>>again to remember what really happens there.
>>If you check OTG specs rev 1.3 it presents what happens when you
>>ground ID pin.
I was going through OTG specs 1.3. Its difficult to go through
completely but then it Pg 23 tells a bit which I was onterested in. It
tells that Vbus switcjing can also take place through an application.
It says that bus is powered up only when application tries to call ot
there is b_srp_init, In the first case if the application is trigering
the bus to power on then its definitely happening through software
only. Also it talks about bus powered USB device initialting the
session. Now it clearly says that it will post an event/interrupt.
But still you may be correct that lots of things might be hapening
within the transeiver hardware like pull up/pull down but I need to
know that do that so that I can program the Transceiver accordingly.
Thanks in advance
Regards
Amit
On 8/7/07, Woodruff, Richard <r-woodruff2@ti.com> wrote:
> > I'm pretty sure you'll need a self-powered hub anyway 'cause MUSB can
> > only provide 100mA and if you wanna power a non-otg usb device it uses
> > up to 500mA. The self-powered hub masks this limits to the controller
> > as it'll power the usb devices itself.
>
> I think you are both right and wrong. Its been a few years since I looked, so their probably have been some changes.
>
> MUSB likely doesn't supply power to anyone. The board's power supply will do this. What its capacity is depends on how it was setup. To be OTG stamp on it a device might need to stay at or below 100mA (might be self powered also). For the omap-device to get the stamp it might have to at least supply 100. Do both ends have the USB logo on them? Do you need them to be?
>
> An OTG device to get certified need to support many devices ether. You can have a white list which allows limited support.
>
> It might be you need to manually turn on some LDO or other on some detection interrupt. There was one board with the fs-usb block which had this kind of logic I dealt with. It had 2 ports, one gave just enough power for a target peripheral and another port gave lots of power.
>
> I seem to recall some noise about raising the limits but that may have been a dream.
>
> Regards,
> Richard W.
> _______________________________________________
> Linux-omap-open-source mailing list
> Linux-omap-open-source@linux.omap.com
> http://linux.omap.com/mailman/listinfo/linux-omap-open-source
>
^ permalink raw reply [flat|nested] 16+ messages in thread
* Fwd: FSUSB Port 0 in OAMP2430 SDP
2007-08-06 20:10 ` Amit Gupta
@ 2007-08-08 20:28 ` Amit Gupta
2007-08-08 20:39 ` Felipe Balbi
0 siblings, 1 reply; 16+ messages in thread
From: Amit Gupta @ 2007-08-08 20:28 UTC (permalink / raw)
To: felipebalbi, Kamat, Nishant, Linux OMAP
Hi Felipe/Nishan/all
I have been able to sucessfully get an USB host interrupt by pulling
up voltage levels in Transceiver but its configuring device as low
powered device. Also I am getting host interrupt even without
connecting the device since pulling up the voltage levels resulted in
maybe D+/D- pull up which is sensed as an host interrupt by OMAP
board.
You seem to be correct in your saying that transceiver does more than
just sensing the voltage levels and passig the interrupts. But I am
not able to understand the sequence of thing happening like before
connecting the device should the port be powered up to 5 volts or it
should happen when device connected pulls up/down D+/D- pin. And once
this is done then interrupt is also sent and enumeration starts ?
I am going through the USB specs to know this but I suppose one who
has worked in USB can immediately answer to my this query since its
very urgent.
Thanks & Regards
Amit
---------- Forwarded message ----------
From: Amit Gupta <amit_jobs05@inbox.com>
Date: Aug 7, 2007 1:40 AM
Subject: Re: FSUSB Port 0 in OAMP2430 SDP
To:
Cc: Felipe Balbi <felipebalbi@users.sourceforge.net>, Linux OMAP
<linux-omap-open-source@linux.omap.com>, "Woodruff, Richard"
<r-woodruff2@ti.com>, "Kamat, Nishant" <nskamat@ti.com>
>>I think more stuff happens in hardware then just setting those
>>registers. Probably the transceiver is applying some pull-up and/or
>>pull-down resistors when ID pin is grounded. I'd read musb & otg docs
>>again to remember what really happens there.
>>If you check OTG specs rev 1.3 it presents what happens when you
>>ground ID pin.
I was going through OTG specs 1.3. Its difficult to go through
completely but then it Pg 23 tells a bit which I was onterested in. It
tells that Vbus switcjing can also take place through an application.
It says that bus is powered up only when application tries to call ot
there is b_srp_init, In the first case if the application is trigering
the bus to power on then its definitely happening through software
only. Also it talks about bus powered USB device initialting the
session. Now it clearly says that it will post an event/interrupt.
But still you may be correct that lots of things might be hapening
within the transeiver hardware like pull up/pull down but I need to
know that do that so that I can program the Transceiver accordingly.
Thanks in advance
Regards
Amit
On 8/7/07, Woodruff, Richard <r-woodruff2@ti.com> wrote:
> > I'm pretty sure you'll need a self-powered hub anyway 'cause MUSB can
> > only provide 100mA and if you wanna power a non-otg usb device it uses
> > up to 500mA. The self-powered hub masks this limits to the controller
> > as it'll power the usb devices itself.
>
> I think you are both right and wrong. Its been a few years since I looked, so their probably have been some changes.
>
> MUSB likely doesn't supply power to anyone. The board's power supply will do this. What its capacity is depends on how it was setup. To be OTG stamp on it a device might need to stay at or below 100mA (might be self powered also). For the omap-device to get the stamp it might have to at least supply 100. Do both ends have the USB logo on them? Do you need them to be?
>
> An OTG device to get certified need to support many devices ether. You can have a white list which allows limited support.
>
> It might be you need to manually turn on some LDO or other on some detection interrupt. There was one board with the fs-usb block which had this kind of logic I dealt with. It had 2 ports, one gave just enough power for a target peripheral and another port gave lots of power.
>
> I seem to recall some noise about raising the limits but that may have been a dream.
>
> Regards,
> Richard W.
> _______________________________________________
> Linux-omap-open-source mailing list
> Linux-omap-open-source@linux.omap.com
> http://linux.omap.com/mailman/listinfo/linux-omap-open-source
>
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: FSUSB Port 0 in OAMP2430 SDP
2007-08-08 20:28 ` Fwd: " Amit Gupta
@ 2007-08-08 20:39 ` Felipe Balbi
2007-08-08 21:07 ` Amit Gupta
0 siblings, 1 reply; 16+ messages in thread
From: Felipe Balbi @ 2007-08-08 20:39 UTC (permalink / raw)
To: Amit Gupta; +Cc: Linux OMAP
Hi,
On 8/8/07, Amit Gupta <amitjobs05@gmail.com> wrote:
> Hi Felipe/Nishan/all
>
> I have been able to sucessfully get an USB host interrupt by pulling
> up voltage levels in Transceiver but its configuring device as low
> powered device. Also I am getting host interrupt even without
> connecting the device since pulling up the voltage levels resulted in
> maybe D+/D- pull up which is sensed as an host interrupt by OMAP
> board.
>
> You seem to be correct in your saying that transceiver does more than
> just sensing the voltage levels and passig the interrupts. But I am
> not able to understand the sequence of thing happening like before
> connecting the device should the port be powered up to 5 volts or it
> should happen when device connected pulls up/down D+/D- pin. And once
> this is done then interrupt is also sent and enumeration starts ?
It can only power up 5V after sensing a device connected and its
pullups are connected. After that, it'll start the enumeration.
Actually, every host/otg controller has to provide means for you to
force Vbus on, but it'll only work if you have any load between 5V and
Vbus (try with 300 Ohm resistor) and you can also add a 1K Ohm
resistor between D+/D-
To understand how to force the controller to power Vbus, read its docs
since it's completely HW dependent.
>
> I am going through the USB specs to know this but I suppose one who
> has worked in USB can immediately answer to my this query since its
> very urgent.
hopefully I could help you ;-)
>
> Thanks & Regards
>
> Amit
>
> ---------- Forwarded message ----------
> From: Amit Gupta <amit_jobs05@inbox.com>
> Date: Aug 7, 2007 1:40 AM
> Subject: Re: FSUSB Port 0 in OAMP2430 SDP
> To:
> Cc: Felipe Balbi <felipebalbi@users.sourceforge.net>, Linux OMAP
> <linux-omap-open-source@linux.omap.com>, "Woodruff, Richard"
> <r-woodruff2@ti.com>, "Kamat, Nishant" <nskamat@ti.com>
>
>
> >>I think more stuff happens in hardware then just setting those
> >>registers. Probably the transceiver is applying some pull-up and/or
> >>pull-down resistors when ID pin is grounded. I'd read musb & otg docs
> >>again to remember what really happens there.
>
> >>If you check OTG specs rev 1.3 it presents what happens when you
> >>ground ID pin.
>
> I was going through OTG specs 1.3. Its difficult to go through
> completely but then it Pg 23 tells a bit which I was onterested in. It
> tells that Vbus switcjing can also take place through an application.
> It says that bus is powered up only when application tries to call ot
> there is b_srp_init, In the first case if the application is trigering
> the bus to power on then its definitely happening through software
> only. Also it talks about bus powered USB device initialting the
> session. Now it clearly says that it will post an event/interrupt.
>
> But still you may be correct that lots of things might be hapening
> within the transeiver hardware like pull up/pull down but I need to
> know that do that so that I can program the Transceiver accordingly.
>
> Thanks in advance
>
> Regards
>
> Amit
> On 8/7/07, Woodruff, Richard <r-woodruff2@ti.com> wrote:
> > > I'm pretty sure you'll need a self-powered hub anyway 'cause MUSB can
> > > only provide 100mA and if you wanna power a non-otg usb device it uses
> > > up to 500mA. The self-powered hub masks this limits to the controller
> > > as it'll power the usb devices itself.
> >
> > I think you are both right and wrong. Its been a few years since I looked, so their probably have been some changes.
> >
> > MUSB likely doesn't supply power to anyone. The board's power supply will do this. What its capacity is depends on how it was setup. To be OTG stamp on it a device might need to stay at or below 100mA (might be self powered also). For the omap-device to get the stamp it might have to at least supply 100. Do both ends have the USB logo on them? Do you need them to be?
> >
> > An OTG device to get certified need to support many devices ether. You can have a white list which allows limited support.
> >
> > It might be you need to manually turn on some LDO or other on some detection interrupt. There was one board with the fs-usb block which had this kind of logic I dealt with. It had 2 ports, one gave just enough power for a target peripheral and another port gave lots of power.
> >
> > I seem to recall some noise about raising the limits but that may have been a dream.
> >
> > Regards,
> > Richard W.
> > _______________________________________________
> > Linux-omap-open-source mailing list
> > Linux-omap-open-source@linux.omap.com
> > http://linux.omap.com/mailman/listinfo/linux-omap-open-source
> >
>
--
Best Regards,
Felipe Balbi
felipebalbi@users.sourceforge.net
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: FSUSB Port 0 in OAMP2430 SDP
2007-08-08 20:39 ` Felipe Balbi
@ 2007-08-08 21:07 ` Amit Gupta
2007-08-09 11:19 ` Felipe Balbi
0 siblings, 1 reply; 16+ messages in thread
From: Amit Gupta @ 2007-08-08 21:07 UTC (permalink / raw)
To: Felipe Balbi; +Cc: Linux OMAP
Felipe
Appreciate your prompt reply.
Just to reiterate what you said:-
1. Initiallly on powering on the board, the Vbus voltage is 3.2 volts
(and not 5 volts), this is required to sense the device.
2. Now the configuration needs to be done like enabling the
interrupt(of transceiver and OMAP controller), configuration of OMAP
host controller registers wihin the USB host driver code.
3. Now when device is conntected, the D+/D- will be pulled up and
hence the transceiver detects some device has beeen connected and
interrrupt is generated by transceiver to the OMAP.
4. Once the interrupt is generated, the transceiver will power up the
5 volts(automatically by reading ID pin) /or the host controller
detecting the interrupt will forcefully power up the Vbus(through
transceiver register) to 5 volts (That we have to find it out - how it
can be done).
Just confirm whether this sequence is correct.
Again thanks in advance.
Thanks & Regards
Ammit
On 8/9/07, Felipe Balbi <felipebalbi@users.sourceforge.net> wrote:
> Hi,
>
> On 8/8/07, Amit Gupta <amitjobs05@gmail.com> wrote:
> > Hi Felipe/Nishan/all
> >
> > I have been able to sucessfully get an USB host interrupt by pulling
> > up voltage levels in Transceiver but its configuring device as low
> > powered device. Also I am getting host interrupt even without
> > connecting the device since pulling up the voltage levels resulted in
> > maybe D+/D- pull up which is sensed as an host interrupt by OMAP
> > board.
> >
> > You seem to be correct in your saying that transceiver does more than
> > just sensing the voltage levels and passig the interrupts. But I am
> > not able to understand the sequence of thing happening like before
> > connecting the device should the port be powered up to 5 volts or it
> > should happen when device connected pulls up/down D+/D- pin. And once
> > this is done then interrupt is also sent and enumeration starts ?
>
> It can only power up 5V after sensing a device connected and its
> pullups are connected. After that, it'll start the enumeration.
>
> Actually, every host/otg controller has to provide means for you to
> force Vbus on, but it'll only work if you have any load between 5V and
> Vbus (try with 300 Ohm resistor) and you can also add a 1K Ohm
> resistor between D+/D-
>
> To understand how to force the controller to power Vbus, read its docs
> since it's completely HW dependent.
>
> >
> > I am going through the USB specs to know this but I suppose one who
> > has worked in USB can immediately answer to my this query since its
> > very urgent.
>
> hopefully I could help you ;-)
>
> >
> > Thanks & Regards
> >
> > Amit
> >
> > ---------- Forwarded message ----------
> > From: Amit Gupta <amit_jobs05@inbox.com>
> > Date: Aug 7, 2007 1:40 AM
> > Subject: Re: FSUSB Port 0 in OAMP2430 SDP
> > To:
> > Cc: Felipe Balbi <felipebalbi@users.sourceforge.net>, Linux OMAP
> > <linux-omap-open-source@linux.omap.com>, "Woodruff, Richard"
> > <r-woodruff2@ti.com>, "Kamat, Nishant" <nskamat@ti.com>
> >
> >
> > >>I think more stuff happens in hardware then just setting those
> > >>registers. Probably the transceiver is applying some pull-up and/or
> > >>pull-down resistors when ID pin is grounded. I'd read musb & otg docs
> > >>again to remember what really happens there.
> >
> > >>If you check OTG specs rev 1.3 it presents what happens when you
> > >>ground ID pin.
> >
> > I was going through OTG specs 1.3. Its difficult to go through
> > completely but then it Pg 23 tells a bit which I was onterested in. It
> > tells that Vbus switcjing can also take place through an application.
> > It says that bus is powered up only when application tries to call ot
> > there is b_srp_init, In the first case if the application is trigering
> > the bus to power on then its definitely happening through software
> > only. Also it talks about bus powered USB device initialting the
> > session. Now it clearly says that it will post an event/interrupt.
> >
> > But still you may be correct that lots of things might be hapening
> > within the transeiver hardware like pull up/pull down but I need to
> > know that do that so that I can program the Transceiver accordingly.
> >
> > Thanks in advance
> >
> > Regards
> >
> > Amit
> > On 8/7/07, Woodruff, Richard <r-woodruff2@ti.com> wrote:
> > > > I'm pretty sure you'll need a self-powered hub anyway 'cause MUSB can
> > > > only provide 100mA and if you wanna power a non-otg usb device it uses
> > > > up to 500mA. The self-powered hub masks this limits to the controller
> > > > as it'll power the usb devices itself.
> > >
> > > I think you are both right and wrong. Its been a few years since I looked, so their probably have been some changes.
> > >
> > > MUSB likely doesn't supply power to anyone. The board's power supply will do this. What its capacity is depends on how it was setup. To be OTG stamp on it a device might need to stay at or below 100mA (might be self powered also). For the omap-device to get the stamp it might have to at least supply 100. Do both ends have the USB logo on them? Do you need them to be?
> > >
> > > An OTG device to get certified need to support many devices ether. You can have a white list which allows limited support.
> > >
> > > It might be you need to manually turn on some LDO or other on some detection interrupt. There was one board with the fs-usb block which had this kind of logic I dealt with. It had 2 ports, one gave just enough power for a target peripheral and another port gave lots of power.
> > >
> > > I seem to recall some noise about raising the limits but that may have been a dream.
> > >
> > > Regards,
> > > Richard W.
> > > _______________________________________________
> > > Linux-omap-open-source mailing list
> > > Linux-omap-open-source@linux.omap.com
> > > http://linux.omap.com/mailman/listinfo/linux-omap-open-source
> > >
> >
>
>
> --
> Best Regards,
>
> Felipe Balbi
> felipebalbi@users.sourceforge.net
>
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: FSUSB Port 0 in OAMP2430 SDP
2007-08-08 21:07 ` Amit Gupta
@ 2007-08-09 11:19 ` Felipe Balbi
2007-08-09 18:36 ` Amit Gupta
0 siblings, 1 reply; 16+ messages in thread
From: Felipe Balbi @ 2007-08-09 11:19 UTC (permalink / raw)
To: Amit Gupta; +Cc: Linux OMAP
HI amit,
On 8/8/07, Amit Gupta <amit_jobs05@inbox.com> wrote:
> Felipe
>
> Appreciate your prompt reply.
>
> Just to reiterate what you said:-
>
> 1. Initiallly on powering on the board, the Vbus voltage is 3.2 volts
> (and not 5 volts), this is required to sense the device.
> 2. Now the configuration needs to be done like enabling the
> interrupt(of transceiver and OMAP controller), configuration of OMAP
> host controller registers wihin the USB host driver code.
> 3. Now when device is conntected, the D+/D- will be pulled up and
> hence the transceiver detects some device has beeen connected and
> interrrupt is generated by transceiver to the OMAP.
> 4. Once the interrupt is generated, the transceiver will power up the
> 5 volts(automatically by reading ID pin) /or the host controller
> detecting the interrupt will forcefully power up the Vbus(through
> transceiver register) to 5 volts (That we have to find it out - how it
> can be done).
>
> Just confirm whether this sequence is correct.
it looks fine... it's just like that but you have to check about that
3.2V... it can be completely off (in b_idle state) so the device (the
one the will be b_standard device) should send SRP signal to signalize
the host (still on b_idle, but it'll have to go to a_host state)
controller/transceiver it wants to get enumerated. SRP is nothing but
a Vbus pulse followed by a D+/D- pulse. If I mis-read the OTG Specs,
please anyone correct me.
After getting SRP signal the host controller will wait for any
activity from the device, if it suspends then the host controller
switch role (from b_idle to a_wait_bcon) and starts the enumeration
process.
Just a note ;-)
>
> Again thanks in advance.
>
> Thanks & Regards
>
> Ammit
>
> On 8/9/07, Felipe Balbi <felipebalbi@users.sourceforge.net> wrote:
> > Hi,
> >
> > On 8/8/07, Amit Gupta <amitjobs05@gmail.com> wrote:
> > > Hi Felipe/Nishan/all
> > >
> > > I have been able to sucessfully get an USB host interrupt by pulling
> > > up voltage levels in Transceiver but its configuring device as low
> > > powered device. Also I am getting host interrupt even without
> > > connecting the device since pulling up the voltage levels resulted in
> > > maybe D+/D- pull up which is sensed as an host interrupt by OMAP
> > > board.
> > >
> > > You seem to be correct in your saying that transceiver does more than
> > > just sensing the voltage levels and passig the interrupts. But I am
> > > not able to understand the sequence of thing happening like before
> > > connecting the device should the port be powered up to 5 volts or it
> > > should happen when device connected pulls up/down D+/D- pin. And once
> > > this is done then interrupt is also sent and enumeration starts ?
> >
> > It can only power up 5V after sensing a device connected and its
> > pullups are connected. After that, it'll start the enumeration.
> >
> > Actually, every host/otg controller has to provide means for you to
> > force Vbus on, but it'll only work if you have any load between 5V and
> > Vbus (try with 300 Ohm resistor) and you can also add a 1K Ohm
> > resistor between D+/D-
> >
> > To understand how to force the controller to power Vbus, read its docs
> > since it's completely HW dependent.
> >
> > >
> > > I am going through the USB specs to know this but I suppose one who
> > > has worked in USB can immediately answer to my this query since its
> > > very urgent.
> >
> > hopefully I could help you ;-)
> >
> > >
> > > Thanks & Regards
> > >
> > > Amit
> > >
> > > ---------- Forwarded message ----------
> > > From: Amit Gupta <amit_jobs05@inbox.com>
> > > Date: Aug 7, 2007 1:40 AM
> > > Subject: Re: FSUSB Port 0 in OAMP2430 SDP
> > > To:
> > > Cc: Felipe Balbi <felipebalbi@users.sourceforge.net>, Linux OMAP
> > > <linux-omap-open-source@linux.omap.com>, "Woodruff, Richard"
> > > <r-woodruff2@ti.com>, "Kamat, Nishant" <nskamat@ti.com>
> > >
> > >
> > > >>I think more stuff happens in hardware then just setting those
> > > >>registers. Probably the transceiver is applying some pull-up and/or
> > > >>pull-down resistors when ID pin is grounded. I'd read musb & otg docs
> > > >>again to remember what really happens there.
> > >
> > > >>If you check OTG specs rev 1.3 it presents what happens when you
> > > >>ground ID pin.
> > >
> > > I was going through OTG specs 1.3. Its difficult to go through
> > > completely but then it Pg 23 tells a bit which I was onterested in. It
> > > tells that Vbus switcjing can also take place through an application.
> > > It says that bus is powered up only when application tries to call ot
> > > there is b_srp_init, In the first case if the application is trigering
> > > the bus to power on then its definitely happening through software
> > > only. Also it talks about bus powered USB device initialting the
> > > session. Now it clearly says that it will post an event/interrupt.
> > >
> > > But still you may be correct that lots of things might be hapening
> > > within the transeiver hardware like pull up/pull down but I need to
> > > know that do that so that I can program the Transceiver accordingly.
> > >
> > > Thanks in advance
> > >
> > > Regards
> > >
> > > Amit
> > > On 8/7/07, Woodruff, Richard <r-woodruff2@ti.com> wrote:
> > > > > I'm pretty sure you'll need a self-powered hub anyway 'cause MUSB can
> > > > > only provide 100mA and if you wanna power a non-otg usb device it uses
> > > > > up to 500mA. The self-powered hub masks this limits to the controller
> > > > > as it'll power the usb devices itself.
> > > >
> > > > I think you are both right and wrong. Its been a few years since I looked, so their probably have been some changes.
> > > >
> > > > MUSB likely doesn't supply power to anyone. The board's power supply will do this. What its capacity is depends on how it was setup. To be OTG stamp on it a device might need to stay at or below 100mA (might be self powered also). For the omap-device to get the stamp it might have to at least supply 100. Do both ends have the USB logo on them? Do you need them to be?
> > > >
> > > > An OTG device to get certified need to support many devices ether. You can have a white list which allows limited support.
> > > >
> > > > It might be you need to manually turn on some LDO or other on some detection interrupt. There was one board with the fs-usb block which had this kind of logic I dealt with. It had 2 ports, one gave just enough power for a target peripheral and another port gave lots of power.
> > > >
> > > > I seem to recall some noise about raising the limits but that may have been a dream.
> > > >
> > > > Regards,
> > > > Richard W.
> > > > _______________________________________________
> > > > Linux-omap-open-source mailing list
> > > > Linux-omap-open-source@linux.omap.com
> > > > http://linux.omap.com/mailman/listinfo/linux-omap-open-source
> > > >
> > >
> >
> >
> > --
> > Best Regards,
> >
> > Felipe Balbi
> > felipebalbi@users.sourceforge.net
> >
>
--
Best Regards,
Felipe Balbi
felipebalbi@users.sourceforge.net
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: FSUSB Port 0 in OAMP2430 SDP
2007-08-09 11:19 ` Felipe Balbi
@ 2007-08-09 18:36 ` Amit Gupta
2007-08-18 0:54 ` David Brownell
0 siblings, 1 reply; 16+ messages in thread
From: Amit Gupta @ 2007-08-09 18:36 UTC (permalink / raw)
Cc: Linux OMAP
Hi
Things seem ok,
But consider the linux isp1301_omap.c, isp1301_set_host function. In
this it tries to power up the vbus(setting the vbus_drv), but I
suppose mandatory requirement for this is that I have mini A plug is
connected since transceiver is having atleast logic to power up the
vbus only if it is connected to function on the other end, or else it
would not power up the bus just for some breakdown since it should not
happen that from both of cable is powered up(5 volts).
Correct me if I am wrong.
Thanks & Regards
Amit
On 8/9/07, Felipe Balbi <felipebalbi@users.sourceforge.net> wrote:
> HI amit,
>
> On 8/8/07, Amit Gupta <amit_jobs05@inbox.com> wrote:
> > Felipe
> >
> > Appreciate your prompt reply.
> >
> > Just to reiterate what you said:-
> >
> > 1. Initiallly on powering on the board, the Vbus voltage is 3.2 volts
> > (and not 5 volts), this is required to sense the device.
> > 2. Now the configuration needs to be done like enabling the
> > interrupt(of transceiver and OMAP controller), configuration of OMAP
> > host controller registers wihin the USB host driver code.
> > 3. Now when device is conntected, the D+/D- will be pulled up and
> > hence the transceiver detects some device has beeen connected and
> > interrrupt is generated by transceiver to the OMAP.
> > 4. Once the interrupt is generated, the transceiver will power up the
> > 5 volts(automatically by reading ID pin) /or the host controller
> > detecting the interrupt will forcefully power up the Vbus(through
> > transceiver register) to 5 volts (That we have to find it out - how it
> > can be done).
> >
> > Just confirm whether this sequence is correct.
>
> it looks fine... it's just like that but you have to check about that
> 3.2V... it can be completely off (in b_idle state) so the device (the
> one the will be b_standard device) should send SRP signal to signalize
> the host (still on b_idle, but it'll have to go to a_host state)
> controller/transceiver it wants to get enumerated. SRP is nothing but
> a Vbus pulse followed by a D+/D- pulse. If I mis-read the OTG Specs,
> please anyone correct me.
>
> After getting SRP signal the host controller will wait for any
> activity from the device, if it suspends then the host controller
> switch role (from b_idle to a_wait_bcon) and starts the enumeration
> process.
>
> Just a note ;-)
>
> >
> > Again thanks in advance.
> >
> > Thanks & Regards
> >
> > Ammit
> >
> > On 8/9/07, Felipe Balbi <felipebalbi@users.sourceforge.net> wrote:
> > > Hi,
> > >
> > > On 8/8/07, Amit Gupta <amitjobs05@gmail.com> wrote:
> > > > Hi Felipe/Nishan/all
> > > >
> > > > I have been able to sucessfully get an USB host interrupt by pulling
> > > > up voltage levels in Transceiver but its configuring device as low
> > > > powered device. Also I am getting host interrupt even without
> > > > connecting the device since pulling up the voltage levels resulted in
> > > > maybe D+/D- pull up which is sensed as an host interrupt by OMAP
> > > > board.
> > > >
> > > > You seem to be correct in your saying that transceiver does more than
> > > > just sensing the voltage levels and passig the interrupts. But I am
> > > > not able to understand the sequence of thing happening like before
> > > > connecting the device should the port be powered up to 5 volts or it
> > > > should happen when device connected pulls up/down D+/D- pin. And once
> > > > this is done then interrupt is also sent and enumeration starts ?
> > >
> > > It can only power up 5V after sensing a device connected and its
> > > pullups are connected. After that, it'll start the enumeration.
> > >
> > > Actually, every host/otg controller has to provide means for you to
> > > force Vbus on, but it'll only work if you have any load between 5V and
> > > Vbus (try with 300 Ohm resistor) and you can also add a 1K Ohm
> > > resistor between D+/D-
> > >
> > > To understand how to force the controller to power Vbus, read its docs
> > > since it's completely HW dependent.
> > >
> > > >
> > > > I am going through the USB specs to know this but I suppose one who
> > > > has worked in USB can immediately answer to my this query since its
> > > > very urgent.
> > >
> > > hopefully I could help you ;-)
> > >
> > > >
> > > > Thanks & Regards
> > > >
> > > > Amit
> > > >
> > > > ---------- Forwarded message ----------
> > > > From: Amit Gupta <amit_jobs05@inbox.com>
> > > > Date: Aug 7, 2007 1:40 AM
> > > > Subject: Re: FSUSB Port 0 in OAMP2430 SDP
> > > > To:
> > > > Cc: Felipe Balbi <felipebalbi@users.sourceforge.net>, Linux OMAP
> > > > <linux-omap-open-source@linux.omap.com>, "Woodruff, Richard"
> > > > <r-woodruff2@ti.com>, "Kamat, Nishant" <nskamat@ti.com>
> > > >
> > > >
> > > > >>I think more stuff happens in hardware then just setting those
> > > > >>registers. Probably the transceiver is applying some pull-up and/or
> > > > >>pull-down resistors when ID pin is grounded. I'd read musb & otg docs
> > > > >>again to remember what really happens there.
> > > >
> > > > >>If you check OTG specs rev 1.3 it presents what happens when you
> > > > >>ground ID pin.
> > > >
> > > > I was going through OTG specs 1.3. Its difficult to go through
> > > > completely but then it Pg 23 tells a bit which I was onterested in. It
> > > > tells that Vbus switcjing can also take place through an application.
> > > > It says that bus is powered up only when application tries to call ot
> > > > there is b_srp_init, In the first case if the application is trigering
> > > > the bus to power on then its definitely happening through software
> > > > only. Also it talks about bus powered USB device initialting the
> > > > session. Now it clearly says that it will post an event/interrupt.
> > > >
> > > > But still you may be correct that lots of things might be hapening
> > > > within the transeiver hardware like pull up/pull down but I need to
> > > > know that do that so that I can program the Transceiver accordingly.
> > > >
> > > > Thanks in advance
> > > >
> > > > Regards
> > > >
> > > > Amit
> > > > On 8/7/07, Woodruff, Richard <r-woodruff2@ti.com> wrote:
> > > > > > I'm pretty sure you'll need a self-powered hub anyway 'cause MUSB can
> > > > > > only provide 100mA and if you wanna power a non-otg usb device it uses
> > > > > > up to 500mA. The self-powered hub masks this limits to the controller
> > > > > > as it'll power the usb devices itself.
> > > > >
> > > > > I think you are both right and wrong. Its been a few years since I looked, so their probably have been some changes.
> > > > >
> > > > > MUSB likely doesn't supply power to anyone. The board's power supply will do this. What its capacity is depends on how it was setup. To be OTG stamp on it a device might need to stay at or below 100mA (might be self powered also). For the omap-device to get the stamp it might have to at least supply 100. Do both ends have the USB logo on them? Do you need them to be?
> > > > >
> > > > > An OTG device to get certified need to support many devices ether. You can have a white list which allows limited support.
> > > > >
> > > > > It might be you need to manually turn on some LDO or other on some detection interrupt. There was one board with the fs-usb block which had this kind of logic I dealt with. It had 2 ports, one gave just enough power for a target peripheral and another port gave lots of power.
> > > > >
> > > > > I seem to recall some noise about raising the limits but that may have been a dream.
> > > > >
> > > > > Regards,
> > > > > Richard W.
> > > > > _______________________________________________
> > > > > Linux-omap-open-source mailing list
> > > > > Linux-omap-open-source@linux.omap.com
> > > > > http://linux.omap.com/mailman/listinfo/linux-omap-open-source
> > > > >
> > > >
> > >
> > >
> > > --
> > > Best Regards,
> > >
> > > Felipe Balbi
> > > felipebalbi@users.sourceforge.net
> > >
> >
>
>
> --
> Best Regards,
>
> Felipe Balbi
> felipebalbi@users.sourceforge.net
> _______________________________________________
> Linux-omap-open-source mailing list
> Linux-omap-open-source@linux.omap.com
> http://linux.omap.com/mailman/listinfo/linux-omap-open-source
>
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: FSUSB Port 0 in OAMP2430 SDP
2007-08-09 18:36 ` Amit Gupta
@ 2007-08-18 0:54 ` David Brownell
2007-08-18 18:16 ` Amit Gupta
0 siblings, 1 reply; 16+ messages in thread
From: David Brownell @ 2007-08-18 0:54 UTC (permalink / raw)
To: linux-omap-open-source; +Cc: Amit Gupta
On Thursday 09 August 2007, Amit Gupta wrote:
> But consider the linux isp1301_omap.c, isp1301_set_host function. In
> this it tries to power up the vbus(setting the vbus_drv), but I
> suppose mandatory requirement for this is that I have mini A plug is
> connected since transceiver is having atleast logic to power up the
> vbus only if it is connected to function on the other end, or else it
> would not power up the bus just for some breakdown since it should not
> happen that from both of cable is powered up(5 volts).
As originally written, the ID Pin in the isp1301 driver was ignored
except in OTG mode. If the driver was given a host-only config, the
isp1301 chip was forced into a mode where it provided 8mA VBUS power
regardless of anything else -- handy if you have no Mini-A cable
or adapter. For a peripheral-only config, it was forced into a mode
where VBUS was never provided.
Latest code shouldn't be *too* different from that, but it might
not be happy on such current silicon since I don't knwo the last
time anyone really worked with that fullspeed OTG stuff.
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: FSUSB Port 0 in OAMP2430 SDP
2007-08-18 0:54 ` David Brownell
@ 2007-08-18 18:16 ` Amit Gupta
2007-08-18 18:57 ` David Brownell
0 siblings, 1 reply; 16+ messages in thread
From: Amit Gupta @ 2007-08-18 18:16 UTC (permalink / raw)
To: David Brownell, Kamat, Nishant, Felipe Balbi,
Syed Mohammed, Khasim
Cc: linux-omap-open-source
Hi David/all
Well I tried using the Kernel Linux 2.6.14 code available.
As mentioned before I used FSUSB port 0(J51) on OMAP2430 SDPv4.0 and
tried connecting the USB device (mouse) using the mini B cable,
configuring the OMAP as host in the USB connection.
But the things didn't worked out since on attachment/detachment of
device there were no interrupts. I agree that the code might be
written for the forced host mode.
I have three queries now: -
1. So how it decides to go in the host mode. Do we need to set in
forcefully by some command before connecting the OMAP to the USB
device runtime? I have already tried building the code for USB host
config and then attaching the USB device.
2. Now since you are talking about 8 mA of the current, the USB device
will never be powered up with only this much current. It can never act
as host with so less current capability? Even USB mouse requires 100
mA current. Kindly confirm it.
3. What is the significance of the ID pin at the transceiver end if
all the decisions can be taken at the OMAP end and we can configure
the ISP transceiver accordingly(through I2C). I think the ISP does
some changes based on the ID pin.
Do we have the ISP1301 programmer's manual, which clearly defines
programming the transceiver in the transceiver in the host mode/ or in
the function mode? If possible kindly send it to me.
Also, if possible send the config file of the tested code with FSUSB
port 0 (J51) acted as a host port.
Thanks & Regards
Amit
On 8/18/07, David Brownell <david-b@pacbell.net> wrote:
> On Thursday 09 August 2007, Amit Gupta wrote:
> > But consider the linux isp1301_omap.c, isp1301_set_host function. In
> > this it tries to power up the vbus(setting the vbus_drv), but I
> > suppose mandatory requirement for this is that I have mini A plug is
> > connected since transceiver is having atleast logic to power up the
> > vbus only if it is connected to function on the other end, or else it
> > would not power up the bus just for some breakdown since it should not
> > happen that from both of cable is powered up(5 volts).
>
> As originally written, the ID Pin in the isp1301 driver was ignored
> except in OTG mode. If the driver was given a host-only config, the
> isp1301 chip was forced into a mode where it provided 8mA VBUS power
> regardless of anything else -- handy if you have no Mini-A cable
> or adapter. For a peripheral-only config, it was forced into a mode
> where VBUS was never provided.
>
> Latest code shouldn't be *too* different from that, but it might
> not be happy on such current silicon since I don't knwo the last
> time anyone really worked with that fullspeed OTG stuff.
>
> _______________________________________________
> Linux-omap-open-source mailing list
> Linux-omap-open-source@linux.omap.com
> http://linux.omap.com/mailman/listinfo/linux-omap-open-source
>
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: FSUSB Port 0 in OAMP2430 SDP
2007-08-18 18:16 ` Amit Gupta
@ 2007-08-18 18:57 ` David Brownell
2007-08-18 20:10 ` Amit Gupta
0 siblings, 1 reply; 16+ messages in thread
From: David Brownell @ 2007-08-18 18:57 UTC (permalink / raw)
To: Amit Gupta; +Cc: linux-omap-open-source
On Saturday 18 August 2007, Amit Gupta wrote:
> I have three queries now: -
>
> 1. So how it decides to go in the host mode. Do we need to set in
> forcefully by some command before connecting the OMAP to the USB
> device runtime? I have already tried building the code for USB host
> config and then attaching the USB device.
It's complicated. There are mux settings, OTG controller settings,
isp1301 settings, clocks, and maybe more. All need to agree. Start
with Kconfig set up with just OHCI.
Unless 2430 changed more than I'd expect, there will be one mode that
forces all of those settings to say "host". (I don't have a 2430, so
what I'm telling you is basics and you'll have to work out details.)
It's possible that the full speed USB setup needs 2430 updates... if
for example the modes changed, or new registers got added, etc. Each
previous generation of OMAPs changed such things, I'd expect this one
is no exception...
One thing that's somewhat straightforward to verify is whether the
isp1301 is configured OK. You can configure the OMAP side of the
transceiver hookup with all the pins acting as GPIOs, as I recall.
(Simplest to just re-mux all the pins after the usb.c init is done.)
Then use I2C to verify that VBUS output is 5V, and that you get an
isp1301 IRQ when you manually pull up D+ (or even D-) to 3.6V or so.
You should be able to tweak the GPIOs so that the isp1301 chip
drives the J, K, and SE0 states.
Once you know the isp1301 is behaving -- there's no reason the the
host-only setup should have been broken -- the complication is all
on the OMAP side. Undo your muxing of the transceiver linkup pins
as GPIOs. Make sure they're set up properly (4 wires? 6? etc) and
that the isp1301_omap driver handles that mode. (ISTR it didn't
handle all possible modes as originally written; no need to.)
> 2. Now since you are talking about 8 mA of the current, the USB device
> will never be powered up with only this much current. It can never act
> as host with so less current capability? Even USB mouse requires 100
> mA current. Kindly confirm it.
OTG transceivers are not required to supply more than 8mA of current.
The isp1301 is an OTG transceiver. I don't recall that it provided
more than the minimum, but check the specs for its charge pump...
Some USB devices work just fine with only 8mA. Bus-powered ones
will rarely fit in that category. I generally ended up hooking an
AC-powered hub to the root port, since it didn't draw much power and
would in turn provide up to 500 mA on each downstream port.
> 3. What is the significance of the ID pin at the transceiver end if
> all the decisions can be taken at the OMAP end and we can configure
> the ISP transceiver accordingly(through I2C). I think the ISP does
> some changes based on the ID pin.
It's been a while since I looked at just what the ISP1301 does, but
I recall that it it didn't do anything "automagically".
The ID pin is simple: a Mini-A connector grounds it, a Mini-B one
lets it float. So it connects to a weak pullup, and the transceiver
will report its state as either grounded (so the initial OTG state
is A_IDLE and it should enumerate in the host role) or high (so the
initial OTG state is B_IDLE and it should enumerate in peripheral role).
There's a bit in one of the OMAP OTG controller registers that reports
the ID pin. It gets read from the transceiver ... *OR* it can be
forced to either value, if the system doesn't pay attention to OTG
and always runs as host (or as peripheral).
> Do we have the ISP1301 programmer's manual, which clearly defines
> programming the transceiver in the transceiver in the host mode/ or in
> the function mode? If possible kindly send it to me.
Go to the supplier's website and download the current spec from there.
A number of your questions would have been answered by that...
> Also, if possible send the config file of the tested code with FSUSB
> port 0 (J51) acted as a host port.
Not possible. The closest I've got is the kernel.org H2 defconfig;
that's clearly not using a 2430 chip.
- Dave
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: FSUSB Port 0 in OAMP2430 SDP
2007-08-18 18:57 ` David Brownell
@ 2007-08-18 20:10 ` Amit Gupta
2007-08-19 22:21 ` FSUSB Port 0 in OMAP2430 SDP David Brownell
0 siblings, 1 reply; 16+ messages in thread
From: Amit Gupta @ 2007-08-18 20:10 UTC (permalink / raw)
To: David Brownell; +Cc: linux-omap-open-source
Hi David
Thanks for the prompt reply.
I already have ISP-1301 data sheet available with me. Its available
online at the following link: -
http://balloonboard.org/hardware/300/ds/ISP1301.pdf
Now as per the OTG Control Register (address 0x06/0x07), there is an
ID_PULLDOWN bit and the Vbus_DRV. Now I tried with the following
instruction: -
I2Cwrite(0x06,0x30) ;// Setting the Vbus_drv and ID_pulldown
I2Cread(0x06)
And when I read back I2Cread(0x06) after the above instruction, I got
the value as 0x19. So it did not set the Vbus_drv bit. Kindly justify
this behavior.
>>Undo your muxing of the transceiver linkup pins
>>as GPIOs. Make sure they're set up properly (4 wires? 6? etc) and
>>that the isp1301_omap driver handles that mode. (ISTR it didn't
>>handle all possible modes as originally written; no need to.)
I have found that ISP needs to be configured in three-pin DAT/SE0
bi-directional mode, so I have done pin/mux configuration for
Usb0_dat, Usb0_se0 and Usb0_txen. I am not sure whether I need to do
pin configuration for usb0_puen? This is all that needs to be done at
the OMAP done along with the host controller configuration, which is
already sending the SOF (after configuration like setting OHCI, clock,
interrupts, syscon registers). I don't need to set any OTG_CTRL
registers.
I am not using powered hub, but still in the absence of that I think
there should be certain interrupt on connection of device.
>>The ID pin is simple: a Mini-A connector grounds it, a Mini-B one
>>lets it float. So it connects to a weak pull-up, and the transceiver
>>will report its state as either grounded (so the initial OTG state
>>is A_IDLE and it should enumerate in the host role) or high (so the
>>initial OTG state is B_IDLE and it should enumerate in peripheral >>role).
>>There's a bit in one of the OMAP OTG controller registers that reports
>>the ID pin. It gets read from the transceiver ... *OR* it can be
>>forced to either value, if the system doesn't pay attention to OTG
>>and always runs as host (or as peripheral).
Mini A and Mini B difference is clear,
As far as I can understand from the above statement is that role of
transceiver is just to transmit and receive the signals to the
host/function controller at the OMAP end, but rather it does lot more
in case of OTG (OTG controller) since it gives info of different
voltage level changes which makes OTG controller perform intelligent
decision (like A & B devices State). Kindly confirm.
Thanks & Regards
Amit
On 8/19/07, David Brownell <david-b@pacbell.net> wrote:
> On Saturday 18 August 2007, Amit Gupta wrote:
>
> > I have three queries now: -
> >
> > 1. So how it decides to go in the host mode. Do we need to set in
> > forcefully by some command before connecting the OMAP to the USB
> > device runtime? I have already tried building the code for USB host
> > config and then attaching the USB device.
>
> It's complicated. There are mux settings, OTG controller settings,
> isp1301 settings, clocks, and maybe more. All need to agree. Start
> with Kconfig set up with just OHCI.
>
> Unless 2430 changed more than I'd expect, there will be one mode that
> forces all of those settings to say "host". (I don't have a 2430, so
> what I'm telling you is basics and you'll have to work out details.)
> It's possible that the full speed USB setup needs 2430 updates... if
> for example the modes changed, or new registers got added, etc. Each
> previous generation of OMAPs changed such things, I'd expect this one
> is no exception...
>
>
> One thing that's somewhat straightforward to verify is whether the
> isp1301 is configured OK. You can configure the OMAP side of the
> transceiver hookup with all the pins acting as GPIOs, as I recall.
> (Simplest to just re-mux all the pins after the usb.c init is done.)
> Then use I2C to verify that VBUS output is 5V, and that you get an
> isp1301 IRQ when you manually pull up D+ (or even D-) to 3.6V or so.
> You should be able to tweak the GPIOs so that the isp1301 chip
> drives the J, K, and SE0 states.
>
> Once you know the isp1301 is behaving -- there's no reason the the
> host-only setup should have been broken -- the complication is all
> on the OMAP side. Undo your muxing of the transceiver linkup pins
> as GPIOs. Make sure they're set up properly (4 wires? 6? etc) and
> that the isp1301_omap driver handles that mode. (ISTR it didn't
> handle all possible modes as originally written; no need to.)
>
>
> > 2. Now since you are talking about 8 mA of the current, the USB device
> > will never be powered up with only this much current. It can never act
> > as host with so less current capability? Even USB mouse requires 100
> > mA current. Kindly confirm it.
>
> OTG transceivers are not required to supply more than 8mA of current.
> The isp1301 is an OTG transceiver. I don't recall that it provided
> more than the minimum, but check the specs for its charge pump...
>
> Some USB devices work just fine with only 8mA. Bus-powered ones
> will rarely fit in that category. I generally ended up hooking an
> AC-powered hub to the root port, since it didn't draw much power and
> would in turn provide up to 500 mA on each downstream port.
>
>
> > 3. What is the significance of the ID pin at the transceiver end if
> > all the decisions can be taken at the OMAP end and we can configure
> > the ISP transceiver accordingly(through I2C). I think the ISP does
> > some changes based on the ID pin.
>
> It's been a while since I looked at just what the ISP1301 does, but
> I recall that it it didn't do anything "automagically".
>
> The ID pin is simple: a Mini-A connector grounds it, a Mini-B one
> lets it float. So it connects to a weak pullup, and the transceiver
> will report its state as either grounded (so the initial OTG state
> is A_IDLE and it should enumerate in the host role) or high (so the
> initial OTG state is B_IDLE and it should enumerate in peripheral role).
>
> There's a bit in one of the OMAP OTG controller registers that reports
> the ID pin. It gets read from the transceiver ... *OR* it can be
> forced to either value, if the system doesn't pay attention to OTG
> and always runs as host (or as peripheral).
>
>
> > Do we have the ISP1301 programmer's manual, which clearly defines
> > programming the transceiver in the transceiver in the host mode/ or in
> > the function mode? If possible kindly send it to me.
>
> Go to the supplier's website and download the current spec from there.
> A number of your questions would have been answered by that...
>
>
> > Also, if possible send the config file of the tested code with FSUSB
> > port 0 (J51) acted as a host port.
>
> Not possible. The closest I've got is the kernel.org H2 defconfig;
> that's clearly not using a 2430 chip.
>
> - Dave
> _______________________________________________
> Linux-omap-open-source mailing list
> Linux-omap-open-source@linux.omap.com
> http://linux.omap.com/mailman/listinfo/linux-omap-open-source
>
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: FSUSB Port 0 in OMAP2430 SDP
2007-08-18 20:10 ` Amit Gupta
@ 2007-08-19 22:21 ` David Brownell
0 siblings, 0 replies; 16+ messages in thread
From: David Brownell @ 2007-08-19 22:21 UTC (permalink / raw)
To: Amit Gupta; +Cc: linux-omap-open-source
On Saturday 18 August 2007, Amit Gupta wrote:
> Hi David
>
> Thanks for the prompt reply.
>
> I already have ISP-1301 data sheet available with me. Its available
> online at the following link: -
> http://balloonboard.org/hardware/300/ds/ISP1301.pdf
>
> Now as per the OTG Control Register (address 0x06/0x07), there is an
> ID_PULLDOWN bit and the Vbus_DRV. Now I tried with the following
> instruction: -
>
> I2Cwrite(0x06,0x30) ;// Setting the Vbus_drv and ID_pulldown
> I2Cread(0x06)
>
> And when I read back I2Cread(0x06) after the above instruction, I got
> the value as 0x19. So it did not set the Vbus_drv bit. Kindly justify
> this behavior.
Something's not working the way you expect. :)
Why don't you try reading all the readable registers and making
sure their values make sense. Are you talking to the isp1301, even?
Maybe your I2Cwrite()/I2Cread() routines are broken... the driver
certainly doesn't have such routines, and neither does Linux.
You *ARE* working in Linux, right?
> >>Undo your muxing of the transceiver linkup pins
> >>as GPIOs. Make sure they're set up properly (4 wires? 6? etc) and
> >>that the isp1301_omap driver handles that mode. (ISTR it didn't
> >>handle all possible modes as originally written; no need to.)
>
> I have found that ISP needs to be configured in three-pin DAT/SE0
> bi-directional mode, so I have done pin/mux configuration for
> Usb0_dat, Usb0_se0 and Usb0_txen. I am not sure whether I need to do
> pin configuration for usb0_puen?
You're missing the point of my suggestion: make sure that you've
got communication with the transceiver working right, before you
work on getting the OMAP to talk to the transceiver.
If I understand your question, you're asking whether the peripheral
mode's D+ pullup should be handled by OMAP or by the transceiver.
Considering the transceiver has individual control of pullups and
pulldowns on both D+ and D-, and that the hardware is set up to
handle both peripheral and host modes, it should be evident why
the OMAP leaves that issue up to the transceiver...
> This is all that needs to be done at
> the OMAP done along with the host controller configuration, which is
> already sending the SOF (after configuration like setting OHCI, clock,
> interrupts, syscon registers). I don't need to set any OTG_CTRL
> registers.
>
> I am not using powered hub, but still in the absence of that I think
> there should be certain interrupt on connection of device.
Like I said, the whole point of my suggestion is to sort out
(first) whether the transceiver setup is working right, apart from
the USB data signaling, and then (second) whether the data signaling
is working right.
So far you haven't done enough of the first part to know whether
it's reasonable to expect such an IRQ.
> >>The ID pin is simple: a Mini-A connector grounds it, a Mini-B one
> >>lets it float. So it connects to a weak pull-up, and the transceiver
> >>will report its state as either grounded (so the initial OTG state
> >>is A_IDLE and it should enumerate in the host role) or high (so the
> >>initial OTG state is B_IDLE and it should enumerate in peripheral >>role).
> >>There's a bit in one of the OMAP OTG controller registers that reports
> >>the ID pin. It gets read from the transceiver ... *OR* it can be
> >>forced to either value, if the system doesn't pay attention to OTG
> >>and always runs as host (or as peripheral).
>
> Mini A and Mini B difference is clear,
> As far as I can understand from the above statement is that role of
> transceiver is just to transmit and receive the signals to the
> host/function controller at the OMAP end,
"Just" do that? I don't see how I ever said that. Even in non-OTG
modes it has to do a lot more than that during connection setup.
Plus there's entry/exit to transceiver lowpower modes...
Your basic problem report is that it doesn't even get to connection
setup. This indicates that the FIRST problem you need to get past
relates to the transceiver setup.
- Dave
> but rather it does lot more
> in case of OTG (OTG controller) since it gives info of different
> voltage level changes which makes OTG controller perform intelligent
> decision (like A & B devices State). Kindly confirm.
>
> Thanks & Regards
>
> Amit
>
>
>
>
>
>
>
>
>
>
^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2007-08-19 22:21 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-08-04 19:37 FSUSB Port 0 in OAMP2430 SDP Amit Gupta
2007-08-06 0:18 ` Felipe Balbi
2007-08-06 18:54 ` Amit Gupta
2007-08-06 19:11 ` Felipe Balbi
2007-08-06 19:29 ` Woodruff, Richard
2007-08-06 20:10 ` Amit Gupta
2007-08-08 20:28 ` Fwd: " Amit Gupta
2007-08-08 20:39 ` Felipe Balbi
2007-08-08 21:07 ` Amit Gupta
2007-08-09 11:19 ` Felipe Balbi
2007-08-09 18:36 ` Amit Gupta
2007-08-18 0:54 ` David Brownell
2007-08-18 18:16 ` Amit Gupta
2007-08-18 18:57 ` David Brownell
2007-08-18 20:10 ` Amit Gupta
2007-08-19 22:21 ` FSUSB Port 0 in OMAP2430 SDP David Brownell
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox