aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/phy/qualcomm
diff options
context:
space:
mode:
authorJohan Hovold <johan+linaro@kernel.org>2022-09-16 12:23:40 +0200
committerVinod Koul <vkoul@kernel.org>2022-09-20 11:31:17 +0530
commit264dac74e7a31a726bd0bee3d1403faa1e2ae529 (patch)
treed549f6e754249816eae84a93ccfe75bc7cf64982 /drivers/phy/qualcomm
parentphy: qcom-qmp-ufs: drop legacy DT workaround (diff)
downloadlinux-dev-264dac74e7a31a726bd0bee3d1403faa1e2ae529.tar.xz
linux-dev-264dac74e7a31a726bd0bee3d1403faa1e2ae529.zip
phy: qcom-qmp-usb: drop legacy DT workaround
Commit 5e17b95d9893 ("phy: qcom-qmp: Utilize fully-specified DT registers") added a workaround for legacy devicetrees which did not specify register regions for the second lane of some dual-lane PHYs. At the time, the only two dual-lane PHYs supported by mainline were "qcom,sdm845-qmp-usb3-phy" and "qcom,sdm845-qmp-ufs-phy" and they had been added to the binding less than six months before the binding was fixed. Presumably no one is using four-year old SDM845 dtbs with mainline anymore so drop the workaround for malformed devicetrees. In the unlikely event that anyone complains, we can consider reverting. Signed-off-by: Johan Hovold <johan+linaro@kernel.org> Link: https://lore.kernel.org/r/20220916102340.11520-12-johan+linaro@kernel.org Signed-off-by: Vinod Koul <vkoul@kernel.org>
Diffstat (limited to 'drivers/phy/qualcomm')
-rw-r--r--drivers/phy/qualcomm/phy-qcom-qmp-usb.c27
1 files changed, 6 insertions, 21 deletions
diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-usb.c b/drivers/phy/qualcomm/phy-qcom-qmp-usb.c
index 41513cef3d99..93994f1a46e2 100644
--- a/drivers/phy/qualcomm/phy-qcom-qmp-usb.c
+++ b/drivers/phy/qualcomm/phy-qcom-qmp-usb.c
@@ -66,9 +66,6 @@
#define POWER_DOWN_DELAY_US_MIN 10
#define POWER_DOWN_DELAY_US_MAX 11
-/* Define the assumed distance between lanes for underspecified device trees. */
-#define QMP_PHY_LEGACY_LANE_STRIDE 0x400
-
struct qmp_phy_init_tbl {
unsigned int offset;
unsigned int val;
@@ -2667,28 +2664,16 @@ int qmp_usb_create(struct device *dev, struct device_node *np, int id,
if (cfg->pcs_usb_offset)
qphy->pcs_usb = qphy->pcs + cfg->pcs_usb_offset;
- /*
- * If this is a dual-lane PHY, then there should be registers for the
- * second lane. Some old device trees did not specify this, so fall
- * back to old legacy behavior of assuming they can be reached at an
- * offset from the first lane.
- */
if (cfg->is_dual_lane_phy) {
qphy->tx2 = devm_of_iomap(dev, np, 3, NULL);
- qphy->rx2 = devm_of_iomap(dev, np, 4, NULL);
- if (IS_ERR(qphy->tx2) || IS_ERR(qphy->rx2)) {
- dev_warn(dev,
- "Underspecified device tree, falling back to legacy register regions\n");
+ if (IS_ERR(qphy->tx2))
+ return PTR_ERR(qphy->tx2);
- /* In the old version, pcs_misc is at index 3. */
- qphy->pcs_misc = qphy->tx2;
- qphy->tx2 = qphy->tx + QMP_PHY_LEGACY_LANE_STRIDE;
- qphy->rx2 = qphy->rx + QMP_PHY_LEGACY_LANE_STRIDE;
-
- } else {
- qphy->pcs_misc = devm_of_iomap(dev, np, 5, NULL);
- }
+ qphy->rx2 = devm_of_iomap(dev, np, 4, NULL);
+ if (IS_ERR(qphy->rx2))
+ return PTR_ERR(qphy->rx2);
+ qphy->pcs_misc = devm_of_iomap(dev, np, 5, NULL);
} else {
qphy->pcs_misc = devm_of_iomap(dev, np, 3, NULL);
}