From: Roger Quadros <rogerq@ti.com> To: <peter.chen@freescale.com> Cc: <balbi@kernel.org>, <tony@atomide.com>, <gregkh@linuxfoundation.org>, <dan.j.williams@intel.com>, <mathias.nyman@linux.intel.com>, <Joao.Pinto@synopsys.com>, <sergei.shtylyov@cogentembedded.com>, <jun.li@freescale.com>, <grygorii.strashko@ti.com>, <yoshihiro.shimoda.uh@renesas.com>, <robh@kernel.org>, <nsekhar@ti.com>, <b-liu@ti.com>, <joe@perches.com>, <linux-usb@vger.kernel.org>, <linux-omap@vger.kernel.org>, <linux-kernel@vger.kernel.org>, <devicetree@vger.kernel.org>, Roger Quadros <rogerq@ti.com> Subject: [PATCH v10 09/14] usb: of: add an API to get OTG device from USB controller node Date: Fri, 10 Jun 2016 16:07:18 +0300 [thread overview] Message-ID: <1465564043-27163-10-git-send-email-rogerq@ti.com> (raw) In-Reply-To: <1465564043-27163-1-git-send-email-rogerq@ti.com> The OTG controller and the USB controller can be linked via the 'otg-controller' property in the USB controller's device node. of_usb_get_otg() can be used to get the OTG controller device from the USB controller's device node. Signed-off-by: Roger Quadros <rogerq@ti.com> Acked-by: Peter Chen <peter.chen@nxp.com> Acked-by: Rob Herring <robh@kernel.org> --- Documentation/devicetree/bindings/usb/generic.txt | 3 +++ drivers/usb/common/common.c | 27 +++++++++++++++++++++++ include/linux/usb/of.h | 9 ++++++++ 3 files changed, 39 insertions(+) diff --git a/Documentation/devicetree/bindings/usb/generic.txt b/Documentation/devicetree/bindings/usb/generic.txt index bba8257..f6866c1 100644 --- a/Documentation/devicetree/bindings/usb/generic.txt +++ b/Documentation/devicetree/bindings/usb/generic.txt @@ -24,6 +24,9 @@ Optional properties: optional for OTG device. - adp-disable: tells OTG controllers we want to disable OTG ADP, ADP is optional for OTG device. + - otg-controller: phandle to otg controller. Host or gadget controllers can + contain this property to link it to a particular OTG + controller. This is an attribute to a USB controller such as: diff --git a/drivers/usb/common/common.c b/drivers/usb/common/common.c index e3d0161..d7ec471 100644 --- a/drivers/usb/common/common.c +++ b/drivers/usb/common/common.c @@ -238,6 +238,33 @@ int of_usb_update_otg_caps(struct device_node *np, } EXPORT_SYMBOL_GPL(of_usb_update_otg_caps); +#ifdef CONFIG_USB_OTG +/** + * of_usb_get_otg - get the OTG controller linked to the USB controller + * @np: Pointer to the device_node of the USB controller + * @otg_caps: Pointer to the target usb_otg_caps to be set + * + * Returns the OTG controller device or NULL on error. + */ +struct device *of_usb_get_otg(struct device_node *np) +{ + struct device_node *otg_np; + struct platform_device *pdev; + + otg_np = of_parse_phandle(np, "otg-controller", 0); + if (!otg_np) + return NULL; + + pdev = of_find_device_by_node(otg_np); + of_node_put(otg_np); + if (!pdev) + return NULL; + + return &pdev->dev; +} +EXPORT_SYMBOL_GPL(of_usb_get_otg); +#endif + #endif MODULE_LICENSE("GPL"); diff --git a/include/linux/usb/of.h b/include/linux/usb/of.h index de3237f..499a4e8 100644 --- a/include/linux/usb/of.h +++ b/include/linux/usb/of.h @@ -40,6 +40,15 @@ static inline struct device_node *usb_of_get_child_node } #endif +#if IS_ENABLED(CONFIG_OF) && IS_ENABLED(CONFIG_USB_OTG) +struct device *of_usb_get_otg(struct device_node *np); +#else +static inline struct device *of_usb_get_otg(struct device_node *np) +{ + return NULL; +} +#endif + #if IS_ENABLED(CONFIG_OF) && IS_ENABLED(CONFIG_USB_SUPPORT) enum usb_phy_interface of_usb_get_phy_mode(struct device_node *np); #else -- 2.7.4
WARNING: multiple messages have this Message-ID (diff)
From: Roger Quadros <rogerq@ti.com> To: peter.chen@freescale.com Cc: balbi@kernel.org, tony@atomide.com, gregkh@linuxfoundation.org, dan.j.williams@intel.com, mathias.nyman@linux.intel.com, Joao.Pinto@synopsys.com, sergei.shtylyov@cogentembedded.com, jun.li@freescale.com, grygorii.strashko@ti.com, yoshihiro.shimoda.uh@renesas.com, robh@kernel.org, nsekhar@ti.com, b-liu@ti.com, joe@perches.com, linux-usb@vger.kernel.org, linux-omap@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Roger Quadros <rogerq@ti.com> Subject: [PATCH v10 09/14] usb: of: add an API to get OTG device from USB controller node Date: Fri, 10 Jun 2016 16:07:18 +0300 [thread overview] Message-ID: <1465564043-27163-10-git-send-email-rogerq@ti.com> (raw) In-Reply-To: <1465564043-27163-1-git-send-email-rogerq@ti.com> The OTG controller and the USB controller can be linked via the 'otg-controller' property in the USB controller's device node. of_usb_get_otg() can be used to get the OTG controller device from the USB controller's device node. Signed-off-by: Roger Quadros <rogerq@ti.com> Acked-by: Peter Chen <peter.chen@nxp.com> Acked-by: Rob Herring <robh@kernel.org> --- Documentation/devicetree/bindings/usb/generic.txt | 3 +++ drivers/usb/common/common.c | 27 +++++++++++++++++++++++ include/linux/usb/of.h | 9 ++++++++ 3 files changed, 39 insertions(+) diff --git a/Documentation/devicetree/bindings/usb/generic.txt b/Documentation/devicetree/bindings/usb/generic.txt index bba8257..f6866c1 100644 --- a/Documentation/devicetree/bindings/usb/generic.txt +++ b/Documentation/devicetree/bindings/usb/generic.txt @@ -24,6 +24,9 @@ Optional properties: optional for OTG device. - adp-disable: tells OTG controllers we want to disable OTG ADP, ADP is optional for OTG device. + - otg-controller: phandle to otg controller. Host or gadget controllers can + contain this property to link it to a particular OTG + controller. This is an attribute to a USB controller such as: diff --git a/drivers/usb/common/common.c b/drivers/usb/common/common.c index e3d0161..d7ec471 100644 --- a/drivers/usb/common/common.c +++ b/drivers/usb/common/common.c @@ -238,6 +238,33 @@ int of_usb_update_otg_caps(struct device_node *np, } EXPORT_SYMBOL_GPL(of_usb_update_otg_caps); +#ifdef CONFIG_USB_OTG +/** + * of_usb_get_otg - get the OTG controller linked to the USB controller + * @np: Pointer to the device_node of the USB controller + * @otg_caps: Pointer to the target usb_otg_caps to be set + * + * Returns the OTG controller device or NULL on error. + */ +struct device *of_usb_get_otg(struct device_node *np) +{ + struct device_node *otg_np; + struct platform_device *pdev; + + otg_np = of_parse_phandle(np, "otg-controller", 0); + if (!otg_np) + return NULL; + + pdev = of_find_device_by_node(otg_np); + of_node_put(otg_np); + if (!pdev) + return NULL; + + return &pdev->dev; +} +EXPORT_SYMBOL_GPL(of_usb_get_otg); +#endif + #endif MODULE_LICENSE("GPL"); diff --git a/include/linux/usb/of.h b/include/linux/usb/of.h index de3237f..499a4e8 100644 --- a/include/linux/usb/of.h +++ b/include/linux/usb/of.h @@ -40,6 +40,15 @@ static inline struct device_node *usb_of_get_child_node } #endif +#if IS_ENABLED(CONFIG_OF) && IS_ENABLED(CONFIG_USB_OTG) +struct device *of_usb_get_otg(struct device_node *np); +#else +static inline struct device *of_usb_get_otg(struct device_node *np) +{ + return NULL; +} +#endif + #if IS_ENABLED(CONFIG_OF) && IS_ENABLED(CONFIG_USB_SUPPORT) enum usb_phy_interface of_usb_get_phy_mode(struct device_node *np); #else -- 2.7.4
next prev parent reply other threads:[~2016-06-10 13:08 UTC|newest] Thread overview: 159+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-06-10 13:07 [PATCH v10 00/14] USB OTG/dual-role framework Roger Quadros 2016-06-10 13:07 ` Roger Quadros 2016-06-10 13:07 ` [PATCH v10 01/14] usb: hcd: Initialize hcd->flags to 0 Roger Quadros 2016-06-10 13:07 ` Roger Quadros 2016-06-14 8:16 ` Roger Quadros 2016-06-14 8:16 ` Roger Quadros 2016-06-10 13:07 ` [PATCH v10 02/14] usb: otg-fsm: Prevent build warning "VDBG" redefined Roger Quadros 2016-06-10 13:07 ` Roger Quadros 2016-06-10 13:07 ` [PATCH v10 03/14] usb: hcd.h: Add OTG to HCD interface Roger Quadros 2016-06-10 13:07 ` Roger Quadros 2016-06-14 8:17 ` Roger Quadros 2016-06-14 8:17 ` Roger Quadros 2016-06-14 14:21 ` Alan Stern 2016-06-14 14:21 ` Alan Stern 2016-06-15 7:14 ` Roger Quadros 2016-06-15 7:14 ` Roger Quadros 2016-06-10 13:07 ` [PATCH v10 04/14] usb: otg-fsm: use usb_otg wherever possible Roger Quadros 2016-06-10 13:07 ` Roger Quadros 2016-06-10 13:07 ` [PATCH v10 05/14] usb: otg-fsm: move host controller operations into usb_otg->hcd_ops Roger Quadros 2016-06-10 13:07 ` Roger Quadros 2016-06-10 13:07 ` [PATCH v10 06/14] usb: gadget.h: Add OTG to gadget interface Roger Quadros 2016-06-10 13:07 ` Roger Quadros 2016-06-12 9:13 ` Peter Chen 2016-06-20 7:21 ` Felipe Balbi 2016-06-20 7:21 ` Felipe Balbi 2016-06-20 7:28 ` Roger Quadros 2016-06-20 7:28 ` Roger Quadros 2016-06-20 8:13 ` Felipe Balbi 2016-06-20 8:13 ` Felipe Balbi 2016-06-20 8:25 ` Roger Quadros 2016-06-20 8:25 ` Roger Quadros 2016-06-20 9:24 ` Felipe Balbi 2016-06-20 9:24 ` Felipe Balbi 2016-06-20 9:43 ` Roger Quadros 2016-06-20 9:43 ` Roger Quadros 2016-06-10 13:07 ` [PATCH v10 07/14] usb: otg: get rid of CONFIG_USB_OTG_FSM in favour of CONFIG_USB_OTG Roger Quadros 2016-06-10 13:07 ` Roger Quadros 2016-06-10 13:07 ` [PATCH v10 08/14] usb: otg: add OTG/dual-role core Roger Quadros 2016-06-10 13:07 ` Roger Quadros 2016-06-12 11:21 ` Peter Chen 2016-06-12 11:21 ` Peter Chen 2016-06-13 7:42 ` Roger Quadros 2016-06-13 7:42 ` Roger Quadros 2016-06-13 7:56 ` [PATCH v11 " Roger Quadros 2016-06-13 7:56 ` Roger Quadros 2016-06-13 7:58 ` Peter Chen 2016-06-20 7:45 ` Felipe Balbi 2016-06-20 7:45 ` Felipe Balbi 2016-06-20 10:13 ` Roger Quadros 2016-06-20 10:13 ` Roger Quadros 2016-06-20 12:03 ` Felipe Balbi 2016-06-20 12:26 ` Roger Quadros 2016-06-20 12:26 ` Roger Quadros 2016-06-20 12:46 ` Felipe Balbi 2016-06-21 6:39 ` Peter Chen 2016-06-21 7:19 ` Felipe Balbi 2016-06-21 7:19 ` Felipe Balbi 2016-06-21 8:02 ` Peter Chen 2016-06-21 8:18 ` Felipe Balbi 2016-06-21 8:18 ` Felipe Balbi 2016-06-21 9:14 ` Peter Chen 2016-06-21 9:14 ` Peter Chen 2016-06-21 12:35 ` Felipe Balbi 2016-06-21 12:35 ` Felipe Balbi 2016-06-21 13:12 ` Peter Chen 2016-06-21 14:47 ` Felipe Balbi 2016-06-22 3:33 ` Peter Chen 2016-06-22 3:33 ` Peter Chen 2016-06-22 6:51 ` Felipe Balbi 2016-06-22 6:51 ` Felipe Balbi 2016-06-22 7:30 ` Peter Chen 2016-06-22 7:30 ` Peter Chen 2016-06-22 8:00 ` Felipe Balbi 2016-06-22 8:00 ` Felipe Balbi 2016-06-23 7:41 ` Yoshihiro Shimoda 2016-06-23 7:41 ` Yoshihiro Shimoda 2016-06-21 2:30 ` Yoshihiro Shimoda 2016-06-21 2:30 ` Yoshihiro Shimoda 2016-06-21 7:21 ` Felipe Balbi 2016-06-21 7:21 ` Felipe Balbi 2016-06-20 11:49 ` Peter Chen 2016-06-20 11:49 ` Peter Chen 2016-06-20 12:08 ` Felipe Balbi 2016-06-20 12:08 ` Felipe Balbi 2016-06-21 6:05 ` Peter Chen 2016-06-21 7:26 ` Felipe Balbi 2016-06-21 7:26 ` Felipe Balbi 2016-06-21 9:07 ` Peter Chen 2016-06-21 9:07 ` Peter Chen 2016-06-21 10:02 ` Felipe Balbi 2016-06-21 10:43 ` Tony Lindgren 2016-06-21 10:43 ` Tony Lindgren 2016-06-21 10:56 ` Felipe Balbi 2016-06-21 13:05 ` Peter Chen 2016-06-21 13:05 ` Peter Chen 2016-06-22 6:56 ` Felipe Balbi 2016-06-22 6:56 ` Felipe Balbi 2016-06-22 7:33 ` Peter Chen 2016-06-22 8:03 ` Felipe Balbi 2016-06-22 7:49 ` Roger Quadros 2016-06-22 7:49 ` Roger Quadros 2016-06-22 8:14 ` Felipe Balbi 2016-06-22 8:30 ` Roger Quadros 2016-06-22 8:30 ` Roger Quadros 2017-01-19 11:56 ` Vivek Gautam 2017-01-19 12:15 ` Roger Quadros 2017-01-19 12:15 ` Roger Quadros 2017-01-19 15:15 ` vivek.gautam 2017-01-20 8:30 ` Roger Quadros 2017-01-20 8:30 ` Roger Quadros 2017-01-20 11:39 ` Vivek Gautam 2016-06-23 7:42 ` Yoshihiro Shimoda 2016-06-23 7:42 ` Yoshihiro Shimoda 2016-06-10 13:07 ` Roger Quadros [this message] 2016-06-10 13:07 ` [PATCH v10 09/14] usb: of: add an API to get OTG device from USB controller node Roger Quadros 2016-06-13 8:13 ` Jun Li 2016-06-13 8:13 ` Jun Li 2016-06-13 8:16 ` Roger Quadros 2016-06-13 8:16 ` Roger Quadros 2016-06-13 8:23 ` [PATCH v11 " Roger Quadros 2016-06-13 8:23 ` Roger Quadros 2016-06-10 13:07 ` [PATCH v10 10/14] usb: otg: add hcd companion support Roger Quadros 2016-06-10 13:07 ` Roger Quadros 2016-06-10 13:07 ` [PATCH v10 11/14] usb: otg: use dev_vdbg() instead of VDBG() Roger Quadros 2016-06-10 13:07 ` Roger Quadros 2016-06-10 13:07 ` [PATCH v10 12/14] usb: hcd: Adapt to OTG core Roger Quadros 2016-06-10 13:07 ` Roger Quadros 2016-06-14 8:17 ` Roger Quadros 2016-06-14 8:17 ` Roger Quadros 2016-06-10 13:07 ` [PATCH v10 13/14] usb: gadget: udc: adapt " Roger Quadros 2016-06-10 13:07 ` Roger Quadros 2016-06-12 11:36 ` Peter Chen 2016-06-12 11:36 ` Peter Chen 2016-06-13 7:14 ` Roger Quadros 2016-06-13 7:14 ` Roger Quadros 2016-06-13 7:20 ` Peter Chen 2016-06-13 7:20 ` Peter Chen 2016-06-13 7:37 ` Roger Quadros 2016-06-13 7:37 ` Roger Quadros 2016-06-13 7:40 ` Peter Chen 2016-06-13 7:40 ` Peter Chen 2016-06-13 7:55 ` [PATCH v11 " Roger Quadros 2016-06-13 7:55 ` Roger Quadros 2016-06-13 7:56 ` Peter Chen 2016-06-13 8:06 ` Roger Quadros 2016-06-13 8:06 ` Roger Quadros 2016-06-10 13:07 ` [PATCH v10 14/14] usb: host: xhci-plat: Add otg device to platform data Roger Quadros 2016-06-10 13:07 ` Roger Quadros 2016-06-14 8:18 ` Roger Quadros 2016-06-14 8:18 ` Roger Quadros 2016-06-14 2:17 ` [PATCH v10 00/14] USB OTG/dual-role framework Peter Chen 2016-06-14 8:12 ` Roger Quadros 2016-06-14 8:12 ` Roger Quadros 2016-06-16 11:07 ` Roger Quadros 2016-06-16 11:07 ` Roger Quadros 2016-06-17 7:17 ` Felipe Balbi 2016-06-17 7:17 ` Felipe Balbi 2016-06-17 7:31 ` Roger Quadros 2016-06-17 7:31 ` Roger Quadros
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=1465564043-27163-10-git-send-email-rogerq@ti.com \ --to=rogerq@ti.com \ --cc=Joao.Pinto@synopsys.com \ --cc=b-liu@ti.com \ --cc=balbi@kernel.org \ --cc=dan.j.williams@intel.com \ --cc=devicetree@vger.kernel.org \ --cc=gregkh@linuxfoundation.org \ --cc=grygorii.strashko@ti.com \ --cc=joe@perches.com \ --cc=jun.li@freescale.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-omap@vger.kernel.org \ --cc=linux-usb@vger.kernel.org \ --cc=mathias.nyman@linux.intel.com \ --cc=nsekhar@ti.com \ --cc=peter.chen@freescale.com \ --cc=robh@kernel.org \ --cc=sergei.shtylyov@cogentembedded.com \ --cc=tony@atomide.com \ --cc=yoshihiro.shimoda.uh@renesas.com \ /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: linkBe 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.