From mboxrd@z Thu Jan 1 00:00:00 1970 From: peter.chen@freescale.com (Peter Chen) Date: Fri, 12 Jul 2013 10:58:34 +0800 Subject: [PATCH v12 06/13] usb: chipidea: add otg_cap attribute for otg capable In-Reply-To: <201307111736.11065.marex@denx.de> References: <1373524041-10482-1-git-send-email-peter.chen@freescale.com> <1373524041-10482-7-git-send-email-peter.chen@freescale.com> <201307111736.11065.marex@denx.de> Message-ID: <20130712025833.GA14793@nchen-desktop> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Thu, Jul 11, 2013 at 05:36:10PM +0200, Marek Vasut wrote: > Dear Peter Chen, > > > Since we need otgsc to know vbus's status at some chipidea > > controllers even it is peripheral-only mode. Besides, some > > SoCs (eg, AR9331 SoC) don't have otgsc register even > > the DCCPARAMS_DC and DCCPARAMS_HC are both 1 at CAP_DCCPARAMS. > > We inroduce otg_cap attribute to indicate if the controller > > is otg capable, defaultly, we follow the rule that if DCCPARAMS_DC > > and DCCPARAMS_HC are both 1 at CAP_DCCPARAMS are otg capable, but if there > > is exception, the platform can override it by device tree or platform data. > > > > Signed-off-by: Peter Chen > > --- > > drivers/usb/chipidea/core.c | 35 ++++++++++++++++++++++++++++------- > > include/linux/usb/chipidea.h | 13 +++++++++++++ > > 2 files changed, 41 insertions(+), 7 deletions(-) > > > > diff --git a/drivers/usb/chipidea/core.c b/drivers/usb/chipidea/core.c > > index 93961ff..e8ceb04 100644 > > --- a/drivers/usb/chipidea/core.c > > +++ b/drivers/usb/chipidea/core.c > > @@ -405,6 +405,18 @@ static inline void ci_role_destroy(struct ci_hdrc *ci) > > ci_hdrc_host_destroy(ci); > > } > > > > +static void ci_get_otg_capable(struct ci_hdrc *ci) > > +{ > > + if (ci->platdata->otg_cap != OTG_CAP_ATTR_IS_NOT_EXISTED) > > IS_NONEXISTENT , no? > You mean the English for this string? ok, I can change. It means if the "otg_cap" is not existed at platform data, then, the "otg_cap" can be determined by DCCPARAMS -- Best Regards, Peter Chen