summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/usb/cdns3/core.c53
-rw-r--r--drivers/usb/cdns3/drd.c11
2 files changed, 0 insertions, 64 deletions
diff --git a/drivers/usb/cdns3/core.c b/drivers/usb/cdns3/core.c
index 10bc4cabed4..4434dc15bec 100644
--- a/drivers/usb/cdns3/core.c
+++ b/drivers/usb/cdns3/core.c
@@ -392,52 +392,6 @@ static const struct udevice_id cdns3_ids[] = {
{ },
};
-/*
- * The VBUS Valid Bit in the OTG Status register can be used to determine
- * the role. When VBUS Valid is set, it indicates that a USB Host is supplying
- * power, so the Controller should assume the PERIPHERAL role. If it isn't set,
- * it indicates the absence of a USB Host, so the Controller should assume the
- * HOST role. If the OTG Status register is inaccessible, return an error.
- */
-static int cdns3_get_otg_mode(struct udevice *parent, enum usb_dr_mode *mode)
-{
- /* Create a temporary child device for using devfdt_remap_addr_name() */
- struct udevice child = {
- .parent = parent,
- };
- struct cdns3 cdns, *cdnsp;
- void __iomem *otg_regs;
-
- dev_set_ofnode(&child, ofnode_first_subnode(dev_ofnode(parent)));
- otg_regs = devfdt_remap_addr_name(&child, "otg");
- if (!otg_regs) {
- dev_err(parent, "failed to get otg registers for child node\n");
- return -ENXIO;
- }
-
- /*
- * As mentioned in drivers/usb/cdns3/drd.c, there are two versions
- * of the Controller. The following logic detects the version of the
- * Controller and interprets the register layout accordingly.
- */
- cdnsp = &cdns;
- cdnsp->otg_v0_regs = otg_regs;
- if (!readl(&cdnsp->otg_v0_regs->cmd)) {
- cdnsp->otg_regs = otg_regs;
- } else {
- cdnsp->otg_v1_regs = otg_regs;
- cdnsp->otg_regs = (void *)&cdnsp->otg_v1_regs->cmd;
- }
-
- /* Use VBUS Valid to determine role */
- if (readl(&cdnsp->otg_regs->sts) & OTGSTS_VBUS_VALID)
- *mode = USB_DR_MODE_PERIPHERAL;
- else
- *mode = USB_DR_MODE_HOST;
-
- return 0;
-}
-
int cdns3_bind(struct udevice *parent)
{
enum usb_dr_mode dr_mode;
@@ -459,13 +413,6 @@ int cdns3_bind(struct udevice *parent)
if (dr_mode == USB_DR_MODE_UNKNOWN)
dr_mode = usb_get_dr_mode(dev_ofnode(parent));
- /* Use VBUS Valid to determine role */
- if (dr_mode == USB_DR_MODE_OTG) {
- ret = cdns3_get_otg_mode(parent, &dr_mode);
- if (ret < 0)
- return ret;
- }
-
switch (dr_mode) {
#if defined(CONFIG_SPL_USB_HOST) || \
(!defined(CONFIG_XPL_BUILD) && defined(CONFIG_USB_HOST))
diff --git a/drivers/usb/cdns3/drd.c b/drivers/usb/cdns3/drd.c
index 0ca40a5cc8d..cbb13342343 100644
--- a/drivers/usb/cdns3/drd.c
+++ b/drivers/usb/cdns3/drd.c
@@ -301,17 +301,6 @@ int cdns3_drd_init(struct cdns3 *cdns)
cdns->dr_mode = USB_DR_MODE_PERIPHERAL;
}
- /*
- * In the absence of STRAP configuration, use VBUS Valid to
- * determine the appropriate role to be assigned to dr_mode.
- */
- if (cdns->dr_mode == USB_DR_MODE_OTG) {
- if (cdns3_get_vbus(cdns))
- cdns->dr_mode = USB_DR_MODE_PERIPHERAL;
- else
- cdns->dr_mode = USB_DR_MODE_HOST;
- }
-
state = readl(&cdns->otg_regs->sts);
if (OTGSTS_OTG_NRDY(state) != 0) {
dev_err(cdns->dev, "Cadence USB3 OTG device not ready\n");