Skip to contentSkip to conversation

Add support for DM_USB and DM_USB_DEV for TI's DRA7 EVMs and AM57 EVMs platforms.

PATCH RESEND Superseded Jean-Jacques Hiblot 2 participants 19 messages Nov 16, 2018 – Nov 22, 2018

Subsystems (4)

v7 of 9 Superseded Latest is v9 →

lore
Share & tools
lore
#0 lore raw

v7 cover Add support for DM_USB and DM_USB_DEV for TI's DRA7 EVMs and AM57 EVMs platforms.

Resending this series after rebasing on top of latest u-boot. This series applies on top of the series "[PATCH v3 0/7] Improvements for the dwc3_generic driver"

Moving to DM_USB and DM_USB_DEV brings some benefits:
- it is required to support DM_ETH and USB network adapters with the same binary.
- support for USB3 on AM57x comes almost for free
- removal of platform code related to USB

Tested on:
- dra76 evm
- AM572 evm

Changes in v7:
- replace remaining if() statements with ut_assert()
- Fix build issue "multiple definition of `usb_gadget_handle_interrupts'"
- Fixed build issue "multiple definition of `usb_gadget_handle_interrupts'"

Changes in v6:
- ti-pipe3-phy: take PLL out of IDLE in pipe3_init(). The PLL may have been put into idle by pipe3_exit()
- DRA7 configs: enable DM_USB and DM_USB_DEV. Use DWC3_GENERIC in place of DWC3_OF_SIMPLE. disable non DM USB options
- AM57 configs: enable DM_USB and DM_USB_DEV. Use DWC3_GENERIC in place of DWC3_OF_SIMPLE. disable non DM USB options
- Supports DM USB for peripherals
- Removed DTS changes that disabled USB1 on DRA7 because DM_USB_DEV is now supported

Changes in v5:
- Rebased on latest u-boot
- Removed patches that have already been merged

Changes in v4:
- Fix word missing in commit log
- Remove dependency on MISC
- Renamed the commit (DM_USB is already enabled, the only missing option is for the USB2 phy driver)
- Remove dependency on MISC
- Remove omap specific glue layer and use dwc3-of-simple glue layer

Changes in v3:
- in syscon_regmap_lookup_by_phandle(), use dev_dbg() instead of printf()
- added unit test for syscon_regmap_lookup_by_phandle()

Changes in v2:
- Add USB3 support to ti-pipe3-phy driver
- omap-usb2-phy: Implement power_on and power_off callbacks
- am57xx boards: when DM_USB is used, turn on the required USB clocks
- split dts changes in 2 commits: one for binding the children of ocp2scp at 4a080000, and one to disable USB1 on all DRA7 EVMs
- Enable DM_USB in am57xx_evm_defconfig. USB3 (super speed) is supported.

Jean-Jacques Hiblot (9):
syscon: dm: Add a new method to get a regmap from DTS
phy: Add a new driver for OMAP's USB2 PHYs
dwc3-generic: Add support for the TI DWC3 glue
board: ti: dra7xx-evm: turn on USB clocks in late init stage
dts: dra7x: make ocp2scp at 4a080000 compatible with simple-bus
configs: enable DM_USB and DM_USB_DEV for all DRA7 platforms
configs: am57xx_evm: Enable DM_USB and DM_USB_DEV
board: ti: dra7-evm: remove USB platform code
board: ti: am57xx: remove USB platform code

Vignesh R (2):
phy: ti-pip3-phy: Add support for USB3 PHY
board; ti: am57xx: turn on USB clocks

 arch/arm/dts/omap5-u-boot.dtsi  |   4 +
 arch/sandbox/dts/test.dts       |   6 +-
 board/ti/am57xx/board.c         | 106 ++++------------------
 board/ti/dra7xx/evm.c           | 123 ++++---------------------
 configs/am57xx_evm_defconfig    |  10 +-
 configs/am57xx_hs_evm_defconfig |  10 +-
 configs/dra7xx_evm_defconfig    |   8 +-
 configs/dra7xx_hs_evm_defconfig |   8 +-
 drivers/core/syscon-uclass.c    |  23 +++++
 drivers/phy/Kconfig             |   9 ++
 drivers/phy/Makefile            |   1 +
 drivers/phy/omap-usb2-phy.c     | 196 ++++++++++++++++++++++++++++++++++++++++
 drivers/phy/ti-pipe3-phy.c      |  32 +++++--
 drivers/usb/dwc3/dwc3-generic.c |  85 +++++++++++++++++
 include/syscon.h                |  13 +++
 test/dm/syscon.c                |  29 ++++++
 16 files changed, 448 insertions(+), 215 deletions(-)
 create mode 100644 drivers/phy/omap-usb2-phy.c
Signature · 1 line
2.7.4
#1 lore raw

PATCH v7 1/11 syscon: dm: Add a new method to get a regmap from DTS

syscon_regmap_lookup_by_phandle() can be used to get the regmap of a syscon device from a reference in the DTS. It operates similarly to the linux version of the namesake function.

---

Changes in v7:
- replace remaining if() statements with ut_assert()

Changes in v6: None
Changes in v5: None
Changes in v4:
- Fix word missing in commit log

Changes in v3:
- in syscon_regmap_lookup_by_phandle(), use dev_dbg() instead of printf()
- added unit test for syscon_regmap_lookup_by_phandle()

Changes in v2: None

 arch/sandbox/dts/test.dts    |  6 ++++--
 drivers/core/syscon-uclass.c | 23 +++++++++++++++++++++++
 include/syscon.h             | 13 +++++++++++++
 test/dm/syscon.c             | 29 +++++++++++++++++++++++++++++
 4 files changed, 69 insertions(+), 2 deletions(-)
arch/sandbox/dts/test.dts +4 -2
index 024aa7c..c57f5b8 100644
@@ -450,6 +450,8 @@
 
 		test4 {
 			compatible = "denx,u-boot-probe-test";
+			first-syscon = <&syscon0>;
+			second-sys-ctrl = <&another_system_controller>;
 		};
 	};
 
@@ -530,12 +532,12 @@
 		};
 	};
 
-	syscon at 0 {
+	syscon0: syscon at 0 {
 		compatible = "sandbox,syscon0";
 		reg = <0x10 16>;
 	};
 
-	syscon at 1 {
+	another_system_controller: syscon at 1 {
 		compatible = "sandbox,syscon1";
 		reg = <0x20 5
 			0x28 6
drivers/core/syscon-uclass.c +23 -0
index 303e166..661cf61 100644
@@ -53,6 +53,29 @@ static int syscon_pre_probe(struct udevice *dev)
 #endif
 }
 
+struct regmap *syscon_regmap_lookup_by_phandle(struct udevice *dev,
+					       const char *name)
+{
+	struct udevice *syscon;
+	struct regmap *r;
+	int err;
+
+	err = uclass_get_device_by_phandle(UCLASS_SYSCON, dev,
+					   name, &syscon);
+	if (err) {
+		dev_dbg(dev, "unable to find syscon device\n");
+		return ERR_PTR(err);
+	}
+
+	r = syscon_get_regmap(syscon);
+	if (!r) {
+		dev_dbg(dev, "unable to find regmap\n");
+		return ERR_PTR(-ENODEV);
+	}
+
+	return r;
+}
+
 int syscon_get_by_driver_data(ulong driver_data, struct udevice **devp)
 {
 	struct udevice *dev;
include/syscon.h +13 -0
index 2aa73e5..3df96e3 100644
@@ -74,6 +74,19 @@ int syscon_get_by_driver_data(ulong driver_data, struct udevice **devp);
 struct regmap *syscon_get_regmap_by_driver_data(ulong driver_data);
 
 /**
+ * syscon_regmap_lookup_by_phandle() - Look up a controller by a phandle
+ *
+ * This operates by looking up the given name in the device (device
+ * tree property) of the device using the system controller.
+ *
+ * @dev:	Device using the system controller
+ * @name:	Name of property referring to the system controller
+ * @return	A pointer to the regmap if found, ERR_PTR(-ve) on error
+ */
+struct regmap *syscon_regmap_lookup_by_phandle(struct udevice *dev,
+					       const char *name);
+
+/**
  * syscon_get_first_range() - get the first memory range from a syscon regmap
  *
  * @driver_data:	Driver data value to look up
test/dm/syscon.c +29 -0
index 77c7928..a294dda 100644
@@ -6,6 +6,7 @@
 #include <common.h>
 #include <dm.h>
 #include <syscon.h>
+#include <regmap.h>
 #include <asm/test.h>
 #include <dm/test.h>
 #include <test/ut.h>
@@ -43,3 +44,31 @@ static int dm_test_syscon_by_driver_data(struct unit_test_state *uts)
 	return 0;
 }
 DM_TEST(dm_test_syscon_by_driver_data, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT);
+
+/* Test system controller by phandle */
+static int dm_test_syscon_by_phandle(struct unit_test_state *uts)
+{
+	struct udevice *dev;
+	struct regmap *map;
+
+	ut_assertok(uclass_get_device_by_name(UCLASS_TEST_PROBE, "test4",
+					      &dev));
+
+	ut_assertok_ptr(syscon_regmap_lookup_by_phandle(dev, "first-syscon"));
+	map = syscon_regmap_lookup_by_phandle(dev, "first-syscon");
+	ut_assert(map);
+	ut_assert(!IS_ERR(map));
+	ut_asserteq(1, map->range_count);
+
+	ut_assertok_ptr(syscon_regmap_lookup_by_phandle(dev,
+							"second-sys-ctrl"));
+	map = syscon_regmap_lookup_by_phandle(dev, "second-sys-ctrl");
+	ut_assert(map);
+	ut_assert(!IS_ERR(map));
+	ut_asserteq(4, map->range_count);
+
+	ut_assert(IS_ERR(syscon_regmap_lookup_by_phandle(dev, "not-present")));
+
+	return 0;
+}
+DM_TEST(dm_test_syscon_by_phandle, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT);
Signature · 1 line
2.7.4
#2 lore raw

PATCH v7 2/11 phy: ti-pip3-phy: Add support for USB3 PHY

In reply to Jean-Jacques Hiblot

From: Vignesh R <[email protected]>

Add support to handle USB3 PHYs present on AM57xx/DRA7xx SoCs. This is needed to move AM57xx to DM_USB.

---

Changes in v7: None
Changes in v6:
- ti-pipe3-phy: take PLL out of IDLE in pipe3_init(). The PLL may have been put into idle by pipe3_exit()

Changes in v5: None
Changes in v4: None
Changes in v3: None
Changes in v2:
- Add USB3 support to ti-pipe3-phy driver

 drivers/phy/ti-pipe3-phy.c | 32 ++++++++++++++++++++++++--------
 1 file changed, 24 insertions(+), 8 deletions(-)
drivers/phy/ti-pipe3-phy.c +24 -8
index b22bbaf..e7e78e3 100644
@@ -141,7 +141,7 @@ static int omap_pipe3_dpll_program(struct omap_pipe3 *pipe3)
 	omap_pipe3_writel(pipe3->pll_ctrl_base, PLL_CONFIGURATION1, val);
 
 	val = omap_pipe3_readl(pipe3->pll_ctrl_base, PLL_CONFIGURATION2);
-	val &= ~PLL_SELFREQDCO_MASK;
+	val &= ~(PLL_SELFREQDCO_MASK | PLL_IDLE);
 	val |= dpll_params->freq << PLL_SELFREQDCO_SHIFT;
 	omap_pipe3_writel(pipe3->pll_ctrl_base, PLL_CONFIGURATION2, val);
 
@@ -265,10 +265,13 @@ static int pipe3_exit(struct phy *phy)
 		return -EBUSY;
 	}
 
-	val = readl(pipe3->pll_reset_reg);
-	writel(val | SATA_PLL_SOFT_RESET, pipe3->pll_reset_reg);
-	mdelay(1);
-	writel(val & ~SATA_PLL_SOFT_RESET, pipe3->pll_reset_reg);
+	if (pipe3->pll_reset_reg) {
+		val = readl(pipe3->pll_reset_reg);
+		writel(val | SATA_PLL_SOFT_RESET, pipe3->pll_reset_reg);
+		mdelay(1);
+		writel(val & ~SATA_PLL_SOFT_RESET, pipe3->pll_reset_reg);
+	}
+
 	return 0;
 }
 
@@ -331,9 +334,11 @@ static int pipe3_phy_probe(struct udevice *dev)
 	if (!pipe3->power_reg)
 		return -EINVAL;
 
-	pipe3->pll_reset_reg = get_reg(dev, "syscon-pllreset");
-	if (!pipe3->pll_reset_reg)
-		return -EINVAL;
+	if (device_is_compatible(dev, "ti,phy-pipe3-sata")) {
+		pipe3->pll_reset_reg = get_reg(dev, "syscon-pllreset");
+		if (!pipe3->pll_reset_reg)
+			return -EINVAL;
+	}
 
 	pipe3->dpll_map = (struct pipe3_dpll_map *)dev_get_driver_data(dev);
 
@@ -350,8 +355,19 @@ static struct pipe3_dpll_map dpll_map_sata[] = {
 	{ },                                    /* Terminator */
 };
 
+static struct pipe3_dpll_map dpll_map_usb[] = {
+	{12000000, {1250, 5, 4, 20, 0} },	/* 12 MHz */
+	{16800000, {3125, 20, 4, 20, 0} },	/* 16.8 MHz */
+	{19200000, {1172, 8, 4, 20, 65537} },	/* 19.2 MHz */
+	{20000000, {1000, 7, 4, 10, 0} },	/* 20 MHz */
+	{26000000, {1250, 12, 4, 20, 0} },	/* 26 MHz */
+	{38400000, {3125, 47, 4, 20, 92843} },	/* 38.4 MHz */
+	{ },					/* Terminator */
+};
+
 static const struct udevice_id pipe3_phy_ids[] = {
 	{ .compatible = "ti,phy-pipe3-sata", .data = (ulong)&dpll_map_sata },
+	{ .compatible = "ti,omap-usb3", .data = (ulong)&dpll_map_usb},
 	{ }
 };
 
Signature · 1 line
2.7.4
#3 lore raw

PATCH v7 3/11 phy: Add a new driver for OMAP's USB2 PHYs

In reply to Jean-Jacques Hiblot

This drivers supports the USB2 PHY found on omap5 and dra7 SOCs.

---

Changes in v7: None
Changes in v6: None
Changes in v5: None
Changes in v4: None
Changes in v3: None
Changes in v2:
- omap-usb2-phy: Implement power_on and power_off callbacks

 drivers/phy/Kconfig         |   9 ++
 drivers/phy/Makefile        |   1 +
 drivers/phy/omap-usb2-phy.c | 196 ++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 206 insertions(+)
 create mode 100644 drivers/phy/omap-usb2-phy.c
drivers/phy/Kconfig +9 -0
index 14d82b9..3921e39 100644
@@ -155,4 +155,13 @@ config MSM8916_USB_PHY
 
 	  This PHY is found on qualcomm dragonboard410c development board.
 
+config OMAP_USB2_PHY
+	bool "Support OMAP's USB2 PHY"
+	depends on PHY
+	depends on SYSCON
+	help
+	  Support for the OMAP's USB2 PHY.
+
+	  This PHY is found on OMAP devices supporting USB2.
+
 endmenu
drivers/phy/Makefile +1 -0
index 8030d59..53dd5bd 100644
@@ -17,3 +17,4 @@ obj-$(CONFIG_PHY_RCAR_GEN3) += phy-rcar-gen3.o
 obj-$(CONFIG_PHY_STM32_USBPHYC) += phy-stm32-usbphyc.o
 obj-$(CONFIG_MESON_GXL_USB_PHY) += meson-gxl-usb2.o meson-gxl-usb3.o
 obj-$(CONFIG_MSM8916_USB_PHY) += msm8916-usbh-phy.o
+obj-$(CONFIG_OMAP_USB2_PHY) += omap-usb2-phy.o
drivers/phy/omap-usb2-phy.c new file +196 -0

196 lines not on this page · raw message

Signature · 1 line
2.7.4
#4 lore raw

PATCH v7 4/11 dwc3-generic: Add support for the TI DWC3 glue

In reply to Jean-Jacques Hiblot

---

Changes in v7: None
Changes in v6: None
Changes in v5: None
Changes in v4: None
Changes in v3: None
Changes in v2: None

 drivers/usb/dwc3/dwc3-generic.c | 85 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 85 insertions(+)
drivers/usb/dwc3/dwc3-generic.c +85 -0
index 8f6c5a8..1a2f342 100644
@@ -120,6 +120,90 @@ struct dwc3_glue_ops {
 			       enum usb_dr_mode mode);
 };
 
+void dwc3_ti_select_dr_mode(struct udevice *dev, int index,
+			    enum usb_dr_mode mode)
+{
+#define USBOTGSS_UTMI_OTG_STATUS		0x0084
+#define USBOTGSS_UTMI_OTG_OFFSET		0x0480
+
+/* UTMI_OTG_STATUS REGISTER */
+#define USBOTGSS_UTMI_OTG_STATUS_SW_MODE	BIT(31)
+#define USBOTGSS_UTMI_OTG_STATUS_POWERPRESENT	BIT(9)
+#define USBOTGSS_UTMI_OTG_STATUS_TXBITSTUFFENABLE BIT(8)
+#define USBOTGSS_UTMI_OTG_STATUS_IDDIG		BIT(4)
+#define USBOTGSS_UTMI_OTG_STATUS_SESSEND	BIT(3)
+#define USBOTGSS_UTMI_OTG_STATUS_SESSVALID	BIT(2)
+#define USBOTGSS_UTMI_OTG_STATUS_VBUSVALID	BIT(1)
+enum dwc3_omap_utmi_mode {
+	DWC3_OMAP_UTMI_MODE_UNKNOWN = 0,
+	DWC3_OMAP_UTMI_MODE_HW,
+	DWC3_OMAP_UTMI_MODE_SW,
+};
+
+	u32 use_id_pin;
+	u32 host_mode;
+	u32 reg;
+	u32 utmi_mode;
+	u32 utmi_status_offset = USBOTGSS_UTMI_OTG_STATUS;
+
+	struct dwc3_glue_data *glue = dev_get_platdata(dev);
+	void *base = map_physmem(glue->regs, 0x10000, MAP_NOCACHE);
+
+	if (device_is_compatible(dev, "ti,am437x-dwc3"))
+		utmi_status_offset += USBOTGSS_UTMI_OTG_OFFSET;
+
+	utmi_mode = dev_read_u32_default(dev, "utmi-mode",
+					 DWC3_OMAP_UTMI_MODE_UNKNOWN);
+	if (utmi_mode != DWC3_OMAP_UTMI_MODE_HW) {
+		debug("%s: OTG is not supported. defaulting to PERIPHERAL\n",
+		      dev->name);
+		mode = USB_DR_MODE_PERIPHERAL;
+	}
+
+	switch (mode)  {
+	case USB_DR_MODE_PERIPHERAL:
+		use_id_pin = 0;
+		host_mode = 0;
+		break;
+	case USB_DR_MODE_HOST:
+		use_id_pin = 0;
+		host_mode = 1;
+		break;
+	case USB_DR_MODE_OTG:
+	default:
+		use_id_pin = 1;
+		host_mode = 0;
+		break;
+	}
+
+	reg = readl(base + utmi_status_offset);
+
+	reg &= ~(USBOTGSS_UTMI_OTG_STATUS_SW_MODE);
+	if (!use_id_pin)
+		reg |= USBOTGSS_UTMI_OTG_STATUS_SW_MODE;
+
+	writel(reg, base + utmi_status_offset);
+
+	reg &= ~(USBOTGSS_UTMI_OTG_STATUS_SESSEND |
+		USBOTGSS_UTMI_OTG_STATUS_VBUSVALID |
+		USBOTGSS_UTMI_OTG_STATUS_IDDIG);
+
+	reg |= USBOTGSS_UTMI_OTG_STATUS_SESSVALID |
+		USBOTGSS_UTMI_OTG_STATUS_POWERPRESENT;
+
+	if (!host_mode)
+		reg |= USBOTGSS_UTMI_OTG_STATUS_IDDIG |
+			USBOTGSS_UTMI_OTG_STATUS_VBUSVALID;
+
+	writel(reg, base + utmi_status_offset);
+
+	unmap_physmem(base, MAP_NOCACHE);
+}
+
+struct dwc3_glue_ops ti_ops = {
+	.select_dr_mode = dwc3_ti_select_dr_mode,
+};
+
 static int dwc3_glue_bind(struct udevice *parent)
 {
 	const void *fdt = gd->fdt_blob;
@@ -259,6 +343,7 @@ static int dwc3_glue_remove(struct udevice *dev)
 
 static const struct udevice_id dwc3_glue_ids[] = {
 	{ .compatible = "xlnx,zynqmp-dwc3" },
+	{ .compatible = "ti,dwc3", .data = (ulong)&ti_ops },
 	{ }
 };
 
Signature · 1 line
2.7.4
#5 lore raw

PATCH v7 5/11 board: ti: dra7xx-evm: turn on USB clocks in late init stage

In reply to Jean-Jacques Hiblot

For USB ports that use the Driver Model, turn on the clocks during the late init stage.

---

Changes in v7: None
Changes in v6: None
Changes in v5: None
Changes in v4: None
Changes in v3: None
Changes in v2: None

 board/ti/dra7xx/evm.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)
board/ti/dra7xx/evm.c +19 -0
index bbe5445..b46bda2 100644
@@ -646,6 +646,19 @@ int dram_init_banksize(void)
 	return 0;
 }
 
+#if CONFIG_IS_ENABLED(DM_USB) && CONFIG_IS_ENABLED(OF_CONTROL)
+static int device_okay(const char *path)
+{
+	int node;
+
+	node = fdt_path_offset(gd->fdt_blob, path);
+	if (node < 0)
+		return 0;
+
+	return fdtdec_get_is_enabled(gd->fdt_blob, node);
+}
+#endif
+
 int board_late_init(void)
 {
 #ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
@@ -685,6 +698,12 @@ int board_late_init(void)
 	if (board_is_dra71x_evm())
 		palmas_i2c_write_u8(LP873X_I2C_SLAVE_ADDR, 0x9, 0x7);
 #endif
+#if CONFIG_IS_ENABLED(DM_USB) && CONFIG_IS_ENABLED(OF_CONTROL)
+	if (device_okay("/ocp/omap_dwc3_1 at 48880000"))
+		enable_usb_clocks(0);
+	if (device_okay("/ocp/omap_dwc3_2 at 488c0000"))
+		enable_usb_clocks(1);
+#endif
 	return 0;
 }
 
Signature · 1 line
2.7.4
#6 lore raw

PATCH v7 6/11 board; ti: am57xx: turn on USB clocks

In reply to Jean-Jacques Hiblot

From: Vignesh R <[email protected]>

Enable USB clocks in late init stage to support ports under DM_USB.

---

Changes in v7: None
Changes in v6: None
Changes in v5: None
Changes in v4: None
Changes in v3: None
Changes in v2:
- am57xx boards: when DM_USB is used, turn on the required USB clocks

 board/ti/am57xx/board.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)
board/ti/am57xx/board.c +19 -0
index 177a324..8c24d17 100644
@@ -675,6 +675,19 @@ out:
 	return;
 }
 
+#if CONFIG_IS_ENABLED(DM_USB) && CONFIG_IS_ENABLED(OF_CONTROL)
+static int device_okay(const char *path)
+{
+	int node;
+
+	node = fdt_path_offset(gd->fdt_blob, path);
+	if (node < 0)
+		return 0;
+
+	return fdtdec_get_is_enabled(gd->fdt_blob, node);
+}
+#endif
+
 int board_late_init(void)
 {
 	setup_board_eeprom_env();
@@ -714,6 +727,12 @@ int board_late_init(void)
 	board_ti_set_ethaddr(2);
 #endif
 
+#if CONFIG_IS_ENABLED(DM_USB) && CONFIG_IS_ENABLED(OF_CONTROL)
+	if (device_okay("/ocp/omap_dwc3_1 at 48880000"))
+		enable_usb_clocks(0);
+	if (device_okay("/ocp/omap_dwc3_2 at 488c0000"))
+		enable_usb_clocks(1);
+#endif
 	return 0;
 }
 
Signature · 1 line
2.7.4
#7 lore raw

PATCH v7 7/11 dts: dra7x: make ocp2scp@4a080000 compatible with simple-bus

In reply to Jean-Jacques Hiblot

This is required when DM_USB is used, to bind the USB phys.

---

Changes in v7: None
Changes in v6: None
Changes in v5: None
Changes in v4: None
Changes in v3: None
Changes in v2:
- split dts changes in 2 commits: one for binding the children of ocp2scp at 4a080000, and one to disable USB1 on all DRA7 EVMs

 arch/arm/dts/omap5-u-boot.dtsi | 4 ++++
 1 file changed, 4 insertions(+)
arch/arm/dts/omap5-u-boot.dtsi +4 -0
index bf2684c..a6a7801 100644
@@ -15,6 +15,10 @@
 	ocp {
 		u-boot,dm-spl;
 
+		ocp2scp at 4a080000 {
+			compatible = "ti,omap-ocp2scp", "simple-bus";
+		};
+
 		ocp2scp at 4a090000 {
 			compatible = "ti,omap-ocp2scp", "simple-bus";
 		};
Signature · 1 line
2.7.4
#8 lore raw

PATCH v7 8/11 configs: enable DM_USB and DM_USB_DEV for all DRA7 platforms

In reply to Jean-Jacques Hiblot

---

Changes in v7:
- Fix build issue "multiple definition of `usb_gadget_handle_interrupts'"

Changes in v6:
- DRA7 configs: enable DM_USB and DM_USB_DEV. Use DWC3_GENERIC in place of DWC3_OF_SIMPLE. disable non DM USB options

Changes in v5: None
Changes in v4:
- Remove dependency on MISC
- Renamed the commit (DM_USB is already enabled, the only missing option is for the USB2 phy driver)

Changes in v3: None
Changes in v2: None

 board/ti/dra7xx/evm.c           | 3 ++-
 configs/dra7xx_evm_defconfig    | 8 ++++----
 configs/dra7xx_hs_evm_defconfig | 8 ++++----
 3 files changed, 10 insertions(+), 9 deletions(-)
board/ti/dra7xx/evm.c +2 -1
index b46bda2..9f78adc 100644
@@ -915,7 +915,8 @@ const struct mmc_platform_fixups *platform_fixups_mmc(uint32_t addr)
 }
 #endif
 
-#ifdef CONFIG_USB_DWC3
+#if defined(CONFIG_USB_DWC3) && \
+    !(defined(CONFIG_DM_USB) && defined(CONFIG_DM_USB_DEV))
 static struct dwc3_device usb_otg_ss1 = {
 	.maximum_speed = USB_SPEED_SUPER,
 	.base = DRA7_USB_OTG_SS1_BASE,
configs/dra7xx_evm_defconfig +4 -4
index 27f6b5d..943ae71 100644
@@ -56,6 +56,7 @@ CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
 CONFIG_DM_GPIO=y
 CONFIG_PCF8575_GPIO=y
 CONFIG_DM_I2C=y
+CONFIG_MISC=y
 CONFIG_DM_MMC=y
 CONFIG_MMC_IO_VOLTAGE=y
 CONFIG_MMC_UHS_SUPPORT=y
@@ -72,6 +73,7 @@ CONFIG_PHY_GIGE=y
 CONFIG_MII=y
 CONFIG_SPL_PHY=y
 CONFIG_PIPE3_PHY=y
+CONFIG_OMAP_USB2_PHY=y
 CONFIG_PMIC_PALMAS=y
 CONFIG_PMIC_LP873X=y
 CONFIG_DM_REGULATOR_FIXED=y
@@ -87,14 +89,12 @@ CONFIG_TIMER=y
 CONFIG_OMAP_TIMER=y
 CONFIG_USB=y
 CONFIG_DM_USB=y
+CONFIG_DM_USB_DEV=y
 CONFIG_USB_XHCI_HCD=y
 CONFIG_USB_XHCI_DWC3=y
-CONFIG_USB_XHCI_DRA7XX_INDEX=1
 CONFIG_USB_DWC3=y
 CONFIG_USB_DWC3_GADGET=y
-CONFIG_USB_DWC3_OMAP=y
-CONFIG_USB_DWC3_PHY_OMAP=y
-CONFIG_OMAP_USB_PHY=y
+CONFIG_USB_DWC3_GENERIC=y
 CONFIG_USB_STORAGE=y
 CONFIG_USB_GADGET=y
 CONFIG_USB_GADGET_MANUFACTURER="Texas Instruments"
configs/dra7xx_hs_evm_defconfig +4 -4
index 651fc4f..9137ee7 100644
@@ -56,6 +56,7 @@ CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
 CONFIG_DM_GPIO=y
 CONFIG_PCF8575_GPIO=y
 CONFIG_DM_I2C=y
+CONFIG_MISC=y
 CONFIG_DM_MMC=y
 CONFIG_MMC_IO_VOLTAGE=y
 CONFIG_MMC_UHS_SUPPORT=y
@@ -71,6 +72,7 @@ CONFIG_PHY_GIGE=y
 CONFIG_MII=y
 CONFIG_SPL_PHY=y
 CONFIG_PIPE3_PHY=y
+CONFIG_OMAP_USB2_PHY=y
 CONFIG_PMIC_PALMAS=y
 CONFIG_PMIC_LP873X=y
 CONFIG_DM_REGULATOR_FIXED=y
@@ -86,14 +88,12 @@ CONFIG_TIMER=y
 CONFIG_OMAP_TIMER=y
 CONFIG_USB=y
 CONFIG_DM_USB=y
+CONFIG_DM_USB_DEV=y
 CONFIG_USB_XHCI_HCD=y
 CONFIG_USB_XHCI_DWC3=y
-CONFIG_USB_XHCI_DRA7XX_INDEX=1
 CONFIG_USB_DWC3=y
 CONFIG_USB_DWC3_GADGET=y
-CONFIG_USB_DWC3_OMAP=y
-CONFIG_USB_DWC3_PHY_OMAP=y
-CONFIG_OMAP_USB_PHY=y
+CONFIG_USB_DWC3_GENERIC=y
 CONFIG_USB_STORAGE=y
 CONFIG_USB_GADGET=y
 CONFIG_USB_GADGET_MANUFACTURER="Texas Instruments"
Signature · 1 line
2.7.4
#9 lore raw

PATCH v7 9/11 configs: am57xx_evm: Enable DM_USB and DM_USB_DEV

In reply to Jean-Jacques Hiblot

Enable DM_USB and DM_USB_DEV for AM57xx based boards.

---

Changes in v7:
- Fixed build issue "multiple definition of `usb_gadget_handle_interrupts'"

Changes in v6:
- AM57 configs: enable DM_USB and DM_USB_DEV. Use DWC3_GENERIC in place of DWC3_OF_SIMPLE. disable non DM USB options

Changes in v5:
- Rebased on latest u-boot
- Removed patches that have already been merged

Changes in v4:
- Remove dependency on MISC
- Remove omap specific glue layer and use dwc3-of-simple glue layer

Changes in v3: None
Changes in v2:
- Enable DM_USB in am57xx_evm_defconfig. USB3 (super speed) is supported.

 board/ti/am57xx/board.c         |  5 ++---
 configs/am57xx_evm_defconfig    | 10 +++++++---
 configs/am57xx_hs_evm_defconfig | 10 +++++++---
 3 files changed, 16 insertions(+), 9 deletions(-)
board/ti/am57xx/board.c +2 -3
index 8c24d17..ffe2a54 100644
@@ -883,7 +883,8 @@ int spl_start_uboot(void)
 }
 #endif
 
-#ifdef CONFIG_USB_DWC3
+#if defined(CONFIG_USB_DWC3) && \
+    !(defined(CONFIG_DM_USB) && defined(CONFIG_DM_USB_DEV))
 static struct dwc3_device usb_otg_ss2 = {
 	.maximum_speed = USB_SPEED_HIGH,
 	.base = DRA7_USB_OTG_SS2_BASE,
@@ -912,9 +913,7 @@ int usb_gadget_handle_interrupts(int index)
 
 	return 0;
 }
-#endif /* CONFIG_USB_DWC3 */
 
-#if defined(CONFIG_USB_DWC3) || defined(CONFIG_USB_XHCI_OMAP)
 int board_usb_init(int index, enum usb_init_type init)
 {
 	enable_usb_clocks(index);
configs/am57xx_evm_defconfig +7 -3
index 5242ab6..038c3ba 100644
@@ -50,6 +50,7 @@ CONFIG_FASTBOOT_FLASH_MMC_DEV=1
 CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
 CONFIG_DM_GPIO=y
 CONFIG_DM_I2C=y
+CONFIG_MISC=y
 CONFIG_DM_MMC=y
 CONFIG_MMC_OMAP_HS=y
 CONFIG_DM_SPI_FLASH=y
@@ -61,6 +62,9 @@ CONFIG_PHY_MICREL_KSZ90X1=y
 CONFIG_DM_ETH=y
 CONFIG_DRIVER_TI_CPSW=y
 CONFIG_MII=y
+CONFIG_PHY=y
+CONFIG_PIPE3_PHY=y
+CONFIG_OMAP_USB2_PHY=y
 CONFIG_DM_PMIC=y
 CONFIG_PMIC_PALMAS=y
 CONFIG_DM_REGULATOR=y
@@ -70,13 +74,13 @@ CONFIG_SPI=y
 CONFIG_DM_SPI=y
 CONFIG_TI_QSPI=y
 CONFIG_USB=y
+CONFIG_DM_USB=y
+CONFIG_DM_USB_DEV=y
 CONFIG_USB_XHCI_HCD=y
 CONFIG_USB_XHCI_DWC3=y
 CONFIG_USB_DWC3=y
 CONFIG_USB_DWC3_GADGET=y
-CONFIG_USB_DWC3_OMAP=y
-CONFIG_USB_DWC3_PHY_OMAP=y
-CONFIG_OMAP_USB_PHY=y
+CONFIG_USB_DWC3_GENERIC=y
 CONFIG_USB_STORAGE=y
 CONFIG_USB_GADGET=y
 CONFIG_USB_GADGET_MANUFACTURER="Texas Instruments"
configs/am57xx_hs_evm_defconfig +7 -3
index be4aa0f..a3eedca 100644
@@ -53,6 +53,7 @@ CONFIG_FASTBOOT_FLASH_MMC_DEV=1
 CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
 CONFIG_DM_GPIO=y
 CONFIG_DM_I2C=y
+CONFIG_MISC=y
 CONFIG_DM_MMC=y
 CONFIG_MMC_OMAP_HS=y
 CONFIG_DM_SPI_FLASH=y
@@ -64,6 +65,9 @@ CONFIG_PHY_MICREL_KSZ90X1=y
 CONFIG_DM_ETH=y
 CONFIG_DRIVER_TI_CPSW=y
 CONFIG_MII=y
+CONFIG_PHY=y
+CONFIG_PIPE3_PHY=y
+CONFIG_OMAP_USB2_PHY=y
 CONFIG_DM_PMIC=y
 CONFIG_PMIC_PALMAS=y
 CONFIG_DM_REGULATOR=y
@@ -73,13 +77,13 @@ CONFIG_SPI=y
 CONFIG_DM_SPI=y
 CONFIG_TI_QSPI=y
 CONFIG_USB=y
+CONFIG_DM_USB=y
+CONFIG_DM_USB_DEV=y
 CONFIG_USB_XHCI_HCD=y
 CONFIG_USB_XHCI_DWC3=y
 CONFIG_USB_DWC3=y
 CONFIG_USB_DWC3_GADGET=y
-CONFIG_USB_DWC3_OMAP=y
-CONFIG_USB_DWC3_PHY_OMAP=y
-CONFIG_OMAP_USB_PHY=y
+CONFIG_USB_DWC3_GENERIC=y
 CONFIG_USB_STORAGE=y
 CONFIG_USB_GADGET=y
 CONFIG_USB_GADGET_MANUFACTURER="Texas Instruments"
Signature · 1 line
2.7.4
#10 lore raw

PATCH v7 10/11 board: ti: dra7-evm: remove USB platform code

In reply to Jean-Jacques Hiblot

---

Changes in v7: None
Changes in v6: None
Changes in v5: None
Changes in v4: None
Changes in v3: None
Changes in v2: None

 board/ti/dra7xx/evm.c | 105 --------------------------------------------------
 1 file changed, 105 deletions(-)
board/ti/dra7xx/evm.c +0 -105
index 9f78adc..d69641e 100644
@@ -915,111 +915,6 @@ const struct mmc_platform_fixups *platform_fixups_mmc(uint32_t addr)
 }
 #endif
 
-#if defined(CONFIG_USB_DWC3) && \
-    !(defined(CONFIG_DM_USB) && defined(CONFIG_DM_USB_DEV))
-static struct dwc3_device usb_otg_ss1 = {
-	.maximum_speed = USB_SPEED_SUPER,
-	.base = DRA7_USB_OTG_SS1_BASE,
-	.tx_fifo_resize = false,
-	.index = 0,
-};
-
-static struct dwc3_omap_device usb_otg_ss1_glue = {
-	.base = (void *)DRA7_USB_OTG_SS1_GLUE_BASE,
-	.utmi_mode = DWC3_OMAP_UTMI_MODE_SW,
-	.index = 0,
-};
-
-static struct ti_usb_phy_device usb_phy1_device = {
-	.pll_ctrl_base = (void *)DRA7_USB3_PHY1_PLL_CTRL,
-	.usb2_phy_power = (void *)DRA7_USB2_PHY1_POWER,
-	.usb3_phy_power = (void *)DRA7_USB3_PHY1_POWER,
-	.index = 0,
-};
-
-static struct dwc3_device usb_otg_ss2 = {
-	.maximum_speed = USB_SPEED_SUPER,
-	.base = DRA7_USB_OTG_SS2_BASE,
-	.tx_fifo_resize = false,
-	.index = 1,
-};
-
-static struct dwc3_omap_device usb_otg_ss2_glue = {
-	.base = (void *)DRA7_USB_OTG_SS2_GLUE_BASE,
-	.utmi_mode = DWC3_OMAP_UTMI_MODE_SW,
-	.index = 1,
-};
-
-static struct ti_usb_phy_device usb_phy2_device = {
-	.usb2_phy_power = (void *)DRA7_USB2_PHY2_POWER,
-	.index = 1,
-};
-
-int board_usb_init(int index, enum usb_init_type init)
-{
-	enable_usb_clocks(index);
-	switch (index) {
-	case 0:
-		if (init == USB_INIT_DEVICE) {
-			usb_otg_ss1.dr_mode = USB_DR_MODE_PERIPHERAL;
-			usb_otg_ss1_glue.vbus_id_status = OMAP_DWC3_VBUS_VALID;
-		} else {
-			usb_otg_ss1.dr_mode = USB_DR_MODE_HOST;
-			usb_otg_ss1_glue.vbus_id_status = OMAP_DWC3_ID_GROUND;
-		}
-
-		ti_usb_phy_uboot_init(&usb_phy1_device);
-		dwc3_omap_uboot_init(&usb_otg_ss1_glue);
-		dwc3_uboot_init(&usb_otg_ss1);
-		break;
-	case 1:
-		if (init == USB_INIT_DEVICE) {
-			usb_otg_ss2.dr_mode = USB_DR_MODE_PERIPHERAL;
-			usb_otg_ss2_glue.vbus_id_status = OMAP_DWC3_VBUS_VALID;
-		} else {
-			usb_otg_ss2.dr_mode = USB_DR_MODE_HOST;
-			usb_otg_ss2_glue.vbus_id_status = OMAP_DWC3_ID_GROUND;
-		}
-
-		ti_usb_phy_uboot_init(&usb_phy2_device);
-		dwc3_omap_uboot_init(&usb_otg_ss2_glue);
-		dwc3_uboot_init(&usb_otg_ss2);
-		break;
-	default:
-		printf("Invalid Controller Index\n");
-	}
-
-	return 0;
-}
-
-int board_usb_cleanup(int index, enum usb_init_type init)
-{
-	switch (index) {
-	case 0:
-	case 1:
-		ti_usb_phy_uboot_exit(index);
-		dwc3_uboot_exit(index);
-		dwc3_omap_uboot_exit(index);
-		break;
-	default:
-		printf("Invalid Controller Index\n");
-	}
-	disable_usb_clocks(index);
-	return 0;
-}
-
-int usb_gadget_handle_interrupts(int index)
-{
-	u32 status;
-
-	status = dwc3_omap_uboot_interrupt_status(index);
-	if (status)
-		dwc3_uboot_handle_interrupt(index);
-
-	return 0;
-}
-#endif
-
 #if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_OS_BOOT)
 int spl_start_uboot(void)
 {
Signature · 1 line
2.7.4
#11 lore raw

PATCH v7 11/11 board: ti: am57xx: remove USB platform code

In reply to Jean-Jacques Hiblot

---

Changes in v7: None
Changes in v6:
- Supports DM USB for peripherals
- Removed DTS changes that disabled USB1 on DRA7 because DM_USB_DEV is now supported

Changes in v5: None
Changes in v4: None
Changes in v3: None
Changes in v2: None

 board/ti/am57xx/board.c | 86 -------------------------------------------------
 1 file changed, 86 deletions(-)
board/ti/am57xx/board.c +0 -86
index ffe2a54..8dfb2ee 100644
@@ -883,92 +883,6 @@ int spl_start_uboot(void)
 }
 #endif
 
-#if defined(CONFIG_USB_DWC3) && \
-    !(defined(CONFIG_DM_USB) && defined(CONFIG_DM_USB_DEV))
-static struct dwc3_device usb_otg_ss2 = {
-	.maximum_speed = USB_SPEED_HIGH,
-	.base = DRA7_USB_OTG_SS2_BASE,
-	.tx_fifo_resize = false,
-	.index = 1,
-};
-
-static struct dwc3_omap_device usb_otg_ss2_glue = {
-	.base = (void *)DRA7_USB_OTG_SS2_GLUE_BASE,
-	.utmi_mode = DWC3_OMAP_UTMI_MODE_SW,
-	.index = 1,
-};
-
-static struct ti_usb_phy_device usb_phy2_device = {
-	.usb2_phy_power = (void *)DRA7_USB2_PHY2_POWER,
-	.index = 1,
-};
-
-int usb_gadget_handle_interrupts(int index)
-{
-	u32 status;
-
-	status = dwc3_omap_uboot_interrupt_status(index);
-	if (status)
-		dwc3_uboot_handle_interrupt(index);
-
-	return 0;
-}
-
-int board_usb_init(int index, enum usb_init_type init)
-{
-	enable_usb_clocks(index);
-	switch (index) {
-	case 0:
-		if (init == USB_INIT_DEVICE) {
-			printf("port %d can't be used as device\n", index);
-			disable_usb_clocks(index);
-			return -EINVAL;
-		}
-		break;
-	case 1:
-		if (init == USB_INIT_DEVICE) {
-#ifdef CONFIG_USB_DWC3
-			usb_otg_ss2.dr_mode = USB_DR_MODE_PERIPHERAL;
-			usb_otg_ss2_glue.vbus_id_status = OMAP_DWC3_VBUS_VALID;
-			ti_usb_phy_uboot_init(&usb_phy2_device);
-			dwc3_omap_uboot_init(&usb_otg_ss2_glue);
-			dwc3_uboot_init(&usb_otg_ss2);
-#endif
-		} else {
-			printf("port %d can't be used as host\n", index);
-			disable_usb_clocks(index);
-			return -EINVAL;
-		}
-
-		break;
-	default:
-		printf("Invalid Controller Index\n");
-	}
-
-	return 0;
-}
-
-int board_usb_cleanup(int index, enum usb_init_type init)
-{
-#ifdef CONFIG_USB_DWC3
-	switch (index) {
-	case 0:
-	case 1:
-		if (init == USB_INIT_DEVICE) {
-			ti_usb_phy_uboot_exit(index);
-			dwc3_uboot_exit(index);
-			dwc3_omap_uboot_exit(index);
-		}
-		break;
-	default:
-		printf("Invalid Controller Index\n");
-	}
-#endif
-	disable_usb_clocks(index);
-	return 0;
-}
-#endif /* defined(CONFIG_USB_DWC3) || defined(CONFIG_USB_XHCI_OMAP) */
-
 #ifdef CONFIG_DRIVER_TI_CPSW
 
 /* Delay value to add to calibrated value */
Signature · 1 line
2.7.4
#12 lore raw

v7 cover Add support for DM_USB and DM_USB_DEV for TI's DRA7 EVMs and AM57 EVMs platforms.

In reply to Jean-Jacques Hiblot

Hi Jean-Jacques,

Quoted 10 lines

Resending this series after rebasing on top of latest u-boot. This series applies on top of the series "[PATCH v3 0/7] Improvements for the dwc3_generic driver"

Moving to DM_USB and DM_USB_DEV brings some benefits:
- it is required to support DM_ETH and USB network adapters with the same binary.
- support for USB3 on AM57x comes almost for free
- removal of platform code related to USB

Quoted 4 lines

Tested on:
- dra76 evm
- AM572 evm

I've tried to merge and test your patches:
SHA1: 0c4b382f9041f9f2f00246c8a0ece90dae5451be
https://github.com/lmajewski/u-boot-dfu/commits/testing

The results from Travis-CI:
https://travis-ci.org/lmajewski/u-boot-dfu/jobs/456736504

It breaks for e.g. OMAP.

Could you check this problem and resubmit patches?

Thanks in advance,
Łukasz

Quoted 77 lines

Changes in v7:
- replace remaining if() statements with ut_assert()
- Fix build issue "multiple definition of `usb_gadget_handle_interrupts'"
- Fixed build issue "multiple definition of `usb_gadget_handle_interrupts'"

Changes in v6:
- ti-pipe3-phy: take PLL out of IDLE in pipe3_init(). The PLL may have been put into idle by pipe3_exit()
- DRA7 configs: enable DM_USB and DM_USB_DEV. Use DWC3_GENERIC in place of DWC3_OF_SIMPLE. disable non DM USB options
- AM57 configs: enable DM_USB and DM_USB_DEV. Use DWC3_GENERIC in place of DWC3_OF_SIMPLE. disable non DM USB options
- Supports DM USB for peripherals
- Removed DTS changes that disabled USB1 on DRA7 because DM_USB_DEV is now supported

Changes in v5:
- Rebased on latest u-boot
- Removed patches that have already been merged

Changes in v4:
- Fix word missing in commit log
- Remove dependency on MISC
- Renamed the commit (DM_USB is already enabled, the only missing option is for the USB2 phy driver)
- Remove dependency on MISC
- Remove omap specific glue layer and use dwc3-of-simple glue layer

Changes in v3:
- in syscon_regmap_lookup_by_phandle(), use dev_dbg() instead of printf()
- added unit test for syscon_regmap_lookup_by_phandle()

Changes in v2:
- Add USB3 support to ti-pipe3-phy driver
- omap-usb2-phy: Implement power_on and power_off callbacks
- am57xx boards: when DM_USB is used, turn on the required USB clocks
- split dts changes in 2 commits: one for binding the children of ocp2scp at 4a080000, and one to disable USB1 on all DRA7 EVMs
- Enable DM_USB in am57xx_evm_defconfig. USB3 (super speed) is supported.

Jean-Jacques Hiblot (9):
syscon: dm: Add a new method to get a regmap from DTS
phy: Add a new driver for OMAP's USB2 PHYs
dwc3-generic: Add support for the TI DWC3 glue
board: ti: dra7xx-evm: turn on USB clocks in late init stage
dts: dra7x: make ocp2scp at 4a080000 compatible with simple-bus
configs: enable DM_USB and DM_USB_DEV for all DRA7 platforms
configs: am57xx_evm: Enable DM_USB and DM_USB_DEV
board: ti: dra7-evm: remove USB platform code
board: ti: am57xx: remove USB platform code

Vignesh R (2):
phy: ti-pip3-phy: Add support for USB3 PHY
board; ti: am57xx: turn on USB clocks

 arch/arm/dts/omap5-u-boot.dtsi  |   4 +
 arch/sandbox/dts/test.dts       |   6 +-
 board/ti/am57xx/board.c         | 106 ++++------------------
 board/ti/dra7xx/evm.c           | 123 ++++---------------------
 configs/am57xx_evm_defconfig    |  10 +-
 configs/am57xx_hs_evm_defconfig |  10 +-
 configs/dra7xx_evm_defconfig    |   8 +-
 configs/dra7xx_hs_evm_defconfig |   8 +-
 drivers/core/syscon-uclass.c    |  23 +++++
 drivers/phy/Kconfig             |   9 ++
 drivers/phy/Makefile            |   1 +
 drivers/phy/omap-usb2-phy.c     | 196
++++++++++++++++++++++++++++++++++++++++
drivers/phy/ti-pipe3-phy.c      |  32 +++++--
drivers/usb/dwc3/dwc3-generic.c |  85 +++++++++++++++++
include/syscon.h                |  13 +++
test/dm/syscon.c                |  29 ++++++ 16 files changed, 448
Quoted 3 lines

insertions(+), 215 deletions(-) create mode 100644 drivers/phy/omap-usb2-phy.c

Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de -------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20181119/4dd21c44/attachment.sig>

#13 lore raw

v7 cover Add support for DM_USB and DM_USB_DEV for TI's DRA7 EVMs and AM57 EVMs platforms.

Hi Lukasz,

Quoted 21 lines · Lukasz Majewski

Hi Jean-Jacques,

Quoted 10 lines

Resending this series after rebasing on top of latest u-boot. This series applies on top of the series "[PATCH v3 0/7] Improvements for the dwc3_generic driver"

Moving to DM_USB and DM_USB_DEV brings some benefits:
- it is required to support DM_ETH and USB network adapters with the same binary.
- support for USB3 on AM57x comes almost for free
- removal of platform code related to USB

Quoted 4 lines

Tested on:
- dra76 evm
- AM572 evm

I've tried to merge and test your patches:
SHA1: 0c4b382f9041f9f2f00246c8a0ece90dae5451be
https://github.com/lmajewski/u-boot-dfu/commits/testing

Quoted 4 lines

The results from Travis-CI:
https://travis-ci.org/lmajewski/u-boot-dfu/jobs/456736504

It breaks for e.g. OMAP.

Thanks for testing it.

This series applies on top of the series "[PATCH v3 0/7] Improvements for the dwc3_generic driver". This is required to set the direction of PHY (peripheral or host).

This is the reason why it fails to build properly.

JJ

Quoted 97 lines

Could you check this problem and resubmit patches?

Thanks in advance,
Łukasz

Quoted 76 lines

Changes in v7:
- replace remaining if() statements with ut_assert()
- Fix build issue "multiple definition of `usb_gadget_handle_interrupts'"
- Fixed build issue "multiple definition of `usb_gadget_handle_interrupts'"

Changes in v6:
- ti-pipe3-phy: take PLL out of IDLE in pipe3_init(). The PLL may have been put into idle by pipe3_exit()
- DRA7 configs: enable DM_USB and DM_USB_DEV. Use DWC3_GENERIC in place of DWC3_OF_SIMPLE. disable non DM USB options
- AM57 configs: enable DM_USB and DM_USB_DEV. Use DWC3_GENERIC in place of DWC3_OF_SIMPLE. disable non DM USB options
- Supports DM USB for peripherals
- Removed DTS changes that disabled USB1 on DRA7 because DM_USB_DEV is now supported

Changes in v5:
- Rebased on latest u-boot
- Removed patches that have already been merged

Changes in v4:
- Fix word missing in commit log
- Remove dependency on MISC
- Renamed the commit (DM_USB is already enabled, the only missing option is for the USB2 phy driver)
- Remove dependency on MISC
- Remove omap specific glue layer and use dwc3-of-simple glue layer

Changes in v3:
- in syscon_regmap_lookup_by_phandle(), use dev_dbg() instead of printf()
- added unit test for syscon_regmap_lookup_by_phandle()

Changes in v2:
- Add USB3 support to ti-pipe3-phy driver
- omap-usb2-phy: Implement power_on and power_off callbacks
- am57xx boards: when DM_USB is used, turn on the required USB clocks
- split dts changes in 2 commits: one for binding the children of ocp2scp at 4a080000, and one to disable USB1 on all DRA7 EVMs
- Enable DM_USB in am57xx_evm_defconfig. USB3 (super speed) is supported.

Jean-Jacques Hiblot (9):
syscon: dm: Add a new method to get a regmap from DTS
phy: Add a new driver for OMAP's USB2 PHYs
dwc3-generic: Add support for the TI DWC3 glue
board: ti: dra7xx-evm: turn on USB clocks in late init stage
dts: dra7x: make ocp2scp at 4a080000 compatible with simple-bus
configs: enable DM_USB and DM_USB_DEV for all DRA7 platforms
configs: am57xx_evm: Enable DM_USB and DM_USB_DEV
board: ti: dra7-evm: remove USB platform code
board: ti: am57xx: remove USB platform code

Vignesh R (2):
phy: ti-pip3-phy: Add support for USB3 PHY
board; ti: am57xx: turn on USB clocks

  arch/arm/dts/omap5-u-boot.dtsi  |   4 +
  arch/sandbox/dts/test.dts       |   6 +-
  board/ti/am57xx/board.c         | 106 ++++------------------
  board/ti/dra7xx/evm.c           | 123 ++++---------------------
  configs/am57xx_evm_defconfig    |  10 +-
  configs/am57xx_hs_evm_defconfig |  10 +-
  configs/dra7xx_evm_defconfig    |   8 +-
  configs/dra7xx_hs_evm_defconfig |   8 +-
  drivers/core/syscon-uclass.c    |  23 +++++
  drivers/phy/Kconfig             |   9 ++
  drivers/phy/Makefile            |   1 +
  drivers/phy/omap-usb2-phy.c     | 196
++++++++++++++++++++++++++++++++++++++++
drivers/phy/ti-pipe3-phy.c      |  32 +++++--
drivers/usb/dwc3/dwc3-generic.c |  85 +++++++++++++++++
include/syscon.h                |  13 +++
test/dm/syscon.c                |  29 ++++++ 16 files changed, 448
Quoted 3 lines

insertions(+), 215 deletions(-) create mode 100644 drivers/phy/omap-usb2-phy.c

Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de

#14 lore raw

v7 cover Add support for DM_USB and DM_USB_DEV for TI's DRA7 EVMs and AM57 EVMs platforms.

Hi Jean-Jacques,

Quoted 27 lines

Hi Lukasz,

Quoted 24 lines · Lukasz Majewski

Hi Jean-Jacques,

Quoted 10 lines

Resending this series after rebasing on top of latest u-boot. This series applies on top of the series "[PATCH v3 0/7] Improvements for the dwc3_generic driver"

Moving to DM_USB and DM_USB_DEV brings some benefits:
- it is required to support DM_ETH and USB network adapters with the same binary.
- support for USB3 on AM57x comes almost for free
- removal of platform code related to USB

Quoted 4 lines

Tested on:
- dra76 evm
- AM572 evm

I've tried to merge and test your patches:
SHA1: 0c4b382f9041f9f2f00246c8a0ece90dae5451be
https://github.com/lmajewski/u-boot-dfu/commits/testing

The results from Travis-CI:
https://travis-ci.org/lmajewski/u-boot-dfu/jobs/456736504

Quoted 7 lines
Quoted 1 line

It breaks for e.g. OMAP.

Thanks for testing it.

This series applies on top of the series "[PATCH v3 0/7] Improvements for the dwc3_generic driver". This is required to set the direction of PHY (peripheral or host).

Ach... Ok. I will re-test it. Thanks for the hint.

Quoted 105 lines

This is the reason why it fails to build properly.

JJ

Quoted 99 lines

Could you check this problem and resubmit patches?

Thanks in advance,
Łukasz

Quoted 77 lines

Changes in v7:
- replace remaining if() statements with ut_assert()
- Fix build issue "multiple definition of `usb_gadget_handle_interrupts'"
- Fixed build issue "multiple definition of `usb_gadget_handle_interrupts'"

Changes in v6:
- ti-pipe3-phy: take PLL out of IDLE in pipe3_init(). The PLL may have been put into idle by pipe3_exit()
- DRA7 configs: enable DM_USB and DM_USB_DEV. Use DWC3_GENERIC in place of DWC3_OF_SIMPLE. disable non DM USB options
- AM57 configs: enable DM_USB and DM_USB_DEV. Use DWC3_GENERIC in place of DWC3_OF_SIMPLE. disable non DM USB options
- Supports DM USB for peripherals
- Removed DTS changes that disabled USB1 on DRA7 because DM_USB_DEV is now supported

Changes in v5:
- Rebased on latest u-boot
- Removed patches that have already been merged

Changes in v4:
- Fix word missing in commit log
- Remove dependency on MISC
- Renamed the commit (DM_USB is already enabled, the only missing option is for the USB2 phy driver)
- Remove dependency on MISC
- Remove omap specific glue layer and use dwc3-of-simple glue layer

Changes in v3:
- in syscon_regmap_lookup_by_phandle(), use dev_dbg() instead of printf()
- added unit test for syscon_regmap_lookup_by_phandle()

Changes in v2:
- Add USB3 support to ti-pipe3-phy driver
- omap-usb2-phy: Implement power_on and power_off callbacks
- am57xx boards: when DM_USB is used, turn on the required USB clocks
- split dts changes in 2 commits: one for binding the children of ocp2scp at 4a080000, and one to disable USB1 on all DRA7 EVMs
- Enable DM_USB in am57xx_evm_defconfig. USB3 (super speed) is supported.

Jean-Jacques Hiblot (9):
syscon: dm: Add a new method to get a regmap from DTS
phy: Add a new driver for OMAP's USB2 PHYs
dwc3-generic: Add support for the TI DWC3 glue
board: ti: dra7xx-evm: turn on USB clocks in late init stage
dts: dra7x: make ocp2scp at 4a080000 compatible with simple-bus
configs: enable DM_USB and DM_USB_DEV for all DRA7 platforms
configs: am57xx_evm: Enable DM_USB and DM_USB_DEV
board: ti: dra7-evm: remove USB platform code
board: ti: am57xx: remove USB platform code

Vignesh R (2):
phy: ti-pip3-phy: Add support for USB3 PHY
board; ti: am57xx: turn on USB clocks

  arch/arm/dts/omap5-u-boot.dtsi  |   4 +
  arch/sandbox/dts/test.dts       |   6 +-
  board/ti/am57xx/board.c         | 106 ++++------------------
  board/ti/dra7xx/evm.c           | 123 ++++---------------------
  configs/am57xx_evm_defconfig    |  10 +-
  configs/am57xx_hs_evm_defconfig |  10 +-
  configs/dra7xx_evm_defconfig    |   8 +-
  configs/dra7xx_hs_evm_defconfig |   8 +-
  drivers/core/syscon-uclass.c    |  23 +++++
  drivers/phy/Kconfig             |   9 ++
  drivers/phy/Makefile            |   1 +
  drivers/phy/omap-usb2-phy.c     | 196
++++++++++++++++++++++++++++++++++++++++
drivers/phy/ti-pipe3-phy.c      |  32 +++++--
drivers/usb/dwc3/dwc3-generic.c |  85 +++++++++++++++++
include/syscon.h                |  13 +++
test/dm/syscon.c                |  29 ++++++ 16 files changed, 448
Quoted 3 lines

insertions(+), 215 deletions(-) create mode 100644 drivers/phy/omap-usb2-phy.c

Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH, Managing Director: Wolfgang
Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email:
lukma at denx.de

Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de -------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20181119/b386306b/attachment.sig>

#15 lore raw

v7 cover Add support for DM_USB and DM_USB_DEV for TI's DRA7 EVMs and AM57 EVMs platforms.

In reply to Lukasz Majewski

Hi,

Quoted 12 lines

Hi Jean-Jacques,

Quoted 10 lines

Resending this series after rebasing on top of latest u-boot. This series applies on top of the series "[PATCH v3 0/7] Improvements for the dwc3_generic driver"

Moving to DM_USB and DM_USB_DEV brings some benefits:
- it is required to support DM_ETH and USB network adapters with the same binary.
- support for USB3 on AM57x comes almost for free
- removal of platform code related to USB

Quoted 9 lines
Quoted 4 lines

Tested on:
- dra76 evm
- AM572 evm

I've tried to merge and test your patches:
SHA1: 0c4b382f9041f9f2f00246c8a0ece90dae5451be
https://github.com/lmajewski/u-boot-dfu/commits/testing

The updated repository is the same as above (SHA1 is of course different)

Quoted 3 lines

The results from Travis-CI:
https://travis-ci.org/lmajewski/u-boot-dfu/jobs/456736504

https://travis-ci.org/lmajewski/u-boot-dfu/builds/457229385

The "buildman" rockchip build breaks after applying your patches.

https://travis-ci.org/lmajewski/u-boot-dfu/jobs/457229443

Quoted 4 lines

It breaks for e.g. OMAP.

Could you check this problem and resubmit patches?

Am I missing any more patches? Or maybe you have a Travis-CI "clean" branch/repo somewhere so I could use it ?

Quoted 91 lines

Thanks in advance,
Łukasz

Quoted 78 lines

Changes in v7:
- replace remaining if() statements with ut_assert()
- Fix build issue "multiple definition of `usb_gadget_handle_interrupts'"
- Fixed build issue "multiple definition of `usb_gadget_handle_interrupts'"

Changes in v6:
- ti-pipe3-phy: take PLL out of IDLE in pipe3_init(). The PLL may have been put into idle by pipe3_exit()
- DRA7 configs: enable DM_USB and DM_USB_DEV. Use DWC3_GENERIC in place of DWC3_OF_SIMPLE. disable non DM USB options
- AM57 configs: enable DM_USB and DM_USB_DEV. Use DWC3_GENERIC in place of DWC3_OF_SIMPLE. disable non DM USB options
- Supports DM USB for peripherals
- Removed DTS changes that disabled USB1 on DRA7 because DM_USB_DEV is now supported

Changes in v5:
- Rebased on latest u-boot
- Removed patches that have already been merged

Changes in v4:
- Fix word missing in commit log
- Remove dependency on MISC
- Renamed the commit (DM_USB is already enabled, the only missing option is for the USB2 phy driver)
- Remove dependency on MISC
- Remove omap specific glue layer and use dwc3-of-simple glue layer

Changes in v3:
- in syscon_regmap_lookup_by_phandle(), use dev_dbg() instead of printf()
- added unit test for syscon_regmap_lookup_by_phandle()

Changes in v2:
- Add USB3 support to ti-pipe3-phy driver
- omap-usb2-phy: Implement power_on and power_off callbacks
- am57xx boards: when DM_USB is used, turn on the required USB clocks
- split dts changes in 2 commits: one for binding the children of ocp2scp at 4a080000, and one to disable USB1 on all DRA7 EVMs
- Enable DM_USB in am57xx_evm_defconfig. USB3 (super speed) is supported.

Jean-Jacques Hiblot (9):
syscon: dm: Add a new method to get a regmap from DTS
phy: Add a new driver for OMAP's USB2 PHYs
dwc3-generic: Add support for the TI DWC3 glue
board: ti: dra7xx-evm: turn on USB clocks in late init stage
dts: dra7x: make ocp2scp at 4a080000 compatible with simple-bus
configs: enable DM_USB and DM_USB_DEV for all DRA7 platforms
configs: am57xx_evm: Enable DM_USB and DM_USB_DEV
board: ti: dra7-evm: remove USB platform code
board: ti: am57xx: remove USB platform code

Vignesh R (2):
phy: ti-pip3-phy: Add support for USB3 PHY
board; ti: am57xx: turn on USB clocks

 arch/arm/dts/omap5-u-boot.dtsi  |   4 +
 arch/sandbox/dts/test.dts       |   6 +-
 board/ti/am57xx/board.c         | 106 ++++------------------
 board/ti/dra7xx/evm.c           | 123 ++++---------------------
 configs/am57xx_evm_defconfig    |  10 +-
 configs/am57xx_hs_evm_defconfig |  10 +-
 configs/dra7xx_evm_defconfig    |   8 +-
 configs/dra7xx_hs_evm_defconfig |   8 +-
 drivers/core/syscon-uclass.c    |  23 +++++
 drivers/phy/Kconfig             |   9 ++
 drivers/phy/Makefile            |   1 +
 drivers/phy/omap-usb2-phy.c     | 196
++++++++++++++++++++++++++++++++++++++++
drivers/phy/ti-pipe3-phy.c      |  32 +++++--
drivers/usb/dwc3/dwc3-generic.c |  85 +++++++++++++++++
include/syscon.h                |  13 +++
test/dm/syscon.c                |  29 ++++++ 16 files changed, 448
Quoted 3 lines

insertions(+), 215 deletions(-) create mode 100644 drivers/phy/omap-usb2-phy.c

Best regards,

Quoted 8 lines

Lukasz Majewski

--

DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email:
lukma at denx.de

Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de -------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20181120/4a5e0341/attachment.sig>

#16 lore raw

v7 cover Add support for DM_USB and DM_USB_DEV for TI's DRA7 EVMs and AM57 EVMs platforms.

Quoted 31 lines · Lukasz Majewski

Hi,

Quoted 12 lines

Hi Jean-Jacques,

Quoted 10 lines

Resending this series after rebasing on top of latest u-boot. This series applies on top of the series "[PATCH v3 0/7] Improvements for the dwc3_generic driver"

Moving to DM_USB and DM_USB_DEV brings some benefits:
- it is required to support DM_ETH and USB network adapters with the same binary.
- support for USB3 on AM57x comes almost for free
- removal of platform code related to USB

Quoted 8 lines
Quoted 4 lines

Tested on:
- dra76 evm
- AM572 evm

I've tried to merge and test your patches:
SHA1: 0c4b382f9041f9f2f00246c8a0ece90dae5451be
https://github.com/lmajewski/u-boot-dfu/commits/testing

The updated repository is the same as above (SHA1 is of course different)

Quoted 2 lines

The results from Travis-CI:
https://travis-ci.org/lmajewski/u-boot-dfu/jobs/456736504

https://travis-ci.org/lmajewski/u-boot-dfu/builds/457229385

The "buildman" rockchip build breaks after applying your patches.

Quoted 8 lines

https://travis-ci.org/lmajewski/u-boot-dfu/jobs/457229443

Quoted 3 lines

It breaks for e.g. OMAP.

Could you check this problem and resubmit patches?

Am I missing any more patches? Or maybe you have a Travis-CI "clean" branch/repo somewhere so I could use it ?

The error is legit. It must have been caused by a recent change.

It  fails because CONFIG_TPL_LOGLEVEL is not set....

It means that dev_dbg(), and dev_... printout functions cannot be used within the TPL. I'm surprised that it hasn't been seen before.

A simple fix is to add a definition for TPL_LOG_LEVEL in the Kconfig

common/Kconfig +4 -0
index d7300c2..949dba4 100644
@@ -290,6 +290,10 @@ config SPL_LOGLEVEL
         int
         default LOGLEVEL
 
+config TPL_LOGLEVEL
+       int
+       default LOGLEVEL
+
 

There is a patch from Simon that does that and much more '[PATCH v3 01/21] spl: Add support for logging in SPL and TPL'. Can you try with this patch ?

Quoted 108 lines
Quoted 88 lines

Thanks in advance,
Łukasz

Quoted 77 lines

Changes in v7:
- replace remaining if() statements with ut_assert()
- Fix build issue "multiple definition of `usb_gadget_handle_interrupts'"
- Fixed build issue "multiple definition of `usb_gadget_handle_interrupts'"

Changes in v6:
- ti-pipe3-phy: take PLL out of IDLE in pipe3_init(). The PLL may have been put into idle by pipe3_exit()
- DRA7 configs: enable DM_USB and DM_USB_DEV. Use DWC3_GENERIC in place of DWC3_OF_SIMPLE. disable non DM USB options
- AM57 configs: enable DM_USB and DM_USB_DEV. Use DWC3_GENERIC in place of DWC3_OF_SIMPLE. disable non DM USB options
- Supports DM USB for peripherals
- Removed DTS changes that disabled USB1 on DRA7 because DM_USB_DEV is now supported

Changes in v5:
- Rebased on latest u-boot
- Removed patches that have already been merged

Changes in v4:
- Fix word missing in commit log
- Remove dependency on MISC
- Renamed the commit (DM_USB is already enabled, the only missing option is for the USB2 phy driver)
- Remove dependency on MISC
- Remove omap specific glue layer and use dwc3-of-simple glue layer

Changes in v3:
- in syscon_regmap_lookup_by_phandle(), use dev_dbg() instead of printf()
- added unit test for syscon_regmap_lookup_by_phandle()

Changes in v2:
- Add USB3 support to ti-pipe3-phy driver
- omap-usb2-phy: Implement power_on and power_off callbacks
- am57xx boards: when DM_USB is used, turn on the required USB clocks
- split dts changes in 2 commits: one for binding the children of ocp2scp at 4a080000, and one to disable USB1 on all DRA7 EVMs
- Enable DM_USB in am57xx_evm_defconfig. USB3 (super speed) is supported.

Jean-Jacques Hiblot (9):
syscon: dm: Add a new method to get a regmap from DTS
phy: Add a new driver for OMAP's USB2 PHYs
dwc3-generic: Add support for the TI DWC3 glue
board: ti: dra7xx-evm: turn on USB clocks in late init stage
dts: dra7x: make ocp2scp at 4a080000 compatible with simple-bus
configs: enable DM_USB and DM_USB_DEV for all DRA7 platforms
configs: am57xx_evm: Enable DM_USB and DM_USB_DEV
board: ti: dra7-evm: remove USB platform code
board: ti: am57xx: remove USB platform code

Vignesh R (2):
phy: ti-pip3-phy: Add support for USB3 PHY
board; ti: am57xx: turn on USB clocks

  arch/arm/dts/omap5-u-boot.dtsi  |   4 +
  arch/sandbox/dts/test.dts       |   6 +-
  board/ti/am57xx/board.c         | 106 ++++------------------
  board/ti/dra7xx/evm.c           | 123 ++++---------------------
  configs/am57xx_evm_defconfig    |  10 +-
  configs/am57xx_hs_evm_defconfig |  10 +-
  configs/dra7xx_evm_defconfig    |   8 +-
  configs/dra7xx_hs_evm_defconfig |   8 +-
  drivers/core/syscon-uclass.c    |  23 +++++
  drivers/phy/Kconfig             |   9 ++
  drivers/phy/Makefile            |   1 +
  drivers/phy/omap-usb2-phy.c     | 196
++++++++++++++++++++++++++++++++++++++++
drivers/phy/ti-pipe3-phy.c      |  32 +++++--
drivers/usb/dwc3/dwc3-generic.c |  85 +++++++++++++++++
include/syscon.h                |  13 +++
test/dm/syscon.c                |  29 ++++++ 16 files changed, 448
Quoted 3 lines

insertions(+), 215 deletions(-) create mode 100644 drivers/phy/omap-usb2-phy.c

Best regards,

Quoted 8 lines

Lukasz Majewski

--

DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email:
lukma at denx.de

Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de

#17 lore raw

v7 cover Add support for DM_USB and DM_USB_DEV for TI's DRA7 EVMs and AM57 EVMs platforms.

In reply to Lukasz Majewski

Hi,

Quoted 28 lines

Hi,

Quoted 12 lines

Hi Jean-Jacques,

Quoted 10 lines

Resending this series after rebasing on top of latest u-boot. This series applies on top of the series "[PATCH v3 0/7] Improvements for the dwc3_generic driver"

Moving to DM_USB and DM_USB_DEV brings some benefits:
- it is required to support DM_ETH and USB network adapters with the same binary.
- support for USB3 on AM57x comes almost for free
- removal of platform code related to USB

Quoted 9 lines
Quoted 4 lines

Tested on:
- dra76 evm
- AM572 evm

I've tried to merge and test your patches:
SHA1: 0c4b382f9041f9f2f00246c8a0ece90dae5451be
https://github.com/lmajewski/u-boot-dfu/commits/testing

The updated repository is the same as above (SHA1 is of course different)

Quoted 1 line
Quoted 8 lines
Quoted 2 lines

The results from Travis-CI:
https://travis-ci.org/lmajewski/u-boot-dfu/jobs/456736504

https://travis-ci.org/lmajewski/u-boot-dfu/builds/457229385

The "buildman" rockchip build breaks after applying your patches.

https://travis-ci.org/lmajewski/u-boot-dfu/jobs/457229443

The repo:
https://github.com/lmajewski/u-boot-dfu/commits/testing

Some build breaks:
https://travis-ci.org/lmajewski/u-boot-dfu/builds/457845111
https://travis-ci.org/lmajewski/u-boot-dfu/jobs/457845133

Please apply your patch series to newest u-boot's master.

In the commit message please state all needed dependencies (or provide link to e.g. github repository so I can fetch it).

Quoted 115 lines
Quoted 5 lines

It breaks for e.g. OMAP.

Could you check this problem and resubmit patches?

Am I missing any more patches? Or maybe you have a Travis-CI "clean" branch/repo somewhere so I could use it ?

Quoted 92 lines

Thanks in advance,
�ukasz

Quoted 79 lines

Changes in v7:
- replace remaining if() statements with ut_assert()
- Fix build issue "multiple definition of `usb_gadget_handle_interrupts'"
- Fixed build issue "multiple definition of `usb_gadget_handle_interrupts'"

Changes in v6:
- ti-pipe3-phy: take PLL out of IDLE in pipe3_init(). The PLL may have been put into idle by pipe3_exit()
- DRA7 configs: enable DM_USB and DM_USB_DEV. Use DWC3_GENERIC in place of DWC3_OF_SIMPLE. disable non DM USB options
- AM57 configs: enable DM_USB and DM_USB_DEV. Use DWC3_GENERIC in place of DWC3_OF_SIMPLE. disable non DM USB options
- Supports DM USB for peripherals
- Removed DTS changes that disabled USB1 on DRA7 because DM_USB_DEV is now supported

Changes in v5:
- Rebased on latest u-boot
- Removed patches that have already been merged

Changes in v4:
- Fix word missing in commit log
- Remove dependency on MISC
- Renamed the commit (DM_USB is already enabled, the only missing option is for the USB2 phy driver)
- Remove dependency on MISC
- Remove omap specific glue layer and use dwc3-of-simple glue layer

Changes in v3:
- in syscon_regmap_lookup_by_phandle(), use dev_dbg() instead of printf()
- added unit test for syscon_regmap_lookup_by_phandle()

Changes in v2:
- Add USB3 support to ti-pipe3-phy driver
- omap-usb2-phy: Implement power_on and power_off callbacks
- am57xx boards: when DM_USB is used, turn on the required USB clocks
- split dts changes in 2 commits: one for binding the children of ocp2scp at 4a080000, and one to disable USB1 on all DRA7 EVMs
- Enable DM_USB in am57xx_evm_defconfig. USB3 (super speed) is supported.

Jean-Jacques Hiblot (9):
syscon: dm: Add a new method to get a regmap from DTS
phy: Add a new driver for OMAP's USB2 PHYs
dwc3-generic: Add support for the TI DWC3 glue
board: ti: dra7xx-evm: turn on USB clocks in late init stage
dts: dra7x: make ocp2scp at 4a080000 compatible with simple-bus
configs: enable DM_USB and DM_USB_DEV for all DRA7 platforms
configs: am57xx_evm: Enable DM_USB and DM_USB_DEV
board: ti: dra7-evm: remove USB platform code
board: ti: am57xx: remove USB platform code

Vignesh R (2):
phy: ti-pip3-phy: Add support for USB3 PHY
board; ti: am57xx: turn on USB clocks

 arch/arm/dts/omap5-u-boot.dtsi  |   4 +
 arch/sandbox/dts/test.dts       |   6 +-
 board/ti/am57xx/board.c         | 106 ++++------------------
 board/ti/dra7xx/evm.c           | 123 ++++---------------------
 configs/am57xx_evm_defconfig    |  10 +-
 configs/am57xx_hs_evm_defconfig |  10 +-
 configs/dra7xx_evm_defconfig    |   8 +-
 configs/dra7xx_hs_evm_defconfig |   8 +-
 drivers/core/syscon-uclass.c    |  23 +++++
 drivers/phy/Kconfig             |   9 ++
 drivers/phy/Makefile            |   1 +
 drivers/phy/omap-usb2-phy.c     | 196
++++++++++++++++++++++++++++++++++++++++
drivers/phy/ti-pipe3-phy.c      |  32 +++++--
drivers/usb/dwc3/dwc3-generic.c |  85 +++++++++++++++++
include/syscon.h                |  13 +++
test/dm/syscon.c                |  29 ++++++ 16 files changed, 448
Quoted 3 lines

insertions(+), 215 deletions(-) create mode 100644 drivers/phy/omap-usb2-phy.c

Best regards,

Quoted 8 lines

Lukasz Majewski

--

DENX Software Engineering GmbH, Managing Director: Wolfgang
Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email:
lukma at denx.de

Best regards,

Quoted 8 lines

Lukasz Majewski

--

DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email:
lukma at denx.de

Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de -------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20181121/f56697bc/attachment.sig>

#18 lore raw

v7 cover Add support for DM_USB and DM_USB_DEV for TI's DRA7 EVMs and AM57 EVMs platforms.

Hi Lukasz,

Quoted 34 lines · Lukasz Majewski

Hi,

Quoted 25 lines

Hi,

Quoted 12 lines

Hi Jean-Jacques,

Quoted 10 lines

Resending this series after rebasing on top of latest u-boot. This series applies on top of the series "[PATCH v3 0/7] Improvements for the dwc3_generic driver"

Moving to DM_USB and DM_USB_DEV brings some benefits:
- it is required to support DM_ETH and USB network adapters with the same binary.
- support for USB3 on AM57x comes almost for free
- removal of platform code related to USB

Quoted 8 lines
Quoted 4 lines

Tested on:
- dra76 evm
- AM572 evm

I've tried to merge and test your patches:
SHA1: 0c4b382f9041f9f2f00246c8a0ece90dae5451be
https://github.com/lmajewski/u-boot-dfu/commits/testing

The updated repository is the same as above (SHA1 is of course different)

Quoted 7 lines
Quoted 2 lines

The results from Travis-CI:
https://travis-ci.org/lmajewski/u-boot-dfu/jobs/456736504

https://travis-ci.org/lmajewski/u-boot-dfu/builds/457229385

The "buildman" rockchip build breaks after applying your patches.

https://travis-ci.org/lmajewski/u-boot-dfu/jobs/457229443

Quoted 8 lines

The repo:
https://github.com/lmajewski/u-boot-dfu/commits/testing

Some build breaks:
https://travis-ci.org/lmajewski/u-boot-dfu/builds/457845111
https://travis-ci.org/lmajewski/u-boot-dfu/jobs/457845133

Please apply your patch series to newest u-boot's master.

already rebased on latest.

Quoted 4 lines

In the commit message please state all needed dependencies (or provide link
to e.g. github repository so I can fetch it).

I pushed a new branch to github: https://github.com/jjhiblot/u-boot.git
dm_usb_dra7_v8

Only difference with v7 is rebasing on top of u-boot master and includes a fix for the Edison build.

Regarding the failing tests:

sandbox x86: The edison_defconfig is not strictly related to this series, but I found the error and it is part of the v8.

PXA (non toradex): This is not related to this series. It looks more like a test setup issue.

JJ

Quoted 131 lines
Quoted 111 lines
Quoted 6 lines

It breaks for e.g. OMAP.

Could you check this problem and resubmit patches?

Am I missing any more patches? Or maybe you have a Travis-CI "clean" branch/repo somewhere so I could use it ?

Quoted 89 lines

Thanks in advance,
Łukasz

Quoted 78 lines

Changes in v7:
- replace remaining if() statements with ut_assert()
- Fix build issue "multiple definition of `usb_gadget_handle_interrupts'"
- Fixed build issue "multiple definition of `usb_gadget_handle_interrupts'"

Changes in v6:
- ti-pipe3-phy: take PLL out of IDLE in pipe3_init(). The PLL may have been put into idle by pipe3_exit()
- DRA7 configs: enable DM_USB and DM_USB_DEV. Use DWC3_GENERIC in place of DWC3_OF_SIMPLE. disable non DM USB options
- AM57 configs: enable DM_USB and DM_USB_DEV. Use DWC3_GENERIC in place of DWC3_OF_SIMPLE. disable non DM USB options
- Supports DM USB for peripherals
- Removed DTS changes that disabled USB1 on DRA7 because DM_USB_DEV is now supported

Changes in v5:
- Rebased on latest u-boot
- Removed patches that have already been merged

Changes in v4:
- Fix word missing in commit log
- Remove dependency on MISC
- Renamed the commit (DM_USB is already enabled, the only missing option is for the USB2 phy driver)
- Remove dependency on MISC
- Remove omap specific glue layer and use dwc3-of-simple glue layer

Changes in v3:
- in syscon_regmap_lookup_by_phandle(), use dev_dbg() instead of printf()
- added unit test for syscon_regmap_lookup_by_phandle()

Changes in v2:
- Add USB3 support to ti-pipe3-phy driver
- omap-usb2-phy: Implement power_on and power_off callbacks
- am57xx boards: when DM_USB is used, turn on the required USB clocks
- split dts changes in 2 commits: one for binding the children of ocp2scp at 4a080000, and one to disable USB1 on all DRA7 EVMs
- Enable DM_USB in am57xx_evm_defconfig. USB3 (super speed) is supported.

Jean-Jacques Hiblot (9):
syscon: dm: Add a new method to get a regmap from DTS
phy: Add a new driver for OMAP's USB2 PHYs
dwc3-generic: Add support for the TI DWC3 glue
board: ti: dra7xx-evm: turn on USB clocks in late init stage
dts: dra7x: make ocp2scp at 4a080000 compatible with simple-bus
configs: enable DM_USB and DM_USB_DEV for all DRA7 platforms
configs: am57xx_evm: Enable DM_USB and DM_USB_DEV
board: ti: dra7-evm: remove USB platform code
board: ti: am57xx: remove USB platform code

Vignesh R (2):
phy: ti-pip3-phy: Add support for USB3 PHY
board; ti: am57xx: turn on USB clocks

  arch/arm/dts/omap5-u-boot.dtsi  |   4 +
  arch/sandbox/dts/test.dts       |   6 +-
  board/ti/am57xx/board.c         | 106 ++++------------------
  board/ti/dra7xx/evm.c           | 123 ++++---------------------
  configs/am57xx_evm_defconfig    |  10 +-
  configs/am57xx_hs_evm_defconfig |  10 +-
  configs/dra7xx_evm_defconfig    |   8 +-
  configs/dra7xx_hs_evm_defconfig |   8 +-
  drivers/core/syscon-uclass.c    |  23 +++++
  drivers/phy/Kconfig             |   9 ++
  drivers/phy/Makefile            |   1 +
  drivers/phy/omap-usb2-phy.c     | 196
++++++++++++++++++++++++++++++++++++++++
drivers/phy/ti-pipe3-phy.c      |  32 +++++--
drivers/usb/dwc3/dwc3-generic.c |  85 +++++++++++++++++
include/syscon.h                |  13 +++
test/dm/syscon.c                |  29 ++++++ 16 files changed, 448
Quoted 3 lines

insertions(+), 215 deletions(-) create mode 100644 drivers/phy/omap-usb2-phy.c

Best regards,

Quoted 8 lines

Lukasz Majewski

--

DENX Software Engineering GmbH, Managing Director: Wolfgang
Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email:
lukma at denx.de

Best regards,

Quoted 8 lines

Lukasz Majewski

--

DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email:
lukma at denx.de

Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de