lkml.org 
[lkml]   [2022]   [Dec]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] Revert "phy: qualcomm: usb28nm: Add MDM9607 init sequence"
    Date
    This reverts commit 557a28811c7e0286d3816842032db5eb7bb5f156.

    This commit introduced an init sequence from downstream DT [1] in the
    driver. As mentioned by the comment above the HSPHY_INIT_CFG macro for
    this sequence:

    /*
    * The macro is used to define an initialization sequence. Each tuple
    * is meant to program 'value' into phy register at 'offset' with 'delay'
    * in us followed.
    */

    Instead of corresponding to offsets into the phy register, the sequence
    read by the downstream driver [2] is passed into ulpi_write [3] which
    crafts the address-value pair into a new value and writes it into the
    same register at USB_ULPI_VIEWPORT [4]. In other words, this init
    sequence is programmed into the hardware in a totally different way than
    downstream and is unlikely to achieve the desired result, if the hsphy
    is working at all.

    An alternative method needs to be found to write these init values at
    the desired location. Fortunately mdm9607 did not land upstream yet [5]
    and should have its compatible revised to use the generic one, instead
    of a compatible that writes wrong data to the wrong registers.

    [1]: https://android.googlesource.com/kernel/msm/+/android-7.1.0_r0.2/arch/arm/boot/dts/qcom/mdm9607.dtsi#585
    [2]: https://android.googlesource.com/kernel/msm/+/android-7.1.0_r0.2/drivers/usb/phy/phy-msm-usb.c#4183
    [3]: https://android.googlesource.com/kernel/msm/+/android-7.1.0_r0.2/drivers/usb/phy/phy-msm-usb.c#468
    [4]: https://android.googlesource.com/kernel/msm/+/android-7.1.0_r0.2/drivers/usb/phy/phy-msm-usb.c#418
    [5]: https://lore.kernel.org/linux-arm-msm/20210805222812.40731-1-konrad.dybcio@somainline.org/

    Reported-by: Michael Srba <Michael.Srba@seznam.cz>
    Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org>
    ---
    .../devicetree/bindings/phy/qcom,usb-hs-28nm.yaml | 1 -
    drivers/phy/qualcomm/phy-qcom-usb-hs-28nm.c | 13 -------------
    2 files changed, 14 deletions(-)

    diff --git a/Documentation/devicetree/bindings/phy/qcom,usb-hs-28nm.yaml b/Documentation/devicetree/bindings/phy/qcom,usb-hs-28nm.yaml
    index abcc4373f39e..ca6a0836b53c 100644
    --- a/Documentation/devicetree/bindings/phy/qcom,usb-hs-28nm.yaml
    +++ b/Documentation/devicetree/bindings/phy/qcom,usb-hs-28nm.yaml
    @@ -16,7 +16,6 @@ properties:
    compatible:
    enum:
    - qcom,usb-hs-28nm-femtophy
    - - qcom,usb-hs-28nm-mdm9607

    reg:
    maxItems: 1
    diff --git a/drivers/phy/qualcomm/phy-qcom-usb-hs-28nm.c b/drivers/phy/qualcomm/phy-qcom-usb-hs-28nm.c
    index 8807e59a1162..a52a9bf13b75 100644
    --- a/drivers/phy/qualcomm/phy-qcom-usb-hs-28nm.c
    +++ b/drivers/phy/qualcomm/phy-qcom-usb-hs-28nm.c
    @@ -401,26 +401,13 @@ static const struct hsphy_init_seq init_seq_femtophy[] = {
    HSPHY_INIT_CFG(0x90, 0x60, 0),
    };

    -static const struct hsphy_init_seq init_seq_mdm9607[] = {
    - HSPHY_INIT_CFG(0x80, 0x44, 0),
    - HSPHY_INIT_CFG(0x81, 0x38, 0),
    - HSPHY_INIT_CFG(0x82, 0x24, 0),
    - HSPHY_INIT_CFG(0x83, 0x13, 0),
    -};
    -
    static const struct hsphy_data hsphy_data_femtophy = {
    .init_seq = init_seq_femtophy,
    .init_seq_num = ARRAY_SIZE(init_seq_femtophy),
    };

    -static const struct hsphy_data hsphy_data_mdm9607 = {
    - .init_seq = init_seq_mdm9607,
    - .init_seq_num = ARRAY_SIZE(init_seq_mdm9607),
    -};
    -
    static const struct of_device_id qcom_snps_hsphy_match[] = {
    { .compatible = "qcom,usb-hs-28nm-femtophy", .data = &hsphy_data_femtophy, },
    - { .compatible = "qcom,usb-hs-28nm-mdm9607", .data = &hsphy_data_mdm9607, },
    { },
    };
    MODULE_DEVICE_TABLE(of, qcom_snps_hsphy_match);
    --
    2.39.0
    \
     
     \ /
      Last update: 2022-12-14 23:39    [W:2.928 / U:0.636 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site