[PATCH v10 6/8] usb: chipidea: imx: add internal vbus regulator control

Peter Chen peter.chen at freescale.com
Thu Feb 28 01:06:09 EST 2013


On Wed, Feb 27, 2013 at 09:08:11PM +0200, Alexander Shishkin wrote:
>    On Feb 27, 2013 8:34 AM, "Peter Chen" <peter.chen at freescale.com> wrote:
>    >
>    > - For host, the vbus should always be on.
>    > - For otg, the vbus is off defaultly, the vbus needs to be
>    > turned on/off when usb role switches.
>    >
>    > + * @reg_vbus: used to control internal vbus regulator
>    >   */
>    >  struct ci13xxx {
>    >         struct device                   *dev;
>    > @@ -172,6 +173,7 @@ struct ci13xxx {
>    >         struct usb_otg                  otg;
>    >         bool                            id_event;
>    >         bool                            b_sess_valid_event;
>    > +       struct regulator                *reg_vbus;
>    >  };
> 
>    I suggest that this regulator be taken care of by either the platform code
>    or phy layer, it doesn't look like it really belongs in chipidea core. The
>    easiest way I guess would be to do something similar to the notify
>    callback in msm platform code.

VBUS operation is typical operation during the USB code, eg, we need
to open vbus at Host mode, we need close/open vbus during host<->gadget
switch.

I suggest vbus regulator is specified at platform code, and assign it
to ci core's pdata, like sasche's patch pdata->dr_mode and pdata->phy_mode.

At core code, we can have a vbus operation API for on/off vbus if vbus
regulator is existed.

-- 

Best Regards,
Peter Chen




More information about the linux-arm-kernel mailing list