From: Vivek Gautam <gautam.vivek@samsung.com> To: linux-usb@vger.kernel.org, linux-samsung-soc@vger.kernel.org, gregkh@linuxfoundation.org, kishon@ti.com, mathias.nyman@intel.com Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kgene.kim@samsung.com, jwerner@chromium.org, Vivek Gautam <gautam.vivek@samsung.com> Subject: [PATCH 2/4] usb: host: xhci-plat: Add support to get PHYs Date: Fri, 6 Jun 2014 17:42:13 +0530 [thread overview] Message-ID: <1402056736-12674-3-git-send-email-gautam.vivek@samsung.com> (raw) In-Reply-To: <1402056736-12674-1-git-send-email-gautam.vivek@samsung.com> The host controller by itself may sometimes need to handle PHY and/or calibrate some of the PHY settings to get full support out of the PHY controller. The PHY core provides a calibration funtionality now to do so. Therefore, facilitate getting the two possible PHY types for xhci controller, viz. USB 2.0 type (UTMI+) and USB 3.0 type (PIPE3) from its parent. Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com> --- drivers/usb/host/xhci-plat.c | 24 ++++++++++++++++++++++++ drivers/usb/host/xhci.h | 3 +++ 2 files changed, 27 insertions(+) diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c index 29d8adb..e7145b5 100644 --- a/drivers/usb/host/xhci-plat.c +++ b/drivers/usb/host/xhci-plat.c @@ -17,6 +17,7 @@ #include <linux/of.h> #include <linux/platform_device.h> #include <linux/slab.h> +#include <linux/phy/phy.h> #include "xhci.h" #include "xhci-mvebu.h" @@ -183,6 +184,29 @@ static int xhci_plat_probe(struct platform_device *pdev) } /* + * Get possile USB 2.0 type PHY (UTMI+), as well as + * USB 3.0 type PHY (PIPE3). + * The host controller may need to handle PHYs by itself too + * sometimes, so as to calibrate it based on the need. + */ + xhci->phy2_gen = devm_phy_get(&pdev->dev, "usb2-phy"); + if (IS_ERR(xhci->phy2_gen)) { + ret = PTR_ERR(xhci->phy2_gen); + if (ret != -ENOSYS && ret != -ENODEV) { + dev_err(&pdev->dev, "no usb2 phy configured\n"); + return ret; + } + } + xhci->phy3_gen = devm_phy_get(&pdev->dev, "usb3-phy"); + if (IS_ERR(xhci->phy3_gen)) { + ret = PTR_ERR(xhci->phy3_gen); + if (ret != -ENOSYS && ret != -ENODEV) { + dev_err(&pdev->dev, "no usb3 phy configured\n"); + return ret; + } + } + + /* * Set the xHCI pointer before xhci_plat_setup() (aka hcd_driver.reset) * is called by usb_add_hcd(). */ diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h index 9ffecd5..453d89e 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h @@ -1582,6 +1582,9 @@ struct xhci_hcd { u32 port_status_u0; /* Compliance Mode Timer Triggered every 2 seconds */ #define COMP_MODE_RCVRY_MSECS 2000 + /* phys for the controller */ + struct phy *phy2_gen; + struct phy *phy3_gen; }; /* convert between an HCD pointer and the corresponding EHCI_HCD */ -- 1.7.10.4
WARNING: multiple messages have this Message-ID (diff)
From: gautam.vivek@samsung.com (Vivek Gautam) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 2/4] usb: host: xhci-plat: Add support to get PHYs Date: Fri, 6 Jun 2014 17:42:13 +0530 [thread overview] Message-ID: <1402056736-12674-3-git-send-email-gautam.vivek@samsung.com> (raw) In-Reply-To: <1402056736-12674-1-git-send-email-gautam.vivek@samsung.com> The host controller by itself may sometimes need to handle PHY and/or calibrate some of the PHY settings to get full support out of the PHY controller. The PHY core provides a calibration funtionality now to do so. Therefore, facilitate getting the two possible PHY types for xhci controller, viz. USB 2.0 type (UTMI+) and USB 3.0 type (PIPE3) from its parent. Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com> --- drivers/usb/host/xhci-plat.c | 24 ++++++++++++++++++++++++ drivers/usb/host/xhci.h | 3 +++ 2 files changed, 27 insertions(+) diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c index 29d8adb..e7145b5 100644 --- a/drivers/usb/host/xhci-plat.c +++ b/drivers/usb/host/xhci-plat.c @@ -17,6 +17,7 @@ #include <linux/of.h> #include <linux/platform_device.h> #include <linux/slab.h> +#include <linux/phy/phy.h> #include "xhci.h" #include "xhci-mvebu.h" @@ -183,6 +184,29 @@ static int xhci_plat_probe(struct platform_device *pdev) } /* + * Get possile USB 2.0 type PHY (UTMI+), as well as + * USB 3.0 type PHY (PIPE3). + * The host controller may need to handle PHYs by itself too + * sometimes, so as to calibrate it based on the need. + */ + xhci->phy2_gen = devm_phy_get(&pdev->dev, "usb2-phy"); + if (IS_ERR(xhci->phy2_gen)) { + ret = PTR_ERR(xhci->phy2_gen); + if (ret != -ENOSYS && ret != -ENODEV) { + dev_err(&pdev->dev, "no usb2 phy configured\n"); + return ret; + } + } + xhci->phy3_gen = devm_phy_get(&pdev->dev, "usb3-phy"); + if (IS_ERR(xhci->phy3_gen)) { + ret = PTR_ERR(xhci->phy3_gen); + if (ret != -ENOSYS && ret != -ENODEV) { + dev_err(&pdev->dev, "no usb3 phy configured\n"); + return ret; + } + } + + /* * Set the xHCI pointer before xhci_plat_setup() (aka hcd_driver.reset) * is called by usb_add_hcd(). */ diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h index 9ffecd5..453d89e 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h @@ -1582,6 +1582,9 @@ struct xhci_hcd { u32 port_status_u0; /* Compliance Mode Timer Triggered every 2 seconds */ #define COMP_MODE_RCVRY_MSECS 2000 + /* phys for the controller */ + struct phy *phy2_gen; + struct phy *phy3_gen; }; /* convert between an HCD pointer and the corresponding EHCI_HCD */ -- 1.7.10.4
next prev parent reply other threads:[~2014-06-06 12:12 UTC|newest] Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top 2014-06-06 12:12 [PATCH v1 0/4] Fine tune USB 3.0 PHY on exynos5420 Vivek Gautam 2014-06-06 12:12 ` Vivek Gautam 2014-06-06 12:12 ` Vivek Gautam 2014-06-06 12:12 ` [PATCH 1/4] phy: Add provision for calibrating phy Vivek Gautam 2014-06-06 12:12 ` Vivek Gautam 2014-06-09 3:49 ` Pratyush Anand 2014-06-09 3:49 ` Pratyush Anand 2014-06-09 3:49 ` Pratyush Anand 2014-07-09 9:02 ` Vivek Gautam 2014-07-09 9:02 ` Vivek Gautam 2014-07-09 9:02 ` Vivek Gautam 2014-06-06 12:12 ` Vivek Gautam [this message] 2014-06-06 12:12 ` [PATCH 2/4] usb: host: xhci-plat: Add support to get PHYs Vivek Gautam 2014-06-09 20:22 ` Julius Werner 2014-06-09 20:22 ` Julius Werner 2014-06-09 20:22 ` Julius Werner 2014-06-24 6:10 ` Vivek Gautam 2014-06-24 6:10 ` Vivek Gautam 2014-06-24 6:10 ` Vivek Gautam 2014-06-24 22:34 ` Sergei Shtylyov 2014-06-24 22:34 ` Sergei Shtylyov 2014-06-24 22:34 ` Sergei Shtylyov 2014-06-25 5:49 ` Vivek Gautam 2014-06-25 5:49 ` Vivek Gautam 2014-06-25 5:49 ` Vivek Gautam 2014-06-25 8:44 ` Vivek Gautam 2014-06-25 8:44 ` Vivek Gautam 2014-06-25 8:44 ` Vivek Gautam 2014-07-03 22:39 ` Sergei Shtylyov 2014-07-03 22:39 ` Sergei Shtylyov 2014-07-03 22:39 ` Sergei Shtylyov 2014-06-06 12:12 ` [PATCH 3/4] usb: host: xhci-plat: Caibrate PHY post host reset Vivek Gautam 2014-06-06 12:12 ` Vivek Gautam 2014-06-06 12:12 ` [PATCH 4/4] phy: exynos5-usbdrd: Calibrate LOS levels for exynos5420/5800 Vivek Gautam 2014-06-06 12:12 ` Vivek Gautam
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=1402056736-12674-3-git-send-email-gautam.vivek@samsung.com \ --to=gautam.vivek@samsung.com \ --cc=gregkh@linuxfoundation.org \ --cc=jwerner@chromium.org \ --cc=kgene.kim@samsung.com \ --cc=kishon@ti.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-samsung-soc@vger.kernel.org \ --cc=linux-usb@vger.kernel.org \ --cc=mathias.nyman@intel.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.