Message ID | 20200926131157.14633-1-kholk11@gmail.com |
---|---|
State | New |
Headers | show |
Series | phy: qcom-qusb2: Add support for SDM630/660 | expand |
Tested on Xperia 10
Tested-by: Martin Botka <martin.botka1@gmail.com>
On Sat, Sep 26, 2020 at 03:11:57PM +0200, kholk11@gmail.com wrote: > From: Konrad Dybcio <konradybcio@gmail.com> > > QUSB on these SoCs actually uses *almost* the same > configuration that msm8996 does, so we can reuse > the phy_cfg from there with just a single change > (se clock scheme). > > Signed-off-by: Konrad Dybcio <konradybcio@gmail.com> > Signed-off-by: AngeloGioacchino Del Regno <kholk11@gmail.com> > --- > Documentation/devicetree/bindings/phy/qcom,qusb2-phy.yaml | 1 + > drivers/phy/qualcomm/phy-qcom-qusb2.c | 7 ++++++- > 2 files changed, 7 insertions(+), 1 deletion(-) > > diff --git a/Documentation/devicetree/bindings/phy/qcom,qusb2-phy.yaml b/Documentation/devicetree/bindings/phy/qcom,qusb2-phy.yaml > index ccda92859eca..97dae24752b4 100644 > --- a/Documentation/devicetree/bindings/phy/qcom,qusb2-phy.yaml > +++ b/Documentation/devicetree/bindings/phy/qcom,qusb2-phy.yaml > @@ -21,6 +21,7 @@ properties: > - qcom,ipq8074-qusb2-phy > - qcom,msm8996-qusb2-phy > - qcom,msm8998-qusb2-phy > + - qcom,sdm660-qusb2-phy > - items: > - enum: > - qcom,sc7180-qusb2-phy > diff --git a/drivers/phy/qualcomm/phy-qcom-qusb2.c b/drivers/phy/qualcomm/phy-qcom-qusb2.c > index 557547dabfd5..a4d706b361b9 100644 > --- a/drivers/phy/qualcomm/phy-qcom-qusb2.c > +++ b/drivers/phy/qualcomm/phy-qcom-qusb2.c > @@ -702,7 +702,8 @@ static int qusb2_phy_init(struct phy *phy) > usleep_range(150, 160); > > /* Default is single-ended clock on msm8996 */ > - qphy->has_se_clk_scheme = true; > + if (!of_device_is_compatible(phy->dev.of_node, "qcom,sdm660-qusb2-phy")) > + qphy->has_se_clk_scheme = true; You should just pull this from the driver data. > /* > * read TCSR_PHY_CLK_SCHEME register to check if single-ended > * clock scheme is selected. If yes, then disable differential > @@ -818,6 +819,10 @@ static const struct of_device_id qusb2_phy_of_match_table[] = { > }, { > .compatible = "qcom,msm8998-qusb2-phy", > .data = &msm8998_phy_cfg, > + }, { > + .compatible = "qcom,sdm660-qusb2-phy", > + /* sdm630/660 use the same config as msm8996. */ > + .data = &msm8996_phy_cfg, > }, { > /* > * Deprecated. Only here to support legacy device > -- > 2.28.0 >
>You should just pull this from the driver data.
I reused 8996's phy_cfg so as to change one line and not repeat dozens
for what's essentially the same thing, so I don't think it's the
better option..
Konrad
On Tue, Sep 29, 2020 at 2:25 PM Konrad Dybcio <konradybcio@gmail.com> wrote: > > >You should just pull this from the driver data. > > I reused 8996's phy_cfg so as to change one line and not repeat dozens > for what's essentially the same thing, so I don't think it's the > better option.. Okay, save it for the next person when the if statement grows. Rob
Tested on Xiaomi Redmi Note 7 (lavender), SDM660 Tested-by: Alexey Minnekhanov <alexeymin@postmarketos.org> On 9/26/20 4:11 PM, kholk11@gmail.com wrote: > From: Konrad Dybcio <konradybcio@gmail.com> > > QUSB on these SoCs actually uses *almost* the same > configuration that msm8996 does, so we can reuse > the phy_cfg from there with just a single change > (se clock scheme). > > Signed-off-by: Konrad Dybcio <konradybcio@gmail.com> > Signed-off-by: AngeloGioacchino Del Regno <kholk11@gmail.com> > --- > Documentation/devicetree/bindings/phy/qcom,qusb2-phy.yaml | 1 + > drivers/phy/qualcomm/phy-qcom-qusb2.c | 7 ++++++- > 2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/phy/qcom,qusb2-phy.yaml b/Documentation/devicetree/bindings/phy/qcom,qusb2-phy.yaml index ccda92859eca..97dae24752b4 100644 --- a/Documentation/devicetree/bindings/phy/qcom,qusb2-phy.yaml +++ b/Documentation/devicetree/bindings/phy/qcom,qusb2-phy.yaml @@ -21,6 +21,7 @@ properties: - qcom,ipq8074-qusb2-phy - qcom,msm8996-qusb2-phy - qcom,msm8998-qusb2-phy + - qcom,sdm660-qusb2-phy - items: - enum: - qcom,sc7180-qusb2-phy diff --git a/drivers/phy/qualcomm/phy-qcom-qusb2.c b/drivers/phy/qualcomm/phy-qcom-qusb2.c index 557547dabfd5..a4d706b361b9 100644 --- a/drivers/phy/qualcomm/phy-qcom-qusb2.c +++ b/drivers/phy/qualcomm/phy-qcom-qusb2.c @@ -702,7 +702,8 @@ static int qusb2_phy_init(struct phy *phy) usleep_range(150, 160); /* Default is single-ended clock on msm8996 */ - qphy->has_se_clk_scheme = true; + if (!of_device_is_compatible(phy->dev.of_node, "qcom,sdm660-qusb2-phy")) + qphy->has_se_clk_scheme = true; /* * read TCSR_PHY_CLK_SCHEME register to check if single-ended * clock scheme is selected. If yes, then disable differential @@ -818,6 +819,10 @@ static const struct of_device_id qusb2_phy_of_match_table[] = { }, { .compatible = "qcom,msm8998-qusb2-phy", .data = &msm8998_phy_cfg, + }, { + .compatible = "qcom,sdm660-qusb2-phy", + /* sdm630/660 use the same config as msm8996. */ + .data = &msm8996_phy_cfg, }, { /* * Deprecated. Only here to support legacy device