Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d2f0cf89 authored by George Cherian's avatar George Cherian Committed by Felipe Balbi
Browse files

usb: dwc3: omap: add dwc3_omap_set_utmi_mode() function



Move find and set the utmi mode to its own separate function.
Improve code readability, decrease the dwc3_probe() size.

Signed-off-by: default avatarGeorge Cherian <george.cherian@ti.com>
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
parent 30fef1a9
Loading
Loading
Loading
Loading
+25 −19
Original line number Original line Diff line number Diff line
@@ -399,6 +399,30 @@ static void dwc3_omap_map_offset(struct dwc3_omap *omap)
	}
	}
}
}


static void dwc3_omap_set_utmi_mode(struct dwc3_omap *omap)
{
	u32			reg;
	struct device_node	*node = omap->dev->of_node;
	int			utmi_mode = 0;

	reg = dwc3_omap_read_utmi_status(omap);

	of_property_read_u32(node, "utmi-mode", &utmi_mode);

	switch (utmi_mode) {
	case DWC3_OMAP_UTMI_MODE_SW:
		reg |= USBOTGSS_UTMI_OTG_STATUS_SW_MODE;
		break;
	case DWC3_OMAP_UTMI_MODE_HW:
		reg &= ~USBOTGSS_UTMI_OTG_STATUS_SW_MODE;
		break;
	default:
		dev_dbg(omap->dev, "UNKNOWN utmi mode %d\n", utmi_mode);
	}

	dwc3_omap_write_utmi_status(omap, reg);
}

static int dwc3_omap_probe(struct platform_device *pdev)
static int dwc3_omap_probe(struct platform_device *pdev)
{
{
	struct device_node	*node = pdev->dev.of_node;
	struct device_node	*node = pdev->dev.of_node;
@@ -412,8 +436,6 @@ static int dwc3_omap_probe(struct platform_device *pdev)
	int			ret;
	int			ret;
	int			irq;
	int			irq;


	int			utmi_mode = 0;

	u32			reg;
	u32			reg;


	void __iomem		*base;
	void __iomem		*base;
@@ -464,23 +486,7 @@ static int dwc3_omap_probe(struct platform_device *pdev)
	}
	}


	dwc3_omap_map_offset(omap);
	dwc3_omap_map_offset(omap);

	dwc3_omap_set_utmi_mode(omap);
	reg = dwc3_omap_read_utmi_status(omap);

	of_property_read_u32(node, "utmi-mode", &utmi_mode);

	switch (utmi_mode) {
	case DWC3_OMAP_UTMI_MODE_SW:
		reg |= USBOTGSS_UTMI_OTG_STATUS_SW_MODE;
		break;
	case DWC3_OMAP_UTMI_MODE_HW:
		reg &= ~USBOTGSS_UTMI_OTG_STATUS_SW_MODE;
		break;
	default:
		dev_dbg(dev, "UNKNOWN utmi mode %d\n", utmi_mode);
	}

	dwc3_omap_write_utmi_status(omap, reg);


	/* check the DMA Status */
	/* check the DMA Status */
	reg = dwc3_omap_readl(omap->base, USBOTGSS_SYSCONFIG);
	reg = dwc3_omap_readl(omap->base, USBOTGSS_SYSCONFIG);