Hi Peter,

> @@ -139,6 +139,7 @@ struct ci13xxx {
>       enum ci_role                    role;
>       bool                            is_otg;
>       struct work_struct              work;
> +     struct delayed_work             dwork;
>       struct workqueue_struct         *wq;
>  
>       struct dma_pool                 *qh_pool;
> @@ -164,6 +165,11 @@ struct ci13xxx {
>       bool                            global_phy;
>       struct usb_phy                  *transceiver;
>       struct usb_hcd                  *hcd;
> +     /* events handled at ci_role_work */
> +#define ID           0
> +#define B_SESS_VALID 1
> +     unsigned long events;
> +     struct usb_otg                  otg;

I looked into implementing ULPI support for the chipidea driver. This
does not integrate very well with having a struct usb_otg here. Instead
it should be a pointer.  Look into drivers/usb/otg/ulpi.c. This
allocates the struct usb_otg itself and we have to feed the pointer into
struct ci13xxx.

Also I think that using a regulator as a vbus provider is not i.MX
specific, it's not even chipidea specific. I think this should be a
driver of its own under drivers/usb/otg/, or maybe part of
drivers/usb/otg/gpio_vbus.c.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to