aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/dwc2/platform.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2019-05-08 13:03:52 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2019-05-08 13:03:52 -0400
commit132d68d37d33f1d0b9c1f507c8b4d64c27ecec8a (patch)
treeb3c05972e5579e1574873fe745fb1358c62a269c /drivers/usb/dwc2/platform.c
parent80f232121b69cc69a31ccb2b38c1665d770b0710 (diff)
parent3515468a87a47781f6af818773650513ff14656a (diff)
Merge tag 'usb-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
Pull USB/PHY updates from Greg KH: "Here is the big set of USB and PHY driver patches for 5.2-rc1 There is the usual set of: - USB gadget updates - PHY driver updates and additions - USB serial driver updates and fixes - typec updates and new chips supported - mtu3 driver updates - xhci driver updates - other tiny driver updates Nothing really interesting, just constant forward progress. All of these have been in linux-next for a while with no reported issues. The usb-gadget and usb-serial trees were merged a bit "late", but both of them had been in linux-next before they got merged here last Friday" * tag 'usb-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (206 commits) USB: serial: f81232: implement break control USB: serial: f81232: add high baud rate support USB: serial: f81232: clear overrun flag USB: serial: f81232: fix interrupt worker not stop usb: dwc3: Rename DWC3_DCTL_LPM_ERRATA usb: dwc3: Fix default lpm_nyet_threshold value usb: dwc3: debug: Print GET_STATUS(device) tracepoint usb: dwc3: Do core validation early on probe usb: dwc3: gadget: Set lpm_capable usb: gadget: atmel: tie wake lock to running clock usb: gadget: atmel: support USB suspend usb: gadget: atmel_usba_udc: simplify setting of interrupt-enabled mask dwc2: gadget: Fix completed transfer size calculation in DDMA usb: dwc2: Set lpm mode parameters depend on HW configuration usb: dwc2: Fix channel disable flow usb: dwc2: Set actual frame number for completed ISOC transfer usb: gadget: do not use __constant_cpu_to_le16 usb: dwc2: gadget: Increase descriptors count for ISOC's usb: introduce usb_ep_type_string() function usb: dwc3: move synchronize_irq() out of the spinlock protected block ...
Diffstat (limited to 'drivers/usb/dwc2/platform.c')
-rw-r--r--drivers/usb/dwc2/platform.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/drivers/usb/dwc2/platform.c b/drivers/usb/dwc2/platform.c
index c0b64d483552..d10a7f8daec3 100644
--- a/drivers/usb/dwc2/platform.c
+++ b/drivers/usb/dwc2/platform.c
@@ -230,9 +230,6 @@ static int dwc2_lowlevel_hw_init(struct dwc2_hsotg *hsotg)
230 230
231 reset_control_deassert(hsotg->reset_ecc); 231 reset_control_deassert(hsotg->reset_ecc);
232 232
233 /* Set default UTMI width */
234 hsotg->phyif = GUSBCFG_PHYIF16;
235
236 /* 233 /*
237 * Attempt to find a generic PHY, then look for an old style 234 * Attempt to find a generic PHY, then look for an old style
238 * USB PHY and then fall back to pdata 235 * USB PHY and then fall back to pdata
@@ -280,14 +277,14 @@ static int dwc2_lowlevel_hw_init(struct dwc2_hsotg *hsotg)
280 * width is 8-bit and set the phyif appropriately. 277 * width is 8-bit and set the phyif appropriately.
281 */ 278 */
282 if (phy_get_bus_width(hsotg->phy) == 8) 279 if (phy_get_bus_width(hsotg->phy) == 8)
283 hsotg->phyif = GUSBCFG_PHYIF8; 280 hsotg->params.phy_utmi_width = 8;
284 } 281 }
285 282
286 /* Clock */ 283 /* Clock */
287 hsotg->clk = devm_clk_get(hsotg->dev, "otg"); 284 hsotg->clk = devm_clk_get_optional(hsotg->dev, "otg");
288 if (IS_ERR(hsotg->clk)) { 285 if (IS_ERR(hsotg->clk)) {
289 hsotg->clk = NULL; 286 dev_err(hsotg->dev, "cannot get otg clock\n");
290 dev_dbg(hsotg->dev, "cannot get otg clock\n"); 287 return PTR_ERR(hsotg->clk);
291 } 288 }
292 289
293 /* Regulators */ 290 /* Regulators */
@@ -481,6 +478,15 @@ static int dwc2_driver_probe(struct platform_device *dev)
481 hsotg->gadget_enabled = 1; 478 hsotg->gadget_enabled = 1;
482 } 479 }
483 480
481 hsotg->reset_phy_on_wake =
482 of_property_read_bool(dev->dev.of_node,
483 "snps,reset-phy-on-wake");
484 if (hsotg->reset_phy_on_wake && !hsotg->phy) {
485 dev_warn(hsotg->dev,
486 "Quirk reset-phy-on-wake only supports generic PHYs\n");
487 hsotg->reset_phy_on_wake = false;
488 }
489
484 if (hsotg->dr_mode != USB_DR_MODE_PERIPHERAL) { 490 if (hsotg->dr_mode != USB_DR_MODE_PERIPHERAL) {
485 retval = dwc2_hcd_init(hsotg); 491 retval = dwc2_hcd_init(hsotg);
486 if (retval) { 492 if (retval) {