On Tue, 9 Jun 2015 22:15:53 +0800
Li Jun <b47...@freescale.com> wrote:

> On Tue, Jun 09, 2015 at 03:55:29PM +0300, Roger Quadros wrote:
> > Hi,
> > 
> > On Mon, 8 Jun 2015 23:02:01 +0800
> > Li Jun <jun...@freescale.com> wrote:
> > 
> > > Check property of usb hardware to get otg version and if SRP, HNP and ADP
> > > are supported.
> > > 
> > > Signed-off-by: Li Jun <jun...@freescale.com>
> > > ---
> > >  drivers/usb/common/common.c | 64 
> > > +++++++++++++++++++++++++++++++++++++++++++++
> > >  include/linux/usb/of.h      | 20 ++++++++++++++
> > >  2 files changed, 84 insertions(+)
> > > 
> > > diff --git a/drivers/usb/common/common.c b/drivers/usb/common/common.c
> > > index b530fd4..7b0594b 100644
> > > --- a/drivers/usb/common/common.c
> > > +++ b/drivers/usb/common/common.c
> > > @@ -154,6 +154,70 @@ bool of_usb_host_tpl_support(struct device_node *np)
> > >   return false;
> > >  }
> > >  EXPORT_SYMBOL_GPL(of_usb_host_tpl_support);
> > > +
> > > +/**
> > > + * of_usb_otg_srp_support -  to get if otg srp is supported by the otg 
> > > controller
> > 
> > This is not really about otg controller supporting SRP but whether
> > the DT user wants it enabled or not.
> > 
> Sorry, correct my precious answer, this is about if otg controller can support
> SRP. Meanwhile DT user can disable it via this property even the HW has this
> capability.

Whether controller supports any capability shouldn't come from DT but from its
hardware capability registers.

If you want to disable any feature from DT the DT property will have to be 
called
disable-<foo> rather than <foo>-support.

cheers,
-roger

> 
> Li Jun
> > IMO this function should be named of_usb_get_otg_srp_enable()
> > 
> > > + * @np: Pointer to the given device_node
> > > + *
> > > + * The function gets if the otg port supports SRP
> > > + */
> > > +bool of_usb_otg_srp_support(struct device_node *np)
> > > +{
> > > + if (of_find_property(np, "srp-support", NULL))
> > > +         return true;
> > > +
> > > + return false;
> > > +}
> > > +EXPORT_SYMBOL_GPL(of_usb_otg_srp_support);
> > > +
> > > +/**
> > > + * of_usb_otg_hnp_support -  to get if otg hnp is supported by the otg 
> > > controller
> > > + * @np: Pointer to the given device_node
> > > + *
> > > + * The function gets if the otg port supports HNP
> > > + */
> > > +bool of_usb_otg_hnp_support(struct device_node *np)
> > > +{
> > > + if (of_find_property(np, "hnp-support", NULL))
> > > +         return true;
> > > +
> > > + return false;
> > > +}
> > > +EXPORT_SYMBOL_GPL(of_usb_otg_hnp_support);
> > > +
> > > +/**
> > > + * of_usb_otg_adp_support -  to get if otg adp is supported by the otg 
> > > controller
> > > + * @np: Pointer to the given device_node
> > > + *
> > > + * The function gets if the otg port supports ADP
> > > + */
> > > +bool of_usb_otg_adp_support(struct device_node *np)
> > > +{
> > > + if (of_find_property(np, "adp-support", NULL))
> > > +         return true;
> > > +
> > > + return false;
> > > +}
> > > +EXPORT_SYMBOL_GPL(of_usb_otg_adp_support);
> > > +
> > > +/**
> > > + * of_usb_otg_rev_number -  to get the otg release number the device is
> > > + * compliant with.
> > > + * @np: Pointer to the given device_node
> > > + *
> > > + * The function gets OTG and EH supplement release number in binary-coded
> > > + * decimal (i.e. 2.0 is 0200H).
> > > + */
> > > +int of_usb_otg_rev_number(struct device_node *np)
> > 
> > how about of_usb_get_otg_rev()?
> > 
> > > +{
> > > + u32 otg_rev;
> > > +
> > > + if (!of_property_read_u32(np, "otg-rev", &otg_rev))
> > > +         return otg_rev;
> > > +
> > > + return 0;
> > > +}
> > > +EXPORT_SYMBOL_GPL(of_usb_otg_rev_number);
> > >  #endif
> > >  
> > 
> > cheers,
> > -roger

--
To unsubscribe from this list: send the line "unsubscribe devicetree" 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