From: balbi@ti.com (Felipe Balbi)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 5/9] usb: add phy connection by phy-mode
Date: Fri, 16 Nov 2012 13:31:49 +0200 [thread overview]
Message-ID: <20121116113149.GC17793@arwen.pp.htv.fi> (raw)
In-Reply-To: <1352909950-32555-6-git-send-email-m.grzeschik@pengutronix.de>
Hi,
On Wed, Nov 14, 2012 at 05:19:06PM +0100, Michael Grzeschik wrote:
> This patch makes it possible to set the connection of the usbphy to the
> soc. It is derived from the oftree bindings for the ethernetphy and adds
> similar helperfunctions.
>
> Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
> ---
> drivers/of/Kconfig | 4 ++++
> drivers/of/Makefile | 1 +
> drivers/of/of_usbphy.c | 49 +++++++++++++++++++++++++++++++++++++++++++++
> include/linux/of_usbphy.h | 15 ++++++++++++++
> include/linux/usb/phy.h | 8 ++++++++
> 5 files changed, 77 insertions(+)
> create mode 100644 drivers/of/of_usbphy.c
> create mode 100644 include/linux/of_usbphy.h
>
> diff --git a/drivers/of/Kconfig b/drivers/of/Kconfig
> index dfba3e6..28f99fb 100644
> --- a/drivers/of/Kconfig
> +++ b/drivers/of/Kconfig
> @@ -67,6 +67,10 @@ config OF_MDIO
> help
> OpenFirmware MDIO bus (Ethernet PHY) accessors
>
> +config OF_USBPHY
> + depends on USB
> + def_bool y
> +
> config OF_PCI
> def_tristate PCI
> depends on PCI
> diff --git a/drivers/of/Makefile b/drivers/of/Makefile
> index e027f44..fdcaf51 100644
> --- a/drivers/of/Makefile
> +++ b/drivers/of/Makefile
> @@ -6,6 +6,7 @@ obj-$(CONFIG_OF_IRQ) += irq.o
> obj-$(CONFIG_OF_DEVICE) += device.o platform.o
> obj-$(CONFIG_OF_I2C) += of_i2c.o
> obj-$(CONFIG_OF_NET) += of_net.o
> +obj-$(CONFIG_OF_USBPHY) += of_usbphy.o
> obj-$(CONFIG_OF_SELFTEST) += selftest.o
> obj-$(CONFIG_OF_MDIO) += of_mdio.o
> obj-$(CONFIG_OF_PCI) += of_pci.o
> diff --git a/drivers/of/of_usbphy.c b/drivers/of/of_usbphy.c
> new file mode 100644
> index 0000000..2e71f7b
> --- /dev/null
> +++ b/drivers/of/of_usbphy.c
> @@ -0,0 +1,49 @@
> +/*
> + * OF helpers for network devices.
> + *
> + * This file is released under the GPLv2
> + *
> + * Initially copied out of drivers/of/of_net.c
> + */
> +#include <linux/etherdevice.h>
> +#include <linux/kernel.h>
> +#include <linux/of_usbphy.h>
> +#include <linux/usb/phy.h>
> +#include <linux/export.h>
> +
> +/**
> + * It maps 'enum usb_phy_interface' found in include/linux/usb/phy.h
> + * into the device tree binding of 'phy-mode', so that USB
> + * device driver can get phy interface from device tree.
> + */
provide proper kernel-doc
> +static const char *usbphy_modes[] = {
> + [USBPHY_INTERFACE_MODE_NA] = "",
> + [USBPHY_INTERFACE_MODE_UTMI] = "utmi",
> + [USBPHY_INTERFACE_MODE_UTMIW] = "utmiw",
> + [USBPHY_INTERFACE_MODE_ULPI] = "ulpi",
> + [USBPHY_INTERFACE_MODE_SERIAL] = "fsls",
> +};
In fact, these would be better off as constants:
#define USBPHY_INTERFACE_MODE_UTMI 1
#define USBPHY_INTERFACE_MODE_UTMIW 2
...
> +/**
> + * of_get_phy_mode - Get phy mode for given device_node
> + * @np: Pointer to the given device_node
> + *
> + * The function gets phy interface string from property 'phy-mode',
> + * and return its index in phy_modes table, or errno in error case.
> + */
why do you pass a string instead of passing an Integer ? This makes no
sense to me.
> +const int of_get_usbphy_mode(struct device_node *np)
> +{
> + const char *pm;
> + int err, i;
> +
> + err = of_property_read_string(np, "phy-mode", &pm);
> + if (err < 0)
> + return err;
> +
> + for (i = 0; i < ARRAY_SIZE(usbphy_modes); i++)
> + if (!strcasecmp(pm, usbphy_modes[i]))
> + return i;
> +
> + return -ENODEV;
> +}
> +EXPORT_SYMBOL_GPL(of_get_usbphy_mode);
> diff --git a/include/linux/of_usbphy.h b/include/linux/of_usbphy.h
> new file mode 100644
> index 0000000..9a4132d
> --- /dev/null
> +++ b/include/linux/of_usbphy.h
> @@ -0,0 +1,15 @@
> +/*
> + * OF helpers for usb devices.
> + *
> + * This file is released under the GPLv2
> + */
> +
> +#ifndef __LINUX_OF_USBPHY_H
> +#define __LINUX_OF_USBPHY_H
> +
> +#ifdef CONFIG_OF_USBPHY
> +#include <linux/of.h>
> +extern const int of_get_usbphy_mode(struct device_node *np);
> +#endif
> +
> +#endif /* __LINUX_OF_USBPHY_H */
> diff --git a/include/linux/usb/phy.h b/include/linux/usb/phy.h
> index a29ae1e..150eb69 100644
> --- a/include/linux/usb/phy.h
> +++ b/include/linux/usb/phy.h
> @@ -12,6 +12,14 @@
> #include <linux/notifier.h>
> #include <linux/usb.h>
>
> +enum usb_phy_interface {
> + USBPHY_INTERFACE_MODE_NA,
> + USBPHY_INTERFACE_MODE_UTMI,
> + USBPHY_INTERFACE_MODE_UTMIW,
> + USBPHY_INTERFACE_MODE_ULPI,
> + USBPHY_INTERFACE_MODE_SERIAL,
> +};
no documentation at all here... What does UTMIW mean ? Why do you mean
the NA mode ?
--
balbi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20121116/d3cecaa9/attachment.sig>
WARNING: multiple messages have this Message-ID (diff)
From: Felipe Balbi <balbi-l0cyMroinI0@public.gmane.org>
To: Michael Grzeschik <m.grzeschik-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
Cc: linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
alexander.shishkin-VuQAYsv1563Yd54FQh9/CA@public.gmane.org,
mkl-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org,
gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org,
fabio.estevam-KZfg59tc24xl57MIdRCFDg@public.gmane.org,
kernel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org,
devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org,
Kishon Vijay Abraham I <kishon-l0cyMroinI0@public.gmane.org>
Subject: Re: [PATCH 5/9] usb: add phy connection by phy-mode
Date: Fri, 16 Nov 2012 13:31:49 +0200 [thread overview]
Message-ID: <20121116113149.GC17793@arwen.pp.htv.fi> (raw)
In-Reply-To: <1352909950-32555-6-git-send-email-m.grzeschik-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
[-- Attachment #1: Type: text/plain, Size: 4708 bytes --]
Hi,
On Wed, Nov 14, 2012 at 05:19:06PM +0100, Michael Grzeschik wrote:
> This patch makes it possible to set the connection of the usbphy to the
> soc. It is derived from the oftree bindings for the ethernetphy and adds
> similar helperfunctions.
>
> Signed-off-by: Michael Grzeschik <m.grzeschik-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
> Signed-off-by: Marc Kleine-Budde <mkl-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
> ---
> drivers/of/Kconfig | 4 ++++
> drivers/of/Makefile | 1 +
> drivers/of/of_usbphy.c | 49 +++++++++++++++++++++++++++++++++++++++++++++
> include/linux/of_usbphy.h | 15 ++++++++++++++
> include/linux/usb/phy.h | 8 ++++++++
> 5 files changed, 77 insertions(+)
> create mode 100644 drivers/of/of_usbphy.c
> create mode 100644 include/linux/of_usbphy.h
>
> diff --git a/drivers/of/Kconfig b/drivers/of/Kconfig
> index dfba3e6..28f99fb 100644
> --- a/drivers/of/Kconfig
> +++ b/drivers/of/Kconfig
> @@ -67,6 +67,10 @@ config OF_MDIO
> help
> OpenFirmware MDIO bus (Ethernet PHY) accessors
>
> +config OF_USBPHY
> + depends on USB
> + def_bool y
> +
> config OF_PCI
> def_tristate PCI
> depends on PCI
> diff --git a/drivers/of/Makefile b/drivers/of/Makefile
> index e027f44..fdcaf51 100644
> --- a/drivers/of/Makefile
> +++ b/drivers/of/Makefile
> @@ -6,6 +6,7 @@ obj-$(CONFIG_OF_IRQ) += irq.o
> obj-$(CONFIG_OF_DEVICE) += device.o platform.o
> obj-$(CONFIG_OF_I2C) += of_i2c.o
> obj-$(CONFIG_OF_NET) += of_net.o
> +obj-$(CONFIG_OF_USBPHY) += of_usbphy.o
> obj-$(CONFIG_OF_SELFTEST) += selftest.o
> obj-$(CONFIG_OF_MDIO) += of_mdio.o
> obj-$(CONFIG_OF_PCI) += of_pci.o
> diff --git a/drivers/of/of_usbphy.c b/drivers/of/of_usbphy.c
> new file mode 100644
> index 0000000..2e71f7b
> --- /dev/null
> +++ b/drivers/of/of_usbphy.c
> @@ -0,0 +1,49 @@
> +/*
> + * OF helpers for network devices.
> + *
> + * This file is released under the GPLv2
> + *
> + * Initially copied out of drivers/of/of_net.c
> + */
> +#include <linux/etherdevice.h>
> +#include <linux/kernel.h>
> +#include <linux/of_usbphy.h>
> +#include <linux/usb/phy.h>
> +#include <linux/export.h>
> +
> +/**
> + * It maps 'enum usb_phy_interface' found in include/linux/usb/phy.h
> + * into the device tree binding of 'phy-mode', so that USB
> + * device driver can get phy interface from device tree.
> + */
provide proper kernel-doc
> +static const char *usbphy_modes[] = {
> + [USBPHY_INTERFACE_MODE_NA] = "",
> + [USBPHY_INTERFACE_MODE_UTMI] = "utmi",
> + [USBPHY_INTERFACE_MODE_UTMIW] = "utmiw",
> + [USBPHY_INTERFACE_MODE_ULPI] = "ulpi",
> + [USBPHY_INTERFACE_MODE_SERIAL] = "fsls",
> +};
In fact, these would be better off as constants:
#define USBPHY_INTERFACE_MODE_UTMI 1
#define USBPHY_INTERFACE_MODE_UTMIW 2
...
> +/**
> + * of_get_phy_mode - Get phy mode for given device_node
> + * @np: Pointer to the given device_node
> + *
> + * The function gets phy interface string from property 'phy-mode',
> + * and return its index in phy_modes table, or errno in error case.
> + */
why do you pass a string instead of passing an Integer ? This makes no
sense to me.
> +const int of_get_usbphy_mode(struct device_node *np)
> +{
> + const char *pm;
> + int err, i;
> +
> + err = of_property_read_string(np, "phy-mode", &pm);
> + if (err < 0)
> + return err;
> +
> + for (i = 0; i < ARRAY_SIZE(usbphy_modes); i++)
> + if (!strcasecmp(pm, usbphy_modes[i]))
> + return i;
> +
> + return -ENODEV;
> +}
> +EXPORT_SYMBOL_GPL(of_get_usbphy_mode);
> diff --git a/include/linux/of_usbphy.h b/include/linux/of_usbphy.h
> new file mode 100644
> index 0000000..9a4132d
> --- /dev/null
> +++ b/include/linux/of_usbphy.h
> @@ -0,0 +1,15 @@
> +/*
> + * OF helpers for usb devices.
> + *
> + * This file is released under the GPLv2
> + */
> +
> +#ifndef __LINUX_OF_USBPHY_H
> +#define __LINUX_OF_USBPHY_H
> +
> +#ifdef CONFIG_OF_USBPHY
> +#include <linux/of.h>
> +extern const int of_get_usbphy_mode(struct device_node *np);
> +#endif
> +
> +#endif /* __LINUX_OF_USBPHY_H */
> diff --git a/include/linux/usb/phy.h b/include/linux/usb/phy.h
> index a29ae1e..150eb69 100644
> --- a/include/linux/usb/phy.h
> +++ b/include/linux/usb/phy.h
> @@ -12,6 +12,14 @@
> #include <linux/notifier.h>
> #include <linux/usb.h>
>
> +enum usb_phy_interface {
> + USBPHY_INTERFACE_MODE_NA,
> + USBPHY_INTERFACE_MODE_UTMI,
> + USBPHY_INTERFACE_MODE_UTMIW,
> + USBPHY_INTERFACE_MODE_ULPI,
> + USBPHY_INTERFACE_MODE_SERIAL,
> +};
no documentation at all here... What does UTMIW mean ? Why do you mean
the NA mode ?
--
balbi
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
next prev parent reply other threads:[~2012-11-16 11:31 UTC|newest]
Thread overview: 98+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-14 16:19 [PATCH 0/9] chipidea fixes and features Michael Grzeschik
2012-11-14 16:19 ` Michael Grzeschik
2012-11-14 16:19 ` [PATCH 1/9] usb: chipidea: pci: mark platformdata as static and __devinitdata Michael Grzeschik
2012-11-14 16:19 ` Michael Grzeschik
2012-11-16 10:06 ` Alexander Shishkin
2012-11-16 10:06 ` Alexander Shishkin
2012-11-16 10:17 ` Marc Kleine-Budde
2012-11-16 10:17 ` Marc Kleine-Budde
2012-11-16 11:41 ` Alexander Shishkin
2012-11-16 11:41 ` Alexander Shishkin
2012-11-16 12:02 ` Greg KH
2012-11-16 12:02 ` Greg KH
2012-11-14 16:19 ` [PATCH 2/9] usb: chipidea: ci13xxx_imx: add 2nd and 3rd clock to support imx5x and newer Michael Grzeschik
2012-11-14 16:19 ` Michael Grzeschik
2012-11-26 9:29 ` Peter Chen
2012-11-26 9:29 ` Peter Chen
2012-11-26 10:22 ` Sascha Hauer
2012-11-26 10:22 ` Sascha Hauer
2012-11-27 6:50 ` Peter Chen
2012-11-27 6:50 ` Peter Chen
2012-11-27 7:34 ` Sascha Hauer
2012-11-27 7:34 ` Sascha Hauer
2012-11-14 16:19 ` [PATCH 3/9] usb: chipidea: ci13xxx-imx: create dynamic platformdata Michael Grzeschik
2012-11-14 16:19 ` Michael Grzeschik
2012-11-16 10:14 ` Alexander Shishkin
2012-11-16 10:14 ` Alexander Shishkin
2012-11-16 10:19 ` Marc Kleine-Budde
2012-11-16 10:19 ` Marc Kleine-Budde
2012-11-16 12:06 ` Alexander Shishkin
2012-11-16 12:06 ` Alexander Shishkin
2012-11-14 16:19 ` [PATCH 4/9] usb: chipidea: ci13xxx-imx: add "dr_mode" property to device tree bindings Michael Grzeschik
2012-11-14 16:19 ` Michael Grzeschik
2012-11-16 11:53 ` Alexander Shishkin
2012-11-16 11:53 ` Alexander Shishkin
2012-11-16 11:55 ` Marc Kleine-Budde
2012-11-16 11:55 ` Marc Kleine-Budde
2012-11-26 9:46 ` Peter Chen
2012-11-26 9:46 ` Peter Chen
2012-11-29 12:54 ` Alexander Shishkin
2012-11-29 12:54 ` Alexander Shishkin
2012-11-14 16:19 ` [PATCH 5/9] usb: add phy connection by phy-mode Michael Grzeschik
2012-11-14 16:19 ` Michael Grzeschik
2012-11-16 9:25 ` Alexander Shishkin
2012-11-16 9:25 ` Alexander Shishkin
2012-11-16 11:28 ` Felipe Balbi
2012-11-16 11:28 ` Felipe Balbi
2012-11-16 11:31 ` Felipe Balbi [this message]
2012-11-16 11:31 ` Felipe Balbi
2012-11-16 11:44 ` Marc Kleine-Budde
2012-11-16 11:44 ` Marc Kleine-Budde
2012-11-16 13:41 ` Felipe Balbi
2012-11-16 13:41 ` Felipe Balbi
2012-11-16 14:32 ` Marc Kleine-Budde
2012-11-16 14:32 ` Marc Kleine-Budde
2012-11-26 9:56 ` Peter Chen
2012-11-26 9:56 ` Peter Chen
2012-11-14 16:19 ` [PATCH 6/9] usb: chipidea: add PTW and PTS handling Michael Grzeschik
2012-11-14 16:19 ` Michael Grzeschik
2012-11-16 12:18 ` Alexander Shishkin
2012-11-16 12:18 ` Alexander Shishkin
2012-11-16 12:45 ` Alexander Shishkin
2012-11-16 12:45 ` Alexander Shishkin
2012-11-16 13:16 ` Michael Grzeschik
2012-11-16 13:16 ` Michael Grzeschik
2012-11-16 13:34 ` Alexander Shishkin
2012-11-16 13:34 ` Alexander Shishkin
2012-11-16 13:57 ` Michael Grzeschik
2012-11-16 13:57 ` Michael Grzeschik
2012-11-16 14:06 ` Alexander Shishkin
2012-11-16 14:06 ` Alexander Shishkin
2012-11-16 14:46 ` Matthieu CASTET
2012-11-16 14:46 ` Matthieu CASTET
2012-11-16 15:39 ` Alexander Shishkin
2012-11-16 15:39 ` Alexander Shishkin
2012-11-21 15:57 ` Michael Grzeschik
2012-11-21 15:57 ` Michael Grzeschik
2012-11-21 16:06 ` Matthieu CASTET
2012-11-21 16:06 ` Matthieu CASTET
2012-11-27 1:12 ` Peter Chen
2012-11-27 1:12 ` Peter Chen
2012-11-27 9:54 ` Michael Grzeschik
2012-11-27 9:54 ` Michael Grzeschik
2012-11-28 1:26 ` Peter Chen
2012-11-28 1:26 ` Peter Chen
2012-11-14 16:19 ` [PATCH 7/9] usb: chipidea: udc: add force-full-speed option Michael Grzeschik
2012-11-14 16:19 ` Michael Grzeschik
2012-11-16 12:51 ` Alexander Shishkin
2012-11-16 12:51 ` Alexander Shishkin
2012-11-16 14:53 ` Matthieu CASTET
2012-11-16 14:53 ` Matthieu CASTET
2012-11-14 16:19 ` [PATCH 8/9] usb: chipidea: udc: remove unlocked ep_queue which can lead to an race Michael Grzeschik
2012-11-14 16:19 ` Michael Grzeschik
2012-11-16 12:55 ` Alexander Shishkin
2012-11-16 12:55 ` Alexander Shishkin
2012-11-14 16:19 ` [PATCH 9/9] usb: chipidea: udc: configure iso endpoints Michael Grzeschik
2012-11-14 16:19 ` Michael Grzeschik
2012-11-14 18:04 ` Sergei Shtylyov
2012-11-14 18:04 ` Sergei Shtylyov
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=20121116113149.GC17793@arwen.pp.htv.fi \
--to=balbi@ti.com \
--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.