[patch 2/5] ulpi: handle ULPI_OTG_CTRL_CHRGVBUS
Igor Grinberg
grinberg at compulab.co.il
Tue Dec 21 07:23:35 EST 2010
Hi Arnaud,
On 12/20/10 17:48, Arnaud Patard (Rtp) wrote:
> Current code doesn't handle setting CHRGVBUS when enabling vbus.
> Add support for it
>
>
>
> Signed-off-by: Arnaud Patard <arnaud.patard at rtp-net.org>
> Index: tst-usb/drivers/usb/otg/ulpi.c
> ===================================================================
> --- tst-usb.orig/drivers/usb/otg/ulpi.c 2010-12-20 15:38:41.000000000 +0100
> +++ tst-usb/drivers/usb/otg/ulpi.c 2010-12-20 15:38:57.000000000 +0100
> @@ -234,7 +234,8 @@
> {
> unsigned int flags = otg_io_read(otg, ULPI_OTG_CTRL);
>
> - flags &= ~(ULPI_OTG_CTRL_DRVVBUS | ULPI_OTG_CTRL_DRVVBUS_EXT);
> + flags &= ~(ULPI_OTG_CTRL_DRVVBUS | ULPI_OTG_CTRL_DRVVBUS_EXT |
> + ULPI_OTG_CTRL_CHRGVBUS);
>
> if (on) {
> if (otg->flags & ULPI_OTG_DRVVBUS)
> @@ -242,6 +243,9 @@
>
> if (otg->flags & ULPI_OTG_DRVVBUS_EXT)
> flags |= ULPI_OTG_CTRL_DRVVBUS_EXT;
> +
> + if (otg->flags & ULPI_OTG_CHRGVBUS)
> + flags |= ULPI_OTG_CTRL_CHRGVBUS;
> }
>
> return otg_io_write(otg, flags, ULPI_OTG_CTRL);
I think this is a wrong place to set the ChrgVbus bit.
As for ULPI spec. 1.1:
"3.8.7.1 Session Request Protocol (SRP)
ULPI provides full SRP support. The Link uses the ChrgVbus and DischrgVbus bits
in the OTG Control register to begin and end a session."
So it is used for SRP.
May be it is better to implement
int (*start_srp)(struct otg_transceiver *otg);
method for setting this bit?
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
>
--
Regards,
Igor.
More information about the linux-arm-kernel
mailing list