All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Eurotech Zeus : Making USB port 2 work
@ 2010-02-10  6:35 Amit Walambe
  2010-02-10  9:38 ` Marc Zyngier
  0 siblings, 1 reply; 4+ messages in thread
From: Amit Walambe @ 2010-02-10  6:35 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,
The attached patch adds support for the second USB port of
Arcom/Eurotech Zeus SBC. Currently only port 1 works. The patch sets the
power enabling GPIO for port 2 and corrects the port initialisation
flags.
Please accept.
Thanks and regards,
- Amit

______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email 
______________________________________________________________________
-------------- next part --------------
A non-text attachment was scrubbed...
Name: eurotech_zeus_usb_port2.patch
Type: text/x-patch
Size: 1649 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20100210/ea474a58/attachment-0001.bin>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH] Eurotech Zeus : Making USB port 2 work
  2010-02-10  6:35 [PATCH] Eurotech Zeus : Making USB port 2 work Amit Walambe
@ 2010-02-10  9:38 ` Marc Zyngier
  2010-02-11  7:03   ` Amit Walambe
  0 siblings, 1 reply; 4+ messages in thread
From: Marc Zyngier @ 2010-02-10  9:38 UTC (permalink / raw)
  To: linux-arm-kernel


On Wed, February 10, 2010 06:35, Amit Walambe wrote:

Hi Amit,

> The attached patch adds support for the second USB port of
> Arcom/Eurotech Zeus SBC. Currently only port 1 works. The patch sets the
> power enabling GPIO for port 2 and corrects the port initialisation
> flags.

Thanks for having a look at this. Comments below:

> Index: linux-2.6.33-rc6/arch/arm/mach-pxa/zeus.c
> ===================================================================
> --- linux-2.6.33-rc6.orig/arch/arm/mach-pxa/zeus.c	2010-02-10 11:37:47.456069467 +0530
> +++ linux-2.6.33-rc6/arch/arm/mach-pxa/zeus.c	2010-02-10 11:40:30.443073251 +0530
> @@ -482,7 +482,6 @@
>  {
>  	int err;
>
> -	/* Switch on port 2. */
>  	if ((err = gpio_request(ZEUS_USB2_PWREN_GPIO, "USB2_PWREN"))) {
>  		dev_err(dev, "Can't request USB2_PWREN\n");
>  		return err;
> @@ -494,6 +493,9 @@
>  		return err;
>  	}
>
> +	/* Switch on port 2. */
> +	gpio_set_value(ZEUS_USB2_PWREN_GPIO, 1);
> +

ZEUS_USB2_PWREN_GPIO is already set to one a few lines above (see call to
gpio_direction_output).

>  	/* Port 2 is shared between host and client interface. */
>  	UP2OCR = UP2OCR_HXOE | UP2OCR_HXS | UP2OCR_DMPDE | UP2OCR_DPPDE;
>
> @@ -503,13 +505,16 @@
>  static void zeus_ohci_exit(struct device *dev)
>  {
>  	/* Power-off port 2 */
> +	gpio_set_value(ZEUS_USB2_PWREN_GPIO, 0);
>  	gpio_direction_output(ZEUS_USB2_PWREN_GPIO, 0);

Same here.

>  	gpio_free(ZEUS_USB2_PWREN_GPIO);
>  }
>
>  static struct pxaohci_platform_data zeus_ohci_platform_data = {
>  	.port_mode	= PMM_NPS_MODE,
> -	.flags		= ENABLE_PORT_ALL | POWER_CONTROL_LOW | POWER_SENSE_LOW,
> +	/* Clear Power Control Polarity Low and set Power Sense
> +	 * Polarity Low. Supply power to USB ports. */
> +	.flags		= ENABLE_PORT_ALL | ~(POWER_CONTROL_LOW) | POWER_SENSE_LOW,

I suppose that is actually what makes it work, though the change is rather suspect.
You're basically setting *all* bits to 1, except for POWER_CONTROL_LOW, and I don't
think that's the expected behaviour. Could you try the following instead:

         .flags        = ENABLE_PORT_ALL | POWER_SENSE_LOW,

Additionally, you can try adding NO_OC_PROTECTION or OC_MODE_PERPORT if the above doesn't
work. This is a bit of a shot in the dark, as I'm currently far away from my Zeus board
and can't directly test it.

>  	.init		= zeus_ohci_init,
>  	.exit		= zeus_ohci_exit,
>  };
> @@ -837,7 +842,7 @@
>  	PCFR = PCFR_OPDE | PCFR_DC_EN | PCFR_FS | PCFR_FP;
>  }
>
> -MACHINE_START(ARCOM_ZEUS, "Arcom ZEUS")
> +MACHINE_START(ARCOM_ZEUS, "Arcom/Eurotech ZEUS")

Please sent this as a separate patch, including a Signed-off-by: line.

Thanks,

        M.
-- 
And if you don't know where you're going, any road will take you there...

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH] Eurotech Zeus : Making USB port 2 work
  2010-02-10  9:38 ` Marc Zyngier
@ 2010-02-11  7:03   ` Amit Walambe
  2010-02-11  9:32     ` Marc Zyngier
  0 siblings, 1 reply; 4+ messages in thread
From: Amit Walambe @ 2010-02-11  7:03 UTC (permalink / raw)
  To: linux-arm-kernel

Hi!
Thanks for your comments Marc.

On Wed, 10 Feb 2010 09:38:38 -0000 (GMT)
"Marc Zyngier" <maz@misterjones.org> wrote:
> >  static struct pxaohci_platform_data zeus_ohci_platform_data = {
> >  	.port_mode	= PMM_NPS_MODE,
> > -	.flags		= ENABLE_PORT_ALL |
> > POWER_CONTROL_LOW | POWER_SENSE_LOW,
> > +	/* Clear Power Control Polarity Low and set Power Sense
> > +	 * Polarity Low. Supply power to USB ports. */
> > +	.flags		= ENABLE_PORT_ALL |
> > ~(POWER_CONTROL_LOW) | POWER_SENSE_LOW,
> 
> I suppose that is actually what makes it work, though the change is
> rather suspect. You're basically setting *all* bits to 1
My bad. Attaching a modified patch. I have tested it on a Zeus and it
works ok.

> > -MACHINE_START(ARCOM_ZEUS, "Arcom ZEUS")
> > +MACHINE_START(ARCOM_ZEUS, "Arcom/Eurotech ZEUS")
> 
> Please sent this as a separate patch, including a Signed-off-by: line.
Please see attached.

> Thanks,
> 
>         M.

Thanks and regards,
- Amit

______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email 
______________________________________________________________________
-------------- next part --------------
A non-text attachment was scrubbed...
Name: arcom-to-eurotech.patch
Type: text/x-patch
Size: 667 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20100211/e0396c8d/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: eurotech_zeus_usb_port2.patch
Type: text/x-patch
Size: 829 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20100211/e0396c8d/attachment-0001.bin>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH] Eurotech Zeus : Making USB port 2 work
  2010-02-11  7:03   ` Amit Walambe
@ 2010-02-11  9:32     ` Marc Zyngier
  0 siblings, 0 replies; 4+ messages in thread
From: Marc Zyngier @ 2010-02-11  9:32 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, February 11, 2010 07:03, Amit Walambe wrote:
> Hi!
> Thanks for your comments Marc.
>
> On Wed, 10 Feb 2010 09:38:38 -0000 (GMT)
> "Marc Zyngier" <maz@misterjones.org> wrote:
>> >  static struct pxaohci_platform_data zeus_ohci_platform_data = {
>> >  	.port_mode	= PMM_NPS_MODE,
>> > -	.flags		= ENABLE_PORT_ALL |
>> > POWER_CONTROL_LOW | POWER_SENSE_LOW,
>> > +	/* Clear Power Control Polarity Low and set Power Sense
>> > +	 * Polarity Low. Supply power to USB ports. */
>> > +	.flags		= ENABLE_PORT_ALL |
>> > ~(POWER_CONTROL_LOW) | POWER_SENSE_LOW,
>>
>> I suppose that is actually what makes it work, though the change is
>> rather suspect. You're basically setting *all* bits to 1
> My bad. Attaching a modified patch. I have tested it on a Zeus and it
> works ok.

Thanks. Both patches queued for 2.6.34.

        M.
-- 
And if you don't know where you're going, any road will take you there...

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2010-02-11  9:32 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-02-10  6:35 [PATCH] Eurotech Zeus : Making USB port 2 work Amit Walambe
2010-02-10  9:38 ` Marc Zyngier
2010-02-11  7:03   ` Amit Walambe
2010-02-11  9:32     ` Marc Zyngier

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.