phy: qcom-qmp-ufs: drop legacy DT workaround
Commit 5e17b95d98
("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-11-johan+linaro@kernel.org
Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
parent
064bbdba4f
commit
6382555874
|
@ -38,9 +38,6 @@
|
||||||
|
|
||||||
#define PHY_INIT_COMPLETE_TIMEOUT 10000
|
#define PHY_INIT_COMPLETE_TIMEOUT 10000
|
||||||
|
|
||||||
/* Define the assumed distance between lanes for underspecified device trees. */
|
|
||||||
#define QMP_PHY_LEGACY_LANE_STRIDE 0x400
|
|
||||||
|
|
||||||
struct qmp_phy_init_tbl {
|
struct qmp_phy_init_tbl {
|
||||||
unsigned int offset;
|
unsigned int offset;
|
||||||
unsigned int val;
|
unsigned int val;
|
||||||
|
@ -1137,28 +1134,16 @@ static int qmp_ufs_create(struct device *dev, struct device_node *np, int id,
|
||||||
if (IS_ERR(qphy->pcs))
|
if (IS_ERR(qphy->pcs))
|
||||||
return PTR_ERR(qphy->pcs);
|
return PTR_ERR(qphy->pcs);
|
||||||
|
|
||||||
/*
|
|
||||||
* 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) {
|
if (cfg->is_dual_lane_phy) {
|
||||||
qphy->tx2 = devm_of_iomap(dev, np, 3, NULL);
|
qphy->tx2 = devm_of_iomap(dev, np, 3, NULL);
|
||||||
|
if (IS_ERR(qphy->tx2))
|
||||||
|
return PTR_ERR(qphy->tx2);
|
||||||
|
|
||||||
qphy->rx2 = devm_of_iomap(dev, np, 4, NULL);
|
qphy->rx2 = devm_of_iomap(dev, np, 4, NULL);
|
||||||
if (IS_ERR(qphy->tx2) || IS_ERR(qphy->rx2)) {
|
if (IS_ERR(qphy->rx2))
|
||||||
dev_warn(dev,
|
return PTR_ERR(qphy->rx2);
|
||||||
"Underspecified device tree, falling back to legacy register regions\n");
|
|
||||||
|
|
||||||
/* 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->pcs_misc = devm_of_iomap(dev, np, 5, NULL);
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
qphy->pcs_misc = devm_of_iomap(dev, np, 3, NULL);
|
qphy->pcs_misc = devm_of_iomap(dev, np, 3, NULL);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue