.. | .. |
---|
1 | 1 | // SPDX-License-Identifier: GPL-2.0 |
---|
2 | | -/** |
---|
| 2 | +/* |
---|
3 | 3 | * dwc3-omap.c - OMAP Specific Glue layer |
---|
4 | 4 | * |
---|
5 | | - * Copyright (C) 2010-2011 Texas Instruments Incorporated - http://www.ti.com |
---|
| 5 | + * Copyright (C) 2010-2011 Texas Instruments Incorporated - https://www.ti.com |
---|
6 | 6 | * |
---|
7 | 7 | * Authors: Felipe Balbi <balbi@ti.com>, |
---|
8 | 8 | * Sebastian Andrzej Siewior <bigeasy@linutronix.de> |
---|
.. | .. |
---|
14 | 14 | #include <linux/irq.h> |
---|
15 | 15 | #include <linux/interrupt.h> |
---|
16 | 16 | #include <linux/platform_device.h> |
---|
17 | | -#include <linux/platform_data/dwc3-omap.h> |
---|
18 | 17 | #include <linux/pm_runtime.h> |
---|
19 | 18 | #include <linux/dma-mapping.h> |
---|
20 | 19 | #include <linux/ioport.h> |
---|
.. | .. |
---|
105 | 104 | #define USBOTGSS_UTMI_OTG_CTRL_SESSEND BIT(3) |
---|
106 | 105 | #define USBOTGSS_UTMI_OTG_CTRL_SESSVALID BIT(2) |
---|
107 | 106 | #define USBOTGSS_UTMI_OTG_CTRL_VBUSVALID BIT(1) |
---|
| 107 | + |
---|
| 108 | +enum dwc3_omap_utmi_mode { |
---|
| 109 | + DWC3_OMAP_UTMI_MODE_UNKNOWN = 0, |
---|
| 110 | + DWC3_OMAP_UTMI_MODE_HW, |
---|
| 111 | + DWC3_OMAP_UTMI_MODE_SW, |
---|
| 112 | +}; |
---|
108 | 113 | |
---|
109 | 114 | struct dwc3_omap { |
---|
110 | 115 | struct device *dev; |
---|
.. | .. |
---|
237 | 242 | break; |
---|
238 | 243 | |
---|
239 | 244 | case OMAP_DWC3_ID_FLOAT: |
---|
240 | | - if (omap->vbus_reg) |
---|
| 245 | + if (omap->vbus_reg && regulator_is_enabled(omap->vbus_reg)) |
---|
241 | 246 | regulator_disable(omap->vbus_reg); |
---|
242 | 247 | val = dwc3_omap_read_utmi_ctrl(omap); |
---|
243 | 248 | val |= USBOTGSS_UTMI_OTG_CTRL_IDDIG; |
---|
.. | .. |
---|
451 | 456 | struct device_node *node = pdev->dev.of_node; |
---|
452 | 457 | |
---|
453 | 458 | struct dwc3_omap *omap; |
---|
454 | | - struct resource *res; |
---|
455 | 459 | struct device *dev = &pdev->dev; |
---|
456 | 460 | struct regulator *vbus_reg = NULL; |
---|
457 | 461 | |
---|
458 | 462 | int ret; |
---|
459 | 463 | int irq; |
---|
460 | | - |
---|
461 | | - u32 reg; |
---|
462 | 464 | |
---|
463 | 465 | void __iomem *base; |
---|
464 | 466 | |
---|
.. | .. |
---|
474 | 476 | platform_set_drvdata(pdev, omap); |
---|
475 | 477 | |
---|
476 | 478 | irq = platform_get_irq(pdev, 0); |
---|
477 | | - if (irq < 0) { |
---|
478 | | - dev_err(dev, "missing IRQ resource: %d\n", irq); |
---|
| 479 | + if (irq < 0) |
---|
479 | 480 | return irq; |
---|
480 | | - } |
---|
481 | 481 | |
---|
482 | | - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
---|
483 | | - base = devm_ioremap_resource(dev, res); |
---|
| 482 | + base = devm_platform_ioremap_resource(pdev, 0); |
---|
484 | 483 | if (IS_ERR(base)) |
---|
485 | 484 | return PTR_ERR(base); |
---|
486 | 485 | |
---|
.. | .. |
---|
506 | 505 | |
---|
507 | 506 | dwc3_omap_map_offset(omap); |
---|
508 | 507 | dwc3_omap_set_utmi_mode(omap); |
---|
509 | | - |
---|
510 | | - /* check the DMA Status */ |
---|
511 | | - reg = dwc3_omap_readl(omap->base, USBOTGSS_SYSCONFIG); |
---|
512 | 508 | |
---|
513 | 509 | ret = dwc3_omap_extcon_register(omap); |
---|
514 | 510 | if (ret < 0) |
---|