kernel_optimize_test/drivers/phy
Evan Green 3f6d1767b1 phy: ufs-qcom: Refactor all init steps into phy_poweron
The phy code was using implicit sequencing between the PHY driver
and the UFS driver to implement certain hardware requirements.
Specifically, the PHY reset register in the UFS controller needs
to be deasserted before serdes start occurs in the PHY.

Before this change, the code was doing this by utilizing the two
phy callbacks, phy_init() and phy_poweron(), as "init step 1" and
"init step 2", where the UFS driver would deassert reset between
these two steps.

This makes it challenging to power off the regulators in suspend,
as regulators are initialized in init, not in poweron(), but only
poweroff() is called during suspend, not exit().

For UFS, move the actual firing up of the PHY to phy_poweron() and
phy_poweroff() callbacks, rather than init()/exit(). UFS calls
phy_poweroff() during suspend, so now all clocks and regulators for
the phy can be powered down during suspend.

QMP is a little tricky because the PHY is also shared with PCIe and
USB3, which have their own definitions for init() and poweron(). Rename
the meaty functions to _enable() and _disable() to disentangle from the
PHY core names, and then create two different ops structures: one for
UFS and one for the other PHY types.

In phy-qcom-ufs, remove the 'is_powered_on' and 'is_started' guards,
as the generic PHY code does the reference counting. The
14/20nm-specific init functions get collapsed into the generic power_on()
function, with the addition of a calibrate() callback specific to 14/20nm.

Signed-off-by: Evan Green <evgreen@chromium.org>
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
2019-04-17 14:12:57 +05:30
..
allwinner phy: Move Allwinner A31 D-PHY driver to drivers/phy/ 2019-02-07 09:34:49 +01:00
amlogic phy: amlogic: Add Amlogic G12A USB3 + PCIE Combo PHY Driver 2019-04-17 14:12:51 +05:30
broadcom phy: sr-usb: Add Stingray USB PHY driver 2019-04-17 14:12:48 +05:30
cadence phy: Add Cadence D-PHY support 2019-02-07 11:11:06 +05:30
freescale phy: freescale: Break dependency on SOC_IMX8MQ for USB PHY 2019-02-07 11:10:34 +05:30
hisilicon phy: add inno-usb2-phy driver for hi3798cv200 SoC 2018-03-16 16:55:29 +05:30
lantiq phy: lantiq: Fix compile warning 2018-09-26 13:09:39 +05:30
marvell USB/PHY patches for 5.1-rc1 2019-03-06 16:48:27 -08:00
mediatek phy: core: rework phy_set_mode to accept phy mode and submode 2018-12-12 10:01:33 +05:30
motorola phy: mapphone-mdm6600: Improve phy related runtime PM calls 2018-12-12 10:01:39 +05:30
mscc phy: ocelot-serdes: convert to use eth phy mode and submode 2018-12-12 10:01:35 +05:30
qualcomm phy: ufs-qcom: Refactor all init steps into phy_poweron 2019-04-17 14:12:57 +05:30
ralink phy: add 'depends on HAS_IOMEM' to fix unmet dependency 2018-03-16 13:40:45 +05:30
renesas phy: renesas: rcar-gen3-usb2: follow the hardware manual procedure 2018-12-12 10:01:38 +05:30
rockchip phy: phy-rockchip-inno-usb2: drop reading the utmi-avalid property 2019-02-07 11:10:44 +05:30
samsung phy: exynos-mipi-video: Simplify code by using regmap_update_bits() 2018-04-25 10:52:59 +05:30
socionext phy: uniphier-pcie: Depend on HAS_IOMEM 2018-11-12 16:19:06 +05:30
st phy: stm32: fix usbphyc static checker and checkpatch warnings 2018-05-20 21:51:25 +05:30
tegra phy: tegra: xusb: Add Tegra186 support 2019-04-17 14:12:47 +05:30
ti phy: for 5.1 2019-02-12 14:59:43 +01:00
Kconfig phy: dphy: Add configuration helpers 2018-12-12 10:01:51 +05:30
Makefile phy: dphy: Add configuration helpers 2018-12-12 10:01:51 +05:30
phy-core-mipi-dphy.c phy: dphy: Change units of wakeup and init parameters 2019-02-07 11:11:05 +05:30
phy-core.c phy: make phy-core explicitly non-modular 2019-02-07 11:10:45 +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