This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/DRA77P: Identifying two ulpi phys

Part Number: DRA77P
Other Parts Discussed in Thread: TUSB1210, TUSB1210SW-LINUX

Tool/software: Linux

Hi,

I have two ulpi phys in my custom board, and made the required changes in the device tree and it shows them in linux kernel when viewed through /sys/class/phy it lists two ulpi phys (usb3 and usb4 phys) as phy-48910000.usb.ulpi.6 and  phy-48950000.usb.ulpi.7.

We are using ti-processor-sdk-linux-automotive-dra7xx-evm-5_00_00_01.

The default phy_tusb1210 driver we had was

/**
 * tusb1210.c - TUSB1210 USB ULPI PHY driver
 *
 * Copyright (C) 2015 Intel Corporation
 *
 * Author: Heikki Krogerus <heikki.krogerus@linux.intel.com>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */
#include <linux/module.h>
#include <linux/ulpi/driver.h>
#include <linux/gpio/consumer.h>

#include "ulpi_phy.h"

#define TUSB1210_VENDOR_SPECIFIC2		0x80
#define TUSB1210_VENDOR_SPECIFIC2_IHSTX_SHIFT	0
#define TUSB1210_VENDOR_SPECIFIC2_ZHSDRV_SHIFT	4
#define TUSB1210_VENDOR_SPECIFIC2_DP_SHIFT	6

struct tusb1210 {
	struct ulpi *ulpi;
	struct phy *phy;
	struct gpio_desc *gpio_reset;
	struct gpio_desc *gpio_cs;
	u8 vendor_specific2;
};

static int tusb1210_power_on(struct phy *phy)
{
	struct tusb1210 *tusb = phy_get_drvdata(phy);

	gpiod_set_value_cansleep(tusb->gpio_reset, 1);
	gpiod_set_value_cansleep(tusb->gpio_cs, 1);

	/* Restore the optional eye diagram optimization value */
	if (tusb->vendor_specific2)
		ulpi_write(tusb->ulpi, TUSB1210_VENDOR_SPECIFIC2,
			   tusb->vendor_specific2);

	return 0;
}

static int tusb1210_power_off(struct phy *phy)
{
	struct tusb1210 *tusb = phy_get_drvdata(phy);

	gpiod_set_value_cansleep(tusb->gpio_reset, 0);
	gpiod_set_value_cansleep(tusb->gpio_cs, 0);

	return 0;
}

static const struct phy_ops phy_ops = {
	.power_on = tusb1210_power_on,
	.power_off = tusb1210_power_off,
	.owner = THIS_MODULE,
};

static int tusb1210_probe(struct ulpi *ulpi)
{
	struct tusb1210 *tusb;
	u8 val, reg;

	tusb = devm_kzalloc(&ulpi->dev, sizeof(*tusb), GFP_KERNEL);
	if (!tusb)
		return -ENOMEM;

	tusb->gpio_reset = devm_gpiod_get_optional(&ulpi->dev, "reset",
						   GPIOD_OUT_LOW);
	if (IS_ERR(tusb->gpio_reset))
		return PTR_ERR(tusb->gpio_reset);

	gpiod_set_value_cansleep(tusb->gpio_reset, 1);

	tusb->gpio_cs = devm_gpiod_get_optional(&ulpi->dev, "cs",
						GPIOD_OUT_LOW);
	if (IS_ERR(tusb->gpio_cs))
		return PTR_ERR(tusb->gpio_cs);

	gpiod_set_value_cansleep(tusb->gpio_cs, 1);

	/*
	 * VENDOR_SPECIFIC2 register in TUSB1210 can be used for configuring eye
	 * diagram optimization and DP/DM swap.
	 */

	/* High speed output drive strength configuration */
	device_property_read_u8(&ulpi->dev, "ihstx", &val);
	reg = val << TUSB1210_VENDOR_SPECIFIC2_IHSTX_SHIFT;

	/* High speed output impedance configuration */
	device_property_read_u8(&ulpi->dev, "zhsdrv", &val);
	reg |= val << TUSB1210_VENDOR_SPECIFIC2_ZHSDRV_SHIFT;

	/* DP/DM swap control */
	device_property_read_u8(&ulpi->dev, "datapolarity", &val);
	reg |= val << TUSB1210_VENDOR_SPECIFIC2_DP_SHIFT;

	if (reg) {
		ulpi_write(ulpi, TUSB1210_VENDOR_SPECIFIC2, reg);
		tusb->vendor_specific2 = reg;
	}

	tusb->phy = ulpi_phy_create(ulpi, &phy_ops);
	if (IS_ERR(tusb->phy))
		return PTR_ERR(tusb->phy);

	tusb->ulpi = ulpi;

	phy_set_drvdata(tusb->phy, tusb);
	ulpi_set_drvdata(ulpi, tusb);
	return 0;
}

static void tusb1210_remove(struct ulpi *ulpi)
{
	struct tusb1210 *tusb = ulpi_get_drvdata(ulpi);

	ulpi_phy_destroy(ulpi, tusb->phy);
}

#define TI_VENDOR_ID 0x0451

static const struct ulpi_device_id tusb1210_ulpi_id[] = {
	{ TI_VENDOR_ID, 0x1507, },
	{ },
};
MODULE_DEVICE_TABLE(ulpi, tusb1210_ulpi_id);

static struct ulpi_driver tusb1210_driver = {
	.id_table = tusb1210_ulpi_id,
	.probe = tusb1210_probe,
	.remove = tusb1210_remove,
	.driver = {
		.name = "tusb1210",
		.owner = THIS_MODULE,
	},
};

module_ulpi_driver(tusb1210_driver);

MODULE_AUTHOR("Intel Corporation");
MODULE_LICENSE("GPL v2");
MODULE_DESCRIPTION("TUSB1210 ULPI PHY driver");

On using this we were not able to detect the devices. On referring the data sheet, it mentioned CPEN pin should be enabled to power the phy. So we modified the driver accordingly as below,

/**
 * tusb1210.c - TUSB1210 USB ULPI PHY driver
 *
 * Copyright (C) 2015 Intel Corporation
 *
 * Author: Heikki Krogerus <heikki.krogerus@linux.intel.com>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */
#include <linux/module.h>
#include <linux/ulpi/driver.h>
#include <linux/gpio/consumer.h>
#include <linux/ulpi/regs.h>
#include "ulpi_phy.h"

#define TUSB1210_VENDOR_SPECIFIC2		0x80
#define TUSB1210_VENDOR_SPECIFIC2_IHSTX_SHIFT	0
#define TUSB1210_VENDOR_SPECIFIC2_ZHSDRV_SHIFT	4
#define TUSB1210_VENDOR_SPECIFIC2_DP_SHIFT	6

struct tusb1210 {
	struct ulpi *ulpi;
	struct phy *phy;
	struct gpio_desc *gpio_reset;
	struct gpio_desc *gpio_cs;
	u8 vendor_specific2;
};

static int tusb1210_power_on(struct phy *phy)
{
	struct tusb1210 *tusb = phy_get_drvdata(phy);

	printk(KERN_INFO "Helios : TUSB1210_Power_on_Function Called!\n");
	
	gpiod_set_value_cansleep(tusb->gpio_reset, 1);
	gpiod_set_value_cansleep(tusb->gpio_cs, 1);

	/* Restore the optional eye diagram optimization value */
	if (tusb->vendor_specific2)
		ulpi_write(tusb->ulpi, TUSB1210_VENDOR_SPECIFIC2,
			   tusb->vendor_specific2);

	return 0;
}

static int tusb1210_power_off(struct phy *phy)
{
	struct tusb1210 *tusb = phy_get_drvdata(phy);

	printk(KERN_INFO "Helios : TUSB1210_Power_off_Function Called!\n");

	gpiod_set_value_cansleep(tusb->gpio_reset, 0);
	gpiod_set_value_cansleep(tusb->gpio_cs, 0);

	return 0;
}

static const struct phy_ops phy_ops = {
	.power_on = tusb1210_power_on,
	.power_off = tusb1210_power_off,
	.owner = THIS_MODULE,
};

/*static int tusb1210_set_host_mode(struct tusb1210 *tusb)
{
	//struct tusb1210 *tusb = phy_get_drvdata(phy);
	int ret;
	printk(KERN_INFO "Helios : TUSB1210_SetMode Function Called! = %d\n",tusb->ulpi->id);
	ret = ulpi_read(tusb->ulpi, ULPI_OTG_CTRL);
	ret |= (ULPI_OTG_CTRL_DRVVBUS_EXT
			| ULPI_OTG_CTRL_DP_PULLDOWN
			| ULPI_OTG_CTRL_DM_PULLDOWN);
	ulpi_write(tusb->ulpi, ULPI_OTG_CTRL, ret);
	ret |= ULPI_OTG_CTRL_DRVVBUS;
	printk(KERN_INFO "Helios : ULPI_OTG_CTRL = %d\n",ret);
	return ulpi_write(tusb->ulpi, ULPI_OTG_CTRL, ret);
}*/

static int tusb1210_probe(struct ulpi *ulpi)
{
	struct tusb1210 *tusb;
	u8 val, reg;
	int ret;

	printk(KERN_INFO "Helios : TUSB1210_Probe_Function Called!\n");

	tusb = devm_kzalloc(&ulpi->dev, sizeof(*tusb), GFP_KERNEL);
	if (!tusb)
		return -ENOMEM;

	tusb->gpio_reset = devm_gpiod_get_optional(&ulpi->dev, "reset",
						   GPIOD_OUT_LOW);
	if (IS_ERR(tusb->gpio_reset))
		return PTR_ERR(tusb->gpio_reset);

	gpiod_set_value_cansleep(tusb->gpio_reset, 1);

	tusb->gpio_cs = devm_gpiod_get_optional(&ulpi->dev, "cs",
						GPIOD_OUT_LOW);
	if (IS_ERR(tusb->gpio_cs))
		return PTR_ERR(tusb->gpio_cs);

	gpiod_set_value_cansleep(tusb->gpio_cs, 1);

	/*
	 * VENDOR_SPECIFIC2 register in TUSB1210 can be used for configuring eye
	 * diagram optimization and DP/DM swap.
	 */

	/* High speed output drive strength configuration */
	device_property_read_u8(&ulpi->dev, "ihstx", &val);
	reg = val << TUSB1210_VENDOR_SPECIFIC2_IHSTX_SHIFT;

	/* High speed output impedance configuration */
	device_property_read_u8(&ulpi->dev, "zhsdrv", &val);
	reg |= val << TUSB1210_VENDOR_SPECIFIC2_ZHSDRV_SHIFT;

	/* DP/DM swap control */
	device_property_read_u8(&ulpi->dev, "datapolarity", &val);
	reg |= val << TUSB1210_VENDOR_SPECIFIC2_DP_SHIFT;

	if (reg) {
		ulpi_write(ulpi, TUSB1210_VENDOR_SPECIFIC2, reg);
		tusb->vendor_specific2 = reg;
	}

	tusb->phy = ulpi_phy_create(ulpi, &phy_ops);
	if (IS_ERR(tusb->phy))
		return PTR_ERR(tusb->phy);

	tusb->ulpi = ulpi;

	//tusb1210_set_host_mode(tusb);

	printk(KERN_INFO "Helios : TUSB1210_SetMode Function Called! = %d\n",tusb->ulpi->id);
	ret = ulpi_read(tusb->ulpi, ULPI_OTG_CTRL);
	ret |= (ULPI_OTG_CTRL_DRVVBUS_EXT
			| ULPI_OTG_CTRL_DP_PULLDOWN
			| ULPI_OTG_CTRL_DM_PULLDOWN);
	ulpi_write(tusb->ulpi, ULPI_OTG_CTRL, ret);
	ret |= ULPI_OTG_CTRL_DRVVBUS;
	printk(KERN_INFO "Helios : ULPI_OTG_CTRL = %d\n",ret);
	ulpi_write(tusb->ulpi, ULPI_OTG_CTRL, ret);

	phy_set_drvdata(tusb->phy, tusb);
	ulpi_set_drvdata(ulpi, tusb);
	return 0;
}

static void tusb1210_remove(struct ulpi *ulpi)
{
	struct tusb1210 *tusb = ulpi_get_drvdata(ulpi);

	printk(KERN_INFO "Helios : TUSB1210_Remove_Function Called!\n");

	ulpi_phy_destroy(ulpi, tusb->phy);
}

#define TI_VENDOR_ID 0x0451

static const struct ulpi_device_id tusb1210_ulpi_id[] = {
	{ TI_VENDOR_ID, 0x1507, },
	{ },
};
MODULE_DEVICE_TABLE(ulpi, tusb1210_ulpi_id);

static struct ulpi_driver tusb1210_driver = {
	.id_table = tusb1210_ulpi_id,
	.probe = tusb1210_probe,
	.remove = tusb1210_remove,
	.driver = {
		.name = "tusb1210",
		.owner = THIS_MODULE,
	},
};

module_ulpi_driver(tusb1210_driver);

MODULE_AUTHOR("Intel Corporation");
MODULE_LICENSE("GPL v2");
MODULE_DESCRIPTION("TUSB1210 ULPI PHY driver");

With these changes we were able to set the device and was able to power the CPEN pin. But the issue is that, on probing, both the phys are identified with same ids and only one of them gets powered (usb4 only) even though when both are enabled in the device tree.

Also this cannot be powered (i.e. the thumb drive is not detected when the kernel has booted), we had to remove the driver first and on reinserting it gives power to the phy (only to usb4) and thumb drive is detected.

We are using it for dra77xp.

These are the device tree files (changes are made in the dra76-evm.dts),

2425.DeviceTree.zip

Regards,

Padmesh

  • Here is diagram for usb3 (same follows for usb4)

  • Old thread: e2e.ti.com/.../793747

    Hi Padmesh,

    Thanks for the device tree files. The entries need for usb3 and usb4 for ulpi support are clean. No issue there..

    The only suspect here is the code update done to the phy-tusb1210.c file. Have you ruled out the possibility of the module getting loaded only for the first instance of the usb that uses ulpi i/f ? Have you checked if the code is trying to write to both the tusb1210 chip to set the ULPI_OTG_CTRL register..
    Note that the current support for setting the ULPI_OTG_CTRL register is done via the phy-ulpi.c file. But as we understand, looks like it is supported for dr_mode-=otg. Can you give a try setting the mode to OTG for both usb3 and usb4 and see what is the behaviour?

    Also, Do you know why the probe function is called twice?

    [ 95.528841] TUSB1210_Probe_Function Called!
    [ 95.534921] TUSB1210_SetMode Function Called! = 352781393
    [ 95.541258] ULPI_OTG_CTRL = 103
    [ 95.547200] TUSB1210_Probe_Function Called!
    [ 95.553055] TUSB1210_SetMode Function Called! = 352781393
    [ 95.559391] ULPI_OTG_CTRL = 103

    Are you manually editing the .config file? Did you try "make menuconfig" to set the above?

    -Praveen
  • Hi Praveen,

    The portion of code we obtained was from the link www.ti.com/tool/TUSB1210SW-LINUX

    /**
     * tusb1210.c - TUSB1210 USB ULPI PHY driver
     *
     * Copyright (C) 2015 Intel Corporation
     *
     * Author: Heikki Krogerus <heikki.krogerus@linux.intel.com>
     *
     * This program is free software; you can redistribute it and/or modify
     * it under the terms of the GNU General Public License version 2 as
     * published by the Free Software Foundation.
     */
    #include <linux/module.h>
    #include <linux/ulpi/driver.h>
    #include <linux/ulpi/regs.h>
    #include <linux/gpio/consumer.h>
    #include <linux/phy/ulpi_phy.h>
    
    #define TUSB1210_VENDOR_SPECIFIC2		0x80
    #define TUSB1210_VENDOR_SPECIFIC2_IHSTX_SHIFT	0
    #define TUSB1210_VENDOR_SPECIFIC2_ZHSDRV_SHIFT	4
    #define TUSB1210_VENDOR_SPECIFIC2_DP_SHIFT	6
    
    struct tusb1210 {
    	struct ulpi *ulpi;
    	struct phy *phy;
    	struct gpio_desc *gpio_reset;
    	struct gpio_desc *gpio_cs;
    	u8 vendor_specific2;
    };
    
    static int tusb1210_power_on(struct phy *phy)
    {
    	struct tusb1210 *tusb = phy_get_drvdata(phy);
    
    	gpiod_set_value_cansleep(tusb->gpio_reset, 1);
    	gpiod_set_value_cansleep(tusb->gpio_cs, 1);
    
    	/* Restore the optional eye diagram optimization value */
    	if (tusb->vendor_specific2)
    		ulpi_write(tusb->ulpi, TUSB1210_VENDOR_SPECIFIC2,
    			   tusb->vendor_specific2);
    
    	return 0;
    }
    
    static int tusb1210_power_off(struct phy *phy)
    {
    	struct tusb1210 *tusb = phy_get_drvdata(phy);
    
    	gpiod_set_value_cansleep(tusb->gpio_reset, 0);
    	gpiod_set_value_cansleep(tusb->gpio_cs, 0);
    
    	return 0;
    }
    
    static int tusb1210_set_mode(struct phy *phy, enum phy_mode mode, int submode)
    {
    	struct tusb1210 *tusb = phy_get_drvdata(phy);
    	int ret;
    
    	ret = ulpi_read(tusb->ulpi, ULPI_OTG_CTRL);
    	if (ret < 0)
    		return ret;
    
    	switch (mode) {
    	case PHY_MODE_USB_HOST:
    		ret |= (ULPI_OTG_CTRL_DRVVBUS_EXT
    			| ULPI_OTG_CTRL_ID_PULLUP
    			| ULPI_OTG_CTRL_DP_PULLDOWN
    			| ULPI_OTG_CTRL_DM_PULLDOWN);
    		ulpi_write(tusb->ulpi, ULPI_OTG_CTRL, ret);
    		ret |= ULPI_OTG_CTRL_DRVVBUS;
    		break;
    	case PHY_MODE_USB_DEVICE:
    		ret &= ~(ULPI_OTG_CTRL_DRVVBUS
    			 | ULPI_OTG_CTRL_DP_PULLDOWN
    			 | ULPI_OTG_CTRL_DM_PULLDOWN);
    		ulpi_write(tusb->ulpi, ULPI_OTG_CTRL, ret);
    		ret &= ~ULPI_OTG_CTRL_DRVVBUS_EXT;
    		break;
    	default:
    		/* nothing */
    		return 0;
    	}
    
    	return ulpi_write(tusb->ulpi, ULPI_OTG_CTRL, ret);
    }
    
    static const struct phy_ops phy_ops = {
    	.power_on = tusb1210_power_on,
    	.power_off = tusb1210_power_off,
    	.set_mode = tusb1210_set_mode,
    	.owner = THIS_MODULE,
    };
    
    static int tusb1210_probe(struct ulpi *ulpi)
    {
    	struct tusb1210 *tusb;
    	u8 val, reg;
    
    	tusb = devm_kzalloc(&ulpi->dev, sizeof(*tusb), GFP_KERNEL);
    	if (!tusb)
    		return -ENOMEM;
    
    	tusb->gpio_reset = devm_gpiod_get_optional(&ulpi->dev, "reset",
    						   GPIOD_OUT_LOW);
    	if (IS_ERR(tusb->gpio_reset))
    		return PTR_ERR(tusb->gpio_reset);
    
    	gpiod_set_value_cansleep(tusb->gpio_reset, 1);
    
    	tusb->gpio_cs = devm_gpiod_get_optional(&ulpi->dev, "cs",
    						GPIOD_OUT_LOW);
    	if (IS_ERR(tusb->gpio_cs))
    		return PTR_ERR(tusb->gpio_cs);
    
    	gpiod_set_value_cansleep(tusb->gpio_cs, 1);
    
    	/*
    	 * VENDOR_SPECIFIC2 register in TUSB1210 can be used for configuring eye
    	 * diagram optimization and DP/DM swap.
    	 */
    
    	/* High speed output drive strength configuration */
    	device_property_read_u8(&ulpi->dev, "ihstx", &val);
    	reg = val << TUSB1210_VENDOR_SPECIFIC2_IHSTX_SHIFT;
    
    	/* High speed output impedance configuration */
    	device_property_read_u8(&ulpi->dev, "zhsdrv", &val);
    	reg |= val << TUSB1210_VENDOR_SPECIFIC2_ZHSDRV_SHIFT;
    
    	/* DP/DM swap control */
    	device_property_read_u8(&ulpi->dev, "datapolarity", &val);
    	reg |= val << TUSB1210_VENDOR_SPECIFIC2_DP_SHIFT;
    
    	if (reg) {
    		ulpi_write(ulpi, TUSB1210_VENDOR_SPECIFIC2, reg);
    		tusb->vendor_specific2 = reg;
    	}
    
    	tusb->phy = ulpi_phy_create(ulpi, &phy_ops);
    	if (IS_ERR(tusb->phy))
    		return PTR_ERR(tusb->phy);
    
    	tusb->ulpi = ulpi;
    
    	phy_set_drvdata(tusb->phy, tusb);
    	ulpi_set_drvdata(ulpi, tusb);
    	return 0;
    }
    
    static void tusb1210_remove(struct ulpi *ulpi)
    {
    	struct tusb1210 *tusb = ulpi_get_drvdata(ulpi);
    
    	ulpi_phy_destroy(ulpi, tusb->phy);
    }
    
    #define TI_VENDOR_ID 0x0451
    
    static const struct ulpi_device_id tusb1210_ulpi_id[] = {
    	{ TI_VENDOR_ID, 0x1507, },  /* TUSB1210 */
    	{ TI_VENDOR_ID, 0x1508, },  /* TUSB1211 */
    	{ },
    };
    MODULE_DEVICE_TABLE(ulpi, tusb1210_ulpi_id);
    
    static struct ulpi_driver tusb1210_driver = {
    	.id_table = tusb1210_ulpi_id,
    	.probe = tusb1210_probe,
    	.remove = tusb1210_remove,
    	.driver = {
    		.name = "tusb1210",
    		.owner = THIS_MODULE,
    	},
    };
    
    module_ulpi_driver(tusb1210_driver);
    
    MODULE_AUTHOR("Intel Corporation");
    MODULE_LICENSE("GPL v2");
    MODULE_DESCRIPTION("TUSB1210 ULPI PHY driver");
    

    I modified the code to print the phy ids and could find that it shows 6 and 7

    when the probe function is called, which implies both the phys are probed. So I guess that it shows the below log two times when both are probed,

    [ 95.528841] TUSB1210_Probe_Function Called!
    [ 95.534921] TUSB1210_SetMode Function Called! = 352781393
    [ 95.541258] ULPI_OTG_CTRL = 103
    [ 95.547200] TUSB1210_Probe_Function Called!
    [ 95.553055] TUSB1210_SetMode Function Called! = 352781393
    [ 95.559391] ULPI_OTG_CTRL = 103

    But the power is provided to only one of them.

    The details about ULPI_OTG_CTRL register is mentioned in the datasheet, where the CPEN pin should be high for the phy to be active.

    For CPEN pin to be high the below mentioned pins are required be high

    For that the log print ULPI_OTG_CTRL = 103 implies DRVVBUSEXTERNAL and DRVVBUS are high. So I believe there is no problem here. Some how the CPEN pin for usb3 is not active when both usb3 and usb4 are enabled in dts. When usb4 is disabled, the CPEN pin for usb3 is active.

    I tried with dr_mode = "otg" but still its the same. We need the dr_mode as host.

    What might be problem here ?

    Regards,

    Padmesh

  • Hi Praveen,
    We are eagerly waiting for the update from you?
    Have you find any root cause for this issue?

    Regards,

    Padmesh
  • Hi Padmesh,

    Looking at the updates made to the tusb1210.c, we are not sure why the VBUS is turned on both of the instances.The code looks right. 

    Since this setup is not present on the TI EVM, we are unable to verify your scenario.

    -Praveen

  • Hi Padmesh,

    We haven't heard back from you, so we are assuming you were able to resolve your issue.
    If not, just post a reply below (or create a new thread if the thread has locked due to time-out).

    -Praveen
  • Still got stuck up in the same issue
  • Any breakthrough on your end? As mentioned, we don't have the same hardware setup to reproduce at our end.
    One thing - can you take the reg dump of both USB3 and USB4 core when they are both enabled as host? Also, capture for working case ( with one of them enabled). You can call:
    for USB instance 3: cat /sys/kernel/debug/48910000.usb/regdump
    for USB instance 4: cat /sys/kernel/debug/48950000.usb/regdump

    -Praveen
  • I haven't heard back from you, I'm assuming you were able to resolve your issue.
    If not, just post a reply below (or create a new thread if the thread has locked due to time-out).

    -Praveen
  • Hi Praveen,

    I have attached the logs before reinserting the driver and after reinserting the driver

    1185.log3.txt
    root@dra7xx-evm:~# cat /sys/kernel/debug/48910000.usb/regdump
    GSBUSCFG0 = 0x0000000e
    GSBUSCFG1 = 0x00000f00
    GTXTHRCFG = 0x00000000
    GRXTHRCFG = 0x00000000
    GCTL = 0x25801000
    GEVTEN = 0x00000000
    GSTS = 0x3e800002
    GSNPSID = 0x5533202a
    GGPIO = 0x00000000
    GUID = 0x00040454
    GUCTL = 0x00008010
    GBUSERRADDR0 = 0x00000000
    GBUSERRADDR1 = 0x00000000
    GPRTBIMAP0 = 0x00000000
    GPRTBIMAP1 = 0x00000000
    GHWPARAMS0 = 0x202040ca
    GHWPARAMS1 = 0x01c0c93b
    GHWPARAMS2 = 0x00000000
    GHWPARAMS3 = 0x1042008d
    GHWPARAMS4 = 0x48822004
    GHWPARAMS5 = 0x04202088
    GHWPARAMS6 = 0x0b000c20
    GHWPARAMS7 = 0x03080780
    GDBGFIFOSPACE = 0x00820000
    GDBGLTSSM = 0x01514c42
    GPRTBIMAP_HS0 = 0x00000000
    GPRTBIMAP_HS1 = 0x00000000
    GPRTBIMAP_FS0 = 0x00000000
    GPRTBIMAP_FS1 = 0x00000000
    GUSB2PHYCFG(0) = 0x00002510
    GUSB2PHYCFG(1) = 0x00000000
    GUSB2PHYCFG(2) = 0x00000000
    GUSB2PHYCFG(3) = 0x00000000
    GUSB2PHYCFG(4) = 0x00000000
    GUSB2PHYCFG(5) = 0x00000000
    GUSB2PHYCFG(6) = 0x00000000
    GUSB2PHYCFG(7) = 0x00000000
    GUSB2PHYCFG(8) = 0x00000000
    GUSB2PHYCFG(9) = 0x00000000
    GUSB2PHYCFG(10) = 0x00000000
    GUSB2PHYCFG(11) = 0x00000000
    GUSB2PHYCFG(12) = 0x00000000
    GUSB2PHYCFG(13) = 0x00000000
    GUSB2PHYCFG(14) = 0x00000000
    GUSB2PHYCFG(15) = 0x00000000
    GUSB2I2CCTL(0) = 0x00000000
    GUSB2I2CCTL(1) = 0x00000000
    GUSB2I2CCTL(2) = 0x00000000
    GUSB2I2CCTL(3) = 0x00000000
    GUSB2I2CCTL(4) = 0x00000000
    GUSB2I2CCTL(5) = 0x00000000
    GUSB2I2CCTL(6) = 0x00000000
    GUSB2I2CCTL(7) = 0x00000000
    GUSB2I2CCTL(8) = 0x00000000
    GUSB2I2CCTL(9) = 0x00000000
    GUSB2I2CCTL(10) = 0x00000000
    GUSB2I2CCTL(11) = 0x00000000
    GUSB2I2CCTL(12) = 0x00000000
    GUSB2I2CCTL(13) = 0x00000000
    GUSB2I2CCTL(14) = 0x00000000
    GUSB2I2CCTL(15) = 0x00000000
    GUSB2PHYACC(0) = 0x00000000
    GUSB2PHYACC(1) = 0x00000000
    GUSB2PHYACC(2) = 0x00000000
    GUSB2PHYACC(3) = 0x00000000
    GUSB2PHYACC(4) = 0x00000000
    GUSB2PHYACC(5) = 0x00000000
    GUSB2PHYACC(6) = 0x00000000
    GUSB2PHYACC(7) = 0x00000000
    GUSB2PHYACC(8) = 0x00000000
    GUSB2PHYACC(9) = 0x00000000
    GUSB2PHYACC(10) = 0x00000000
    GUSB2PHYACC(11) = 0x00000000
    GUSB2PHYACC(12) = 0x00000000
    GUSB2PHYACC(13) = 0x00000000
    GUSB2PHYACC(14) = 0x00000000
    GUSB2PHYACC(15) = 0x00000000
    GUSB3PIPECTL(0) = 0x00040002
    GUSB3PIPECTL(1) = 0x00000000
    GUSB3PIPECTL(2) = 0x00000000
    GUSB3PIPECTL(3) = 0x00000000
    GUSB3PIPECTL(4) = 0x00000000
    GUSB3PIPECTL(5) = 0x00000000
    GUSB3PIPECTL(6) = 0x00000000
    GUSB3PIPECTL(7) = 0x00000000
    GUSB3PIPECTL(8) = 0x00000000
    GUSB3PIPECTL(9) = 0x00000000
    GUSB3PIPECTL(10) = 0x00000000
    GUSB3PIPECTL(11) = 0x00000000
    GUSB3PIPECTL(12) = 0x00000000
    GUSB3PIPECTL(13) = 0x00000000
    GUSB3PIPECTL(14) = 0x00000000
    GUSB3PIPECTL(15) = 0x00000000
    GTXFIFOSIZ(0) = 0x00000082
    GTXFIFOSIZ(1) = 0x00820103
    GTXFIFOSIZ(2) = 0x01850205
    GTXFIFOSIZ(3) = 0x038a0000
    GTXFIFOSIZ(4) = 0x038a0000
    GTXFIFOSIZ(5) = 0x038a0000
    GTXFIFOSIZ(6) = 0x038a0000
    GTXFIFOSIZ(7) = 0x038a0000
    GTXFIFOSIZ(8) = 0x038a0000
    GTXFIFOSIZ(9) = 0x038a0000
    GTXFIFOSIZ(10) = 0x038a0000
    GTXFIFOSIZ(11) = 0x038a0000
    GTXFIFOSIZ(12) = 0x038a0000
    GTXFIFOSIZ(13) = 0x038a0000
    GTXFIFOSIZ(14) = 0x038a0000
    GTXFIFOSIZ(15) = 0x038a0000
    GTXFIFOSIZ(16) = 0x00000000
    GTXFIFOSIZ(17) = 0x00000000
    GTXFIFOSIZ(18) = 0x00000000
    GTXFIFOSIZ(19) = 0x00000000
    GTXFIFOSIZ(20) = 0x00000000
    GTXFIFOSIZ(21) = 0x00000000
    GTXFIFOSIZ(22) = 0x00000000
    GTXFIFOSIZ(23) = 0x00000000
    GTXFIFOSIZ(24) = 0x00000000
    GTXFIFOSIZ(25) = 0x00000000
    GTXFIFOSIZ(26) = 0x00000000
    GTXFIFOSIZ(27) = 0x00000000
    GTXFIFOSIZ(28) = 0x00000000
    GTXFIFOSIZ(29) = 0x00000000
    GTXFIFOSIZ(30) = 0x00000000
    GTXFIFOSIZ(31) = 0x00000000
    GRXFIFOSIZ(0) = 0x071e0084
    GRXFIFOSIZ(1) = 0x07a20104
    GRXFIFOSIZ(2) = 0x08a60180
    GRXFIFOSIZ(3) = 0x00000000
    GRXFIFOSIZ(4) = 0x00000000
    GRXFIFOSIZ(5) = 0x00000000
    GRXFIFOSIZ(6) = 0x00000000
    GRXFIFOSIZ(7) = 0x00000000
    GRXFIFOSIZ(8) = 0x00000000
    GRXFIFOSIZ(9) = 0x00000000
    GRXFIFOSIZ(10) = 0x00000000
    GRXFIFOSIZ(11) = 0x00000000
    GRXFIFOSIZ(12) = 0x00000000
    GRXFIFOSIZ(13) = 0x00000000
    GRXFIFOSIZ(14) = 0x00000000
    GRXFIFOSIZ(15) = 0x00000000
    GRXFIFOSIZ(16) = 0x00000000
    GRXFIFOSIZ(17) = 0x00000000
    GRXFIFOSIZ(18) = 0x00000000
    GRXFIFOSIZ(19) = 0x00000000
    GRXFIFOSIZ(20) = 0x00000000
    GRXFIFOSIZ(21) = 0x00000000
    GRXFIFOSIZ(22) = 0x00000000
    GRXFIFOSIZ(23) = 0x00000000
    GRXFIFOSIZ(24) = 0x00000000
    GRXFIFOSIZ(25) = 0x00000000
    GRXFIFOSIZ(26) = 0x00000000
    GRXFIFOSIZ(27) = 0x00000000
    GRXFIFOSIZ(28) = 0x00000000
    GRXFIFOSIZ(29) = 0x00000000
    GRXFIFOSIZ(30) = 0x00000000
    GRXFIFOSIZ(31) = 0x00000000
    GEVNTADRLO(0) = 0x00000000
    GEVNTADRHI(0) = 0x00000000
    GEVNTSIZ(0) = 0x00000000
    GEVNTCOUNT(0) = 0x00000000
    GHWPARAMS8 = 0x0000071e
    DCFG = 0x00080800
    DCTL = 0x00000000
    DEVTEN = 0x00000000
    DSTS = 0x00d25a59
    DGCMDPAR = 0x00000000
    DGCMD = 0x00000000
    DALEPENA = 0x00000000
    DEPCMDPAR2(0) = 0x00000000
    DEPCMDPAR2(1) = 0x00000000
    DEPCMDPAR2(2) = 0xb0050000
    DEPCMDPAR2(3) = 0x00000000
    DEPCMDPAR2(4) = 0xb0054000
    DEPCMDPAR2(5) = 0x00000000
    DEPCMDPAR2(6) = 0x00000000
    DEPCMDPAR2(7) = 0x00000000
    DEPCMDPAR2(8) = 0x00000000
    DEPCMDPAR2(9) = 0x00000000
    DEPCMDPAR2(10) = 0x00000000
    DEPCMDPAR2(11) = 0x00000000
    DEPCMDPAR2(12) = 0x00000000
    DEPCMDPAR2(13) = 0x00000000
    DEPCMDPAR2(14) = 0x00000000
    DEPCMDPAR2(15) = 0x00000000
    DEPCMDPAR2(16) = 0x00000000
    DEPCMDPAR2(17) = 0x00000000
    DEPCMDPAR2(18) = 0x00000000
    DEPCMDPAR2(19) = 0x00000000
    DEPCMDPAR2(20) = 0x00000000
    DEPCMDPAR2(21) = 0x00000000
    DEPCMDPAR2(22) = 0x00000000
    DEPCMDPAR2(23) = 0x00000000
    DEPCMDPAR2(24) = 0x00000000
    DEPCMDPAR2(25) = 0x00000000
    DEPCMDPAR2(26) = 0x00000000
    DEPCMDPAR2(27) = 0x00000000
    DEPCMDPAR2(28) = 0x00000000
    DEPCMDPAR2(29) = 0x00000000
    DEPCMDPAR2(30) = 0x00000000
    DEPCMDPAR2(31) = 0x00000000
    DEPCMDPAR1(0) = 0x00000002
    DEPCMDPAR1(1) = 0x00000000
    DEPCMDPAR1(2) = 0x00000000
    DEPCMDPAR1(3) = 0x00000000
    DEPCMDPAR1(4) = 0x00000000
    DEPCMDPAR1(5) = 0x00000000
    DEPCMDPAR1(6) = 0x00000000
    DEPCMDPAR1(7) = 0x00000000
    DEPCMDPAR1(8) = 0x00000000
    DEPCMDPAR1(9) = 0x00000000
    DEPCMDPAR1(10) = 0x00000000
    DEPCMDPAR1(11) = 0x00000000
    DEPCMDPAR1(12) = 0x00000000
    DEPCMDPAR1(13) = 0x00000000
    DEPCMDPAR1(14) = 0x00000000
    DEPCMDPAR1(15) = 0x00000000
    DEPCMDPAR1(16) = 0x00000000
    DEPCMDPAR1(17) = 0x00000000
    DEPCMDPAR1(18) = 0x00000000
    DEPCMDPAR1(19) = 0x00000000
    DEPCMDPAR1(20) = 0x00000000
    DEPCMDPAR1(21) = 0x00000000
    DEPCMDPAR1(22) = 0x00000000
    DEPCMDPAR1(23) = 0x00000000
    DEPCMDPAR1(24) = 0x00000000
    DEPCMDPAR1(25) = 0x00000000
    DEPCMDPAR1(26) = 0x00000000
    DEPCMDPAR1(27) = 0x00000000
    DEPCMDPAR1(28) = 0x00000000
    DEPCMDPAR1(29) = 0x00000000
    DEPCMDPAR1(30) = 0x00000000
    DEPCMDPAR1(31) = 0x00000000
    DEPCMDPAR0(0) = 0xb0051001
    DEPCMDPAR0(1) = 0x00000000
    DEPCMDPAR0(2) = 0x00000040
    DEPCMDPAR0(3) = 0x00000000
    DEPCMDPAR0(4) = 0xb0053000
    DEPCMDPAR0(5) = 0x00000000
    DEPCMDPAR0(6) = 0x00000000
    DEPCMDPAR0(7) = 0x00000000
    DEPCMDPAR0(8) = 0x00000000
    DEPCMDPAR0(9) = 0x00000000
    DEPCMDPAR0(10) = 0x00000000
    DEPCMDPAR0(11) = 0x00000000
    DEPCMDPAR0(12) = 0x00000000
    DEPCMDPAR0(13) = 0x00000000
    DEPCMDPAR0(14) = 0x00000000
    DEPCMDPAR0(15) = 0x00000000
    DEPCMDPAR0(16) = 0x00000000
    DEPCMDPAR0(17) = 0x00000000
    DEPCMDPAR0(18) = 0x00000000
    DEPCMDPAR0(19) = 0x00000000
    DEPCMDPAR0(20) = 0x00000000
    DEPCMDPAR0(21) = 0x00000000
    DEPCMDPAR0(22) = 0x00000000
    DEPCMDPAR0(23) = 0x00000000
    DEPCMDPAR0(24) = 0x00000000
    DEPCMDPAR0(25) = 0x00000000
    DEPCMDPAR0(26) = 0x00000000
    DEPCMDPAR0(27) = 0x00000000
    DEPCMDPAR0(28) = 0x00000000
    DEPCMDPAR0(29) = 0x00000000
    DEPCMDPAR0(30) = 0x00000000
    DEPCMDPAR0(31) = 0x00000000
    DEPCMD(0) = 0x00000000
    DEPCMD(1) = 0x00000000
    DEPCMD(2) = 0x00000000
    DEPCMD(3) = 0x00000000
    DEPCMD(4) = 0x00000000
    DEPCMD(5) = 0x00000000
    DEPCMD(6) = 0x00000000
    DEPCMD(7) = 0x00000000
    DEPCMD(8) = 0x00000000
    DEPCMD(9) = 0x00000000
    DEPCMD(10) = 0x00000000
    DEPCMD(11) = 0x00000000
    DEPCMD(12) = 0x00000000
    DEPCMD(13) = 0x00000000
    DEPCMD(14) = 0x00000000
    DEPCMD(15) = 0x00000000
    DEPCMD(16) = 0x00000000
    DEPCMD(17) = 0x00000000
    DEPCMD(18) = 0x00000000
    DEPCMD(19) = 0x00000000
    DEPCMD(20) = 0x00000000
    DEPCMD(21) = 0x00000000
    DEPCMD(22) = 0x00000000
    DEPCMD(23) = 0x00000000
    DEPCMD(24) = 0x00000000
    DEPCMD(25) = 0x00000000
    DEPCMD(26) = 0x00000000
    DEPCMD(27) = 0x00000000
    DEPCMD(28) = 0x00000000
    DEPCMD(29) = 0x00000000
    DEPCMD(30) = 0x00000000
    DEPCMD(31) = 0x00000000
    OCFG = 0x00000000
    OCTL = 0x00000040
    OEVT = 0x00000000
    OEVTEN = 0x00000000
    OSTS = 0x00000008
    root@dra7xx-evm:~# cat /sys/kernel/debug/48950000.usb/regdump
    GSBUSCFG0 = 0x0000000e
    GSBUSCFG1 = 0x00000f00
    GTXTHRCFG = 0x00000000
    GRXTHRCFG = 0x00000000
    GCTL = 0x25801000
    GEVTEN = 0x00000000
    GSTS = 0x3e800002
    GSNPSID = 0x5533202a
    GGPIO = 0x00000000
    GUID = 0x00040454
    GUCTL = 0x00008010
    GBUSERRADDR0 = 0x00000000
    GBUSERRADDR1 = 0x00000000
    GPRTBIMAP0 = 0x00000000
    GPRTBIMAP1 = 0x00000000
    GHWPARAMS0 = 0x202040ca
    GHWPARAMS1 = 0x01c0c93b
    GHWPARAMS2 = 0x00000000
    GHWPARAMS3 = 0x1042008d
    GHWPARAMS4 = 0x48822004
    GHWPARAMS5 = 0x04202088
    GHWPARAMS6 = 0x0b000c20
    GHWPARAMS7 = 0x03080780
    GDBGFIFOSPACE = 0x00820000
    GDBGLTSSM = 0x01514c42
    GPRTBIMAP_HS0 = 0x00000000
    GPRTBIMAP_HS1 = 0x00000000
    GPRTBIMAP_FS0 = 0x00000000
    GPRTBIMAP_FS1 = 0x00000000
    GUSB2PHYCFG(0) = 0x00002510
    GUSB2PHYCFG(1) = 0x00000000
    GUSB2PHYCFG(2) = 0x00000000
    GUSB2PHYCFG(3) = 0x00000000
    GUSB2PHYCFG(4) = 0x00000000
    GUSB2PHYCFG(5) = 0x00000000
    GUSB2PHYCFG(6) = 0x00000000
    GUSB2PHYCFG(7) = 0x00000000
    GUSB2PHYCFG(8) = 0x00000000
    GUSB2PHYCFG(9) = 0x00000000
    GUSB2PHYCFG(10) = 0x00000000
    GUSB2PHYCFG(11) = 0x00000000
    GUSB2PHYCFG(12) = 0x00000000
    GUSB2PHYCFG(13) = 0x00000000
    GUSB2PHYCFG(14) = 0x00000000
    GUSB2PHYCFG(15) = 0x00000000
    GUSB2I2CCTL(0) = 0x00000000
    GUSB2I2CCTL(1) = 0x00000000
    GUSB2I2CCTL(2) = 0x00000000
    GUSB2I2CCTL(3) = 0x00000000
    GUSB2I2CCTL(4) = 0x00000000
    GUSB2I2CCTL(5) = 0x00000000
    GUSB2I2CCTL(6) = 0x00000000
    GUSB2I2CCTL(7) = 0x00000000
    GUSB2I2CCTL(8) = 0x00000000
    GUSB2I2CCTL(9) = 0x00000000
    GUSB2I2CCTL(10) = 0x00000000
    GUSB2I2CCTL(11) = 0x00000000
    GUSB2I2CCTL(12) = 0x00000000
    GUSB2I2CCTL(13) = 0x00000000
    GUSB2I2CCTL(14) = 0x00000000
    GUSB2I2CCTL(15) = 0x00000000
    GUSB2PHYACC(0) = 0x00000000
    GUSB2PHYACC(1) = 0x00000000
    GUSB2PHYACC(2) = 0x00000000
    GUSB2PHYACC(3) = 0x00000000
    GUSB2PHYACC(4) = 0x00000000
    GUSB2PHYACC(5) = 0x00000000
    GUSB2PHYACC(6) = 0x00000000
    GUSB2PHYACC(7) = 0x00000000
    GUSB2PHYACC(8) = 0x00000000
    GUSB2PHYACC(9) = 0x00000000
    GUSB2PHYACC(10) = 0x00000000
    GUSB2PHYACC(11) = 0x00000000
    GUSB2PHYACC(12) = 0x00000000
    GUSB2PHYACC(13) = 0x00000000
    GUSB2PHYACC(14) = 0x00000000
    GUSB2PHYACC(15) = 0x00000000
    GUSB3PIPECTL(0) = 0x00040002
    GUSB3PIPECTL(1) = 0x00000000
    GUSB3PIPECTL(2) = 0x00000000
    GUSB3PIPECTL(3) = 0x00000000
    GUSB3PIPECTL(4) = 0x00000000
    GUSB3PIPECTL(5) = 0x00000000
    GUSB3PIPECTL(6) = 0x00000000
    GUSB3PIPECTL(7) = 0x00000000
    GUSB3PIPECTL(8) = 0x00000000
    GUSB3PIPECTL(9) = 0x00000000
    GUSB3PIPECTL(10) = 0x00000000
    GUSB3PIPECTL(11) = 0x00000000
    GUSB3PIPECTL(12) = 0x00000000
    GUSB3PIPECTL(13) = 0x00000000
    GUSB3PIPECTL(14) = 0x00000000
    GUSB3PIPECTL(15) = 0x00000000
    GTXFIFOSIZ(0) = 0x00000082
    GTXFIFOSIZ(1) = 0x00820103
    GTXFIFOSIZ(2) = 0x01850205
    GTXFIFOSIZ(3) = 0x038a0000
    GTXFIFOSIZ(4) = 0x038a0000
    GTXFIFOSIZ(5) = 0x038a0000
    GTXFIFOSIZ(6) = 0x038a0000
    GTXFIFOSIZ(7) = 0x038a0000
    GTXFIFOSIZ(8) = 0x038a0000
    GTXFIFOSIZ(9) = 0x038a0000
    GTXFIFOSIZ(10) = 0x038a0000
    GTXFIFOSIZ(11) = 0x038a0000
    GTXFIFOSIZ(12) = 0x038a0000
    GTXFIFOSIZ(13) = 0x038a0000
    GTXFIFOSIZ(14) = 0x038a0000
    GTXFIFOSIZ(15) = 0x038a0000
    GTXFIFOSIZ(16) = 0x00000000
    GTXFIFOSIZ(17) = 0x00000000
    GTXFIFOSIZ(18) = 0x00000000
    GTXFIFOSIZ(19) = 0x00000000
    GTXFIFOSIZ(20) = 0x00000000
    GTXFIFOSIZ(21) = 0x00000000
    GTXFIFOSIZ(22) = 0x00000000
    GTXFIFOSIZ(23) = 0x00000000
    GTXFIFOSIZ(24) = 0x00000000
    GTXFIFOSIZ(25) = 0x00000000
    GTXFIFOSIZ(26) = 0x00000000
    GTXFIFOSIZ(27) = 0x00000000
    GTXFIFOSIZ(28) = 0x00000000
    GTXFIFOSIZ(29) = 0x00000000
    GTXFIFOSIZ(30) = 0x00000000
    GTXFIFOSIZ(31) = 0x00000000
    GRXFIFOSIZ(0) = 0x071e0084
    GRXFIFOSIZ(1) = 0x07a20104
    GRXFIFOSIZ(2) = 0x08a60180
    GRXFIFOSIZ(3) = 0x00000000
    GRXFIFOSIZ(4) = 0x00000000
    GRXFIFOSIZ(5) = 0x00000000
    GRXFIFOSIZ(6) = 0x00000000
    GRXFIFOSIZ(7) = 0x00000000
    GRXFIFOSIZ(8) = 0x00000000
    GRXFIFOSIZ(9) = 0x00000000
    GRXFIFOSIZ(10) = 0x00000000
    GRXFIFOSIZ(11) = 0x00000000
    GRXFIFOSIZ(12) = 0x00000000
    GRXFIFOSIZ(13) = 0x00000000
    GRXFIFOSIZ(14) = 0x00000000
    GRXFIFOSIZ(15) = 0x00000000
    GRXFIFOSIZ(16) = 0x00000000
    GRXFIFOSIZ(17) = 0x00000000
    GRXFIFOSIZ(18) = 0x00000000
    GRXFIFOSIZ(19) = 0x00000000
    GRXFIFOSIZ(20) = 0x00000000
    GRXFIFOSIZ(21) = 0x00000000
    GRXFIFOSIZ(22) = 0x00000000
    GRXFIFOSIZ(23) = 0x00000000
    GRXFIFOSIZ(24) = 0x00000000
    GRXFIFOSIZ(25) = 0x00000000
    GRXFIFOSIZ(26) = 0x00000000
    GRXFIFOSIZ(27) = 0x00000000
    GRXFIFOSIZ(28) = 0x00000000
    GRXFIFOSIZ(29) = 0x00000000
    GRXFIFOSIZ(30) = 0x00000000
    GRXFIFOSIZ(31) = 0x00000000
    GEVNTADRLO(0) = 0x00000000
    GEVNTADRHI(0) = 0x00000000
    GEVNTSIZ(0) = 0x00000000
    GEVNTCOUNT(0) = 0x00000000
    GHWPARAMS8 = 0x0000071e
    DCFG = 0x00080800
    DCTL = 0x00000000
    DEVTEN = 0x00000000
    DSTS = 0x00d33289
    DGCMDPAR = 0x00000000
    DGCMD = 0x00000000
    DALEPENA = 0x00000000
    DEPCMDPAR2(0) = 0x00000000
    DEPCMDPAR2(1) = 0x00000000
    DEPCMDPAR2(2) = 0xb0044000
    DEPCMDPAR2(3) = 0x00000000
    DEPCMDPAR2(4) = 0xb005e000
    DEPCMDPAR2(5) = 0x00000000
    DEPCMDPAR2(6) = 0x00000000
    DEPCMDPAR2(7) = 0x00000000
    DEPCMDPAR2(8) = 0x00000000
    DEPCMDPAR2(9) = 0x00000000
    DEPCMDPAR2(10) = 0x00000000
    DEPCMDPAR2(11) = 0x00000000
    DEPCMDPAR2(12) = 0x00000000
    DEPCMDPAR2(13) = 0x00000000
    DEPCMDPAR2(14) = 0x00000000
    DEPCMDPAR2(15) = 0x00000000
    DEPCMDPAR2(16) = 0x00000000
    DEPCMDPAR2(17) = 0x00000000
    DEPCMDPAR2(18) = 0x00000000
    DEPCMDPAR2(19) = 0x00000000
    DEPCMDPAR2(20) = 0x00000000
    DEPCMDPAR2(21) = 0x00000000
    DEPCMDPAR2(22) = 0x00000000
    DEPCMDPAR2(23) = 0x00000000
    DEPCMDPAR2(24) = 0x00000000
    DEPCMDPAR2(25) = 0x00000000
    DEPCMDPAR2(26) = 0x00000000
    DEPCMDPAR2(27) = 0x00000000
    DEPCMDPAR2(28) = 0x00000000
    DEPCMDPAR2(29) = 0x00000000
    DEPCMDPAR2(30) = 0x00000000
    DEPCMDPAR2(31) = 0x00000000
    DEPCMDPAR1(0) = 0x00000002
    DEPCMDPAR1(1) = 0x00000000
    DEPCMDPAR1(2) = 0x00000000
    DEPCMDPAR1(3) = 0x00000000
    DEPCMDPAR1(4) = 0x00000000
    DEPCMDPAR1(5) = 0x00000000
    DEPCMDPAR1(6) = 0x00000000
    DEPCMDPAR1(7) = 0x00000000
    DEPCMDPAR1(8) = 0x00000000
    DEPCMDPAR1(9) = 0x00000000
    DEPCMDPAR1(10) = 0x00000000
    DEPCMDPAR1(11) = 0x00000000
    DEPCMDPAR1(12) = 0x00000000
    DEPCMDPAR1(13) = 0x00000000
    DEPCMDPAR1(14) = 0x00000000
    DEPCMDPAR1(15) = 0x00000000
    DEPCMDPAR1(16) = 0x00000000
    DEPCMDPAR1(17) = 0x00000000
    DEPCMDPAR1(18) = 0x00000000
    DEPCMDPAR1(19) = 0x00000000
    DEPCMDPAR1(20) = 0x00000000
    DEPCMDPAR1(21) = 0x00000000
    DEPCMDPAR1(22) = 0x00000000
    DEPCMDPAR1(23) = 0x00000000
    DEPCMDPAR1(24) = 0x00000000
    DEPCMDPAR1(25) = 0x00000000
    DEPCMDPAR1(26) = 0x00000000
    DEPCMDPAR1(27) = 0x00000000
    DEPCMDPAR1(28) = 0x00000000
    DEPCMDPAR1(29) = 0x00000000
    DEPCMDPAR1(30) = 0x00000000
    DEPCMDPAR1(31) = 0x00000000
    DEPCMDPAR0(0) = 0xb005b001
    DEPCMDPAR0(1) = 0x00000000
    DEPCMDPAR0(2) = 0x00000040
    DEPCMDPAR0(3) = 0x00000000
    DEPCMDPAR0(4) = 0xb005d000
    DEPCMDPAR0(5) = 0x00000000
    DEPCMDPAR0(6) = 0x00000000
    DEPCMDPAR0(7) = 0x00000000
    DEPCMDPAR0(8) = 0x00000000
    DEPCMDPAR0(9) = 0x00000000
    DEPCMDPAR0(10) = 0x00000000
    DEPCMDPAR0(11) = 0x00000000
    DEPCMDPAR0(12) = 0x00000000
    DEPCMDPAR0(13) = 0x00000000
    DEPCMDPAR0(14) = 0x00000000
    DEPCMDPAR0(15) = 0x00000000
    DEPCMDPAR0(16) = 0x00000000
    DEPCMDPAR0(17) = 0x00000000
    DEPCMDPAR0(18) = 0x00000000
    DEPCMDPAR0(19) = 0x00000000
    DEPCMDPAR0(20) = 0x00000000
    DEPCMDPAR0(21) = 0x00000000
    DEPCMDPAR0(22) = 0x00000000
    DEPCMDPAR0(23) = 0x00000000
    DEPCMDPAR0(24) = 0x00000000
    DEPCMDPAR0(25) = 0x00000000
    DEPCMDPAR0(26) = 0x00000000
    DEPCMDPAR0(27) = 0x00000000
    DEPCMDPAR0(28) = 0x00000000
    DEPCMDPAR0(29) = 0x00000000
    DEPCMDPAR0(30) = 0x00000000
    DEPCMDPAR0(31) = 0x00000000
    DEPCMD(0) = 0x00000000
    DEPCMD(1) = 0x00000000
    DEPCMD(2) = 0x00000000
    DEPCMD(3) = 0x00000000
    DEPCMD(4) = 0x00000000
    DEPCMD(5) = 0x00000000
    DEPCMD(6) = 0x00000000
    DEPCMD(7) = 0x00000000
    DEPCMD(8) = 0x00000000
    DEPCMD(9) = 0x00000000
    DEPCMD(10) = 0x00000000
    DEPCMD(11) = 0x00000000
    DEPCMD(12) = 0x00000000
    DEPCMD(13) = 0x00000000
    DEPCMD(14) = 0x00000000
    DEPCMD(15) = 0x00000000
    DEPCMD(16) = 0x00000000
    DEPCMD(17) = 0x00000000
    DEPCMD(18) = 0x00000000
    DEPCMD(19) = 0x00000000
    DEPCMD(20) = 0x00000000
    DEPCMD(21) = 0x00000000
    DEPCMD(22) = 0x00000000
    DEPCMD(23) = 0x00000000
    DEPCMD(24) = 0x00000000
    DEPCMD(25) = 0x00000000
    DEPCMD(26) = 0x00000000
    DEPCMD(27) = 0x00000000
    DEPCMD(28) = 0x00000000
    DEPCMD(29) = 0x00000000
    DEPCMD(30) = 0x00000000
    DEPCMD(31) = 0x00000000
    OCFG = 0x00000000
    OCTL = 0x00000040
    OEVT = 0x00000000
    OEVTEN = 0x00000000
    OSTS = 0x00000008
    root@dra7xx-evm:~# rmmod phy_tusb1210
    root@dra7xx-evm:~# modprobe phy_tub sb1210
    root@dra7xx-evm:~# cat /sys/kernel/debug/48910000.usb/regdump 
    GSBUSCFG0 = 0x0000000e
    GSBUSCFG1 = 0x00000f00
    GTXTHRCFG = 0x00000000
    GRXTHRCFG = 0x00000000
    GCTL = 0x25801000
    GEVTEN = 0x00000000
    GSTS = 0x3e800002
    GSNPSID = 0x5533202a
    GGPIO = 0x00000000
    GUID = 0x00040454
    GUCTL = 0x00008010
    GBUSERRADDR0 = 0x00000000
    GBUSERRADDR1 = 0x00000000
    GPRTBIMAP0 = 0x00000000
    GPRTBIMAP1 = 0x00000000
    GHWPARAMS0 = 0x202040ca
    GHWPARAMS1 = 0x01c0c93b
    GHWPARAMS2 = 0x00000000
    GHWPARAMS3 = 0x1042008d
    GHWPARAMS4 = 0x48822004
    GHWPARAMS5 = 0x04202088
    GHWPARAMS6 = 0x0b000c20
    GHWPARAMS7 = 0x03080780
    GDBGFIFOSPACE = 0x00820000
    GDBGLTSSM = 0x01514c42
    GPRTBIMAP_HS0 = 0x00000000
    GPRTBIMAP_HS1 = 0x00000000
    GPRTBIMAP_FS0 = 0x00000000
    GPRTBIMAP_FS1 = 0x00000000
    GUSB2PHYCFG(0) = 0x00002510
    GUSB2PHYCFG(1) = 0x00000000
    GUSB2PHYCFG(2) = 0x00000000
    GUSB2PHYCFG(3) = 0x00000000
    GUSB2PHYCFG(4) = 0x00000000
    GUSB2PHYCFG(5) = 0x00000000
    GUSB2PHYCFG(6) = 0x00000000
    GUSB2PHYCFG(7) = 0x00000000
    GUSB2PHYCFG(8) = 0x00000000
    GUSB2PHYCFG(9) = 0x00000000
    GUSB2PHYCFG(10) = 0x00000000
    GUSB2PHYCFG(11) = 0x00000000
    GUSB2PHYCFG(12) = 0x00000000
    GUSB2PHYCFG(13) = 0x00000000
    GUSB2PHYCFG(14) = 0x00000000
    GUSB2PHYCFG(15) = 0x00000000
    GUSB2I2CCTL(0) = 0x00000000
    GUSB2I2CCTL(1) = 0x00000000
    GUSB2I2CCTL(2) = 0x00000000
    GUSB2I2CCTL(3) = 0x00000000
    GUSB2I2CCTL(4) = 0x00000000
    GUSB2I2CCTL(5) = 0x00000000
    GUSB2I2CCTL(6) = 0x00000000
    GUSB2I2CCTL(7) = 0x00000000
    GUSB2I2CCTL(8) = 0x00000000
    GUSB2I2CCTL(9) = 0x00000000
    GUSB2I2CCTL(10) = 0x00000000
    GUSB2I2CCTL(11) = 0x00000000
    GUSB2I2CCTL(12) = 0x00000000
    GUSB2I2CCTL(13) = 0x00000000
    GUSB2I2CCTL(14) = 0x00000000
    GUSB2I2CCTL(15) = 0x00000000
    GUSB2PHYACC(0) = 0x00000000
    GUSB2PHYACC(1) = 0x00000000
    GUSB2PHYACC(2) = 0x00000000
    GUSB2PHYACC(3) = 0x00000000
    GUSB2PHYACC(4) = 0x00000000
    GUSB2PHYACC(5) = 0x00000000
    GUSB2PHYACC(6) = 0x00000000
    GUSB2PHYACC(7) = 0x00000000
    GUSB2PHYACC(8) = 0x00000000
    GUSB2PHYACC(9) = 0x00000000
    GUSB2PHYACC(10) = 0x00000000
    GUSB2PHYACC(11) = 0x00000000
    GUSB2PHYACC(12) = 0x00000000
    GUSB2PHYACC(13) = 0x00000000
    GUSB2PHYACC(14) = 0x00000000
    GUSB2PHYACC(15) = 0x00000000
    GUSB3PIPECTL(0) = 0x00040002
    GUSB3PIPECTL(1) = 0x00000000
    GUSB3PIPECTL(2) = 0x00000000
    GUSB3PIPECTL(3) = 0x00000000
    GUSB3PIPECTL(4) = 0x00000000
    GUSB3PIPECTL(5) = 0x00000000
    GUSB3PIPECTL(6) = 0x00000000
    GUSB3PIPECTL(7) = 0x00000000
    GUSB3PIPECTL(8) = 0x00000000
    GUSB3PIPECTL(9) = 0x00000000
    GUSB3PIPECTL(10) = 0x00000000
    GUSB3PIPECTL(11) = 0x00000000
    GUSB3PIPECTL(12) = 0x00000000
    GUSB3PIPECTL(13) = 0x00000000
    GUSB3PIPECTL(14) = 0x00000000
    GUSB3PIPECTL(15) = 0x00000000
    GTXFIFOSIZ(0) = 0x00000082
    GTXFIFOSIZ(1) = 0x00820103
    GTXFIFOSIZ(2) = 0x01850205
    GTXFIFOSIZ(3) = 0x038a0000
    GTXFIFOSIZ(4) = 0x038a0000
    GTXFIFOSIZ(5) = 0x038a0000
    GTXFIFOSIZ(6) = 0x038a0000
    GTXFIFOSIZ(7) = 0x038a0000
    GTXFIFOSIZ(8) = 0x038a0000
    GTXFIFOSIZ(9) = 0x038a0000
    GTXFIFOSIZ(10) = 0x038a0000
    GTXFIFOSIZ(11) = 0x038a0000
    GTXFIFOSIZ(12) = 0x038a0000
    GTXFIFOSIZ(13) = 0x038a0000
    GTXFIFOSIZ(14) = 0x038a0000
    GTXFIFOSIZ(15) = 0x038a0000
    GTXFIFOSIZ(16) = 0x00000000
    GTXFIFOSIZ(17) = 0x00000000
    GTXFIFOSIZ(18) = 0x00000000
    GTXFIFOSIZ(19) = 0x00000000
    GTXFIFOSIZ(20) = 0x00000000
    GTXFIFOSIZ(21) = 0x00000000
    GTXFIFOSIZ(22) = 0x00000000
    GTXFIFOSIZ(23) = 0x00000000
    GTXFIFOSIZ(24) = 0x00000000
    GTXFIFOSIZ(25) = 0x00000000
    GTXFIFOSIZ(26) = 0x00000000
    GTXFIFOSIZ(27) = 0x00000000
    GTXFIFOSIZ(28) = 0x00000000
    GTXFIFOSIZ(29) = 0x00000000
    GTXFIFOSIZ(30) = 0x00000000
    GTXFIFOSIZ(31) = 0x00000000
    GRXFIFOSIZ(0) = 0x071e0084
    GRXFIFOSIZ(1) = 0x07a20104
    GRXFIFOSIZ(2) = 0x08a60180
    GRXFIFOSIZ(3) = 0x00000000
    GRXFIFOSIZ(4) = 0x00000000
    GRXFIFOSIZ(5) = 0x00000000
    GRXFIFOSIZ(6) = 0x00000000
    GRXFIFOSIZ(7) = 0x00000000
    GRXFIFOSIZ(8) = 0x00000000
    GRXFIFOSIZ(9) = 0x00000000
    GRXFIFOSIZ(10) = 0x00000000
    GRXFIFOSIZ(11) = 0x00000000
    GRXFIFOSIZ(12) = 0x00000000
    GRXFIFOSIZ(13) = 0x00000000
    GRXFIFOSIZ(14) = 0x00000000
    GRXFIFOSIZ(15) = 0x00000000
    GRXFIFOSIZ(16) = 0x00000000
    GRXFIFOSIZ(17) = 0x00000000
    GRXFIFOSIZ(18) = 0x00000000
    GRXFIFOSIZ(19) = 0x00000000
    GRXFIFOSIZ(20) = 0x00000000
    GRXFIFOSIZ(21) = 0x00000000
    GRXFIFOSIZ(22) = 0x00000000
    GRXFIFOSIZ(23) = 0x00000000
    GRXFIFOSIZ(24) = 0x00000000
    GRXFIFOSIZ(25) = 0x00000000
    GRXFIFOSIZ(26) = 0x00000000
    GRXFIFOSIZ(27) = 0x00000000
    GRXFIFOSIZ(28) = 0x00000000
    GRXFIFOSIZ(29) = 0x00000000
    GRXFIFOSIZ(30) = 0x00000000
    GRXFIFOSIZ(31) = 0x00000000
    GEVNTADRLO(0) = 0x00000000
    GEVNTADRHI(0) = 0x00000000
    GEVNTSIZ(0) = 0x00000000
    GEVNTCOUNT(0) = 0x00000000
    GHWPARAMS8 = 0x0000071e
    DCFG = 0x00080800
    DCTL = 0x00000000
    DEVTEN = 0x00000000
    DSTS = 0x00d21cb9
    DGCMDPAR = 0x00000000
    DGCMD = 0x00000000
    DALEPENA = 0x00000000
    DEPCMDPAR2(0) = 0x00000000
    DEPCMDPAR2(1) = 0x00000000
    DEPCMDPAR2(2) = 0xb0050000
    DEPCMDPAR2(3) = 0x00000000
    DEPCMDPAR2(4) = 0xb0054000
    DEPCMDPAR2(5) = 0x00000000
    DEPCMDPAR2(6) = 0x00000000
    DEPCMDPAR2(7) = 0x00000000
    DEPCMDPAR2(8) = 0x00000000
    DEPCMDPAR2(9) = 0x00000000
    DEPCMDPAR2(10) = 0x00000000
    DEPCMDPAR2(11) = 0x00000000
    DEPCMDPAR2(12) = 0x00000000
    DEPCMDPAR2(13) = 0x00000000
    DEPCMDPAR2(14) = 0x00000000
    DEPCMDPAR2(15) = 0x00000000
    DEPCMDPAR2(16) = 0x00000000
    DEPCMDPAR2(17) = 0x00000000
    DEPCMDPAR2(18) = 0x00000000
    DEPCMDPAR2(19) = 0x00000000
    DEPCMDPAR2(20) = 0x00000000
    DEPCMDPAR2(21) = 0x00000000
    DEPCMDPAR2(22) = 0x00000000
    DEPCMDPAR2(23) = 0x00000000
    DEPCMDPAR2(24) = 0x00000000
    DEPCMDPAR2(25) = 0x00000000
    DEPCMDPAR2(26) = 0x00000000
    DEPCMDPAR2(27) = 0x00000000
    DEPCMDPAR2(28) = 0x00000000
    DEPCMDPAR2(29) = 0x00000000
    DEPCMDPAR2(30) = 0x00000000
    DEPCMDPAR2(31) = 0x00000000
    DEPCMDPAR1(0) = 0x00000002
    DEPCMDPAR1(1) = 0x00000000
    DEPCMDPAR1(2) = 0x00000000
    DEPCMDPAR1(3) = 0x00000000
    DEPCMDPAR1(4) = 0x00000000
    DEPCMDPAR1(5) = 0x00000000
    DEPCMDPAR1(6) = 0x00000000
    DEPCMDPAR1(7) = 0x00000000
    DEPCMDPAR1(8) = 0x00000000
    DEPCMDPAR1(9) = 0x00000000
    DEPCMDPAR1(10) = 0x00000000
    DEPCMDPAR1(11) = 0x00000000
    DEPCMDPAR1(12) = 0x00000000
    DEPCMDPAR1(13) = 0x00000000
    DEPCMDPAR1(14) = 0x00000000
    DEPCMDPAR1(15) = 0x00000000
    DEPCMDPAR1(16) = 0x00000000
    DEPCMDPAR1(17) = 0x00000000
    DEPCMDPAR1(18) = 0x00000000
    DEPCMDPAR1(19) = 0x00000000
    DEPCMDPAR1(20) = 0x00000000
    DEPCMDPAR1(21) = 0x00000000
    DEPCMDPAR1(22) = 0x00000000
    DEPCMDPAR1(23) = 0x00000000
    DEPCMDPAR1(24) = 0x00000000
    DEPCMDPAR1(25) = 0x00000000
    DEPCMDPAR1(26) = 0x00000000
    DEPCMDPAR1(27) = 0x00000000
    DEPCMDPAR1(28) = 0x00000000
    DEPCMDPAR1(29) = 0x00000000
    DEPCMDPAR1(30) = 0x00000000
    DEPCMDPAR1(31) = 0x00000000
    DEPCMDPAR0(0) = 0xb0051001
    DEPCMDPAR0(1) = 0x00000000
    DEPCMDPAR0(2) = 0x00000040
    DEPCMDPAR0(3) = 0x00000000
    DEPCMDPAR0(4) = 0xb0053000
    DEPCMDPAR0(5) = 0x00000000
    DEPCMDPAR0(6) = 0x00000000
    DEPCMDPAR0(7) = 0x00000000
    DEPCMDPAR0(8) = 0x00000000
    DEPCMDPAR0(9) = 0x00000000
    DEPCMDPAR0(10) = 0x00000000
    DEPCMDPAR0(11) = 0x00000000
    DEPCMDPAR0(12) = 0x00000000
    DEPCMDPAR0(13) = 0x00000000
    DEPCMDPAR0(14) = 0x00000000
    DEPCMDPAR0(15) = 0x00000000
    DEPCMDPAR0(16) = 0x00000000
    DEPCMDPAR0(17) = 0x00000000
    DEPCMDPAR0(18) = 0x00000000
    DEPCMDPAR0(19) = 0x00000000
    DEPCMDPAR0(20) = 0x00000000
    DEPCMDPAR0(21) = 0x00000000
    DEPCMDPAR0(22) = 0x00000000
    DEPCMDPAR0(23) = 0x00000000
    DEPCMDPAR0(24) = 0x00000000
    DEPCMDPAR0(25) = 0x00000000
    DEPCMDPAR0(26) = 0x00000000
    DEPCMDPAR0(27) = 0x00000000
    DEPCMDPAR0(28) = 0x00000000
    DEPCMDPAR0(29) = 0x00000000
    DEPCMDPAR0(30) = 0x00000000
    DEPCMDPAR0(31) = 0x00000000
    DEPCMD(0) = 0x00000000
    DEPCMD(1) = 0x00000000
    DEPCMD(2) = 0x00000000
    DEPCMD(3) = 0x00000000
    DEPCMD(4) = 0x00000000
    DEPCMD(5) = 0x00000000
    DEPCMD(6) = 0x00000000
    DEPCMD(7) = 0x00000000
    DEPCMD(8) = 0x00000000
    DEPCMD(9) = 0x00000000
    DEPCMD(10) = 0x00000000
    DEPCMD(11) = 0x00000000
    DEPCMD(12) = 0x00000000
    DEPCMD(13) = 0x00000000
    DEPCMD(14) = 0x00000000
    DEPCMD(15) = 0x00000000
    DEPCMD(16) = 0x00000000
    DEPCMD(17) = 0x00000000
    DEPCMD(18) = 0x00000000
    DEPCMD(19) = 0x00000000
    DEPCMD(20) = 0x00000000
    DEPCMD(21) = 0x00000000
    DEPCMD(22) = 0x00000000
    DEPCMD(23) = 0x00000000
    DEPCMD(24) = 0x00000000
    DEPCMD(25) = 0x00000000
    DEPCMD(26) = 0x00000000
    DEPCMD(27) = 0x00000000
    DEPCMD(28) = 0x00000000
    DEPCMD(29) = 0x00000000
    DEPCMD(30) = 0x00000000
    DEPCMD(31) = 0x00000000
    OCFG = 0x00000000
    OCTL = 0x00000040
    OEVT = 0x00000000
    OEVTEN = 0x00000000
    OSTS = 0x00000008
    root@dra7xx-evm:~# cat /sys/kernel/debug/48950000.usb/regdump 
    GSBUSCFG0 = 0x0000000e
    GSBUSCFG1 = 0x00000f00
    GTXTHRCFG = 0x00000000
    GRXTHRCFG = 0x00000000
    GCTL = 0x25801000
    GEVTEN = 0x00000000
    GSTS = 0x3e800002
    GSNPSID = 0x5533202a
    GGPIO = 0x00000000
    GUID = 0x00040454
    GUCTL = 0x00008010
    GBUSERRADDR0 = 0x00000000
    GBUSERRADDR1 = 0x00000000
    GPRTBIMAP0 = 0x00000000
    GPRTBIMAP1 = 0x00000000
    GHWPARAMS0 = 0x202040ca
    GHWPARAMS1 = 0x01c0c93b
    GHWPARAMS2 = 0x00000000
    GHWPARAMS3 = 0x1042008d
    GHWPARAMS4 = 0x48822004
    GHWPARAMS5 = 0x04202088
    GHWPARAMS6 = 0x0b000c20
    GHWPARAMS7 = 0x03080780
    GDBGFIFOSPACE = 0x00820000
    GDBGLTSSM = 0x01514c42
    GPRTBIMAP_HS0 = 0x00000000
    GPRTBIMAP_HS1 = 0x00000000
    GPRTBIMAP_FS0 = 0x00000000
    GPRTBIMAP_FS1 = 0x00000000
    GUSB2PHYCFG(0) = 0x00002510
    GUSB2PHYCFG(1) = 0x00000000
    GUSB2PHYCFG(2) = 0x00000000
    GUSB2PHYCFG(3) = 0x00000000
    GUSB2PHYCFG(4) = 0x00000000
    GUSB2PHYCFG(5) = 0x00000000
    GUSB2PHYCFG(6) = 0x00000000
    GUSB2PHYCFG(7) = 0x00000000
    GUSB2PHYCFG(8) = 0x00000000
    GUSB2PHYCFG(9) = 0x00000000
    GUSB2PHYCFG(10) = 0x00000000
    GUSB2PHYCFG(11) = 0x00000000
    GUSB2PHYCFG(12) = 0x00000000
    GUSB2PHYCFG(13) = 0x00000000
    GUSB2PHYCFG(14) = 0x00000000
    GUSB2PHYCFG(15) = 0x00000000
    GUSB2I2CCTL(0) = 0x00000000
    GUSB2I2CCTL(1) = 0x00000000
    GUSB2I2CCTL(2) = 0x00000000
    GUSB2I2CCTL(3) = 0x00000000
    GUSB2I2CCTL(4) = 0x00000000
    GUSB2I2CCTL(5) = 0x00000000
    GUSB2I2CCTL(6) = 0x00000000
    GUSB2I2CCTL(7) = 0x00000000
    GUSB2I2CCTL(8) = 0x00000000
    GUSB2I2CCTL(9) = 0x00000000
    GUSB2I2CCTL(10) = 0x00000000
    GUSB2I2CCTL(11) = 0x00000000
    GUSB2I2CCTL(12) = 0x00000000
    GUSB2I2CCTL(13) = 0x00000000
    GUSB2I2CCTL(14) = 0x00000000
    GUSB2I2CCTL(15) = 0x00000000
    GUSB2PHYACC(0) = 0x016f8000
    GUSB2PHYACC(1) = 0x00000000
    GUSB2PHYACC(2) = 0x00000000
    GUSB2PHYACC(3) = 0x00000000
    GUSB2PHYACC(4) = 0x00000000
    GUSB2PHYACC(5) = 0x00000000
    GUSB2PHYACC(6) = 0x00000000
    GUSB2PHYACC(7) = 0x00000000
    GUSB2PHYACC(8) = 0x00000000
    GUSB2PHYACC(9) = 0x00000000
    GUSB2PHYACC(10) = 0x00000000
    GUSB2PHYACC(11) = 0x00000000
    GUSB2PHYACC(12) = 0x00000000
    GUSB2PHYACC(13) = 0x00000000
    GUSB2PHYACC(14) = 0x00000000
    GUSB2PHYACC(15) = 0x00000000
    GUSB3PIPECTL(0) = 0x00040002
    GUSB3PIPECTL(1) = 0x00000000
    GUSB3PIPECTL(2) = 0x00000000
    GUSB3PIPECTL(3) = 0x00000000
    GUSB3PIPECTL(4) = 0x00000000
    GUSB3PIPECTL(5) = 0x00000000
    GUSB3PIPECTL(6) = 0x00000000
    GUSB3PIPECTL(7) = 0x00000000
    GUSB3PIPECTL(8) = 0x00000000
    GUSB3PIPECTL(9) = 0x00000000
    GUSB3PIPECTL(10) = 0x00000000
    GUSB3PIPECTL(11) = 0x00000000
    GUSB3PIPECTL(12) = 0x00000000
    GUSB3PIPECTL(13) = 0x00000000
    GUSB3PIPECTL(14) = 0x00000000
    GUSB3PIPECTL(15) = 0x00000000
    GTXFIFOSIZ(0) = 0x00000082
    GTXFIFOSIZ(1) = 0x00820103
    GTXFIFOSIZ(2) = 0x01850205
    GTXFIFOSIZ(3) = 0x038a0000
    GTXFIFOSIZ(4) = 0x038a0000
    GTXFIFOSIZ(5) = 0x038a0000
    GTXFIFOSIZ(6) = 0x038a0000
    GTXFIFOSIZ(7) = 0x038a0000
    GTXFIFOSIZ(8) = 0x038a0000
    GTXFIFOSIZ(9) = 0x038a0000
    GTXFIFOSIZ(10) = 0x038a0000
    GTXFIFOSIZ(11) = 0x038a0000
    GTXFIFOSIZ(12) = 0x038a0000
    GTXFIFOSIZ(13) = 0x038a0000
    GTXFIFOSIZ(14) = 0x038a0000
    GTXFIFOSIZ(15) = 0x038a0000
    GTXFIFOSIZ(16) = 0x00000000
    GTXFIFOSIZ(17) = 0x00000000
    GTXFIFOSIZ(18) = 0x00000000
    GTXFIFOSIZ(19) = 0x00000000
    GTXFIFOSIZ(20) = 0x00000000
    GTXFIFOSIZ(21) = 0x00000000
    GTXFIFOSIZ(22) = 0x00000000
    GTXFIFOSIZ(23) = 0x00000000
    GTXFIFOSIZ(24) = 0x00000000
    GTXFIFOSIZ(25) = 0x00000000
    GTXFIFOSIZ(26) = 0x00000000
    GTXFIFOSIZ(27) = 0x00000000
    GTXFIFOSIZ(28) = 0x00000000
    GTXFIFOSIZ(29) = 0x00000000
    GTXFIFOSIZ(30) = 0x00000000
    GTXFIFOSIZ(31) = 0x00000000
    GRXFIFOSIZ(0) = 0x071e0084
    GRXFIFOSIZ(1) = 0x07a20104
    GRXFIFOSIZ(2) = 0x08a60180
    GRXFIFOSIZ(3) = 0x00000000
    GRXFIFOSIZ(4) = 0x00000000
    GRXFIFOSIZ(5) = 0x00000000
    GRXFIFOSIZ(6) = 0x00000000
    GRXFIFOSIZ(7) = 0x00000000
    GRXFIFOSIZ(8) = 0x00000000
    GRXFIFOSIZ(9) = 0x00000000
    GRXFIFOSIZ(10) = 0x00000000
    GRXFIFOSIZ(11) = 0x00000000
    GRXFIFOSIZ(12) = 0x00000000
    GRXFIFOSIZ(13) = 0x00000000
    GRXFIFOSIZ(14) = 0x00000000
    GRXFIFOSIZ(15) = 0x00000000
    GRXFIFOSIZ(16) = 0x00000000
    GRXFIFOSIZ(17) = 0x00000000
    GRXFIFOSIZ(18) = 0x00000000
    GRXFIFOSIZ(19) = 0x00000000
    GRXFIFOSIZ(20) = 0x00000000
    GRXFIFOSIZ(21) = 0x00000000
    GRXFIFOSIZ(22) = 0x00000000
    GRXFIFOSIZ(23) = 0x00000000
    GRXFIFOSIZ(24) = 0x00000000
    GRXFIFOSIZ(25) = 0x00000000
    GRXFIFOSIZ(26) = 0x00000000
    GRXFIFOSIZ(27) = 0x00000000
    GRXFIFOSIZ(28) = 0x00000000
    GRXFIFOSIZ(29) = 0x00000000
    GRXFIFOSIZ(30) = 0x00000000
    GRXFIFOSIZ(31) = 0x00000000
    GEVNTADRLO(0) = 0x00000000
    GEVNTADRHI(0) = 0x00000000
    GEVNTSIZ(0) = 0x00000000
    GEVNTCOUNT(0) = 0x00000000
    GHWPARAMS8 = 0x0000071e
    DCFG = 0x00080800
    DCTL = 0x00000000
    DEVTEN = 0x00000000
    DSTS = 0x00d29c29
    DGCMDPAR = 0x00000000
    DGCMD = 0x00000000
    DALEPENA = 0x00000000
    DEPCMDPAR2(0) = 0x00000000
    DEPCMDPAR2(1) = 0x00000000
    DEPCMDPAR2(2) = 0xb0044000
    DEPCMDPAR2(3) = 0x00000000
    DEPCMDPAR2(4) = 0xb005e000
    DEPCMDPAR2(5) = 0x00000000
    DEPCMDPAR2(6) = 0x00000000
    DEPCMDPAR2(7) = 0x00000000
    DEPCMDPAR2(8) = 0x00000000
    DEPCMDPAR2(9) = 0x00000000
    DEPCMDPAR2(10) = 0x00000000
    DEPCMDPAR2(11) = 0x00000000
    DEPCMDPAR2(12) = 0x00000000
    DEPCMDPAR2(13) = 0x00000000
    DEPCMDPAR2(14) = 0x00000000
    DEPCMDPAR2(15) = 0x00000000
    DEPCMDPAR2(16) = 0x00000000
    DEPCMDPAR2(17) = 0x00000000
    DEPCMDPAR2(18) = 0x00000000
    DEPCMDPAR2(19) = 0x00000000
    DEPCMDPAR2(20) = 0x00000000
    DEPCMDPAR2(21) = 0x00000000
    DEPCMDPAR2(22) = 0x00000000
    DEPCMDPAR2(23) = 0x00000000
    DEPCMDPAR2(24) = 0x00000000
    DEPCMDPAR2(25) = 0x00000000
    DEPCMDPAR2(26) = 0x00000000
    DEPCMDPAR2(27) = 0x00000000
    DEPCMDPAR2(28) = 0x00000000
    DEPCMDPAR2(29) = 0x00000000
    DEPCMDPAR2(30) = 0x00000000
    DEPCMDPAR2(31) = 0x00000000
    DEPCMDPAR1(0) = 0x00000002
    DEPCMDPAR1(1) = 0x00000000
    DEPCMDPAR1(2) = 0x00000000
    DEPCMDPAR1(3) = 0x00000000
    DEPCMDPAR1(4) = 0x00000000
    DEPCMDPAR1(5) = 0x00000000
    DEPCMDPAR1(6) = 0x00000000
    DEPCMDPAR1(7) = 0x00000000
    DEPCMDPAR1(8) = 0x00000000
    DEPCMDPAR1(9) = 0x00000000
    DEPCMDPAR1(10) = 0x00000000
    DEPCMDPAR1(11) = 0x00000000
    DEPCMDPAR1(12) = 0x00000000
    DEPCMDPAR1(13) = 0x00000000
    DEPCMDPAR1(14) = 0x00000000
    DEPCMDPAR1(15) = 0x00000000
    DEPCMDPAR1(16) = 0x00000000
    DEPCMDPAR1(17) = 0x00000000
    DEPCMDPAR1(18) = 0x00000000
    DEPCMDPAR1(19) = 0x00000000
    DEPCMDPAR1(20) = 0x00000000
    DEPCMDPAR1(21) = 0x00000000
    DEPCMDPAR1(22) = 0x00000000
    DEPCMDPAR1(23) = 0x00000000
    DEPCMDPAR1(24) = 0x00000000
    DEPCMDPAR1(25) = 0x00000000
    DEPCMDPAR1(26) = 0x00000000
    DEPCMDPAR1(27) = 0x00000000
    DEPCMDPAR1(28) = 0x00000000
    DEPCMDPAR1(29) = 0x00000000
    DEPCMDPAR1(30) = 0x00000000
    DEPCMDPAR1(31) = 0x00000000
    DEPCMDPAR0(0) = 0xb005b001
    DEPCMDPAR0(1) = 0x00000000
    DEPCMDPAR0(2) = 0x00000040
    DEPCMDPAR0(3) = 0x00000000
    DEPCMDPAR0(4) = 0xb005d000
    DEPCMDPAR0(5) = 0x00000000
    DEPCMDPAR0(6) = 0x00000000
    DEPCMDPAR0(7) = 0x00000000
    DEPCMDPAR0(8) = 0x00000000
    DEPCMDPAR0(9) = 0x00000000
    DEPCMDPAR0(10) = 0x00000000
    DEPCMDPAR0(11) = 0x00000000
    DEPCMDPAR0(12) = 0x00000000
    DEPCMDPAR0(13) = 0x00000000
    DEPCMDPAR0(14) = 0x00000000
    DEPCMDPAR0(15) = 0x00000000
    DEPCMDPAR0(16) = 0x00000000
    DEPCMDPAR0(17) = 0x00000000
    DEPCMDPAR0(18) = 0x00000000
    DEPCMDPAR0(19) = 0x00000000
    DEPCMDPAR0(20) = 0x00000000
    DEPCMDPAR0(21) = 0x00000000
    DEPCMDPAR0(22) = 0x00000000
    DEPCMDPAR0(23) = 0x00000000
    DEPCMDPAR0(24) = 0x00000000
    DEPCMDPAR0(25) = 0x00000000
    DEPCMDPAR0(26) = 0x00000000
    DEPCMDPAR0(27) = 0x00000000
    DEPCMDPAR0(28) = 0x00000000
    DEPCMDPAR0(29) = 0x00000000
    DEPCMDPAR0(30) = 0x00000000
    DEPCMDPAR0(31) = 0x00000000
    DEPCMD(0) = 0x00000000
    DEPCMD(1) = 0x00000000
    DEPCMD(2) = 0x00000000
    DEPCMD(3) = 0x00000000
    DEPCMD(4) = 0x00000000
    DEPCMD(5) = 0x00000000
    DEPCMD(6) = 0x00000000
    DEPCMD(7) = 0x00000000
    DEPCMD(8) = 0x00000000
    DEPCMD(9) = 0x00000000
    DEPCMD(10) = 0x00000000
    DEPCMD(11) = 0x00000000
    DEPCMD(12) = 0x00000000
    DEPCMD(13) = 0x00000000
    DEPCMD(14) = 0x00000000
    DEPCMD(15) = 0x00000000
    DEPCMD(16) = 0x00000000
    DEPCMD(17) = 0x00000000
    DEPCMD(18) = 0x00000000
    DEPCMD(19) = 0x00000000
    DEPCMD(20) = 0x00000000
    DEPCMD(21) = 0x00000000
    DEPCMD(22) = 0x00000000
    DEPCMD(23) = 0x00000000
    DEPCMD(24) = 0x00000000
    DEPCMD(25) = 0x00000000
    DEPCMD(26) = 0x00000000
    DEPCMD(27) = 0x00000000
    DEPCMD(28) = 0x00000000
    DEPCMD(29) = 0x00000000
    DEPCMD(30) = 0x00000000
    DEPCMD(31) = 0x00000000
    OCFG = 0x00000000
    OCTL = 0x00000040
    OEVT = 0x00000000
    OEVTEN = 0x00000000
    OSTS = 0x00000008
    root@dra7xx-evm:~# 
    

  • Hi Padmesh,

    Comparing the reg dumps provided,  there is no difference on the USB instance 3.

    But there is one register that is different on USB instance 4, which is GUSB2PHYACC.

    We see value 0x00000000 before reinsert and 0x016f8000 after insert. Not sure if it has to do anything with the issue you are seeing, but suggest to check who is setting this in the code. 

  • Did you check the above? For now we are assuming you were able to resolve your issue. 

    If not, just post a reply below (or create a new thread if the thread has locked due to time-out).

  • Hi Praveen,

    We had updated our sdk for dra77xP, and now the ulpi comes up with this messages in the log,

    [  230.078349] tusb1210 48910000.usb.ulpi: GPIO lookup for consumer reset
    [  230.078365] tusb1210 48910000.usb.ulpi: using lookup tables for GPIO lookup
    [  230.078377] tusb1210 48910000.usb.ulpi: lookup for GPIO reset failed
    [  230.078394] tusb1210 48910000.usb.ulpi: GPIO lookup for consumer cs
    [  230.078409] tusb1210 48910000.usb.ulpi: using lookup tables for GPIO lookup
    [  230.078422] tusb1210 48910000.usb.ulpi: lookup for GPIO cs failed
    [  230.079939] tusb1210 48950000.usb.ulpi: GPIO lookup for consumer reset
    [  230.079948] tusb1210 48950000.usb.ulpi: using lookup tables for GPIO lookup
    [  230.079957] tusb1210 48950000.usb.ulpi: lookup for GPIO reset failed
    [  230.079966] tusb1210 48950000.usb.ulpi: GPIO lookup for consumer cs
    [  230.079974] tusb1210 48950000.usb.ulpi: using lookup tables for GPIO lookup
    [  230.079981] tusb1210 48950000.usb.ulpi: lookup for GPIO cs failed
    
    Previously we were able to up at least one ulpi interface on reinserting phy_tusb1210 kernel module, in this new filesystem we get the above message on reinserting the module.

    Regards,
    Padmesh
  • This is the complete log we get now,

    logOld.txt

    The changes made in device tree dra76-evm.dts are,

    &omap_dwc3_3 {
    	status = "okay";
    	snps,dis_u3_susphy_quirk;
    	snps,dis_u2_susphy_quirk;
    };
    
    &usb3 {
    	dr_mode = "host";
    	snps,hsphy_interface = "ulpi";
    	status = "okay";
    	cs-gpios = <&gpio5 16 GPIO_ACTIVE_HIGH>;
    	tx-fifo-resize;
    	ulpi{
    		phy {
    			compatible = "ti,tusb1210";
    		};
    	};
    };
    
    &omap_dwc3_4 {
    	status = "okay";
    	snps,dis_u3_susphy_quirk;
    	snps,dis_u2_susphy_quirk;
    };
    
    &usb4 {
    	dr_mode = "host";
    	snps,hsphy_interface = "ulpi";
    	status = "okay";
    	cs-gpios = <&gpio5 17 GPIO_ACTIVE_HIGH>;
    	snps,dis_u3_susphy_quirk;
    	snps,dis_u2_susphy_quirk;
    	tx-fifo-resize;
    	ulpi{
    		phy {
    			compatible = "ti,tusb1210";
    		};
    	};	
    };
    
    

    The current driver we got with the new board-support package is

    3225.phy-tusb1210.c
    /**
     * tusb1210.c - TUSB1210 USB ULPI PHY driver
     *
     * Copyright (C) 2015 Intel Corporation
     *
     * Author: Heikki Krogerus <heikki.krogerus@linux.intel.com>
     *
     * This program is free software; you can redistribute it and/or modify
     * it under the terms of the GNU General Public License version 2 as
     * published by the Free Software Foundation.
     */
    #include <linux/module.h>
    #include <linux/ulpi/driver.h>
    #include <linux/ulpi/regs.h>
    #include <linux/gpio/consumer.h>
    #include <linux/phy/ulpi_phy.h>
    
    #define TUSB1210_VENDOR_SPECIFIC2		0x80
    #define TUSB1210_VENDOR_SPECIFIC2_IHSTX_SHIFT	0
    #define TUSB1210_VENDOR_SPECIFIC2_ZHSDRV_SHIFT	4
    #define TUSB1210_VENDOR_SPECIFIC2_DP_SHIFT	6
    
    struct tusb1210 {
    	struct ulpi *ulpi;
    	struct phy *phy;
    	struct gpio_desc *gpio_reset;
    	struct gpio_desc *gpio_cs;
    	u8 vendor_specific2;
    };
    
    static int tusb1210_power_on(struct phy *phy)
    {
    	struct tusb1210 *tusb = phy_get_drvdata(phy);
    
    	gpiod_set_value_cansleep(tusb->gpio_reset, 1);
    	gpiod_set_value_cansleep(tusb->gpio_cs, 1);
    
    	/* Restore the optional eye diagram optimization value */
    	if (tusb->vendor_specific2)
    		ulpi_write(tusb->ulpi, TUSB1210_VENDOR_SPECIFIC2,
    			   tusb->vendor_specific2);
    
    	return 0;
    }
    
    static int tusb1210_power_off(struct phy *phy)
    {
    	struct tusb1210 *tusb = phy_get_drvdata(phy);
    
    	gpiod_set_value_cansleep(tusb->gpio_reset, 0);
    	gpiod_set_value_cansleep(tusb->gpio_cs, 0);
    
    	return 0;
    }
    
    static int tusb1210_set_mode(struct phy *phy, enum phy_mode mode)
    {
    	struct tusb1210 *tusb = phy_get_drvdata(phy);
    	int ret;
    
    	ret = ulpi_read(tusb->ulpi, ULPI_OTG_CTRL);
    	if (ret < 0)
    		return ret;
    
    	switch (mode) {
    	case PHY_MODE_USB_HOST:
    		ret |= (ULPI_OTG_CTRL_DRVVBUS_EXT
    			| ULPI_OTG_CTRL_ID_PULLUP
    			| ULPI_OTG_CTRL_DP_PULLDOWN
    			| ULPI_OTG_CTRL_DM_PULLDOWN);
    		ulpi_write(tusb->ulpi, ULPI_OTG_CTRL, ret);
    		ret |= ULPI_OTG_CTRL_DRVVBUS;
    		break;
    	case PHY_MODE_USB_DEVICE:
    		ret &= ~(ULPI_OTG_CTRL_DRVVBUS
    			 | ULPI_OTG_CTRL_DP_PULLDOWN
    			 | ULPI_OTG_CTRL_DM_PULLDOWN);
    		ulpi_write(tusb->ulpi, ULPI_OTG_CTRL, ret);
    		ret &= ~ULPI_OTG_CTRL_DRVVBUS_EXT;
    		break;
    	default:
    		/* nothing */
    		return 0;
    	}
    
    	return ulpi_write(tusb->ulpi, ULPI_OTG_CTRL, ret);
    }
    
    static const struct phy_ops phy_ops = {
    	.power_on = tusb1210_power_on,
    	.power_off = tusb1210_power_off,
    	.set_mode = tusb1210_set_mode,
    	.owner = THIS_MODULE,
    };
    
    static int tusb1210_probe(struct ulpi *ulpi)
    {
    	struct tusb1210 *tusb;
    	u8 val, reg;
    
    	tusb = devm_kzalloc(&ulpi->dev, sizeof(*tusb), GFP_KERNEL);
    	if (!tusb)
    		return -ENOMEM;
    
    	tusb->gpio_reset = devm_gpiod_get_optional(&ulpi->dev, "reset",
    						   GPIOD_OUT_LOW);
    	if (IS_ERR(tusb->gpio_reset))
    		return PTR_ERR(tusb->gpio_reset);
    
    	gpiod_set_value_cansleep(tusb->gpio_reset, 1);
    
    	tusb->gpio_cs = devm_gpiod_get_optional(&ulpi->dev, "cs",
    						GPIOD_OUT_LOW);
    	if (IS_ERR(tusb->gpio_cs))
    		return PTR_ERR(tusb->gpio_cs);
    
    	gpiod_set_value_cansleep(tusb->gpio_cs, 1);
    
    	/*
    	 * VENDOR_SPECIFIC2 register in TUSB1210 can be used for configuring eye
    	 * diagram optimization and DP/DM swap.
    	 */
    
    	/* High speed output drive strength configuration */
    	device_property_read_u8(&ulpi->dev, "ihstx", &val);
    	reg = val << TUSB1210_VENDOR_SPECIFIC2_IHSTX_SHIFT;
    
    	/* High speed output impedance configuration */
    	device_property_read_u8(&ulpi->dev, "zhsdrv", &val);
    	reg |= val << TUSB1210_VENDOR_SPECIFIC2_ZHSDRV_SHIFT;
    
    	/* DP/DM swap control */
    	device_property_read_u8(&ulpi->dev, "datapolarity", &val);
    	reg |= val << TUSB1210_VENDOR_SPECIFIC2_DP_SHIFT;
    
    	if (reg) {
    		ulpi_write(ulpi, TUSB1210_VENDOR_SPECIFIC2, reg);
    		tusb->vendor_specific2 = reg;
    	}
    
    	tusb->phy = ulpi_phy_create(ulpi, &phy_ops);
    	if (IS_ERR(tusb->phy))
    		return PTR_ERR(tusb->phy);
    
    	tusb->ulpi = ulpi;
    
    	phy_set_drvdata(tusb->phy, tusb);
    	ulpi_set_drvdata(ulpi, tusb);
    	return 0;
    }
    
    static void tusb1210_remove(struct ulpi *ulpi)
    {
    	struct tusb1210 *tusb = ulpi_get_drvdata(ulpi);
    
    	ulpi_phy_destroy(ulpi, tusb->phy);
    }
    
    #define TI_VENDOR_ID 0x0451
    
    static const struct ulpi_device_id tusb1210_ulpi_id[] = {
    	{ TI_VENDOR_ID, 0x1507, },  /* TUSB1210 */
    	{ TI_VENDOR_ID, 0x1508, },  /* TUSB1211 */
    	{ },
    };
    MODULE_DEVICE_TABLE(ulpi, tusb1210_ulpi_id);
    
    static struct ulpi_driver tusb1210_driver = {
    	.id_table = tusb1210_ulpi_id,
    	.probe = tusb1210_probe,
    	.remove = tusb1210_remove,
    	.driver = {
    		.name = "tusb1210",
    		.owner = THIS_MODULE,
    	},
    };
    
    module_ulpi_driver(tusb1210_driver);
    
    MODULE_AUTHOR("Intel Corporation");
    MODULE_LICENSE("GPL v2");
    MODULE_DESCRIPTION("TUSB1210 ULPI PHY driver");
    

    We have ported to kernel version 4.14 ? Now power is not received at ulpi ports.

  • >We had updated our sdk for dra77xP, and now the ulpi comes up with this messages in the log

    Padmesh, Can you tell what SDK release was updated? (please let us know the old and new SDk version). Are you sure you ported your custom updates correctly? We cannot help must here.

    Looking at the log, I suggest you to check the tusub1210 phy driver code to see what has changed causing this issue.

    -Praveen

  • Hi Praveen,

    We are using processor sdk linux automotive v5_00_00_01.

    The function set_mode() in phy_tusb1210.c should be the one enabling the ulpi. I suspect the usage of device tree .

    Regards,

    Padmesh

  • Padmesh,

    >I suspect the usage of device tree .

    For the usage, we suggest you to check the documentation  (path: /Documentation/devicetree/bindings/usb/dwc3.txt)

    As mentioned earlier, we would be unable to provide support on this issue as external PHY with DWC USB instance  is not a tested feature with the processor sdk linux automotive v5_00_00_01 as this setup is not available on TI EVM.

    regards,

    Praveen