[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