linux_dsm_epyc7002/drivers/phy
Tony Lindgren 5d1ebbda03 phy: mapphone-mdm6600: Add USB PHY driver for MDM6600 on Droid 4
Let's add support for the GPIO controlled USB PHY on the MDM6600 modem.
It is used on some Motorola Mapphone series of phones and tablets such
as Droid 4.

The MDM6600 is hardwired to the first OHCI port in the Droid 4 case, and
is controlled by several GPIOs. The USB PHY is integrated into the MDM6600
device it seems. We know this as we get L3 errors from omap-usb-host if
trying to use the PHY before MDM6600 is configured.

The GPIOs controlling MDM6600 are used to power device on and off, to
configure the USB start-up mode (normal mode versus USB flashing), and
they also tell the state of the MDM6600 device.

The two start-up mode GPIOs are dual-purposed and used for out of band
(OOB) wake-up for USB and TS 27.010 serial mux. But we need to configure
the USB start-up mode first to get MDM6600 booted in the right mode to
be usable in the first place.

Note that the Motorola Mapphone Linux kernel tree has a "radio-ctrl"
driver for modems. But it really does not control the radio at all, it
just controls the modem power and start-up mode for USB. So I came to
the conclusion that we're better off having this done in the USB PHY
driver. For adding support for USB flashing mode, we can later on add
a kernel module option for flash_mode=1 or something similar.

Also note that currently there is no PM runtime support for the OHCI
on omap variant SoCs. So for low(er) power idle states, currenty both
ohci-platform and phy-mapphone-mdm6600 must be unloaded or unbound.

For reference here is what I measured for total power consumption on
an idle Droid 4 with and without USB related MDM6600 modules:

idle lcd off	phy-mapphone-mdm6600	ohci-platform
153mW		284mW			344mW

So it seems that MDM6600 is currently not yet idling even with it's
radio turned off, but that's something that is beyond the control of
this USB PHY driver. This patch does get us to the point where modem
data and GPS are usable with libqmi and ModemManager for example.
Voice calls need more audio driver work.

Cc: devicetree@vger.kernel.org
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Marcel Partap <mpartap@gmx.net>
Cc: Michael Scott <michael.scott@linaro.org>
Cc: Rob Herring <robh+dt@kernel.org>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
2018-03-16 16:55:30 +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 inno-usb2-phy driver for hi3798cv200 SoC 2018-03-16 16:55:29 +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: mapphone-mdm6600: Add USB PHY driver for MDM6600 on Droid 4 2018-03-16 16:55:30 +05:30
qualcomm phy: add SPDX identifier to QMP and QUSB2 PHY drivers 2018-03-08 13:56:20 +05:30
ralink phy: add 'depends on HAS_IOMEM' to fix unmet dependency 2018-03-16 13:40:45 +05:30
renesas phy: rcar-gen3-usb2: Add support for r8a77965 2018-03-16 16:55:26 +05:30
rockchip phy: add 'depends on HAS_IOMEM' to fix unmet dependency 2018-03-16 13:40:45 +05:30
samsung phy: Remove SOC_EXYNOS4212 dep. from PHY_EXYNOS4X12_USB 2018-03-08 13:56:21 +05:30
st phy: stm32: add support for STM32 USB PHY Controller (USBPHYC) 2018-03-16 16:53:00 +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