While adding support for the PCIe EP mode support to the QMP driver I couldn't help but notice that the QMP PHY driver has slowly become the a beast with tons of conditions and corner cases being inserted here and there.r This an RFC for an attempt to to cleanup the QMP driver by splitting the QMP PHY driver into five smaller drivers, each targeting a particular family of PHY backends (DP/combo, PCIe, UFS, USB and a separate driver for the MSM8996 PCIe PHY). Yes, this results in some code duplication, but I hope that the end result is still better than the current situation. Changes since RFC v2: - After dicussion with Vinod, revert back to the approach from RFC v1: copy the source and clean it up rather than creating new drivers from the blank space. This lowers the risc of breaking any of the platforms. - Drop common phy-qcom-qmp-lib.c for now. The goal of this patchseries is to be merged early during the development cycle to unblock further QMP driver development. Additional cleanups and code unification can come up later. Changes since RFC v1: - Split the patchset to be able to get through the email size limitations - Minor correcions to the split drivers Dmitry Baryshkov (30): phy: qcom-qmp: create copies of QMP PHY driver phy: qcom-qmp-combo: drop all non-combo compatibles support phy: qcom-qmp-pcie: drop all non-PCIe compatibles support phy: qcom-qmp-pcie-msm8996: drop all compatibles except msm8996-pcie-phy phy: qcom-qmp-ufs: drop all non-UFS compatibles support phy: qcom-qmp-usb: drop all non-USB compatibles support phy: qcom-qmp-combo: change symbol prefix to qcom_qmp_phy_combo phy: qcom-qmp-pcie: change symbol prefix to qcom_qmp_phy_pcie phy: qcom-qmp-pcie: change symbol prefix to qcom_qmp_phy_pcie_msm8996 phy: qcom-qmp-ufs: change symbol prefix to qcom_qmp_phy_ufs phy: qcom-qmp-usb: change symbol prefix to qcom_qmp_phy_usb phy: qcom-qmp: switch to new split QMP PHY driver phy: qcom-qmp: drop old QMP PHY driver source phy: qcom-qmp-combo: drop support for PCIe,UFS PHY types phy: qcom-qmp-pcie: drop support for non-PCIe PHY types phy: qcom-qmp-pcie-msm8996: drop support for non-PCIe PHY types phy: qcom-qmp-ufs: drop support for non-UFS PHY types phy: qcom-qmp-usb: drop support for non-USB PHY types phy: qcom-qmp-combo: cleanup the driver phy: qcom-qmp-pcie: cleanup the driver phy: qcom-qmp-pcie-msm8996: cleanup the driver phy: qcom-qmp-ufs: cleanup the driver phy: qcom-qmp-usb: cleanup the driver phy: qcom-qmp-pcie: drop multi-PHY support phy: qcom-qmp-ufs: drop multi-PHY support phy: qcom-qmp-usb: drop multi-PHY support phy: qcom-qmp-combo: use bulk reset_control API phy: qcom-qmp-pcie: use bulk reset_control API phy: qcom-qmp-pcie-msm8996: use bulk reset_control API phy: qcom-qmp-usb: use bulk reset_control API drivers/phy/qualcomm/Makefile | 8 +- drivers/phy/qualcomm/phy-qcom-qmp-combo.c | 2579 +++++++ .../phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c | 1081 +++ drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 2404 +++++++ drivers/phy/qualcomm/phy-qcom-qmp-ufs.c | 1390 ++++ drivers/phy/qualcomm/phy-qcom-qmp-usb.c | 2751 +++++++ drivers/phy/qualcomm/phy-qcom-qmp.c | 6350 ----------------- 7 files changed, 10212 insertions(+), 6351 deletions(-) create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-combo.c create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcie.c create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-ufs.c create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-usb.c delete mode 100644 drivers/phy/qualcomm/phy-qcom-qmp.c -- 2.35.1