From: s.hauer@pengutronix.de (Sascha Hauer)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/6] usb: add devicetree helpers for determining dr_mode and phy_type
Date: Thu, 31 Jan 2013 09:05:11 +0100 [thread overview]
Message-ID: <20130131080511.GK1906@pengutronix.de> (raw)
In-Reply-To: <20130131023034.GF9777@nchen-desktop>
On Thu, Jan 31, 2013 at 10:30:36AM +0800, Peter Chen wrote:
> On Wed, Jan 30, 2013 at 04:29:38PM +0100, Sascha Hauer wrote:
> > From: Michael Grzeschik <m.grzeschik@pengutronix.de>
> >
> > This adds two little devicetree helper functions for determining the
> > dr_mode (host, peripheral, otg) and phy_type (utmi, ulpi,...) from
> > the devicetree.
> >
> > Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
> > Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
> > Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
> > ---
> > drivers/usb/usb-common.c | 69 ++++++++++++++++++++++++++++++++++++++++++++++
> > include/linux/usb/of.h | 27 ++++++++++++++++++
> > include/linux/usb/otg.h | 7 +++++
> > include/linux/usb/phy.h | 9 ++++++
> > 4 files changed, 112 insertions(+)
> > create mode 100644 include/linux/usb/of.h
> >
> > diff --git a/drivers/usb/usb-common.c b/drivers/usb/usb-common.c
> > index d29503e..1c0292c 100644
> > --- a/drivers/usb/usb-common.c
> > +++ b/drivers/usb/usb-common.c
> > @@ -14,6 +14,9 @@
> > #include <linux/kernel.h>
> > #include <linux/module.h>
> > #include <linux/usb/ch9.h>
> > +#include <linux/of.h>
> > +#include <linux/usb/of.h>
> > +#include <linux/usb/otg.h>
> >
> > const char *usb_speed_string(enum usb_device_speed speed)
> > {
> > @@ -32,4 +35,70 @@ const char *usb_speed_string(enum usb_device_speed speed)
> > }
> > EXPORT_SYMBOL_GPL(usb_speed_string);
> >
> > +#ifdef CONFIG_OF
> > +static const char *usb_dr_modes[] = {
> > + [USB_DR_MODE_UNKNOWN] = "",
> > + [USB_DR_MODE_HOST] = "host",
> > + [USB_DR_MODE_PERIPHERAL] = "peripheral",
> > + [USB_DR_MODE_OTG] = "otg",
> > +};
> > +
> > +/**
> > + * of_usb_get_dr_mode - Get dual role mode for given device_node
> > + * @np: Pointer to the given device_node
> > + *
> > + * The function gets phy interface string from property 'dr_mode',
> > + * and returns the correspondig enum usb_phy_dr_mode
> > + */
> > +enum usb_phy_dr_mode of_usb_get_dr_mode(struct device_node *np)
> The word "phy" at usb_phy_dr_mode may cause misunderstand, just usb_dr_mode
> is ok
ok, changed.
> > +{
> > + const char *dr_mode;
> > + int err, i;
> > +
> > + err = of_property_read_string(np, "dr_mode", &dr_mode);
> > + if (err < 0)
> > + return USB_DR_MODE_UNKNOWN;
> > +
> > + for (i = 0; i < ARRAY_SIZE(usb_dr_modes); i++)
> > + if (!strcasecmp(dr_mode, usb_dr_modes[i]))
> > + return i;
> Just curious, why not using strcmp?
Probably because this is based on drivers/of/of_net.c which uses
strcasecmp. I never heard that devicetrees are case insensitive, so
I'll change this to strcmp.
> > +
> > + return USB_DR_MODE_UNKNOWN;
> > +}
> > +
> > +#ifdef CONFIG_OF
> > +enum usb_phy_interface of_usb_get_phy_mode(struct device_node *np);
> > +enum usb_phy_dr_mode of_usb_get_dr_mode(struct device_node *np);
> > +#else
> > +static inline enum usb_phy_interface of_usb_get_phy_mode(struct device_node *np)
> > +{
> > + return USBPHY_INTERFACE_MODE_NA;
> > +}
> > +
> > +static inline enum usb_phy_dr_mode of_usb_get_dr_mode(struct device_node *np)
> > +{
> > + return USB_DR_MODE_UNKNOWN;
> > +}
> For, dr_mode, if value has not existed, you use *_UNKNOWN, why
> for usbphy, you use *_NA. It is better uniform.
yup, fixed.
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 |
next prev parent reply other threads:[~2013-01-31 8:05 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-30 15:29 [PATCH] Add USB of helpers and use them in the chipidea driver Sascha Hauer
2013-01-30 15:29 ` [PATCH 1/6] USB: move bulk of otg/otg.c to phy/phy.c Sascha Hauer
2013-01-31 2:16 ` Peter Chen
2013-01-30 15:29 ` [PATCH 2/6] usb: add devicetree helpers for determining dr_mode and phy_type Sascha Hauer
2013-01-31 2:30 ` Peter Chen
2013-01-31 8:05 ` Sascha Hauer [this message]
2013-01-31 6:14 ` kishon
2013-01-31 7:43 ` Sascha Hauer
2013-01-31 8:17 ` kishon
2013-01-30 15:29 ` [PATCH 3/6] usb: chipidea: ci13xxx-imx: create dynamic platformdata Sascha Hauer
2013-01-30 15:29 ` [PATCH 4/6] usb: chipidea: add PTW and PTS handling Sascha Hauer
2013-01-30 16:54 ` Matthieu CASTET
2013-01-30 19:33 ` Sascha Hauer
2013-01-31 9:15 ` Matthieu CASTET
2013-01-31 9:42 ` Sascha Hauer
2013-01-31 3:08 ` Peter Chen
2013-01-31 7:45 ` Sascha Hauer
2013-01-30 15:29 ` [PATCH 5/6] USB chipidea: introduce dual role mode pdata flags Sascha Hauer
2013-01-30 15:29 ` [PATCH 6/6] USB chipidea i.MX: introduce dr_mode property Sascha Hauer
-- strict thread matches above, loose matches on Subject: below --
2013-01-31 9:01 [PATCH v2] Add USB of helpers and use them in the chipidea driver Sascha Hauer
2013-01-31 9:01 ` [PATCH 2/6] USB: add devicetree helpers for determining dr_mode and phy_type Sascha Hauer
2013-01-31 9:12 ` kishon
2013-01-31 9:28 ` Sascha Hauer
2013-01-31 9:30 ` kishon
2013-01-31 9:20 ` Greg KH
2013-01-31 9:26 ` Sascha Hauer
2013-01-31 10:01 ` Peter Chen
2013-01-31 10:12 ` Sascha Hauer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130131080511.GK1906@pengutronix.de \
--to=s.hauer@pengutronix.de \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.