diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2019-05-08 13:03:52 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-05-08 13:03:52 -0400 |
commit | 132d68d37d33f1d0b9c1f507c8b4d64c27ecec8a (patch) | |
tree | b3c05972e5579e1574873fe745fb1358c62a269c /drivers/usb/dwc2/platform.c | |
parent | 80f232121b69cc69a31ccb2b38c1665d770b0710 (diff) | |
parent | 3515468a87a47781f6af818773650513ff14656a (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.c | 20 |
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) { |