clk: sun5i: Add support for USB clocks

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
phy-core: Don't print an error on probe deferral or nodata

Printing an error on probe-deferral clearly is not the right thing to do.
While at it I've also silenced the error in case of -ENODATA, so that
devm_phy_get can be used to get an optional phy without causing errors to
be printed. Alternatively a new devm_phy_get_optional method could be
added for this.

While at it also factor the error handling out of the if ... else ..., as it
is identical in both branches.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
phy-core: Don't propagate -ENOSUPP from phy_pm_runtime_get_sync to caller

The phy-core allows phy_init and phy_power_on to be called multiple times,
but before this patch -ENOSUPP from phy_pm_runtime_get_sync would be
propagated to the caller for the 2nd and later calls.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
ARM: sunxi: Add driver for sunxi usb phy

The Allwinner A1x / A2x SoCs have 2 or 3 usb phys which are all accessed
through a single set of registers. Besides this there are also some other
magic bits which need poking, which are per phy, but shared between the
ohci and ehci controllers, so these are also controlled from this new phy
driver.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
ohci-platform: Add support for devicetree instantiation

Add support for ohci-platform instantiation from devicetree, including
optionally getting clks and a phy from devicetree, and enabling / disabling
those on power_on / off.

This should allow using ohci-platform from devicetree in various cases.
Specifically after this commit it can be used for the ohci controller found
on Allwinner sunxi SoCs.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
ehci-platform: Add support for clks and phy passed through devicetree

Currently ehci-platform is only used in combination with devicetree when used
with some via socs. By extending it to (optionally) get clks and a phy from
devicetree, and enabling / disabling those on power_on / off, it can be used
more generically. Specifically after this commit it can be used for the
ehci controller on Allwinner sunxi SoCs.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
ARM: sun4i: dt: Add bindings for USB clocks

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
ARM: sun4i: dt: Add USB EHCI bindings

Signed-off-by: Hans de Goede <hdegoede@redhat.com>

Conflicts:
	arch/arm/boot/dts/sun4i-a10.dtsi
ARM: sun4i: dt: Add EHCI bindings to the Mele A1000

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
ARM: sun4i: dt: Add EHCI bindings to Cubieboard-A10

Signed-off-by: Hans de Goede <hdegoede@redhat.com>

Conflicts:
	arch/arm/boot/dts/sun4i-a10-cubieboard.dts
ARM: sun5i: dt: Add bindings for USB Host clocks

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
ARM: sun5i: dt: Add USB EHCI bindings

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
ARM: sun5i: dt: Add EHCI bindings to A13-Olinuxino

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
ARM: sun7i: dt: Add bindings for USB clocks

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
ARM: sun7i: dt: Add USB EHCI bindings

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
ARM: sun7i: dt: Add USB OHCI bindings

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
ARM: sun7i: dt: Add USB EHCI bindings for Cubieboard2

Signed-off-by: Hans de Goede <hdegoede@redhat.com>

Conflicts:
	arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
ARM: sun7i: dt: Add usb host nodes to cubietruck dts

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
ARM: sun7i: dt: Add ehci nodes to Olinuxino A20 Micro dts

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
reset-work

Signed-off-by: Hans de Goede <hdegoede@redhat.com>