public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v8 0/6] Extend xhci-dwc3
@ 2017-07-24  9:44 patrice.chotard at st.com
  2017-07-24  9:44 ` [U-Boot] [PATCH v8 1/6] usb: host: xhci-dwc3: Convert driver to DM patrice.chotard at st.com
                   ` (6 more replies)
  0 siblings, 7 replies; 11+ messages in thread
From: patrice.chotard at st.com @ 2017-07-24  9:44 UTC (permalink / raw)
  To: u-boot

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="windows-1254", Size: 1739 bytes --]

From: Patrice Chotard <patrice.chotard@st.com>

This series extend xhci-dwc3.c drivers by :
	_ converting it to DM model,
	_ adding dual role mode support from DT
	_ adding new generic_phy_valid() method in PHY framework
	_ adding support of generic PHY framework


v8:	_ Add CONFIG_DM_USB flag in path 1 to fix compilation issue for platforms
	  which uses xhci-dwc3 driver and doesn't support yet driver model
	_ add PHY stub functions in patch 5 to fix compilation issue for platforms
	  which uses xhci-dwc3 driver and doesn't support generic PHY framework
	_ fix bisection issue with patch 1 reported by Łukasz Majewski, move struct 
	  xhci_dwc3_platdata in patch 6 to fix it.
v7:	_ add Reviewed-by in patch 1
	_ declare bool generic_phy_valid(struct phy *phy) as static inline in
	  patch 4
v6:	_ remove useless struct xhci_dwc3 in patch 1
v5:	_ rebase on top of dm/master in order to use the last livetree update
	_ replace dev_get_addr() by devfdt_get_addr() in patch 1
v4:	_ set phy->dev to NULL in case of generic_phy_get_by_index()
v3:	_ introduce generic_phy_valid() method 
	_ add Reviewed-by
v2:	_ use dev_get_addr() in PATCH 1 and removed useless piece of code

Patrice Chotard (6):
  usb: host: xhci-dwc3: Convert driver to DM
  usb: host: xhci-dwc3: Add dual role mode support from DT
  drivers: phy: Set phy->dev to NULL when generic_phy_get_by_index()
    fails
  drivers: phy: add generic_phy_valid() method
  dm: phy: add PHY stub function
  usb: host: xhci-dwc3: Add generic PHY support

 drivers/phy/phy-uclass.c     |  1 +
 drivers/usb/host/xhci-dwc3.c | 89 ++++++++++++++++++++++++++++++++++++++++++++
 include/generic-phy.h        | 53 ++++++++++++++++++++++++++
 3 files changed, 143 insertions(+)

-- 
1.9.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH v8 1/6] usb: host: xhci-dwc3: Convert driver to DM
  2017-07-24  9:44 [U-Boot] [PATCH v8 0/6] Extend xhci-dwc3 patrice.chotard at st.com
@ 2017-07-24  9:44 ` patrice.chotard at st.com
  2017-08-06  5:15   ` Simon Glass
  2017-07-24  9:44 ` [U-Boot] [PATCH v8 2/6] usb: host: xhci-dwc3: Add dual role mode support from DT patrice.chotard at st.com
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 11+ messages in thread
From: patrice.chotard at st.com @ 2017-07-24  9:44 UTC (permalink / raw)
  To: u-boot

From: Patrice Chotard <patrice.chotard@st.com>

Add Driver Model support with use of generic DT
compatible string "snps,dwc3"

Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
---
v8:	_ Add CONFIG_DM_USB flag to fix compilation issue for platforms
	  which uses xhci-dwc3 driver and doesn't support yet driver model
	_ fix bisection issue with this patch reported by Łukasz Majewski, move struct 
	  xhci_dwc3_platdata in patch 6 to fix it.
v7:	_ add Reviewed-by
v6:	_ remove useless struct xhci_dwc3
v5:	_ replace dev_get_addr() by devfdt_get_addr()
v4:	_ none
v3:	_ none
v2:	_ use dev_get_addr() and removed useless piece of code

 drivers/usb/host/xhci-dwc3.c | 46 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/drivers/usb/host/xhci-dwc3.c b/drivers/usb/host/xhci-dwc3.c
index 33961cd..0411826 100644
--- a/drivers/usb/host/xhci-dwc3.c
+++ b/drivers/usb/host/xhci-dwc3.c
@@ -9,9 +9,15 @@
  */
 
 #include <common.h>
+#include <dm.h>
+#include <usb.h>
+
+#include "xhci.h"
 #include <asm/io.h>
 #include <linux/usb/dwc3.h>
 
+DECLARE_GLOBAL_DATA_PTR;
+
 void dwc3_set_mode(struct dwc3 *dwc3_reg, u32 mode)
 {
 	clrsetbits_le32(&dwc3_reg->g_ctl,
@@ -97,3 +103,43 @@ void dwc3_set_fladj(struct dwc3 *dwc3_reg, u32 val)
 	setbits_le32(&dwc3_reg->g_fladj, GFLADJ_30MHZ_REG_SEL |
 			GFLADJ_30MHZ(val));
 }
+
+#ifdef CONFIG_DM_USB
+static int xhci_dwc3_probe(struct udevice *dev)
+{
+	struct xhci_hcor *hcor;
+	struct xhci_hccr *hccr;
+	struct dwc3 *dwc3_reg;
+
+	hccr = (struct xhci_hccr *)devfdt_get_addr(dev);
+	hcor = (struct xhci_hcor *)((phys_addr_t)hccr +
+			HC_LENGTH(xhci_readl(&(hccr)->cr_capbase)));
+
+	dwc3_reg = (struct dwc3 *)((char *)(hccr) + DWC3_REG_OFFSET);
+
+	dwc3_core_init(dwc3_reg);
+
+	return xhci_register(dev, hccr, hcor);
+}
+
+static int xhci_dwc3_remove(struct udevice *dev)
+{
+	return xhci_deregister(dev);
+}
+
+static const struct udevice_id xhci_dwc3_ids[] = {
+	{ .compatible = "snps,dwc3" },
+	{ }
+};
+
+U_BOOT_DRIVER(xhci_dwc3) = {
+	.name = "xhci-dwc3",
+	.id = UCLASS_USB,
+	.of_match = xhci_dwc3_ids,
+	.probe = xhci_dwc3_probe,
+	.remove = xhci_dwc3_remove,
+	.ops = &xhci_usb_ops,
+	.priv_auto_alloc_size = sizeof(struct xhci_ctrl),
+	.flags = DM_FLAG_ALLOC_PRIV_DMA,
+};
+#endif
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH v8 2/6] usb: host: xhci-dwc3: Add dual role mode support from DT
  2017-07-24  9:44 [U-Boot] [PATCH v8 0/6] Extend xhci-dwc3 patrice.chotard at st.com
  2017-07-24  9:44 ` [U-Boot] [PATCH v8 1/6] usb: host: xhci-dwc3: Convert driver to DM patrice.chotard at st.com
@ 2017-07-24  9:44 ` patrice.chotard at st.com
  2017-07-24  9:44 ` [U-Boot] [PATCH v8 3/6] drivers: phy: Set phy->dev to NULL when generic_phy_get_by_index() fails patrice.chotard at st.com
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: patrice.chotard at st.com @ 2017-07-24  9:44 UTC (permalink / raw)
  To: u-boot

From: Patrice Chotard <patrice.chotard@st.com>

DWC3 dual role mode is selected using DT "dr_mode"
property. If not found, DWC3 controller is configured
in HOST mode by default

Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
---
v8: _ none
v7:	_ none
v6:	_ none
v5:	_ none
v4:	_ none
v3:	_ none
v2:	_ none

 drivers/usb/host/xhci-dwc3.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/usb/host/xhci-dwc3.c b/drivers/usb/host/xhci-dwc3.c
index 0411826..cab0c2a 100644
--- a/drivers/usb/host/xhci-dwc3.c
+++ b/drivers/usb/host/xhci-dwc3.c
@@ -15,6 +15,7 @@
 #include "xhci.h"
 #include <asm/io.h>
 #include <linux/usb/dwc3.h>
+#include <linux/usb/otg.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -110,6 +111,7 @@ static int xhci_dwc3_probe(struct udevice *dev)
 	struct xhci_hcor *hcor;
 	struct xhci_hccr *hccr;
 	struct dwc3 *dwc3_reg;
+	enum usb_dr_mode dr_mode;
 
 	hccr = (struct xhci_hccr *)devfdt_get_addr(dev);
 	hcor = (struct xhci_hcor *)((phys_addr_t)hccr +
@@ -119,6 +121,13 @@ static int xhci_dwc3_probe(struct udevice *dev)
 
 	dwc3_core_init(dwc3_reg);
 
+	dr_mode = usb_get_dr_mode(dev_of_offset(dev));
+	if (dr_mode == USB_DR_MODE_UNKNOWN)
+		/* by default set dual role mode to HOST */
+		dr_mode = USB_DR_MODE_HOST;
+
+	dwc3_set_mode(dwc3_reg, dr_mode);
+
 	return xhci_register(dev, hccr, hcor);
 }
 
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH v8 3/6] drivers: phy: Set phy->dev to NULL when generic_phy_get_by_index() fails
  2017-07-24  9:44 [U-Boot] [PATCH v8 0/6] Extend xhci-dwc3 patrice.chotard at st.com
  2017-07-24  9:44 ` [U-Boot] [PATCH v8 1/6] usb: host: xhci-dwc3: Convert driver to DM patrice.chotard at st.com
  2017-07-24  9:44 ` [U-Boot] [PATCH v8 2/6] usb: host: xhci-dwc3: Add dual role mode support from DT patrice.chotard at st.com
@ 2017-07-24  9:44 ` patrice.chotard at st.com
  2017-07-24  9:44 ` [U-Boot] [PATCH v8 4/6] drivers: phy: add generic_phy_valid() method patrice.chotard at st.com
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: patrice.chotard at st.com @ 2017-07-24  9:44 UTC (permalink / raw)
  To: u-boot

From: Patrice Chotard <patrice.chotard@st.com>

phy->dev need to be set to NULL in case of generic_phy_get_by_index()
fails. Then phy->dev can be used to check if the phy is valid

Reported-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
---

v8:	_ none
v7:	_ none
v6:	_ none
v5:	_ none
v4:	_ ensure that phy->dev is set to NULL in case of
	generic_phy_get_by_index() fails

 drivers/phy/phy-uclass.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/phy/phy-uclass.c b/drivers/phy/phy-uclass.c
index d8b8d58..68e518f 100644
--- a/drivers/phy/phy-uclass.c
+++ b/drivers/phy/phy-uclass.c
@@ -45,6 +45,7 @@ int generic_phy_get_by_index(struct udevice *dev, int index,
 	debug("%s(dev=%p, index=%d, phy=%p)\n", __func__, dev, index, phy);
 
 	assert(phy);
+	phy->dev = NULL;
 	ret = dev_read_phandle_with_args(dev, "phys", "#phy-cells", 0, index,
 					 &args);
 	if (ret) {
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH v8 4/6] drivers: phy: add generic_phy_valid() method
  2017-07-24  9:44 [U-Boot] [PATCH v8 0/6] Extend xhci-dwc3 patrice.chotard at st.com
                   ` (2 preceding siblings ...)
  2017-07-24  9:44 ` [U-Boot] [PATCH v8 3/6] drivers: phy: Set phy->dev to NULL when generic_phy_get_by_index() fails patrice.chotard at st.com
@ 2017-07-24  9:44 ` patrice.chotard at st.com
  2017-07-24  9:44 ` [U-Boot] [PATCH v8 5/6] dm: phy: add PHY stub function patrice.chotard at st.com
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: patrice.chotard at st.com @ 2017-07-24  9:44 UTC (permalink / raw)
  To: u-boot

From: Patrice Chotard <patrice.chotard@st.com>

This allow to check if a PHY has been correctly
initialised and avoid to get access to phy struct.

Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
---

v8:	_ none
v7:	_ declare bool generic_phy_valid(struct phy *phy) as static inline
v6:	_ none
v5:	_ none
v4:	_ none

 include/generic-phy.h | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/include/generic-phy.h b/include/generic-phy.h
index 762704c..58cd2b2 100644
--- a/include/generic-phy.h
+++ b/include/generic-phy.h
@@ -220,4 +220,15 @@ int generic_phy_get_by_index(struct udevice *user, int index,
 int generic_phy_get_by_name(struct udevice *user, const char *phy_name,
 			    struct phy *phy);
 
+/**
+ * generic_phy_valid() - check if PHY port is valid
+ *
+ * @phy:	the PHY port to check
+ * @return TRUE if valid, or FALSE
+ */
+static inline bool generic_phy_valid(struct phy *phy)
+{
+	return phy->dev != NULL;
+}
+
 #endif /*__GENERIC_PHY_H */
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH v8 5/6] dm: phy: add PHY stub function
  2017-07-24  9:44 [U-Boot] [PATCH v8 0/6] Extend xhci-dwc3 patrice.chotard at st.com
                   ` (3 preceding siblings ...)
  2017-07-24  9:44 ` [U-Boot] [PATCH v8 4/6] drivers: phy: add generic_phy_valid() method patrice.chotard at st.com
@ 2017-07-24  9:44 ` patrice.chotard at st.com
  2017-08-06  5:15   ` Simon Glass
  2017-07-24  9:44 ` [U-Boot] [PATCH v8 6/6] usb: host: xhci-dwc3: Add generic PHY support patrice.chotard at st.com
  2017-07-24 13:36 ` [U-Boot] [PATCH v8 0/6] Extend xhci-dwc3 Patrice CHOTARD
  6 siblings, 1 reply; 11+ messages in thread
From: patrice.chotard at st.com @ 2017-07-24  9:44 UTC (permalink / raw)
  To: u-boot

From: Patrice Chotard <patrice.chotard@st.com>

To avoid compilation breakage on platform that doesn't
support DM PHY but uses xhci-dwc3 driver, add PHY stub
functions.

Cc: Ran Wang <ran.wang_1@nxp.com>
Cc: Bin Meng <bmeng.cn@gmail.com>

Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
---

v8:	_ add genric PHY stub functions to avoid compilation issue
	for platforms which uses xhci-dwc3 driver and doesn't support
	generic PHY framework


 include/generic-phy.h | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/include/generic-phy.h b/include/generic-phy.h
index 58cd2b2..eac5adc 100644
--- a/include/generic-phy.h
+++ b/include/generic-phy.h
@@ -122,6 +122,7 @@ struct phy_ops {
 	int	(*power_off)(struct phy *phy);
 };
 
+#ifdef CONFIG_PHY
 
 /**
  * generic_phy_init() - initialize the PHY port
@@ -220,6 +221,47 @@ int generic_phy_get_by_index(struct udevice *user, int index,
 int generic_phy_get_by_name(struct udevice *user, const char *phy_name,
 			    struct phy *phy);
 
+#else /* CONFIG_PHY */
+
+static inline int generic_phy_init(struct phy *phy)
+{
+	return 0;
+}
+
+static inline int generic_phy_exit(struct phy *phy)
+{
+	return 0;
+}
+
+static inline int generic_phy_reset(struct phy *phy)
+{
+	return 0;
+}
+
+static inline int generic_phy_power_on(struct phy *phy)
+{
+	return 0;
+}
+
+static inline int generic_phy_power_off(struct phy *phy)
+{
+	return 0;
+}
+
+static inline int generic_phy_get_by_index(struct udevice *user, int index,
+			     struct phy *phy)
+{
+	return 0;
+}
+
+static inline int generic_phy_get_by_name(struct udevice *user, const char *phy_name,
+			    struct phy *phy)
+{
+	return 0;
+}
+
+#endif /* CONFIG_PHY */
+
 /**
  * generic_phy_valid() - check if PHY port is valid
  *
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH v8 6/6] usb: host: xhci-dwc3: Add generic PHY support
  2017-07-24  9:44 [U-Boot] [PATCH v8 0/6] Extend xhci-dwc3 patrice.chotard at st.com
                   ` (4 preceding siblings ...)
  2017-07-24  9:44 ` [U-Boot] [PATCH v8 5/6] dm: phy: add PHY stub function patrice.chotard at st.com
@ 2017-07-24  9:44 ` patrice.chotard at st.com
  2017-08-06  5:15   ` Simon Glass
  2017-07-24 13:36 ` [U-Boot] [PATCH v8 0/6] Extend xhci-dwc3 Patrice CHOTARD
  6 siblings, 1 reply; 11+ messages in thread
From: patrice.chotard at st.com @ 2017-07-24  9:44 UTC (permalink / raw)
  To: u-boot

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="windows-1254", Size: 2581 bytes --]

From: Patrice Chotard <patrice.chotard@st.com>

Add support of generic PHY framework support

Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
---

v8:	_ fix bisection issue with patch 1 reported by Łukasz Majewski, move struct 
	  xhci_dwc3_platdata in this patch to fix it.
v7:	_ none
v6:	_ none
v5:	_ none
v4:	_ none
v3:	_ use generic_phy_valid() method
v2:	_ none

 drivers/usb/host/xhci-dwc3.c | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/drivers/usb/host/xhci-dwc3.c b/drivers/usb/host/xhci-dwc3.c
index cab0c2a..4b2fe71 100644
--- a/drivers/usb/host/xhci-dwc3.c
+++ b/drivers/usb/host/xhci-dwc3.c
@@ -10,6 +10,8 @@
 
 #include <common.h>
 #include <dm.h>
+#include <fdtdec.h>
+#include <generic-phy.h>
 #include <usb.h>
 
 #include "xhci.h"
@@ -19,6 +21,10 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
+struct xhci_dwc3_platdata {
+	struct phy usb_phy;
+};
+
 void dwc3_set_mode(struct dwc3 *dwc3_reg, u32 mode)
 {
 	clrsetbits_le32(&dwc3_reg->g_ctl,
@@ -108,15 +114,31 @@ void dwc3_set_fladj(struct dwc3 *dwc3_reg, u32 val)
 #ifdef CONFIG_DM_USB
 static int xhci_dwc3_probe(struct udevice *dev)
 {
+	struct xhci_dwc3_platdata *plat = dev_get_platdata(dev);
 	struct xhci_hcor *hcor;
 	struct xhci_hccr *hccr;
 	struct dwc3 *dwc3_reg;
 	enum usb_dr_mode dr_mode;
+	int ret;
 
 	hccr = (struct xhci_hccr *)devfdt_get_addr(dev);
 	hcor = (struct xhci_hcor *)((phys_addr_t)hccr +
 			HC_LENGTH(xhci_readl(&(hccr)->cr_capbase)));
 
+	ret = generic_phy_get_by_index(dev, 0, &plat->usb_phy);
+	if (ret) {
+		if (ret != -ENOENT) {
+			error("Failed to get USB PHY for %s\n", dev->name);
+			return ret;
+		}
+	} else {
+		ret = generic_phy_init(&plat->usb_phy);
+		if (ret) {
+			error("Can't init USB PHY for %s\n", dev->name);
+			return ret;
+		}
+	}
+
 	dwc3_reg = (struct dwc3 *)((char *)(hccr) + DWC3_REG_OFFSET);
 
 	dwc3_core_init(dwc3_reg);
@@ -133,6 +155,17 @@ static int xhci_dwc3_probe(struct udevice *dev)
 
 static int xhci_dwc3_remove(struct udevice *dev)
 {
+	struct xhci_dwc3_platdata *plat = dev_get_platdata(dev);
+	int ret;
+
+	if (generic_phy_valid(&plat->usb_phy)) {
+		ret = generic_phy_exit(&plat->usb_phy);
+		if (ret) {
+			error("Can't deinit USB PHY for %s\n", dev->name);
+			return ret;
+		}
+	}
+
 	return xhci_deregister(dev);
 }
 
@@ -149,6 +182,7 @@ U_BOOT_DRIVER(xhci_dwc3) = {
 	.remove = xhci_dwc3_remove,
 	.ops = &xhci_usb_ops,
 	.priv_auto_alloc_size = sizeof(struct xhci_ctrl),
+	.platdata_auto_alloc_size = sizeof(struct xhci_dwc3_platdata),
 	.flags = DM_FLAG_ALLOC_PRIV_DMA,
 };
 #endif
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH v8 0/6] Extend xhci-dwc3
  2017-07-24  9:44 [U-Boot] [PATCH v8 0/6] Extend xhci-dwc3 patrice.chotard at st.com
                   ` (5 preceding siblings ...)
  2017-07-24  9:44 ` [U-Boot] [PATCH v8 6/6] usb: host: xhci-dwc3: Add generic PHY support patrice.chotard at st.com
@ 2017-07-24 13:36 ` Patrice CHOTARD
  6 siblings, 0 replies; 11+ messages in thread
From: Patrice CHOTARD @ 2017-07-24 13:36 UTC (permalink / raw)
  To: u-boot

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="windows-1254", Size: 1981 bytes --]

After discussion with Marek, this series will be canceled, only 
incremental patches are needed.

Patrice

On 07/24/2017 11:44 AM, patrice.chotard at st.com wrote:
> From: Patrice Chotard <patrice.chotard@st.com>
> 
> This series extend xhci-dwc3.c drivers by :
> 	_ converting it to DM model,
> 	_ adding dual role mode support from DT
> 	_ adding new generic_phy_valid() method in PHY framework
> 	_ adding support of generic PHY framework
> 
> 
> v8:	_ Add CONFIG_DM_USB flag in path 1 to fix compilation issue for platforms
> 	  which uses xhci-dwc3 driver and doesn't support yet driver model
> 	_ add PHY stub functions in patch 5 to fix compilation issue for platforms
> 	  which uses xhci-dwc3 driver and doesn't support generic PHY framework
> 	_ fix bisection issue with patch 1 reported by Łukasz Majewski, move struct
> 	  xhci_dwc3_platdata in patch 6 to fix it.
> v7:	_ add Reviewed-by in patch 1
> 	_ declare bool generic_phy_valid(struct phy *phy) as static inline in
> 	  patch 4
> v6:	_ remove useless struct xhci_dwc3 in patch 1
> v5:	_ rebase on top of dm/master in order to use the last livetree update
> 	_ replace dev_get_addr() by devfdt_get_addr() in patch 1
> v4:	_ set phy->dev to NULL in case of generic_phy_get_by_index()
> v3:	_ introduce generic_phy_valid() method
> 	_ add Reviewed-by
> v2:	_ use dev_get_addr() in PATCH 1 and removed useless piece of code
> 
> Patrice Chotard (6):
>    usb: host: xhci-dwc3: Convert driver to DM
>    usb: host: xhci-dwc3: Add dual role mode support from DT
>    drivers: phy: Set phy->dev to NULL when generic_phy_get_by_index()
>      fails
>    drivers: phy: add generic_phy_valid() method
>    dm: phy: add PHY stub function
>    usb: host: xhci-dwc3: Add generic PHY support
> 
>   drivers/phy/phy-uclass.c     |  1 +
>   drivers/usb/host/xhci-dwc3.c | 89 ++++++++++++++++++++++++++++++++++++++++++++
>   include/generic-phy.h        | 53 ++++++++++++++++++++++++++
>   3 files changed, 143 insertions(+)
> 

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH v8 1/6] usb: host: xhci-dwc3: Convert driver to DM
  2017-07-24  9:44 ` [U-Boot] [PATCH v8 1/6] usb: host: xhci-dwc3: Convert driver to DM patrice.chotard at st.com
@ 2017-08-06  5:15   ` Simon Glass
  0 siblings, 0 replies; 11+ messages in thread
From: Simon Glass @ 2017-08-06  5:15 UTC (permalink / raw)
  To: u-boot

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="windows-1254", Size: 1958 bytes --]

On 24 July 2017 at 03:44,  <patrice.chotard@st.com> wrote:
> From: Patrice Chotard <patrice.chotard@st.com>
>
> Add Driver Model support with use of generic DT
> compatible string "snps,dwc3"
>
> Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
> ---
> v8:     _ Add CONFIG_DM_USB flag to fix compilation issue for platforms
>           which uses xhci-dwc3 driver and doesn't support yet driver model
>         _ fix bisection issue with this patch reported by Łukasz Majewski, move struct
>           xhci_dwc3_platdata in patch 6 to fix it.
> v7:     _ add Reviewed-by
> v6:     _ remove useless struct xhci_dwc3
> v5:     _ replace dev_get_addr() by devfdt_get_addr()
> v4:     _ none
> v3:     _ none
> v2:     _ use dev_get_addr() and removed useless piece of code
>
>  drivers/usb/host/xhci-dwc3.c | 46 ++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 46 insertions(+)

Reviewed-by: Simon Glass <sjg@chromium.org>

Suggestion below.

>
> diff --git a/drivers/usb/host/xhci-dwc3.c b/drivers/usb/host/xhci-dwc3.c
> index 33961cd..0411826 100644
> --- a/drivers/usb/host/xhci-dwc3.c
> +++ b/drivers/usb/host/xhci-dwc3.c
> @@ -9,9 +9,15 @@
>   */
>
>  #include <common.h>
> +#include <dm.h>
> +#include <usb.h>
> +
> +#include "xhci.h"
>  #include <asm/io.h>
>  #include <linux/usb/dwc3.h>
>
> +DECLARE_GLOBAL_DATA_PTR;
> +
>  void dwc3_set_mode(struct dwc3 *dwc3_reg, u32 mode)
>  {
>         clrsetbits_le32(&dwc3_reg->g_ctl,
> @@ -97,3 +103,43 @@ void dwc3_set_fladj(struct dwc3 *dwc3_reg, u32 val)
>         setbits_le32(&dwc3_reg->g_fladj, GFLADJ_30MHZ_REG_SEL |
>                         GFLADJ_30MHZ(val));
>  }
> +
> +#ifdef CONFIG_DM_USB
> +static int xhci_dwc3_probe(struct udevice *dev)
> +{
> +       struct xhci_hcor *hcor;
> +       struct xhci_hccr *hccr;
> +       struct dwc3 *dwc3_reg;
> +
> +       hccr = (struct xhci_hccr *)devfdt_get_addr(dev);

You should be able to use dev_read_addr() here.

Regards,
Simon

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH v8 6/6] usb: host: xhci-dwc3: Add generic PHY support
  2017-07-24  9:44 ` [U-Boot] [PATCH v8 6/6] usb: host: xhci-dwc3: Add generic PHY support patrice.chotard at st.com
@ 2017-08-06  5:15   ` Simon Glass
  0 siblings, 0 replies; 11+ messages in thread
From: Simon Glass @ 2017-08-06  5:15 UTC (permalink / raw)
  To: u-boot

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="windows-1254", Size: 653 bytes --]

On 24 July 2017 at 03:44,  <patrice.chotard@st.com> wrote:
> From: Patrice Chotard <patrice.chotard@st.com>
>
> Add support of generic PHY framework support
>
> Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
> ---
>
> v8:     _ fix bisection issue with patch 1 reported by Łukasz Majewski, move struct
>           xhci_dwc3_platdata in this patch to fix it.
> v7:     _ none
> v6:     _ none
> v5:     _ none
> v4:     _ none
> v3:     _ use generic_phy_valid() method
> v2:     _ none
>
>  drivers/usb/host/xhci-dwc3.c | 34 ++++++++++++++++++++++++++++++++++
>  1 file changed, 34 insertions(+)
>

Reviewed-by: Simon Glass <sjg@chromium.org>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH v8 5/6] dm: phy: add PHY stub function
  2017-07-24  9:44 ` [U-Boot] [PATCH v8 5/6] dm: phy: add PHY stub function patrice.chotard at st.com
@ 2017-08-06  5:15   ` Simon Glass
  0 siblings, 0 replies; 11+ messages in thread
From: Simon Glass @ 2017-08-06  5:15 UTC (permalink / raw)
  To: u-boot

Hi,

On 24 July 2017 at 03:44,  <patrice.chotard@st.com> wrote:
> From: Patrice Chotard <patrice.chotard@st.com>
>
> To avoid compilation breakage on platform that doesn't
> support DM PHY but uses xhci-dwc3 driver, add PHY stub
> functions.
>
> Cc: Ran Wang <ran.wang_1@nxp.com>
> Cc: Bin Meng <bmeng.cn@gmail.com>
>
> Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
> ---
>
> v8:     _ add genric PHY stub functions to avoid compilation issue
>         for platforms which uses xhci-dwc3 driver and doesn't support
>         generic PHY framework
>
>
>  include/generic-phy.h | 42 ++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 42 insertions(+)
>

It seems to me that these functions are not telling the truth by
returning 0. Should they not return -ENOSYS?

Also I saw some patches fora nop phy. Is that related?

Regards,
Simon

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2017-08-06  5:15 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-07-24  9:44 [U-Boot] [PATCH v8 0/6] Extend xhci-dwc3 patrice.chotard at st.com
2017-07-24  9:44 ` [U-Boot] [PATCH v8 1/6] usb: host: xhci-dwc3: Convert driver to DM patrice.chotard at st.com
2017-08-06  5:15   ` Simon Glass
2017-07-24  9:44 ` [U-Boot] [PATCH v8 2/6] usb: host: xhci-dwc3: Add dual role mode support from DT patrice.chotard at st.com
2017-07-24  9:44 ` [U-Boot] [PATCH v8 3/6] drivers: phy: Set phy->dev to NULL when generic_phy_get_by_index() fails patrice.chotard at st.com
2017-07-24  9:44 ` [U-Boot] [PATCH v8 4/6] drivers: phy: add generic_phy_valid() method patrice.chotard at st.com
2017-07-24  9:44 ` [U-Boot] [PATCH v8 5/6] dm: phy: add PHY stub function patrice.chotard at st.com
2017-08-06  5:15   ` Simon Glass
2017-07-24  9:44 ` [U-Boot] [PATCH v8 6/6] usb: host: xhci-dwc3: Add generic PHY support patrice.chotard at st.com
2017-08-06  5:15   ` Simon Glass
2017-07-24 13:36 ` [U-Boot] [PATCH v8 0/6] Extend xhci-dwc3 Patrice CHOTARD

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox