[PATCH phy-next 00/22] Split Generic PHY consumer and provider API

Vladimir Oltean posted 22 patches 1 month ago
There is a newer version of this series
MAINTAINERS                                   |   1 +
drivers/ata/ahci.c                            |   1 +
drivers/ata/ahci_brcm.c                       |   1 +
drivers/ata/ahci_ceva.c                       |   1 +
drivers/ata/ahci_qoriq.c                      |   1 +
drivers/ata/libahci.c                         |   1 +
.../drm/bridge/analogix/analogix_dp_core.c    |   1 +
.../drm/bridge/cadence/cdns-mhdp8546-core.c   |   7 +-
drivers/gpu/drm/bridge/nwl-dsi.c              |   1 +
drivers/gpu/drm/bridge/samsung-dsim.c         |   1 +
drivers/gpu/drm/bridge/synopsys/dw-dp.c       |   2 +-
drivers/gpu/drm/msm/dp/dp_aux.c               |   1 +
drivers/gpu/drm/msm/dp/dp_ctrl.c              |  18 -
drivers/gpu/drm/rockchip/cdn-dp-core.c        |   1 +
.../gpu/drm/rockchip/dw-mipi-dsi-rockchip.c   |   1 +
drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c   |  25 +-
.../sun8i-a83t-mipi-csi2/sun8i_a83t_dphy.c    |   2 +-
drivers/net/can/at91_can.c                    |   2 +-
drivers/net/can/flexcan/flexcan-core.c        |   2 +-
drivers/net/can/m_can/m_can_platform.c        |   2 +-
drivers/net/can/rcar/rcar_canfd.c             |   2 +-
.../microchip/sparx5/lan969x/lan969x_rgmii.c  |   1 +
drivers/net/ethernet/renesas/rswitch_main.c   |   1 +
drivers/pci/controller/cadence/pcie-cadence.c |  16 +-
drivers/pci/controller/dwc/pci-dra7xx.c       |  16 -
drivers/pci/controller/dwc/pci-keystone.c     |  32 +-
drivers/pci/controller/dwc/pcie-dw-rockchip.c |   1 +
drivers/pci/controller/dwc/pcie-histb.c       |   1 +
drivers/pci/controller/dwc/pcie-qcom-ep.c     |   1 +
drivers/pci/controller/dwc/pcie-spacemit-k1.c |   2 +
drivers/pci/controller/dwc/pcie-tegra194.c    |   1 +
drivers/pci/controller/pci-tegra.c            |   1 +
drivers/pci/controller/pcie-rockchip-host.c   |   1 +
drivers/pci/controller/plda/pcie-starfive.c   |   1 +
drivers/phy/allwinner/phy-sun4i-usb.c         |   3 +-
drivers/phy/allwinner/phy-sun50i-usb3.c       |   3 +-
drivers/phy/allwinner/phy-sun6i-mipi-dphy.c   |   4 +-
drivers/phy/allwinner/phy-sun9i-usb.c         |   3 +-
drivers/phy/amlogic/phy-meson-axg-mipi-dphy.c |   2 +
.../amlogic/phy-meson-axg-mipi-pcie-analog.c  |   3 +-
drivers/phy/amlogic/phy-meson-axg-pcie.c      |   2 +
.../amlogic/phy-meson-g12a-mipi-dphy-analog.c |   3 +-
drivers/phy/amlogic/phy-meson-g12a-usb2.c     |   2 +
.../phy/amlogic/phy-meson-g12a-usb3-pcie.c    |   3 +-
drivers/phy/amlogic/phy-meson-gxl-usb2.c      |   3 +-
drivers/phy/amlogic/phy-meson8-hdmi-tx.c      |   3 +-
drivers/phy/amlogic/phy-meson8b-usb2.c        |   3 +-
drivers/phy/apple/atc.c                       |   3 +-
drivers/phy/broadcom/phy-bcm-cygnus-pcie.c    |   3 +-
drivers/phy/broadcom/phy-bcm-kona-usb2.c      |   4 +-
drivers/phy/broadcom/phy-bcm-ns-usb2.c        |   3 +-
drivers/phy/broadcom/phy-bcm-ns-usb3.c        |   3 +-
drivers/phy/broadcom/phy-bcm-ns2-pcie.c       |   3 +-
drivers/phy/broadcom/phy-bcm-ns2-usbdrd.c     |   3 +-
drivers/phy/broadcom/phy-bcm-sr-pcie.c        |   3 +-
drivers/phy/broadcom/phy-bcm-sr-usb.c         |   3 +-
drivers/phy/broadcom/phy-bcm63xx-usbh.c       |   3 +-
drivers/phy/broadcom/phy-brcm-sata.c          |   3 +-
drivers/phy/broadcom/phy-brcm-usb.c           |   2 +-
drivers/phy/cadence/cdns-dphy-rx.c            |   3 +-
drivers/phy/cadence/cdns-dphy.c               |   4 +-
drivers/phy/cadence/phy-cadence-salvo.c       |   3 +-
drivers/phy/cadence/phy-cadence-sierra.c      |   3 +-
drivers/phy/cadence/phy-cadence-torrent.c     |   3 +-
drivers/phy/canaan/phy-k230-usb.c             |   3 +-
drivers/phy/eswin/phy-eic7700-sata.c          |   3 +-
.../phy/freescale/phy-fsl-imx8-mipi-dphy.c    |   3 +-
drivers/phy/freescale/phy-fsl-imx8m-pcie.c    |   4 +-
drivers/phy/freescale/phy-fsl-imx8mq-usb.c    |   3 +-
drivers/phy/freescale/phy-fsl-imx8qm-hsio.c   |   6 +-
.../phy/freescale/phy-fsl-imx8qm-lvds-phy.c   |   3 +-
drivers/phy/freescale/phy-fsl-lynx-28g.c      |   3 +-
drivers/phy/hisilicon/phy-hi3660-usb3.c       |   3 +-
drivers/phy/hisilicon/phy-hi3670-pcie.c       |   3 +-
drivers/phy/hisilicon/phy-hi3670-usb3.c       |   3 +-
drivers/phy/hisilicon/phy-hi6220-usb.c        |   3 +-
drivers/phy/hisilicon/phy-hisi-inno-usb2.c    |   4 +-
drivers/phy/hisilicon/phy-histb-combphy.c     |   3 +-
drivers/phy/hisilicon/phy-hix5hd2-sata.c      |   3 +-
drivers/phy/ingenic/phy-ingenic-usb.c         |   3 +-
drivers/phy/intel/phy-intel-keembay-emmc.c    |   3 +-
drivers/phy/intel/phy-intel-keembay-usb.c     |   3 +-
drivers/phy/intel/phy-intel-lgm-combo.c       |   4 +-
drivers/phy/intel/phy-intel-lgm-emmc.c        |   3 +-
drivers/phy/lantiq/phy-lantiq-rcu-usb2.c      |   3 +-
drivers/phy/lantiq/phy-lantiq-vrx200-pcie.c   |   4 +-
drivers/phy/marvell/phy-armada375-usb2.c      |   3 +-
drivers/phy/marvell/phy-armada38x-comphy.c    |   3 +-
drivers/phy/marvell/phy-berlin-sata.c         |   3 +-
drivers/phy/marvell/phy-berlin-usb.c          |   3 +-
drivers/phy/marvell/phy-mmp3-hsic.c           |   3 +-
drivers/phy/marvell/phy-mmp3-usb.c            |   3 +-
drivers/phy/marvell/phy-mvebu-a3700-comphy.c  |   3 +-
drivers/phy/marvell/phy-mvebu-a3700-utmi.c    |   3 +-
drivers/phy/marvell/phy-mvebu-cp110-comphy.c  |   3 +-
drivers/phy/marvell/phy-mvebu-cp110-utmi.c    |   3 +-
drivers/phy/marvell/phy-mvebu-sata.c          |   3 +-
drivers/phy/marvell/phy-pxa-28nm-hsic.c       |   3 +-
drivers/phy/marvell/phy-pxa-28nm-usb2.c       |   3 +-
drivers/phy/marvell/phy-pxa-usb.c             |   3 +-
drivers/phy/mediatek/phy-mtk-dp.c             |   3 +-
drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c    |   1 -
drivers/phy/mediatek/phy-mtk-hdmi.h           |   3 +-
drivers/phy/mediatek/phy-mtk-mipi-csi-0-5.c   |   2 +-
drivers/phy/mediatek/phy-mtk-mipi-dsi.h       |   3 +-
drivers/phy/mediatek/phy-mtk-pcie.c           |   2 +-
drivers/phy/mediatek/phy-mtk-tphy.c           |   2 +-
drivers/phy/mediatek/phy-mtk-ufs.c            |   2 +-
drivers/phy/mediatek/phy-mtk-xfi-tphy.c       |   2 +-
drivers/phy/mediatek/phy-mtk-xsphy.c          |   2 +-
drivers/phy/microchip/lan966x_serdes.c        |   4 +-
drivers/phy/microchip/sparx5_serdes.c         |   2 +-
drivers/phy/motorola/phy-cpcap-usb.c          |   3 +-
drivers/phy/motorola/phy-mapphone-mdm6600.c   |   5 +-
drivers/phy/mscc/phy-ocelot-serdes.c          |   3 +-
drivers/phy/nuvoton/phy-ma35d1-usb2.c         |   3 +-
drivers/phy/phy-airoha-pcie.c                 |   2 +-
drivers/phy/phy-can-transceiver.c             |   3 +-
drivers/phy/phy-core-mipi-dphy.c              |   4 +-
drivers/phy/phy-core.c                        |  42 ++
drivers/phy/phy-google-usb.c                  |   4 +-
drivers/phy/phy-lpc18xx-usb-otg.c             |   3 +-
drivers/phy/phy-nxp-ptn3222.c                 |   3 +-
drivers/phy/phy-pistachio-usb.c               |   4 +-
drivers/phy/phy-provider.h                    | 256 +++++++++
drivers/phy/phy-snps-eusb2.c                  |   2 +
drivers/phy/phy-xgene.c                       |   3 +-
drivers/phy/qualcomm/phy-ath79-usb.c          |   3 +-
drivers/phy/qualcomm/phy-qcom-apq8064-sata.c  |   3 +-
drivers/phy/qualcomm/phy-qcom-edp.c           |   3 +-
.../phy/qualcomm/phy-qcom-eusb2-repeater.c    |   3 +-
drivers/phy/qualcomm/phy-qcom-ipq4019-usb.c   |   3 +-
drivers/phy/qualcomm/phy-qcom-ipq806x-sata.c  |   3 +-
drivers/phy/qualcomm/phy-qcom-ipq806x-usb.c   |   3 +-
drivers/phy/qualcomm/phy-qcom-m31-eusb2.c     |   2 +
drivers/phy/qualcomm/phy-qcom-m31.c           |   3 +-
drivers/phy/qualcomm/phy-qcom-pcie2.c         |   3 +-
drivers/phy/qualcomm/phy-qcom-qmp-combo.c     |   4 +-
.../phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c  |   3 +-
drivers/phy/qualcomm/phy-qcom-qmp-pcie.c      |   3 +-
drivers/phy/qualcomm/phy-qcom-qmp-ufs.c       |   3 +-
.../phy/qualcomm/phy-qcom-qmp-usb-legacy.c    |   4 +-
drivers/phy/qualcomm/phy-qcom-qmp-usb.c       |   4 +-
drivers/phy/qualcomm/phy-qcom-qmp-usbc.c      |   4 +-
drivers/phy/qualcomm/phy-qcom-qusb2.c         |   5 +-
drivers/phy/qualcomm/phy-qcom-sgmii-eth.c     |   3 +-
drivers/phy/qualcomm/phy-qcom-snps-femto-v2.c |   4 +-
.../phy/qualcomm/phy-qcom-uniphy-pcie-28lp.c  |   3 +-
drivers/phy/qualcomm/phy-qcom-usb-hs-28nm.c   |   3 +-
drivers/phy/qualcomm/phy-qcom-usb-hs.c        |   3 +-
drivers/phy/qualcomm/phy-qcom-usb-hsic.c      |   3 +-
drivers/phy/qualcomm/phy-qcom-usb-ss.c        |   3 +-
drivers/phy/ralink/phy-mt7621-pci.c           |   3 +-
drivers/phy/ralink/phy-ralink-usb.c           |   3 +-
drivers/phy/realtek/phy-rtk-usb2.c            |   3 +-
drivers/phy/realtek/phy-rtk-usb3.c            |   3 +-
drivers/phy/renesas/phy-rcar-gen2.c           |   3 +-
drivers/phy/renesas/phy-rcar-gen3-pcie.c      |   4 +-
drivers/phy/renesas/phy-rcar-gen3-usb2.c      |   3 +-
drivers/phy/renesas/phy-rcar-gen3-usb3.c      |   3 +-
drivers/phy/renesas/phy-rzg3e-usb3.c          |   3 +-
drivers/phy/renesas/r8a779f0-ether-serdes.c   |   4 +-
drivers/phy/rockchip/phy-rockchip-dp.c        |   3 +-
drivers/phy/rockchip/phy-rockchip-dphy-rx0.c  |   3 +-
drivers/phy/rockchip/phy-rockchip-emmc.c      |   3 +-
.../phy/rockchip/phy-rockchip-inno-csidphy.c  |   3 +-
.../phy/rockchip/phy-rockchip-inno-dsidphy.c  |   4 +-
drivers/phy/rockchip/phy-rockchip-inno-hdmi.c |   2 +
drivers/phy/rockchip/phy-rockchip-inno-usb2.c |   3 +-
.../rockchip/phy-rockchip-naneng-combphy.c    |   3 +-
drivers/phy/rockchip/phy-rockchip-pcie.c      |   2 +-
.../phy/rockchip/phy-rockchip-samsung-dcphy.c |   3 +-
.../phy/rockchip/phy-rockchip-samsung-hdptx.c |   2 +
.../phy/rockchip/phy-rockchip-snps-pcie3.c    |   3 +-
drivers/phy/rockchip/phy-rockchip-typec.c     |   5 +-
drivers/phy/rockchip/phy-rockchip-usb.c       |   3 +-
drivers/phy/rockchip/phy-rockchip-usbdp.c     |   2 +
drivers/phy/samsung/phy-exynos-dp-video.c     |   3 +-
drivers/phy/samsung/phy-exynos-mipi-video.c   |   3 +-
drivers/phy/samsung/phy-exynos-pcie.c         |   3 +-
drivers/phy/samsung/phy-exynos4210-usb2.c     |   3 +-
drivers/phy/samsung/phy-exynos4x12-usb2.c     |   3 +-
drivers/phy/samsung/phy-exynos5-usbdrd.c      |   2 +
drivers/phy/samsung/phy-exynos5250-sata.c     |   3 +-
drivers/phy/samsung/phy-exynos5250-usb2.c     |   3 +-
drivers/phy/samsung/phy-s5pv210-usb2.c        |   3 +-
drivers/phy/samsung/phy-samsung-ufs.c         |   2 +-
drivers/phy/samsung/phy-samsung-ufs.h         |   3 +-
drivers/phy/samsung/phy-samsung-usb2.c        |   2 +
drivers/phy/samsung/phy-samsung-usb2.h        |   3 +-
drivers/phy/socionext/phy-uniphier-ahci.c     |   3 +-
drivers/phy/socionext/phy-uniphier-pcie.c     |   3 +-
drivers/phy/socionext/phy-uniphier-usb2.c     |   3 +-
drivers/phy/socionext/phy-uniphier-usb3hs.c   |   3 +-
drivers/phy/socionext/phy-uniphier-usb3ss.c   |   3 +-
drivers/phy/sophgo/phy-cv1800-usb2.c          |   3 +-
drivers/phy/spacemit/phy-k1-pcie.c            |   4 +-
drivers/phy/spacemit/phy-k1-usb2.c            |   2 +
drivers/phy/st/phy-miphy28lp.c                |   4 +-
drivers/phy/st/phy-spear1310-miphy.c          |   3 +-
drivers/phy/st/phy-spear1340-miphy.c          |   3 +-
drivers/phy/st/phy-stih407-usb.c              |   3 +-
drivers/phy/st/phy-stm32-combophy.c           |   3 +-
drivers/phy/st/phy-stm32-usbphyc.c            |   2 +
drivers/phy/starfive/phy-jh7110-dphy-rx.c     |   3 +-
drivers/phy/starfive/phy-jh7110-dphy-tx.c     |   3 +-
drivers/phy/starfive/phy-jh7110-pcie.c        |   3 +-
drivers/phy/starfive/phy-jh7110-usb.c         |   3 +-
drivers/phy/sunplus/phy-sunplus-usb2.c        |   3 +-
drivers/phy/tegra/phy-tegra194-p2u.c          |   3 +-
drivers/phy/tegra/xusb-tegra124.c             |   2 +-
drivers/phy/tegra/xusb-tegra186.c             |   2 +-
drivers/phy/tegra/xusb-tegra210.c             |   2 +-
drivers/phy/tegra/xusb.c                      |   2 +-
drivers/phy/ti/phy-am654-serdes.c             |   3 +-
drivers/phy/ti/phy-da8xx-usb.c                |   3 +-
drivers/phy/ti/phy-dm816x-usb.c               |   3 +-
drivers/phy/ti/phy-gmii-sel.c                 |   3 +-
drivers/phy/ti/phy-omap-usb2.c                |   3 +-
drivers/phy/ti/phy-ti-pipe3.c                 |   3 +-
drivers/phy/ti/phy-tusb1210.c                 |   1 +
drivers/phy/ti/phy-twl4030-usb.c              |   3 +-
drivers/phy/xilinx/phy-zynqmp.c               |   4 +-
drivers/pinctrl/tegra/pinctrl-tegra-xusb.c    |   2 +-
drivers/power/supply/cpcap-charger.c          |   1 +
drivers/ufs/host/ufs-exynos.c                 |  17 +-
drivers/ufs/host/ufs-exynos.h                 |   1 +
drivers/usb/chipidea/ci_hdrc_imx.c            |   1 +
drivers/usb/core/hcd.c                        |   1 +
drivers/usb/dwc3/dwc3-generic-plat.c          |   1 +
drivers/usb/dwc3/gadget.c                     |   1 +
include/linux/phy/phy-props.h                 |  75 +++
include/linux/phy/phy-sun4i-usb.h             |   2 +-
include/linux/phy/phy.h                       | 497 ++++--------------
include/linux/phy/ulpi_phy.h                  |   2 +-
235 files changed, 915 insertions(+), 694 deletions(-)
create mode 100644 drivers/phy/phy-provider.h
create mode 100644 include/linux/phy/phy-props.h
[PATCH phy-next 00/22] Split Generic PHY consumer and provider API
Posted by Vladimir Oltean 1 month ago
The biggest problem requiring this split is the fact that consumer
drivers poke around in struct phy, accessing fields which shouldn't be
visible to them. Follow the example of mux, gpio, iio, spi offload,
pwrsec, pinctrl and regulator, which each expose separate headers for
consumers and providers.

Some off-list discussions were had with Vinod Koul regarding the 3 PHY
providers outside the drivers/phy/ subsystem. It was agreed that it is
desirable to relocate them to drivers/phy/, rather than to publish
phy-provider.h to include/linux/phy/ for liberal use. Only phy.h and
(new) phy-props.h - consumer-facing headers - stay there.

The hope is that developers get a hint when they need to include the
wrong header to get their job done.

If that fails, patch 22/22 adds a regex in the MAINTAINERS entry that
ensures linux-phy is copied on all Generic PHY patches, for an extra set
of eyes.

Requested merge strategy, I hope this works for everyone:
- Subsystem maintainers ACK their affected portions
- Entire series goes through linux-phy
- linux-phy provides stable tag
- Said tag is merged back into affected subsystem 'next' branches

Cc: Abhinav Kumar <abhinav.kumar@linux.dev>
Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
Cc: "André Draszik" <andre.draszik@linaro.org>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: Andrzej Hajda <andrzej.hajda@intel.com>
Cc: Andy Yan <andy.yan@rock-chips.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Chen-Yu Tsai <wens@kernel.org>
Cc: Claudiu Beznea <claudiu.beznea@tuxon.dev>
Cc: Damien Le Moal <dlemoal@kernel.org>
Cc: Daniel Machon <daniel.machon@microchip.com>
Cc: David Airlie <airlied@gmail.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Dmitry Baryshkov <lumag@kernel.org>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Frank Li <Frank.Li@nxp.com>
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: "Heiko Stübner" <heiko@sntech.de>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Inki Dae <inki.dae@samsung.com>
Cc: Jagan Teki <jagan@amarulasolutions.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Jernej Skrabec <jernej.skrabec@gmail.com>
Cc: Jessica Zhang <jesszhan0024@gmail.com>
Cc: Jonas Karlman <jonas@kwiboo.se>
Cc: Jonathan Hunter <jonathanh@nvidia.com>
Cc: Kevin Xie <kevin.xie@starfivetech.com>
Cc: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Cc: "Krzysztof Wilczyński" <kwilczynski@kernel.org>
Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Lorenzo Pieralisi <lpieralisi@kernel.org>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Magnus Damm <magnus.damm@gmail.com>
Cc: Manivannan Sadhasivam <mani@kernel.org>
Cc: Marc Kleine-Budde <mkl@pengutronix.de>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Marijn Suijten <marijn.suijten@somainline.org>
Cc: Markus Schneider-Pargmann <msp@baylibre.com>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Michael Dege <michael.dege@renesas.com>
Cc: Neil Armstrong <neil.armstrong@linaro.org>
Cc: Nicolas Ferre <nicolas.ferre@microchip.com>
Cc: Niklas Cassel <cassel@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: Peter Chen <peter.chen@kernel.org>
Cc: Peter Griffin <peter.griffin@linaro.org>
Cc: Rob Clark <robin.clark@oss.qualcomm.com>
Cc: Robert Foss <rfoss@kernel.org>
Cc: Rob Herring <robh@kernel.org>
Cc: "Russell King (Oracle)" <rmk+kernel@armlinux.org.uk>
Cc: Samuel Holland <samuel@sholland.org>
Cc: Sandy Huang <hjc@rock-chips.com>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Sean Paul <sean@poorly.run>
Cc: Sebastian Reichel <sre@kernel.org>
Cc: Shawn Guo <shawn.guo@linaro.org>
Cc: Shawn Lin <shawn.lin@rock-chips.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Steen Hegelund <Steen.Hegelund@microchip.com>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Tudor Ambarus <tudor.ambarus@linaro.org>
Cc: Vincent Mailhol <mailhol@kernel.org>
Cc: Yixun Lan <dlan@kernel.org>
Cc: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>

Vladimir Oltean (22):
  ata: add <linux/pm_runtime.h> where missing
  PCI: add missing headers transitively included by <linux/phy/phy.h>
  usb: add missing headers transitively included by <linux/phy/phy.h>
  drm: add <linux/pm_runtime.h> where missing
  phy: add <linux/pm_runtime.h> where missing
  phy: spacemit: include missing <linux/phy/phy.h>
  net: lan969x: include missing <linux/of.h>
  PCI: remove device links to PHY
  ufs: exynos: stop poking into struct phy guts
  drm/rockchip: dw_hdmi: avoid direct dereference of phy->dev.of_node
  drm/msm/dp: remove debugging prints with internal struct phy state
  phy: move provider API out of public <linux/phy/phy.h>
  phy: introduce phy_get_max_link_rate() helper for consumers
  drm/rockchip: dsi: include PHY provider header
  drm: bridge: cdns-mhdp8546: use consumer API for getting PHY bus width
  media: sunxi: a83-mips-csi2: include PHY provider header
  net: renesas: rswitch: include PHY provider header
  pinctrl: tegra-xusb: include PHY provider header
  power: supply: cpcap-charger: include missing <linux/property.h>
  phy: include PHY provider header
  phy: remove temporary provider compatibility from consumer header
  MAINTAINERS: add regex for linux-phy

 MAINTAINERS                                   |   1 +
 drivers/ata/ahci.c                            |   1 +
 drivers/ata/ahci_brcm.c                       |   1 +
 drivers/ata/ahci_ceva.c                       |   1 +
 drivers/ata/ahci_qoriq.c                      |   1 +
 drivers/ata/libahci.c                         |   1 +
 .../drm/bridge/analogix/analogix_dp_core.c    |   1 +
 .../drm/bridge/cadence/cdns-mhdp8546-core.c   |   7 +-
 drivers/gpu/drm/bridge/nwl-dsi.c              |   1 +
 drivers/gpu/drm/bridge/samsung-dsim.c         |   1 +
 drivers/gpu/drm/bridge/synopsys/dw-dp.c       |   2 +-
 drivers/gpu/drm/msm/dp/dp_aux.c               |   1 +
 drivers/gpu/drm/msm/dp/dp_ctrl.c              |  18 -
 drivers/gpu/drm/rockchip/cdn-dp-core.c        |   1 +
 .../gpu/drm/rockchip/dw-mipi-dsi-rockchip.c   |   1 +
 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c   |  25 +-
 .../sun8i-a83t-mipi-csi2/sun8i_a83t_dphy.c    |   2 +-
 drivers/net/can/at91_can.c                    |   2 +-
 drivers/net/can/flexcan/flexcan-core.c        |   2 +-
 drivers/net/can/m_can/m_can_platform.c        |   2 +-
 drivers/net/can/rcar/rcar_canfd.c             |   2 +-
 .../microchip/sparx5/lan969x/lan969x_rgmii.c  |   1 +
 drivers/net/ethernet/renesas/rswitch_main.c   |   1 +
 drivers/pci/controller/cadence/pcie-cadence.c |  16 +-
 drivers/pci/controller/dwc/pci-dra7xx.c       |  16 -
 drivers/pci/controller/dwc/pci-keystone.c     |  32 +-
 drivers/pci/controller/dwc/pcie-dw-rockchip.c |   1 +
 drivers/pci/controller/dwc/pcie-histb.c       |   1 +
 drivers/pci/controller/dwc/pcie-qcom-ep.c     |   1 +
 drivers/pci/controller/dwc/pcie-spacemit-k1.c |   2 +
 drivers/pci/controller/dwc/pcie-tegra194.c    |   1 +
 drivers/pci/controller/pci-tegra.c            |   1 +
 drivers/pci/controller/pcie-rockchip-host.c   |   1 +
 drivers/pci/controller/plda/pcie-starfive.c   |   1 +
 drivers/phy/allwinner/phy-sun4i-usb.c         |   3 +-
 drivers/phy/allwinner/phy-sun50i-usb3.c       |   3 +-
 drivers/phy/allwinner/phy-sun6i-mipi-dphy.c   |   4 +-
 drivers/phy/allwinner/phy-sun9i-usb.c         |   3 +-
 drivers/phy/amlogic/phy-meson-axg-mipi-dphy.c |   2 +
 .../amlogic/phy-meson-axg-mipi-pcie-analog.c  |   3 +-
 drivers/phy/amlogic/phy-meson-axg-pcie.c      |   2 +
 .../amlogic/phy-meson-g12a-mipi-dphy-analog.c |   3 +-
 drivers/phy/amlogic/phy-meson-g12a-usb2.c     |   2 +
 .../phy/amlogic/phy-meson-g12a-usb3-pcie.c    |   3 +-
 drivers/phy/amlogic/phy-meson-gxl-usb2.c      |   3 +-
 drivers/phy/amlogic/phy-meson8-hdmi-tx.c      |   3 +-
 drivers/phy/amlogic/phy-meson8b-usb2.c        |   3 +-
 drivers/phy/apple/atc.c                       |   3 +-
 drivers/phy/broadcom/phy-bcm-cygnus-pcie.c    |   3 +-
 drivers/phy/broadcom/phy-bcm-kona-usb2.c      |   4 +-
 drivers/phy/broadcom/phy-bcm-ns-usb2.c        |   3 +-
 drivers/phy/broadcom/phy-bcm-ns-usb3.c        |   3 +-
 drivers/phy/broadcom/phy-bcm-ns2-pcie.c       |   3 +-
 drivers/phy/broadcom/phy-bcm-ns2-usbdrd.c     |   3 +-
 drivers/phy/broadcom/phy-bcm-sr-pcie.c        |   3 +-
 drivers/phy/broadcom/phy-bcm-sr-usb.c         |   3 +-
 drivers/phy/broadcom/phy-bcm63xx-usbh.c       |   3 +-
 drivers/phy/broadcom/phy-brcm-sata.c          |   3 +-
 drivers/phy/broadcom/phy-brcm-usb.c           |   2 +-
 drivers/phy/cadence/cdns-dphy-rx.c            |   3 +-
 drivers/phy/cadence/cdns-dphy.c               |   4 +-
 drivers/phy/cadence/phy-cadence-salvo.c       |   3 +-
 drivers/phy/cadence/phy-cadence-sierra.c      |   3 +-
 drivers/phy/cadence/phy-cadence-torrent.c     |   3 +-
 drivers/phy/canaan/phy-k230-usb.c             |   3 +-
 drivers/phy/eswin/phy-eic7700-sata.c          |   3 +-
 .../phy/freescale/phy-fsl-imx8-mipi-dphy.c    |   3 +-
 drivers/phy/freescale/phy-fsl-imx8m-pcie.c    |   4 +-
 drivers/phy/freescale/phy-fsl-imx8mq-usb.c    |   3 +-
 drivers/phy/freescale/phy-fsl-imx8qm-hsio.c   |   6 +-
 .../phy/freescale/phy-fsl-imx8qm-lvds-phy.c   |   3 +-
 drivers/phy/freescale/phy-fsl-lynx-28g.c      |   3 +-
 drivers/phy/hisilicon/phy-hi3660-usb3.c       |   3 +-
 drivers/phy/hisilicon/phy-hi3670-pcie.c       |   3 +-
 drivers/phy/hisilicon/phy-hi3670-usb3.c       |   3 +-
 drivers/phy/hisilicon/phy-hi6220-usb.c        |   3 +-
 drivers/phy/hisilicon/phy-hisi-inno-usb2.c    |   4 +-
 drivers/phy/hisilicon/phy-histb-combphy.c     |   3 +-
 drivers/phy/hisilicon/phy-hix5hd2-sata.c      |   3 +-
 drivers/phy/ingenic/phy-ingenic-usb.c         |   3 +-
 drivers/phy/intel/phy-intel-keembay-emmc.c    |   3 +-
 drivers/phy/intel/phy-intel-keembay-usb.c     |   3 +-
 drivers/phy/intel/phy-intel-lgm-combo.c       |   4 +-
 drivers/phy/intel/phy-intel-lgm-emmc.c        |   3 +-
 drivers/phy/lantiq/phy-lantiq-rcu-usb2.c      |   3 +-
 drivers/phy/lantiq/phy-lantiq-vrx200-pcie.c   |   4 +-
 drivers/phy/marvell/phy-armada375-usb2.c      |   3 +-
 drivers/phy/marvell/phy-armada38x-comphy.c    |   3 +-
 drivers/phy/marvell/phy-berlin-sata.c         |   3 +-
 drivers/phy/marvell/phy-berlin-usb.c          |   3 +-
 drivers/phy/marvell/phy-mmp3-hsic.c           |   3 +-
 drivers/phy/marvell/phy-mmp3-usb.c            |   3 +-
 drivers/phy/marvell/phy-mvebu-a3700-comphy.c  |   3 +-
 drivers/phy/marvell/phy-mvebu-a3700-utmi.c    |   3 +-
 drivers/phy/marvell/phy-mvebu-cp110-comphy.c  |   3 +-
 drivers/phy/marvell/phy-mvebu-cp110-utmi.c    |   3 +-
 drivers/phy/marvell/phy-mvebu-sata.c          |   3 +-
 drivers/phy/marvell/phy-pxa-28nm-hsic.c       |   3 +-
 drivers/phy/marvell/phy-pxa-28nm-usb2.c       |   3 +-
 drivers/phy/marvell/phy-pxa-usb.c             |   3 +-
 drivers/phy/mediatek/phy-mtk-dp.c             |   3 +-
 drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c    |   1 -
 drivers/phy/mediatek/phy-mtk-hdmi.h           |   3 +-
 drivers/phy/mediatek/phy-mtk-mipi-csi-0-5.c   |   2 +-
 drivers/phy/mediatek/phy-mtk-mipi-dsi.h       |   3 +-
 drivers/phy/mediatek/phy-mtk-pcie.c           |   2 +-
 drivers/phy/mediatek/phy-mtk-tphy.c           |   2 +-
 drivers/phy/mediatek/phy-mtk-ufs.c            |   2 +-
 drivers/phy/mediatek/phy-mtk-xfi-tphy.c       |   2 +-
 drivers/phy/mediatek/phy-mtk-xsphy.c          |   2 +-
 drivers/phy/microchip/lan966x_serdes.c        |   4 +-
 drivers/phy/microchip/sparx5_serdes.c         |   2 +-
 drivers/phy/motorola/phy-cpcap-usb.c          |   3 +-
 drivers/phy/motorola/phy-mapphone-mdm6600.c   |   5 +-
 drivers/phy/mscc/phy-ocelot-serdes.c          |   3 +-
 drivers/phy/nuvoton/phy-ma35d1-usb2.c         |   3 +-
 drivers/phy/phy-airoha-pcie.c                 |   2 +-
 drivers/phy/phy-can-transceiver.c             |   3 +-
 drivers/phy/phy-core-mipi-dphy.c              |   4 +-
 drivers/phy/phy-core.c                        |  42 ++
 drivers/phy/phy-google-usb.c                  |   4 +-
 drivers/phy/phy-lpc18xx-usb-otg.c             |   3 +-
 drivers/phy/phy-nxp-ptn3222.c                 |   3 +-
 drivers/phy/phy-pistachio-usb.c               |   4 +-
 drivers/phy/phy-provider.h                    | 256 +++++++++
 drivers/phy/phy-snps-eusb2.c                  |   2 +
 drivers/phy/phy-xgene.c                       |   3 +-
 drivers/phy/qualcomm/phy-ath79-usb.c          |   3 +-
 drivers/phy/qualcomm/phy-qcom-apq8064-sata.c  |   3 +-
 drivers/phy/qualcomm/phy-qcom-edp.c           |   3 +-
 .../phy/qualcomm/phy-qcom-eusb2-repeater.c    |   3 +-
 drivers/phy/qualcomm/phy-qcom-ipq4019-usb.c   |   3 +-
 drivers/phy/qualcomm/phy-qcom-ipq806x-sata.c  |   3 +-
 drivers/phy/qualcomm/phy-qcom-ipq806x-usb.c   |   3 +-
 drivers/phy/qualcomm/phy-qcom-m31-eusb2.c     |   2 +
 drivers/phy/qualcomm/phy-qcom-m31.c           |   3 +-
 drivers/phy/qualcomm/phy-qcom-pcie2.c         |   3 +-
 drivers/phy/qualcomm/phy-qcom-qmp-combo.c     |   4 +-
 .../phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c  |   3 +-
 drivers/phy/qualcomm/phy-qcom-qmp-pcie.c      |   3 +-
 drivers/phy/qualcomm/phy-qcom-qmp-ufs.c       |   3 +-
 .../phy/qualcomm/phy-qcom-qmp-usb-legacy.c    |   4 +-
 drivers/phy/qualcomm/phy-qcom-qmp-usb.c       |   4 +-
 drivers/phy/qualcomm/phy-qcom-qmp-usbc.c      |   4 +-
 drivers/phy/qualcomm/phy-qcom-qusb2.c         |   5 +-
 drivers/phy/qualcomm/phy-qcom-sgmii-eth.c     |   3 +-
 drivers/phy/qualcomm/phy-qcom-snps-femto-v2.c |   4 +-
 .../phy/qualcomm/phy-qcom-uniphy-pcie-28lp.c  |   3 +-
 drivers/phy/qualcomm/phy-qcom-usb-hs-28nm.c   |   3 +-
 drivers/phy/qualcomm/phy-qcom-usb-hs.c        |   3 +-
 drivers/phy/qualcomm/phy-qcom-usb-hsic.c      |   3 +-
 drivers/phy/qualcomm/phy-qcom-usb-ss.c        |   3 +-
 drivers/phy/ralink/phy-mt7621-pci.c           |   3 +-
 drivers/phy/ralink/phy-ralink-usb.c           |   3 +-
 drivers/phy/realtek/phy-rtk-usb2.c            |   3 +-
 drivers/phy/realtek/phy-rtk-usb3.c            |   3 +-
 drivers/phy/renesas/phy-rcar-gen2.c           |   3 +-
 drivers/phy/renesas/phy-rcar-gen3-pcie.c      |   4 +-
 drivers/phy/renesas/phy-rcar-gen3-usb2.c      |   3 +-
 drivers/phy/renesas/phy-rcar-gen3-usb3.c      |   3 +-
 drivers/phy/renesas/phy-rzg3e-usb3.c          |   3 +-
 drivers/phy/renesas/r8a779f0-ether-serdes.c   |   4 +-
 drivers/phy/rockchip/phy-rockchip-dp.c        |   3 +-
 drivers/phy/rockchip/phy-rockchip-dphy-rx0.c  |   3 +-
 drivers/phy/rockchip/phy-rockchip-emmc.c      |   3 +-
 .../phy/rockchip/phy-rockchip-inno-csidphy.c  |   3 +-
 .../phy/rockchip/phy-rockchip-inno-dsidphy.c  |   4 +-
 drivers/phy/rockchip/phy-rockchip-inno-hdmi.c |   2 +
 drivers/phy/rockchip/phy-rockchip-inno-usb2.c |   3 +-
 .../rockchip/phy-rockchip-naneng-combphy.c    |   3 +-
 drivers/phy/rockchip/phy-rockchip-pcie.c      |   2 +-
 .../phy/rockchip/phy-rockchip-samsung-dcphy.c |   3 +-
 .../phy/rockchip/phy-rockchip-samsung-hdptx.c |   2 +
 .../phy/rockchip/phy-rockchip-snps-pcie3.c    |   3 +-
 drivers/phy/rockchip/phy-rockchip-typec.c     |   5 +-
 drivers/phy/rockchip/phy-rockchip-usb.c       |   3 +-
 drivers/phy/rockchip/phy-rockchip-usbdp.c     |   2 +
 drivers/phy/samsung/phy-exynos-dp-video.c     |   3 +-
 drivers/phy/samsung/phy-exynos-mipi-video.c   |   3 +-
 drivers/phy/samsung/phy-exynos-pcie.c         |   3 +-
 drivers/phy/samsung/phy-exynos4210-usb2.c     |   3 +-
 drivers/phy/samsung/phy-exynos4x12-usb2.c     |   3 +-
 drivers/phy/samsung/phy-exynos5-usbdrd.c      |   2 +
 drivers/phy/samsung/phy-exynos5250-sata.c     |   3 +-
 drivers/phy/samsung/phy-exynos5250-usb2.c     |   3 +-
 drivers/phy/samsung/phy-s5pv210-usb2.c        |   3 +-
 drivers/phy/samsung/phy-samsung-ufs.c         |   2 +-
 drivers/phy/samsung/phy-samsung-ufs.h         |   3 +-
 drivers/phy/samsung/phy-samsung-usb2.c        |   2 +
 drivers/phy/samsung/phy-samsung-usb2.h        |   3 +-
 drivers/phy/socionext/phy-uniphier-ahci.c     |   3 +-
 drivers/phy/socionext/phy-uniphier-pcie.c     |   3 +-
 drivers/phy/socionext/phy-uniphier-usb2.c     |   3 +-
 drivers/phy/socionext/phy-uniphier-usb3hs.c   |   3 +-
 drivers/phy/socionext/phy-uniphier-usb3ss.c   |   3 +-
 drivers/phy/sophgo/phy-cv1800-usb2.c          |   3 +-
 drivers/phy/spacemit/phy-k1-pcie.c            |   4 +-
 drivers/phy/spacemit/phy-k1-usb2.c            |   2 +
 drivers/phy/st/phy-miphy28lp.c                |   4 +-
 drivers/phy/st/phy-spear1310-miphy.c          |   3 +-
 drivers/phy/st/phy-spear1340-miphy.c          |   3 +-
 drivers/phy/st/phy-stih407-usb.c              |   3 +-
 drivers/phy/st/phy-stm32-combophy.c           |   3 +-
 drivers/phy/st/phy-stm32-usbphyc.c            |   2 +
 drivers/phy/starfive/phy-jh7110-dphy-rx.c     |   3 +-
 drivers/phy/starfive/phy-jh7110-dphy-tx.c     |   3 +-
 drivers/phy/starfive/phy-jh7110-pcie.c        |   3 +-
 drivers/phy/starfive/phy-jh7110-usb.c         |   3 +-
 drivers/phy/sunplus/phy-sunplus-usb2.c        |   3 +-
 drivers/phy/tegra/phy-tegra194-p2u.c          |   3 +-
 drivers/phy/tegra/xusb-tegra124.c             |   2 +-
 drivers/phy/tegra/xusb-tegra186.c             |   2 +-
 drivers/phy/tegra/xusb-tegra210.c             |   2 +-
 drivers/phy/tegra/xusb.c                      |   2 +-
 drivers/phy/ti/phy-am654-serdes.c             |   3 +-
 drivers/phy/ti/phy-da8xx-usb.c                |   3 +-
 drivers/phy/ti/phy-dm816x-usb.c               |   3 +-
 drivers/phy/ti/phy-gmii-sel.c                 |   3 +-
 drivers/phy/ti/phy-omap-usb2.c                |   3 +-
 drivers/phy/ti/phy-ti-pipe3.c                 |   3 +-
 drivers/phy/ti/phy-tusb1210.c                 |   1 +
 drivers/phy/ti/phy-twl4030-usb.c              |   3 +-
 drivers/phy/xilinx/phy-zynqmp.c               |   4 +-
 drivers/pinctrl/tegra/pinctrl-tegra-xusb.c    |   2 +-
 drivers/power/supply/cpcap-charger.c          |   1 +
 drivers/ufs/host/ufs-exynos.c                 |  17 +-
 drivers/ufs/host/ufs-exynos.h                 |   1 +
 drivers/usb/chipidea/ci_hdrc_imx.c            |   1 +
 drivers/usb/core/hcd.c                        |   1 +
 drivers/usb/dwc3/dwc3-generic-plat.c          |   1 +
 drivers/usb/dwc3/gadget.c                     |   1 +
 include/linux/phy/phy-props.h                 |  75 +++
 include/linux/phy/phy-sun4i-usb.h             |   2 +-
 include/linux/phy/phy.h                       | 497 ++++--------------
 include/linux/phy/ulpi_phy.h                  |   2 +-
 235 files changed, 915 insertions(+), 694 deletions(-)
 create mode 100644 drivers/phy/phy-provider.h
 create mode 100644 include/linux/phy/phy-props.h

-- 
2.43.0