linux/drivers/phy
Martin Blumenstingl 115de9fd68 phy: amlogic: add USB3 PHY support for Meson GXL and GXM
This adds a new driver for the USB3 PHY found on Meson GXL and GXM SoCs
(both SoCs are using the same USB PHY register layout).

Unfortunately there is no documentation for this PHY in the public S905X
datasheet (published for example by Khadas). What we know so far about
this PHY:
- even though the Meson GXL and GXM SoCs do not expose an USB3 port (the
  dwc3 controller only has USB2 ports enabled) we need to initialize the
  USB3 PHY (specifically USB_R1_U3H_FLADJ_30MHZ_REG_MASK). Without this
  initialization high-speed USB devices (especially USB hard disks and
  thumb drives, slower devices like mice do not seem to be affected)
- on some boards the USB3 PHY starts in "device mode" - we want to bring
  it into a known state (by switching it to host mode for now).
- it is responsible for the OTG detection and for switching the first
  USB2 PHY between host and peripheral (aka device) mode. an interrupt
  can be used to detect changes between host and device mode.

There are five inputs to this register area:
- the clock and reset line for the USB3 PHY itself
- the clock and reset line for the peripheral mode and OTG detection
  logic (on the GXL and GXM SoCs these are the same clock and reset line
  as for the USB3 PHY itself, but Amlogic sees this as two different
  components - even though they share the same register space - so they
  have to be passed individually to allow specifying different inputs on
  other SoCs if needed)
- the interrupt for the OTG detection logic

The whole OTG detection logic is not implemented yet.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Tested-by: Yixun Lan <yixun.lan@amlogic.com>
Tested-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
2018-03-16 13:40:44 +05:30
..
allwinner phy: allwinner: sun4i-usb: poll vbus changes on A23/A33 when driving VBUS 2018-03-12 15:12:21 +05:30
amlogic phy: amlogic: add USB3 PHY support for Meson GXL and GXM 2018-03-16 13:40:44 +05:30
broadcom USB/PHY updates for 4.16-rc1 2018-02-01 09:40:49 -08:00
hisilicon phy: add combo phy driver for HiSilicon STB SoCs 2018-02-21 11:54:37 +05:30
lantiq phy: Add an USB PHY driver for the Lantiq SoCs using the RCU module 2017-09-04 21:19:02 +02:00
marvell phy: berlin-usb: adjust USB_PHY_RX_CTRL init flags 2018-03-16 13:40:43 +05:30
mediatek phy: phy-mtk-tphy: add configurable parameters for slew rate calibrate 2018-03-16 13:40:42 +05:30
motorola phy: cpcap-usb: Fix platform_get_irq_byname's error checking. 2017-12-15 16:00:39 +05:30
qualcomm phy: add SPDX identifier to QMP and QUSB2 PHY drivers 2018-03-08 13:56:20 +05:30
ralink phy: ralink: fix 64-bit build warning 2017-08-24 17:26:50 -07:00
renesas phy: rcar-gen3-usb2: select USB_COMMON 2017-12-15 16:00:41 +05:30
rockchip phy: rockchip-emmc: use regmap_read_poll_timeout to poll dllrdy 2018-03-08 13:56:23 +05:30
samsung phy: Remove SOC_EXYNOS4212 dep. from PHY_EXYNOS4X12_USB 2018-03-08 13:56:21 +05:30
st phy: Group vendor specific phy drivers 2017-06-01 15:28:33 +05:30
tegra phy: tegra: remove redundant self assignment of 'map' 2018-02-21 11:54:33 +05:30
ti USB/PHY patches for 4.15-rc1 2017-11-13 21:14:07 -08:00
Kconfig Merge branch '4.14-features' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2017-09-15 20:43:33 -07:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
phy-core.c phy: Add USB speed related PHY modes 2018-03-08 13:56:17 +05:30
phy-lpc18xx-usb-otg.c phy: lpc18xx-usb-otg: error handling in lpc18xx_usb_otg_phy_power_on() 2018-03-16 13:40:42 +05:30
phy-pistachio-usb.c PHY: Add driver for Pistachio USB2.0 PHY 2015-06-21 21:53:38 +02:00
phy-xgene.c phy: xgene: rename "enum phy_mode" to "enum xgene_phy_mode" 2016-07-04 17:19:21 +05:30