public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [PATCH v5 0/7] Add the USB5744 hub driver as per new DT binding
@ 2024-10-07  4:45 Venkatesh Yadav Abbarapu
  2024-10-07  4:45 ` [PATCH v5 1/7] usb: onboard-hub: Add reset-gpio support Venkatesh Yadav Abbarapu
                   ` (6 more replies)
  0 siblings, 7 replies; 15+ messages in thread
From: Venkatesh Yadav Abbarapu @ 2024-10-07  4:45 UTC (permalink / raw)
  To: u-boot; +Cc: michal.simek, marex, fabrice.gasnier, git

Add the usb5744/usb2744 hub driver which does the reset gpio toggling
and the i2c initialization sequence.

Tested the USB5744/USB2744 usb hub for usb0, usb1 with the
DT nodes on KR260 board.

Changes in v2:
- Added the power_on_reset_us variable, for post-reset time.
- Removed the DM_REGULATOR ifdef around the regulator API's.
- Rename the i2c_init and fixed the return for the API's.

Changes in v3:
- Rename i2c_init to init.
- Fixed the return values for the dev_read_phandle_with_args API.
- Removed the unneccessary cast uint8_t *.

Changes in v4:
- Fixed the indentation issues.
- Fixed the Reverse xmas tree for indentation.
- Replaced dev_dbg to dev_err in all places.

Changes in v5:
- Add new API for usb_onboard_hub_reset.

Venkatesh Yadav Abbarapu (7):
  usb: onboard-hub: Add reset-gpio support
  usb: onboard-hub: Fix the return values of regulator APIs
  usb: onboard-hub: add support for Microchip USB5744
  usb: onboard-hub: Add i2c initialization for usb5744 hub
  usb: onboard-hub: Bail out if peer hub is already probed
  configs: zynqmp_kria: Enable the USB onboard hub
  arm64: zynqmp: Update the usb5744 hub node as per binding

 arch/arm/dts/zynqmp-sck-kr-g-revA.dtso |  48 ++++++
 arch/arm/dts/zynqmp-sck-kr-g-revB.dtso |  48 ++++++
 arch/arm/dts/zynqmp-sck-kv-g-revA.dtso |  18 +++
 arch/arm/dts/zynqmp-sck-kv-g-revB.dtso |  25 +++-
 common/usb_onboard_hub.c               | 194 ++++++++++++++++++++++++-
 configs/xilinx_zynqmp_kria_defconfig   |  11 +-
 6 files changed, 333 insertions(+), 11 deletions(-)

-- 
2.17.1


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

* [PATCH v5 1/7] usb: onboard-hub: Add reset-gpio support
  2024-10-07  4:45 [PATCH v5 0/7] Add the USB5744 hub driver as per new DT binding Venkatesh Yadav Abbarapu
@ 2024-10-07  4:45 ` Venkatesh Yadav Abbarapu
  2024-10-07 12:08   ` Marek Vasut
  2024-10-07  4:45 ` [PATCH v5 2/7] usb: onboard-hub: Fix the return values of regulator APIs Venkatesh Yadav Abbarapu
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 15+ messages in thread
From: Venkatesh Yadav Abbarapu @ 2024-10-07  4:45 UTC (permalink / raw)
  To: u-boot; +Cc: michal.simek, marex, fabrice.gasnier, git

As part of the reset, sets the direction of the pin to output before
toggling the pin. Delay of millisecond is added in between low and
high to meet the setup and hold time requirement of the reset.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
---
 common/usb_onboard_hub.c | 49 +++++++++++++++++++++++++++++++++++++++-
 1 file changed, 48 insertions(+), 1 deletion(-)

diff --git a/common/usb_onboard_hub.c b/common/usb_onboard_hub.c
index 68a04ac041..4317e81ed8 100644
--- a/common/usb_onboard_hub.c
+++ b/common/usb_onboard_hub.c
@@ -7,14 +7,51 @@
  * Mostly inspired by Linux kernel v6.1 onboard_usb_hub driver
  */
 
+#include <asm/gpio.h>
 #include <dm.h>
 #include <dm/device_compat.h>
+#include <linux/delay.h>
 #include <power/regulator.h>
 
 struct onboard_hub {
 	struct udevice *vdd;
+	struct gpio_desc *reset_gpio;
 };
 
+struct onboard_hub_data {
+	unsigned long reset_us;
+	unsigned long power_on_delay_us;
+};
+
+int usb_onboard_hub_reset(struct udevice *dev)
+{
+	struct onboard_hub_data *data =
+		(struct onboard_hub_data *)dev_get_driver_data(dev);
+	struct onboard_hub *hub = dev_get_priv(dev);
+	int ret;
+
+	hub->reset_gpio = devm_gpiod_get_optional(dev, "reset",
+						  GPIOD_IS_OUT | GPIOD_ACTIVE_LOW);
+
+	/* property is optional, don't return error! */
+	if (!hub->reset_gpio)
+		return 0;
+
+	ret = dm_gpio_set_value(hub->reset_gpio, 1);
+	if (ret)
+		return ret;
+
+	udelay(data->reset_us);
+
+	ret = dm_gpio_set_value(hub->reset_gpio, 0);
+	if (ret)
+		return ret;
+
+	udelay(data->power_on_delay_us);
+
+	return 0;
+}
+
 static int usb_onboard_hub_probe(struct udevice *dev)
 {
 	struct onboard_hub *hub = dev_get_priv(dev);
@@ -30,7 +67,11 @@ static int usb_onboard_hub_probe(struct udevice *dev)
 	if (ret)
 		dev_err(dev, "can't enable vdd-supply: %d\n", ret);
 
-	return ret;
+	ret = usb_onboard_hub_reset(dev);
+	if (ret)
+		return ret;
+
+	return 0;
 }
 
 static int usb_onboard_hub_remove(struct udevice *dev)
@@ -38,6 +79,12 @@ static int usb_onboard_hub_remove(struct udevice *dev)
 	struct onboard_hub *hub = dev_get_priv(dev);
 	int ret;
 
+	if (hub->reset_gpio) {
+		struct gpio_desc *hub_reset_gpio = hub->reset_gpio;
+
+		dm_gpio_free(hub_reset_gpio->dev, hub_reset_gpio);
+	}
+
 	ret = regulator_set_enable_if_allowed(hub->vdd, false);
 	if (ret)
 		dev_err(dev, "can't disable vdd-supply: %d\n", ret);
-- 
2.17.1


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

* [PATCH v5 2/7] usb: onboard-hub: Fix the return values of regulator APIs
  2024-10-07  4:45 [PATCH v5 0/7] Add the USB5744 hub driver as per new DT binding Venkatesh Yadav Abbarapu
  2024-10-07  4:45 ` [PATCH v5 1/7] usb: onboard-hub: Add reset-gpio support Venkatesh Yadav Abbarapu
@ 2024-10-07  4:45 ` Venkatesh Yadav Abbarapu
  2024-10-07 12:09   ` Marek Vasut
  2024-10-07  4:45 ` [PATCH v5 3/7] usb: onboard-hub: add support for Microchip USB5744 Venkatesh Yadav Abbarapu
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 15+ messages in thread
From: Venkatesh Yadav Abbarapu @ 2024-10-07  4:45 UTC (permalink / raw)
  To: u-boot; +Cc: michal.simek, marex, fabrice.gasnier, git

Don't error out if there is no vdd regulator supply, as these are
optional properties.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
---
 common/usb_onboard_hub.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/common/usb_onboard_hub.c b/common/usb_onboard_hub.c
index 4317e81ed8..c395ac4912 100644
--- a/common/usb_onboard_hub.c
+++ b/common/usb_onboard_hub.c
@@ -58,14 +58,18 @@ static int usb_onboard_hub_probe(struct udevice *dev)
 	int ret;
 
 	ret = device_get_supply_regulator(dev, "vdd-supply", &hub->vdd);
-	if (ret) {
+	if (ret && ret != -ENOENT) {
 		dev_err(dev, "can't get vdd-supply: %d\n", ret);
 		return ret;
 	}
 
-	ret = regulator_set_enable_if_allowed(hub->vdd, true);
-	if (ret)
-		dev_err(dev, "can't enable vdd-supply: %d\n", ret);
+	if (hub->vdd) {
+		ret = regulator_set_enable_if_allowed(hub->vdd, true);
+		if (ret && ret != -ENOSYS) {
+			dev_err(dev, "can't enable vdd-supply: %d\n", ret);
+			return ret;
+		}
+	}
 
 	ret = usb_onboard_hub_reset(dev);
 	if (ret)
-- 
2.17.1


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

* [PATCH v5 3/7] usb: onboard-hub: add support for Microchip USB5744
  2024-10-07  4:45 [PATCH v5 0/7] Add the USB5744 hub driver as per new DT binding Venkatesh Yadav Abbarapu
  2024-10-07  4:45 ` [PATCH v5 1/7] usb: onboard-hub: Add reset-gpio support Venkatesh Yadav Abbarapu
  2024-10-07  4:45 ` [PATCH v5 2/7] usb: onboard-hub: Fix the return values of regulator APIs Venkatesh Yadav Abbarapu
@ 2024-10-07  4:45 ` Venkatesh Yadav Abbarapu
  2024-10-07 12:09   ` Marek Vasut
  2024-10-07  4:45 ` [PATCH v5 4/7] usb: onboard-hub: Add i2c initialization for usb5744 hub Venkatesh Yadav Abbarapu
                   ` (3 subsequent siblings)
  6 siblings, 1 reply; 15+ messages in thread
From: Venkatesh Yadav Abbarapu @ 2024-10-07  4:45 UTC (permalink / raw)
  To: u-boot; +Cc: michal.simek, marex, fabrice.gasnier, git

Add support for the Microchip USB5744 USB3.0 and USB2.0 Hub.
The usb5744 driver trigger hub reset signal after soft reset.
The usb5744 hub need to reset after the phy initialization,
which toggles the gpio.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
---
 common/usb_onboard_hub.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/common/usb_onboard_hub.c b/common/usb_onboard_hub.c
index c395ac4912..bb4402455c 100644
--- a/common/usb_onboard_hub.c
+++ b/common/usb_onboard_hub.c
@@ -96,10 +96,21 @@ static int usb_onboard_hub_remove(struct udevice *dev)
 	return ret;
 }
 
+static const struct onboard_hub_data usb5744_data = {
+	.reset_us = 10000,
+	.power_on_delay_us = 10000,
+};
+
 static const struct udevice_id usb_onboard_hub_ids[] = {
 	/* Use generic usbVID,PID dt-bindings (usb-device.yaml) */
-	{ .compatible = "usb424,2514" }, /* USB2514B USB 2.0 */
-	{ }
+	{	.compatible = "usb424,2514" /* USB2514B USB 2.0 */
+	}, {
+		.compatible = "usb424,2744", /* USB2744 USB 2.0 */
+		.data = (ulong)&usb5744_data,
+	}, {
+		.compatible = "usb424,5744", /* USB5744 USB 3.0 */
+		.data = (ulong)&usb5744_data,
+	}
 };
 
 U_BOOT_DRIVER(usb_onboard_hub) = {
-- 
2.17.1


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

* [PATCH v5 4/7] usb: onboard-hub: Add i2c initialization for usb5744 hub
  2024-10-07  4:45 [PATCH v5 0/7] Add the USB5744 hub driver as per new DT binding Venkatesh Yadav Abbarapu
                   ` (2 preceding siblings ...)
  2024-10-07  4:45 ` [PATCH v5 3/7] usb: onboard-hub: add support for Microchip USB5744 Venkatesh Yadav Abbarapu
@ 2024-10-07  4:45 ` Venkatesh Yadav Abbarapu
  2024-10-07 12:10   ` Marek Vasut
  2024-10-07  4:45 ` [PATCH v5 5/7] usb: onboard-hub: Bail out if peer hub is already probed Venkatesh Yadav Abbarapu
                   ` (2 subsequent siblings)
  6 siblings, 1 reply; 15+ messages in thread
From: Venkatesh Yadav Abbarapu @ 2024-10-07  4:45 UTC (permalink / raw)
  To: u-boot; +Cc: michal.simek, marex, fabrice.gasnier, git

Add i2c initialization hook and set usb5744 platform
data with function having required i2c initialization sequence.

Apart from the USB command attach, prevent the hub from suspend.
when the “USB Attach with SMBUS (0xAA56)” command is issued to the hub,
the hub is getting enumerated and then it puts in a suspend mode.
This causes the hub to NAK any SMBUS access made by the SMBUS Master
during this period and not able to see the hub's slave address while
running the "i2c probe" command.

Prevent the MCU from the putting the HUB in suspend mode through register
write. The BYPASS_UDC_SUSPEND bit (Bit 3) of the RuntimeFlags2 register at
address 0x411D controls this aspect of the hub. The BYPASS_UDC_SUSPEND
bit in register 0x411Dh must be set to ensure that the MCU is always
enabled and ready to respond to SMBus runtime commands. This register
needs to be written before the USB attach command is issued.
The byte sequence is as follows:
Slave addr: 0x2d           00 00 05 00 01 41 1D 08
Slave addr: 0x2d           99 37 00
Slave addr: 0x2d           AA 56 00

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
---
 common/usb_onboard_hub.c | 101 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 101 insertions(+)

diff --git a/common/usb_onboard_hub.c b/common/usb_onboard_hub.c
index bb4402455c..ba58ff8c10 100644
--- a/common/usb_onboard_hub.c
+++ b/common/usb_onboard_hub.c
@@ -10,9 +10,15 @@
 #include <asm/gpio.h>
 #include <dm.h>
 #include <dm/device_compat.h>
+#include <i2c.h>
 #include <linux/delay.h>
 #include <power/regulator.h>
 
+#define USB5744_COMMAND_ATTACH		0x0056
+#define USB5744_COMMAND_ATTACH_LSB	0xAA
+#define USB5744_CONFIG_REG_ACCESS	0x0037
+#define USB5744_CONFIG_REG_ACCESS_LSB	0x99
+
 struct onboard_hub {
 	struct udevice *vdd;
 	struct gpio_desc *reset_gpio;
@@ -21,8 +27,89 @@ struct onboard_hub {
 struct onboard_hub_data {
 	unsigned long reset_us;
 	unsigned long power_on_delay_us;
+	int (*init)(struct udevice *dev);
 };
 
+static int usb5744_i2c_init(struct udevice *dev)
+{
+	/*
+	 *  Prevent the MCU from the putting the HUB in suspend mode through register write.
+	 *  The BYPASS_UDC_SUSPEND bit (Bit 3) of the RuntimeFlags2 register at address
+	 *  0x411D controls this aspect of the hub.
+	 *  Format to write to hub registers via SMBus- 2D 00 00 05 00 01 41 1D 08
+	 *  Byte 0: Address of slave 2D
+	 *  Byte 1: Memory address 00
+	 *  Byte 2: Memory address 00
+	 *  Byte 3: Number of bytes to write to memory
+	 *  Byte 4: Write configuration register (00)
+	 *  Byte 5: Write the number of data bytes (01- 1 data byte)
+	 *  Byte 6: LSB of register address 0x41
+	 *  Byte 7: MSB of register address 0x1D
+	 *  Byte 8: value to be written to the register
+	 */
+	u8 data_buf[8] = {0x0, 0x5, 0x0, 0x1, 0x41, 0x1D, 0x08};
+	u8 config_reg_access_buf = USB5744_CONFIG_REG_ACCESS;
+	struct udevice *i2c_bus = NULL, *i2c_dev;
+	struct ofnode_phandle_args phandle;
+	u8 buf = USB5744_COMMAND_ATTACH;
+	struct dm_i2c_chip *i2c_chip;
+	int ret, slave_addr;
+
+	ret = dev_read_phandle_with_args(dev, "i2c-bus", NULL, 0, 0, &phandle);
+	if (ret) {
+		dev_err(dev, "i2c-bus not specified\n");
+		return ret;
+	}
+
+	ret = device_get_global_by_ofnode(ofnode_get_parent(phandle.node), &i2c_bus);
+	if (ret) {
+		dev_err(dev, "Failed to get i2c node, err: %d\n", ret);
+		return ret;
+	}
+
+	ret = ofnode_read_u32(phandle.node, "reg", &slave_addr);
+	if (ret)
+		return ret;
+
+	ret = i2c_get_chip(i2c_bus, slave_addr, 1, &i2c_dev);
+	if (ret) {
+		dev_err(dev, "%s: can't find i2c chip device for addr 0x%x\n", __func__,
+			slave_addr);
+		return ret;
+	}
+
+	i2c_chip = dev_get_parent_plat(i2c_dev);
+	if (!i2c_chip) {
+		dev_err(dev, "parent platform data not found\n");
+		return -EINVAL;
+	}
+
+	i2c_chip->flags &= ~DM_I2C_CHIP_WR_ADDRESS;
+	/* SMBus write command */
+	ret = dm_i2c_write(i2c_dev, 0, (uint8_t *)&data_buf, 8);
+	if (ret) {
+		dev_err(dev, "data_buf i2c_write failed, err:%d\n", ret);
+		return ret;
+	}
+
+	/* Configuration register access command */
+	ret = dm_i2c_write(i2c_dev, USB5744_CONFIG_REG_ACCESS_LSB,
+			   &config_reg_access_buf, 2);
+	if (ret) {
+		dev_err(dev, "config_reg_access i2c_write failed, err: %d\n", ret);
+		return ret;
+	}
+
+	/* USB Attach with SMBus */
+	ret = dm_i2c_write(i2c_dev, USB5744_COMMAND_ATTACH_LSB, &buf, 2);
+	if (ret) {
+		dev_err(dev, "usb_attach i2c_write failed, err: %d\n", ret);
+		return ret;
+	}
+
+	return 0;
+}
+
 int usb_onboard_hub_reset(struct udevice *dev)
 {
 	struct onboard_hub_data *data =
@@ -54,6 +141,8 @@ int usb_onboard_hub_reset(struct udevice *dev)
 
 static int usb_onboard_hub_probe(struct udevice *dev)
 {
+	struct onboard_hub_data *data =
+		(struct onboard_hub_data *)dev_get_driver_data(dev);
 	struct onboard_hub *hub = dev_get_priv(dev);
 	int ret;
 
@@ -75,7 +164,18 @@ static int usb_onboard_hub_probe(struct udevice *dev)
 	if (ret)
 		return ret;
 
+	if (data->init) {
+		ret = data->init(dev);
+		if (ret) {
+			dev_err(dev, "onboard i2c init failed: %d\n", ret);
+			goto err;
+		}
+	}
+
 	return 0;
+err:
+	dm_gpio_set_value(hub->reset_gpio, 0);
+	return ret;
 }
 
 static int usb_onboard_hub_remove(struct udevice *dev)
@@ -99,6 +199,7 @@ static int usb_onboard_hub_remove(struct udevice *dev)
 static const struct onboard_hub_data usb5744_data = {
 	.reset_us = 10000,
 	.power_on_delay_us = 10000,
+	.init = usb5744_i2c_init,
 };
 
 static const struct udevice_id usb_onboard_hub_ids[] = {
-- 
2.17.1


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

* [PATCH v5 5/7] usb: onboard-hub: Bail out if peer hub is already probed
  2024-10-07  4:45 [PATCH v5 0/7] Add the USB5744 hub driver as per new DT binding Venkatesh Yadav Abbarapu
                   ` (3 preceding siblings ...)
  2024-10-07  4:45 ` [PATCH v5 4/7] usb: onboard-hub: Add i2c initialization for usb5744 hub Venkatesh Yadav Abbarapu
@ 2024-10-07  4:45 ` Venkatesh Yadav Abbarapu
  2024-10-07 12:10   ` Marek Vasut
  2024-10-07  4:45 ` [PATCH v5 6/7] configs: zynqmp_kria: Enable the USB onboard hub Venkatesh Yadav Abbarapu
  2024-10-07  4:45 ` [PATCH v5 7/7] arm64: zynqmp: Update the usb5744 hub node as per binding Venkatesh Yadav Abbarapu
  6 siblings, 1 reply; 15+ messages in thread
From: Venkatesh Yadav Abbarapu @ 2024-10-07  4:45 UTC (permalink / raw)
  To: u-boot; +Cc: michal.simek, marex, fabrice.gasnier, git

The .bind function is implemented to bind the correct
"half" of the hub that the driver wants to bind,
and returning -ENODEV for the other "half".

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
---
 common/usb_onboard_hub.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/common/usb_onboard_hub.c b/common/usb_onboard_hub.c
index ba58ff8c10..e7ff86727d 100644
--- a/common/usb_onboard_hub.c
+++ b/common/usb_onboard_hub.c
@@ -178,6 +178,26 @@ err:
 	return ret;
 }
 
+static int usb_onboard_hub_bind(struct udevice *dev)
+{
+	struct ofnode_phandle_args phandle;
+	const void *fdt = gd->fdt_blob;
+	int ret, off;
+
+	ret = dev_read_phandle_with_args(dev, "peer-hub", NULL, 0, 0, &phandle);
+	if (ret)  {
+		dev_err(dev, "peer-hub not specified\n");
+		return ret;
+	}
+
+	off = ofnode_to_offset(phandle.node);
+	ret = fdt_node_check_compatible(fdt, off, "usb424,5744");
+	if (!ret)
+		return 0;
+
+	return -ENODEV;
+}
+
 static int usb_onboard_hub_remove(struct udevice *dev)
 {
 	struct onboard_hub *hub = dev_get_priv(dev);
@@ -217,6 +237,7 @@ static const struct udevice_id usb_onboard_hub_ids[] = {
 U_BOOT_DRIVER(usb_onboard_hub) = {
 	.name	= "usb_onboard_hub",
 	.id	= UCLASS_USB_HUB,
+	.bind   = usb_onboard_hub_bind,
 	.probe = usb_onboard_hub_probe,
 	.remove = usb_onboard_hub_remove,
 	.of_match = usb_onboard_hub_ids,
-- 
2.17.1


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

* [PATCH v5 6/7] configs: zynqmp_kria: Enable the USB onboard hub
  2024-10-07  4:45 [PATCH v5 0/7] Add the USB5744 hub driver as per new DT binding Venkatesh Yadav Abbarapu
                   ` (4 preceding siblings ...)
  2024-10-07  4:45 ` [PATCH v5 5/7] usb: onboard-hub: Bail out if peer hub is already probed Venkatesh Yadav Abbarapu
@ 2024-10-07  4:45 ` Venkatesh Yadav Abbarapu
  2024-10-07  4:45 ` [PATCH v5 7/7] arm64: zynqmp: Update the usb5744 hub node as per binding Venkatesh Yadav Abbarapu
  6 siblings, 0 replies; 15+ messages in thread
From: Venkatesh Yadav Abbarapu @ 2024-10-07  4:45 UTC (permalink / raw)
  To: u-boot; +Cc: michal.simek, marex, fabrice.gasnier, git

USB host support on ZYNQMP KRIA SOM needs onboard USB
hub driver for handling reset GPIO and for i2c initialization
sequence.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Acked-by: Michal Simek <michal.simek@amd.com>
---
 configs/xilinx_zynqmp_kria_defconfig | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/configs/xilinx_zynqmp_kria_defconfig b/configs/xilinx_zynqmp_kria_defconfig
index 5a07edf5cd..4f0199f099 100644
--- a/configs/xilinx_zynqmp_kria_defconfig
+++ b/configs/xilinx_zynqmp_kria_defconfig
@@ -29,6 +29,11 @@ CONFIG_AHCI=y
 CONFIG_SYS_MEMTEST_START=0x00000000
 CONFIG_SYS_MEMTEST_END=0x00001000
 CONFIG_REMAKE_ELF=y
+CONFIG_EFI_SET_TIME=y
+CONFIG_EFI_RUNTIME_UPDATE_CAPSULE=y
+CONFIG_EFI_CAPSULE_ON_DISK=y
+CONFIG_EFI_CAPSULE_FIRMWARE_RAW=y
+CONFIG_EFI_HTTP_BOOT=y
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
 CONFIG_SPL_LOAD_FIT=y
@@ -204,6 +209,7 @@ CONFIG_USB_DWC3=y
 CONFIG_USB_DWC3_GENERIC=y
 CONFIG_USB_ULPI_VIEWPORT=y
 CONFIG_USB_ULPI=y
+CONFIG_USB_ONBOARD_HUB=y
 CONFIG_USB_HOST_ETHER=y
 CONFIG_USB_ETHER_ASIX=y
 CONFIG_USB_GADGET=y
@@ -223,8 +229,3 @@ CONFIG_VIRTIO_BLK=y
 CONFIG_PANIC_HANG=y
 CONFIG_TPM=y
 CONFIG_SPL_GZIP=y
-CONFIG_EFI_SET_TIME=y
-CONFIG_EFI_RUNTIME_UPDATE_CAPSULE=y
-CONFIG_EFI_CAPSULE_ON_DISK=y
-CONFIG_EFI_CAPSULE_FIRMWARE_RAW=y
-CONFIG_EFI_HTTP_BOOT=y
-- 
2.17.1


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

* [PATCH v5 7/7] arm64: zynqmp: Update the usb5744 hub node as per binding
  2024-10-07  4:45 [PATCH v5 0/7] Add the USB5744 hub driver as per new DT binding Venkatesh Yadav Abbarapu
                   ` (5 preceding siblings ...)
  2024-10-07  4:45 ` [PATCH v5 6/7] configs: zynqmp_kria: Enable the USB onboard hub Venkatesh Yadav Abbarapu
@ 2024-10-07  4:45 ` Venkatesh Yadav Abbarapu
  6 siblings, 0 replies; 15+ messages in thread
From: Venkatesh Yadav Abbarapu @ 2024-10-07  4:45 UTC (permalink / raw)
  To: u-boot; +Cc: michal.simek, marex, fabrice.gasnier, git

Updating the usb5744 hub node as per the latest upstream DT binding
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/
tree/Documentation/devicetree/bindings/usb/microchip,usb5744.yaml?h=v6.8.8

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Acked-by: Michal Simek <michal.simek@amd.com>
---
 arch/arm/dts/zynqmp-sck-kr-g-revA.dtso | 48 ++++++++++++++++++++++++++
 arch/arm/dts/zynqmp-sck-kr-g-revB.dtso | 48 ++++++++++++++++++++++++++
 arch/arm/dts/zynqmp-sck-kv-g-revA.dtso | 18 ++++++++++
 arch/arm/dts/zynqmp-sck-kv-g-revB.dtso | 25 +++++++++++++-
 4 files changed, 138 insertions(+), 1 deletion(-)

diff --git a/arch/arm/dts/zynqmp-sck-kr-g-revA.dtso b/arch/arm/dts/zynqmp-sck-kr-g-revA.dtso
index 6349a0e108..e40840acb8 100644
--- a/arch/arm/dts/zynqmp-sck-kr-g-revA.dtso
+++ b/arch/arm/dts/zynqmp-sck-kr-g-revA.dtso
@@ -105,11 +105,19 @@
 			#address-cells = <1>;
 			#size-cells = <0>;
 			reg = <0>;
+			hub_1: usb-hub@2d {
+				compatible = "microchip,usb5744";
+				reg = <0x2d>;
+			};
 		};
 		usbhub_i2c1: i2c@1 {
 			#address-cells = <1>;
 			#size-cells = <0>;
 			reg = <1>;
+			hub_2: usb-hub@2d {
+				compatible = "microchip,usb5744";
+				reg = <0x2d>;
+			};
 		};
 		/* Bus 2/3 are not connected */
 	};
@@ -164,6 +172,26 @@
 	dr_mode = "host";
 	snps,usb3_lpm_capable;
 	maximum-speed = "super-speed";
+	#address-cells = <1>;
+	#size-cells = <0>;
+
+	/* 2.0 hub on port 1 */
+	hub_2_0: hub@1 {
+		compatible = "usb424,2744";
+		reg = <1>;
+		peer-hub = <&hub_3_0>;
+		i2c-bus = <&hub_1>;
+		reset-gpios = <&slg7xl45106 3 GPIO_ACTIVE_LOW>;
+	};
+
+	/* 3.0 hub on port 2 */
+	hub_3_0: hub@2 {
+		compatible = "usb424,5744";
+		reg = <2>;
+		peer-hub = <&hub_2_0>;
+		i2c-bus = <&hub_1>;
+		reset-gpios = <&slg7xl45106 3 GPIO_ACTIVE_LOW>;
+	};
 };
 
 &usb1 { /* mio64 - mio75 */
@@ -188,6 +216,26 @@
 	dr_mode = "host";
 	snps,usb3_lpm_capable;
 	maximum-speed = "super-speed";
+	#address-cells = <1>;
+	#size-cells = <0>;
+
+	/* 2.0 hub on port 1 */
+	hub1_2_0: hub@1 {
+		compatible = "usb424,2744";
+		reg = <1>;
+		peer-hub = <&hub1_3_0>;
+		i2c-bus = <&hub_2>;
+		reset-gpios = <&slg7xl45106 4 GPIO_ACTIVE_LOW>;
+	};
+
+	/* 3.0 hub on port 2 */
+	hub1_3_0: hub@2 {
+		compatible = "usb424,5744";
+		reg = <2>;
+		peer-hub = <&hub1_2_0>;
+		i2c-bus = <&hub_2>;
+		reset-gpios = <&slg7xl45106 4 GPIO_ACTIVE_LOW>;
+	};
 };
 
 &gem0 { /* mdio mio50/51 */
diff --git a/arch/arm/dts/zynqmp-sck-kr-g-revB.dtso b/arch/arm/dts/zynqmp-sck-kr-g-revB.dtso
index b0d737d3ca..ce1ad2b765 100644
--- a/arch/arm/dts/zynqmp-sck-kr-g-revB.dtso
+++ b/arch/arm/dts/zynqmp-sck-kr-g-revB.dtso
@@ -117,11 +117,19 @@
 			#address-cells = <1>;
 			#size-cells = <0>;
 			reg = <0>;
+			hub_1: usb-hub@2d {
+				compatible = "microchip,usb5744";
+				reg = <0x2d>;
+			};
 		};
 		usbhub_i2c1: i2c@1 {
 			#address-cells = <1>;
 			#size-cells = <0>;
 			reg = <1>;
+			hub_2: usb-hub@2d {
+				compatible = "microchip,usb5744";
+				reg = <0x2d>;
+			};
 		};
 		/* Bus 2/3 are not connected */
 	};
@@ -184,6 +192,26 @@
 	dr_mode = "host";
 	snps,usb3_lpm_capable;
 	maximum-speed = "super-speed";
+	#address-cells = <1>;
+	#size-cells = <0>;
+
+	/* 2.0 hub on port 1 */
+	hub_2_0: hub@1 {
+		compatible = "usb424,2744";
+		reg = <1>;
+		peer-hub = <&hub_3_0>;
+		i2c-bus = <&hub_1>;
+		reset-gpios = <&slg7xl45106 3 GPIO_ACTIVE_LOW>;
+	};
+
+	/* 3.0 hub on port 2 */
+	hub_3_0: hub@2 {
+		compatible = "usb424,5744";
+		reg = <2>;
+		peer-hub = <&hub_2_0>;
+		i2c-bus = <&hub_1>;
+		reset-gpios = <&slg7xl45106 3 GPIO_ACTIVE_LOW>;
+	};
 };
 
 &usb1 { /* mio64 - mio75 */
@@ -209,6 +237,26 @@
 	dr_mode = "host";
 	snps,usb3_lpm_capable;
 	maximum-speed = "super-speed";
+	#address-cells = <1>;
+	#size-cells = <0>;
+
+	/* 2.0 hub on port 1 */
+	hub1_2_0: hub@1 {
+		compatible = "usb424,2744";
+		reg = <1>;
+		peer-hub = <&hub1_3_0>;
+		i2c-bus = <&hub_2>;
+		reset-gpios = <&slg7xl45106 4 GPIO_ACTIVE_LOW>;
+	};
+
+	/* 3.0 hub on port 2 */
+	hub1_3_0: hub@2 {
+		compatible = "usb424,5744";
+		reg = <2>;
+		peer-hub = <&hub1_2_0>;
+		i2c-bus = <&hub_2>;
+		reset-gpios = <&slg7xl45106 4 GPIO_ACTIVE_LOW>;
+	};
 };
 
 &gem0 { /* mdio mio50/51 */
diff --git a/arch/arm/dts/zynqmp-sck-kv-g-revA.dtso b/arch/arm/dts/zynqmp-sck-kv-g-revA.dtso
index 561b546e37..0ef0357bd2 100644
--- a/arch/arm/dts/zynqmp-sck-kv-g-revA.dtso
+++ b/arch/arm/dts/zynqmp-sck-kv-g-revA.dtso
@@ -142,6 +142,24 @@
 	dr_mode = "host";
 	snps,usb3_lpm_capable;
 	maximum-speed = "super-speed";
+	#address-cells = <1>;
+	#size-cells = <0>;
+
+	/* 2.0 hub on port 1 */
+	hub_2_0: hub@1 {
+		compatible = "usb424,2744";
+		reg = <1>;
+		peer-hub = <&hub_3_0>;
+		reset-gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
+	};
+
+	/* 3.0 hub on port 2 */
+	hub_3_0: hub@2 {
+		compatible = "usb424,5744";
+		reg = <2>;
+		peer-hub = <&hub_2_0>;
+		reset-gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
+	};
 };
 
 &sdhci1 { /* on CC with tuned parameters */
diff --git a/arch/arm/dts/zynqmp-sck-kv-g-revB.dtso b/arch/arm/dts/zynqmp-sck-kv-g-revB.dtso
index 64683e0ccb..92d8851eb8 100644
--- a/arch/arm/dts/zynqmp-sck-kv-g-revB.dtso
+++ b/arch/arm/dts/zynqmp-sck-kv-g-revB.dtso
@@ -92,7 +92,10 @@
 		label = "ina260-u14";
 		reg = <0x40>;
 	};
-	/* u43 - 0x2d - USB hub */
+	hub: usb-hub@2d {
+		compatible = "microchip,usb5744";
+		reg = <0x2d>;
+	};
 	/* u27 - 0xe0 - STDP4320 DP/HDMI splitter */
 };
 
@@ -146,6 +149,26 @@
 	dr_mode = "host";
 	snps,usb3_lpm_capable;
 	maximum-speed = "super-speed";
+	#address-cells = <1>;
+	#size-cells = <0>;
+
+	/* 2.0 hub on port 1 */
+	hub_2_0: hub@1 {
+		compatible = "usb424,2744";
+		reg = <1>;
+		peer-hub = <&hub_3_0>;
+		i2c-bus = <&hub>;
+		reset-gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
+	};
+
+	/* 3.0 hub on port 2 */
+	hub_3_0: hub@2 {
+		compatible = "usb424,5744";
+		reg = <2>;
+		peer-hub = <&hub_2_0>;
+		i2c-bus = <&hub>;
+		reset-gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
+	};
 };
 
 &sdhci1 { /* on CC with tuned parameters */
-- 
2.17.1


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

* Re: [PATCH v5 1/7] usb: onboard-hub: Add reset-gpio support
  2024-10-07  4:45 ` [PATCH v5 1/7] usb: onboard-hub: Add reset-gpio support Venkatesh Yadav Abbarapu
@ 2024-10-07 12:08   ` Marek Vasut
  2024-10-07 15:03     ` Abbarapu, Venkatesh
  0 siblings, 1 reply; 15+ messages in thread
From: Marek Vasut @ 2024-10-07 12:08 UTC (permalink / raw)
  To: Venkatesh Yadav Abbarapu, u-boot; +Cc: michal.simek, fabrice.gasnier, git

On 10/7/24 6:45 AM, Venkatesh Yadav Abbarapu wrote:
> As part of the reset, sets the direction of the pin to output before
> toggling the pin. Delay of millisecond is added in between low and
> high to meet the setup and hold time requirement of the reset.
> 
> Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
> ---
>   common/usb_onboard_hub.c | 49 +++++++++++++++++++++++++++++++++++++++-
>   1 file changed, 48 insertions(+), 1 deletion(-)
> 
> diff --git a/common/usb_onboard_hub.c b/common/usb_onboard_hub.c
> index 68a04ac041..4317e81ed8 100644
> --- a/common/usb_onboard_hub.c
> +++ b/common/usb_onboard_hub.c
> @@ -7,14 +7,51 @@
>    * Mostly inspired by Linux kernel v6.1 onboard_usb_hub driver
>    */
>   
> +#include <asm/gpio.h>
>   #include <dm.h>
>   #include <dm/device_compat.h>
> +#include <linux/delay.h>
>   #include <power/regulator.h>
>   
>   struct onboard_hub {
>   	struct udevice *vdd;
> +	struct gpio_desc *reset_gpio;
>   };
>   
> +struct onboard_hub_data {
> +	unsigned long reset_us;
> +	unsigned long power_on_delay_us;
> +};
> +
> +int usb_onboard_hub_reset(struct udevice *dev)
> +{
> +	struct onboard_hub_data *data =
> +		(struct onboard_hub_data *)dev_get_driver_data(dev);
> +	struct onboard_hub *hub = dev_get_priv(dev);
> +	int ret;
> +
> +	hub->reset_gpio = devm_gpiod_get_optional(dev, "reset",
> +						  GPIOD_IS_OUT | GPIOD_ACTIVE_LOW);
> +
> +	/* property is optional, don't return error! */
> +	if (!hub->reset_gpio)
> +		return 0;
> +
> +	ret = dm_gpio_set_value(hub->reset_gpio, 1);
> +	if (ret)
> +		return ret;
> +
> +	udelay(data->reset_us);
> +
> +	ret = dm_gpio_set_value(hub->reset_gpio, 0);
> +	if (ret)
> +		return ret;
> +
> +	udelay(data->power_on_delay_us);
> +
> +	return 0;
> +}
> +
>   static int usb_onboard_hub_probe(struct udevice *dev)
>   {
>   	struct onboard_hub *hub = dev_get_priv(dev);
> @@ -30,7 +67,11 @@ static int usb_onboard_hub_probe(struct udevice *dev)
>   	if (ret)
>   		dev_err(dev, "can't enable vdd-supply: %d\n", ret);
>   
> -	return ret;
> +	ret = usb_onboard_hub_reset(dev);

return usb_onboard_hub_reset(dev);

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

* Re: [PATCH v5 2/7] usb: onboard-hub: Fix the return values of regulator APIs
  2024-10-07  4:45 ` [PATCH v5 2/7] usb: onboard-hub: Fix the return values of regulator APIs Venkatesh Yadav Abbarapu
@ 2024-10-07 12:09   ` Marek Vasut
  0 siblings, 0 replies; 15+ messages in thread
From: Marek Vasut @ 2024-10-07 12:09 UTC (permalink / raw)
  To: Venkatesh Yadav Abbarapu, u-boot; +Cc: michal.simek, fabrice.gasnier, git

On 10/7/24 6:45 AM, Venkatesh Yadav Abbarapu wrote:
> Don't error out if there is no vdd regulator supply, as these are
> optional properties.
> 
> Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Reviewed-by: Marek Vasut <marex@denx.de>

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

* Re: [PATCH v5 3/7] usb: onboard-hub: add support for Microchip USB5744
  2024-10-07  4:45 ` [PATCH v5 3/7] usb: onboard-hub: add support for Microchip USB5744 Venkatesh Yadav Abbarapu
@ 2024-10-07 12:09   ` Marek Vasut
  0 siblings, 0 replies; 15+ messages in thread
From: Marek Vasut @ 2024-10-07 12:09 UTC (permalink / raw)
  To: Venkatesh Yadav Abbarapu, u-boot; +Cc: michal.simek, fabrice.gasnier, git

On 10/7/24 6:45 AM, Venkatesh Yadav Abbarapu wrote:
> Add support for the Microchip USB5744 USB3.0 and USB2.0 Hub.
> The usb5744 driver trigger hub reset signal after soft reset.
> The usb5744 hub need to reset after the phy initialization,
> which toggles the gpio.
> 
> Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Reviewed-by: Marek Vasut <marex@denx.de>

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

* Re: [PATCH v5 4/7] usb: onboard-hub: Add i2c initialization for usb5744 hub
  2024-10-07  4:45 ` [PATCH v5 4/7] usb: onboard-hub: Add i2c initialization for usb5744 hub Venkatesh Yadav Abbarapu
@ 2024-10-07 12:10   ` Marek Vasut
  0 siblings, 0 replies; 15+ messages in thread
From: Marek Vasut @ 2024-10-07 12:10 UTC (permalink / raw)
  To: Venkatesh Yadav Abbarapu, u-boot; +Cc: michal.simek, fabrice.gasnier, git

On 10/7/24 6:45 AM, Venkatesh Yadav Abbarapu wrote:

> @@ -99,6 +199,7 @@ static int usb_onboard_hub_remove(struct udevice *dev)
>   static const struct onboard_hub_data usb5744_data = {
>   	.reset_us = 10000,
>   	.power_on_delay_us = 10000,
> +	.init = usb5744_i2c_init,
>   };
>   
>   static const struct udevice_id usb_onboard_hub_ids[] = {

Please keep the list sorted.

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

* Re: [PATCH v5 5/7] usb: onboard-hub: Bail out if peer hub is already probed
  2024-10-07  4:45 ` [PATCH v5 5/7] usb: onboard-hub: Bail out if peer hub is already probed Venkatesh Yadav Abbarapu
@ 2024-10-07 12:10   ` Marek Vasut
  0 siblings, 0 replies; 15+ messages in thread
From: Marek Vasut @ 2024-10-07 12:10 UTC (permalink / raw)
  To: Venkatesh Yadav Abbarapu, u-boot; +Cc: michal.simek, fabrice.gasnier, git

On 10/7/24 6:45 AM, Venkatesh Yadav Abbarapu wrote:
> The .bind function is implemented to bind the correct
> "half" of the hub that the driver wants to bind,
> and returning -ENODEV for the other "half".
> 
> Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Reviewed-by: Marek Vasut <marex@denx.de>

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

* RE: [PATCH v5 1/7] usb: onboard-hub: Add reset-gpio support
  2024-10-07 12:08   ` Marek Vasut
@ 2024-10-07 15:03     ` Abbarapu, Venkatesh
  2024-10-07 15:40       ` Marek Vasut
  0 siblings, 1 reply; 15+ messages in thread
From: Abbarapu, Venkatesh @ 2024-10-07 15:03 UTC (permalink / raw)
  To: Marek Vasut, u-boot@lists.denx.de
  Cc: Simek, Michal, fabrice.gasnier@foss.st.com, git (AMD-Xilinx)

Hi,

> -----Original Message-----
> From: Marek Vasut <marex@denx.de>
> Sent: Monday, October 7, 2024 5:39 PM
> To: Abbarapu, Venkatesh <venkatesh.abbarapu@amd.com>; u-boot@lists.denx.de
> Cc: Simek, Michal <michal.simek@amd.com>; fabrice.gasnier@foss.st.com; git
> (AMD-Xilinx) <git@amd.com>
> Subject: Re: [PATCH v5 1/7] usb: onboard-hub: Add reset-gpio support
> 
> On 10/7/24 6:45 AM, Venkatesh Yadav Abbarapu wrote:
> > As part of the reset, sets the direction of the pin to output before
> > toggling the pin. Delay of millisecond is added in between low and
> > high to meet the setup and hold time requirement of the reset.
> >
> > Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
> > ---
> >   common/usb_onboard_hub.c | 49
> +++++++++++++++++++++++++++++++++++++++-
> >   1 file changed, 48 insertions(+), 1 deletion(-)
> >
> > diff --git a/common/usb_onboard_hub.c b/common/usb_onboard_hub.c index
> > 68a04ac041..4317e81ed8 100644
> > --- a/common/usb_onboard_hub.c
> > +++ b/common/usb_onboard_hub.c
> > @@ -7,14 +7,51 @@
> >    * Mostly inspired by Linux kernel v6.1 onboard_usb_hub driver
> >    */
> >
> > +#include <asm/gpio.h>
> >   #include <dm.h>
> >   #include <dm/device_compat.h>
> > +#include <linux/delay.h>
> >   #include <power/regulator.h>
> >
> >   struct onboard_hub {
> >   	struct udevice *vdd;
> > +	struct gpio_desc *reset_gpio;
> >   };
> >
> > +struct onboard_hub_data {
> > +	unsigned long reset_us;
> > +	unsigned long power_on_delay_us;
> > +};
> > +
> > +int usb_onboard_hub_reset(struct udevice *dev) {
> > +	struct onboard_hub_data *data =
> > +		(struct onboard_hub_data *)dev_get_driver_data(dev);
> > +	struct onboard_hub *hub = dev_get_priv(dev);
> > +	int ret;
> > +
> > +	hub->reset_gpio = devm_gpiod_get_optional(dev, "reset",
> > +						  GPIOD_IS_OUT |
> GPIOD_ACTIVE_LOW);
> > +
> > +	/* property is optional, don't return error! */
> > +	if (!hub->reset_gpio)
> > +		return 0;
> > +
> > +	ret = dm_gpio_set_value(hub->reset_gpio, 1);
> > +	if (ret)
> > +		return ret;
> > +
> > +	udelay(data->reset_us);
> > +
> > +	ret = dm_gpio_set_value(hub->reset_gpio, 0);
> > +	if (ret)
> > +		return ret;
> > +
> > +	udelay(data->power_on_delay_us);
> > +
> > +	return 0;
> > +}
> > +
> >   static int usb_onboard_hub_probe(struct udevice *dev)
> >   {
> >   	struct onboard_hub *hub = dev_get_priv(dev); @@ -30,7 +67,11 @@
> > static int usb_onboard_hub_probe(struct udevice *dev)
> >   	if (ret)
> >   		dev_err(dev, "can't enable vdd-supply: %d\n", ret);
> >
> > -	return ret;
> > +	ret = usb_onboard_hub_reset(dev);
> 
> return usb_onboard_hub_reset(dev);
<Venkatesh> By adding the "return usb_onboard_hub_reset(dev);" we miss the code which  does i2c initialization sequence which is part of [PATCH v4 4/7] usb: onboard-hub: Add i2c  initialization for usb5744 hub of the series.


Thanks
Venkatesh

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

* Re: [PATCH v5 1/7] usb: onboard-hub: Add reset-gpio support
  2024-10-07 15:03     ` Abbarapu, Venkatesh
@ 2024-10-07 15:40       ` Marek Vasut
  0 siblings, 0 replies; 15+ messages in thread
From: Marek Vasut @ 2024-10-07 15:40 UTC (permalink / raw)
  To: Abbarapu, Venkatesh, u-boot@lists.denx.de
  Cc: Simek, Michal, fabrice.gasnier@foss.st.com, git (AMD-Xilinx)

On 10/7/24 5:03 PM, Abbarapu, Venkatesh wrote:

[...]

>>>    static int usb_onboard_hub_probe(struct udevice *dev)
>>>    {
>>>    	struct onboard_hub *hub = dev_get_priv(dev); @@ -30,7 +67,11 @@
>>> static int usb_onboard_hub_probe(struct udevice *dev)
>>>    	if (ret)
>>>    		dev_err(dev, "can't enable vdd-supply: %d\n", ret);
>>>
>>> -	return ret;
>>> +	ret = usb_onboard_hub_reset(dev);
>>
>> return usb_onboard_hub_reset(dev);
> <Venkatesh> By adding the "return usb_onboard_hub_reset(dev);" we miss the code which  does i2c initialization sequence which is part of [PATCH v4 4/7] usb: onboard-hub: Add i2c  initialization for usb5744 hub of the series.
Surely this can be solved in 4/7 ?

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

end of thread, other threads:[~2024-10-07 16:06 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-07  4:45 [PATCH v5 0/7] Add the USB5744 hub driver as per new DT binding Venkatesh Yadav Abbarapu
2024-10-07  4:45 ` [PATCH v5 1/7] usb: onboard-hub: Add reset-gpio support Venkatesh Yadav Abbarapu
2024-10-07 12:08   ` Marek Vasut
2024-10-07 15:03     ` Abbarapu, Venkatesh
2024-10-07 15:40       ` Marek Vasut
2024-10-07  4:45 ` [PATCH v5 2/7] usb: onboard-hub: Fix the return values of regulator APIs Venkatesh Yadav Abbarapu
2024-10-07 12:09   ` Marek Vasut
2024-10-07  4:45 ` [PATCH v5 3/7] usb: onboard-hub: add support for Microchip USB5744 Venkatesh Yadav Abbarapu
2024-10-07 12:09   ` Marek Vasut
2024-10-07  4:45 ` [PATCH v5 4/7] usb: onboard-hub: Add i2c initialization for usb5744 hub Venkatesh Yadav Abbarapu
2024-10-07 12:10   ` Marek Vasut
2024-10-07  4:45 ` [PATCH v5 5/7] usb: onboard-hub: Bail out if peer hub is already probed Venkatesh Yadav Abbarapu
2024-10-07 12:10   ` Marek Vasut
2024-10-07  4:45 ` [PATCH v5 6/7] configs: zynqmp_kria: Enable the USB onboard hub Venkatesh Yadav Abbarapu
2024-10-07  4:45 ` [PATCH v5 7/7] arm64: zynqmp: Update the usb5744 hub node as per binding Venkatesh Yadav Abbarapu

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