linux/Documentation/devicetree/bindings/usb
Masahiro Yamada fe8abf332b usb: dwc3: support clocks and resets for DWC3 core
Historically, the clocks and resets are handled on the glue layer
side instead of the DWC3 core.  For simple cases, dwc3-of-simple.c
takes care of arbitrary number of clocks and resets.  The DT node
structure typically looks like as follows:

  dwc3-glue {
          compatible = "foo,dwc3";
          clocks = ...;
          resets = ...;
          ...

          dwc3 {
                  compatible = "snps,dwc3";
                  ...
          };
  }

By supporting the clocks and the reset in the dwc3/core.c, it will
be turned into a single node:

  dwc3 {
          compatible = "foo,dwc3", "snps,dwc3";
          clocks = ...;
          resets = ...;
          ...
  }

This commit adds the binding of clocks and resets specific to this IP.
The number of clocks should generally be the same across SoCs, it is
just some SoCs either tie clocks together or do not provide software
control of some of the clocks.

I took the clock names from the Synopsys datasheet: "ref" (ref_clk),
"bus_early" (bus_clk_early), and "suspend" (suspend_clk).

I found only one reset line in the datasheet, hence the reset-names
property is omitted.

Those clocks are required for new platforms.  Enforcing the new
binding breaks existing platforms since they specify clocks (and
resets) in their glue layer node, but nothing in the core node.
I listed such exceptional cases in the DT binding.  The driver
code has been relaxed to accept no clock.  This change is based
on the discussion [1].

I inserted reset_control_deassert() and clk_bulk_enable() before the
first register access, i.e. dwc3_cache_hwparams().

[1] https://patchwork.kernel.org/patch/10284265/

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
2018-05-16 08:52:39 +03:00
..
allwinner,sun4i-a10-musb.txt dt-bindings: Remove leading zeros from bindings notation 2017-11-09 17:05:05 -06:00
am33xx-usb.txt Merge branch 'dts-fixes' into omap-for-v4.15/fixes-dt 2017-11-28 08:12:32 -08:00
amlogic,dwc3.txt dt-bindings: usb: add support for dwc3 controller on Amlogic Meson GX 2018-03-13 10:47:50 +02:00
atmel-usb.txt dt-bindings: Remove leading zeros from bindings notation 2017-11-09 17:05:05 -06:00
brcm,bcm3384-usb.txt dt-bindings: brcm: rationalize Broadcom documentation naming 2015-03-26 12:14:11 -05:00
brcm,bdc.txt dt-bindings: usb: bdc: Add Device Tree binding for Broadcom UDC driver 2017-08-15 14:18:57 +03:00
ci-hdrc-usb2.txt doc: usb: ci-hdrc-usb2: add property over-current-active-high 2016-09-14 10:58:13 +08:00
da8xx-usb.txt dt-bindings: Remove "status" from examples 2017-09-05 10:03:06 -05:00
dwc2.txt dt-bindings: usb: fix the STM32F7 DWC2 OTG HS core binding 2018-03-05 10:43:54 +02:00
dwc3-cavium.txt usb: dwc3: of-simple: add compatible for Cavium 2016-09-13 09:28:59 +03:00
dwc3-st.txt dt-bindings: Remove "status" from examples 2017-09-05 10:03:06 -05:00
dwc3-xilinx.txt dt-bindings: Remove "status" from examples 2017-09-05 10:03:06 -05:00
dwc3.txt usb: dwc3: support clocks and resets for DWC3 core 2018-05-16 08:52:39 +03:00
ehci-omap.txt Documentation: ehci-omap: remove the unnecessary newline 2017-01-09 10:19:14 -06:00
ehci-orion.txt usb: orion-ehci: Add support for the Armada 3700 2017-03-17 13:32:59 +09:00
ehci-st.txt dt-bindings: Remove leading 0x from bindings notation 2017-12-06 14:56:33 -06:00
exynos-usb.txt dt-bindings: Remove "status" from examples 2017-09-05 10:03:06 -05:00
fcs,fusb302.txt staging: typec: fusb302: Get max snk mv/ma/mw from device-properties 2017-08-31 18:23:12 +02:00
fsl-usb.txt
generic.txt usb: of: add functions to bind a companion controller 2017-03-17 13:24:48 +09:00
gr-udc.txt
iproc-udc.txt dt-bindings: usb: DT bindings documentation for Broadcom IPROC USB Device controller. 2017-06-13 13:21:02 +03:00
isp1301.txt dt-bindings: Remove "status" from examples 2017-09-05 10:03:06 -05:00
keystone-usb.txt DeviceTree updates for 4.14: 2017-09-07 14:43:33 -07:00
lpc32xx-udc.txt
maxim,max3421.txt dt-bindings: usb: max3421: Interrupt-parent is optional 2017-11-01 17:11:05 +01:00
mediatek,mtk-xhci.txt dt-bindings: usb: add the documentation for USB HCDs 2018-03-09 09:43:52 -08:00
mediatek,mtu3.txt dt-bindings: usb: add the documentation for USB HCDs 2018-03-09 09:43:52 -08:00
msm-hsusb.txt usb: phy: msm: Add D+/D- lines route control 2015-07-30 11:43:36 -05:00
nvidia,tegra20-ehci.txt Documentation: DT bindings: add more Tegra chip compatible strings 2015-02-03 20:37:31 -06:00
nvidia,tegra124-xusb.txt dt-bindings: usb: Fix Tegra XUSB example 2016-07-01 14:48:29 +02:00
octeon-usb.txt Documentation/devicetree: document OCTEON USB bindings 2015-12-09 15:30:00 -06:00
ohci-da8xx.txt dt-bindings: Remove leading zeros from bindings notation 2017-11-09 17:05:05 -06:00
ohci-nxp.txt
ohci-omap3.txt
ohci-st.txt dt-bindings: Remove leading 0x from bindings notation 2017-12-06 14:56:33 -06:00
omap-usb.txt
pxa-usb.txt
qcom,dwc3.txt dt-bindings: usb: Update documentation for Qualcomm DWC3 driver 2018-05-15 10:20:12 +03:00
renesas_usb3.txt usb: gadget: udc: renesas_usb3: add binging for r8a77965 2018-03-05 10:49:32 +02:00
renesas_usbhs.txt usb: renesas_usbhs: add binding for r8a77965 2018-03-05 10:49:30 +02:00
rockchip,dwc3.txt dt-bindings: Remove "status" from examples 2017-09-05 10:03:06 -05:00
s3c2410-usb.txt dt-bindings: usb: add DT binding for s3c2410 USB OHCI controller 2016-11-29 17:31:36 +01:00
samsung-hsotg.txt
spear-usb.txt
twlxxxx-usb.txt power: twl4030_charger: find associated phy by more reliable means. 2015-05-26 10:44:06 -05:00
udc-xilinx.txt
ulpi.txt usb: ulpi: Support device discovery via DT 2017-01-20 11:24:06 +08:00
usb251xb.txt usb: usb251xb: Update usb251xb bindings 2017-11-01 17:14:21 +01:00
usb3503.txt dt-bindings: Remove leading zeros from bindings notation 2017-11-09 17:05:05 -06:00
usb4604.txt usb: misc: Add driver for usb4604 2016-08-09 15:49:01 +02:00
usb-device.txt dt-bindings: usb: add interface binding 2017-11-28 15:12:38 +01:00
usb-ehci.txt dt-bindings: usb: add the documentation for USB HCDs 2018-03-09 09:43:52 -08:00
usb-hcd.txt dt-bindings: usb: add the documentation for USB HCDs 2018-03-09 09:43:52 -08:00
usb-nop-xceiv.txt dt-bindings: usb: add #phy-cells to usb-nop-xceiv 2017-11-13 16:50:01 -06:00
usb-ohci.txt dt-bindings: usb: add the documentation for USB HCDs 2018-03-09 09:43:52 -08:00
usb-uhci.txt dt-bindings: usb: add the documentation for USB HCDs 2018-03-09 09:43:52 -08:00
usb-xhci.txt Merge branch 4.16-rc6 into usb-next 2018-03-20 09:56:08 +01:00
usbmisc-imx.txt dt-bindings: Remove leading zeros from bindings notation 2017-11-09 17:05:05 -06:00
ux500-usb.txt