android_kernel_motorola_sm6225/drivers/phy
Tony Lindgren f7f50b2a7b phy: mapphone-mdm6600: Add runtime PM support for n_gsm on USB suspend
We can suspend the mdm6600 over USB via sysfs and then mdm6600 enters
a low-power idle mode. In the low-power mode, mdm6600 radio and n_gsm
uart are functional but we need to use USB mode0 GPIO pin to send a
wake-up pulse to the modem to talk with it over n_gsm.

As the GPIO mode0 line is dual purposed and and also needed by the
USB PHY driver to boot mdm6600 into the correct USB mode, let's also
manage the wake-up GPIO in the USB PHY driver. For the USB PHY idle,
there does not anything specific we need to do for runtime PM after
getting the PHY configured. The PHY framework already idles the USB
PHY when not in use separately from the mdm6600 state.

It seems that it takes about 100 - 200ms for mdm6600 to wake up from
the low-power idle mode. And then mdm6600 stays awake about 1.2s until
it needs to be kicked again. The mdm6600 status GPIO pins don't seem
to change state when mdm6600 changes between normal and idle mode.

Let's manage the mdm6600 mode with runtime PM. If phy-mapphone-mdm6600
sysfs entry for power/control is set to "on", we keep mdm6600 out of
idle by kicking the GPIO line. If the entry is set to "auto" we let
mdm6600 enter low-power state.

Cc: Marcel Partap <mpartap@gmx.net>
Cc: Merlijn Wajer <merlijn@wizzup.org>
Cc: Michael Scott <hashcode0f@gmail.com>
Cc: NeKit <nekit1000@gmail.com>
Cc: Pavel Machek <pavel@ucw.cz>
Cc: Sebastian Reichel <sre@kernel.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
2018-05-20 21:51:24 +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 runtime PM support for n_gsm on USB suspend 2018-05-20 21:51:24 +05:30
qualcomm phy: Add a driver for the ATH79 USB phy 2018-04-25 10:53:00 +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: rockchip-typec: fall back to working in host-mode if extcon is missing. 2018-03-16 16:55:37 +05:30
samsung phy: exynos-mipi-video: Simplify code by using regmap_update_bits() 2018-04-25 10:52:59 +05:30
st phy: stm32: add support for STM32 USB PHY Controller (USBPHYC) 2018-03-16 16:53:00 +05:30
tegra phy: tegra: Convert to use match_string() helper 2018-05-20 21:51:22 +05:30
ti ARM: da8xx: use platform data for CFGCHIP syscon regmap 2018-02-19 16:19:25 +05:30
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: core: Allow phy_pm_runtime_xxx API calls with NULL phy 2018-04-25 10:52:59 +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