Message ID | 20240116-usbc-phy-vls-clamp-v1-0-73b2da7691c5@linaro.org |
---|---|
Headers | show |
Series | phy: qcom: qmp-usbc: properly handle the clamping register | expand |
On 1/16/24 02:08, Dmitry Baryshkov wrote: > The QMP USB PHYs on msm8998, qcm2290 and some other platforms don't have > the PCS_MISC_CLAMP_ENABLE register. Instead they need to toggle the > register in the TCSR space. Make the new phy-qcom-qmp-usbc driver > correctly handle the clamp register. > > Fixes: a51969fafc82 ("phy: qcom-qmp: Add QMP V3 USB3 PHY support for msm8998") > Fixes: 8abe5e778b2c ("phy: qcom-qmp: Add QCM2290 USB3 PHY support") > Cc: Jeffrey Hugo <quic_jhugo@quicinc.com> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > --- [...] > + > + /* for backwards compatibility ignore if there is no property */ Double space Looks good otherwise, I think! Konrad
The USB-C PHY on the MSM8998, QCM2290, SM6115 and several other platforms doesn't have built-in PCS_MISC_CLAMP_ENABLE register. Instead clamping is handled separately via the register in the TCSR space. Make the new phy-qcom-qmp-usbc driver correctly handle the clamp register. For backwards compatibility the driver treats these registers as optional. They are only required for the PHY suspend/resume. However the schema declares corresponding property as required, it should be present on all relevant platforms. At this point I'm not sure whether having a single TCSR-based register will be enough or whether we will have to add more TCSR registers in future. In order to avoid repeating TCSR handle (and having multiple instances of TCSR regmap in the driver) use qcom,tcsr-reg property rather than someting more exact like qcom,vls-clamp-reg. Dependecies: PHY-related changes of [1] Note for the backporters: if the patch is packported to the kernel before the phy-qocm-qmp-usbc split, the phy-qcom-qmp-usb driver needs to handle both PCS_MISC_CLAMP_ENABLE and VLS_CLAMP registers as optional. [1] https://lore.kernel.org/linux-arm-msm/20240113-pmi632-typec-v2-0-182d9aa0a5b3@linaro.org/ Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- Dmitry Baryshkov (6): dt-bindings: mfd: qcom,tcsr: Add compatibles for QCM2290 and SM6115 dt-bindings: phy: qcom,msm8998-qmp-usb3-phy: add TCSR registers phy: qcom: qmp-usbc: handle CLAMP register in a correct way arm64: dts: qcom: msm8998: declare VLS CLAMP register for USB3 PHY arm64: dts: qcom: qcm2290: declare VLS CLAMP register for USB3 PHY arm64: dts: qcom: sm6115: declare VLS CLAMP register for USB3 PHY .../devicetree/bindings/mfd/qcom,tcsr.yaml | 2 + .../bindings/phy/qcom,msm8998-qmp-usb3-phy.yaml | 11 +++++ arch/arm64/boot/dts/qcom/msm8998.dtsi | 2 + arch/arm64/boot/dts/qcom/qcm2290.dtsi | 7 ++++ arch/arm64/boot/dts/qcom/sm6115.dtsi | 7 ++++ drivers/phy/qualcomm/phy-qcom-qmp-usbc.c | 48 +++++++++++++++++----- 6 files changed, 66 insertions(+), 11 deletions(-) --- base-commit: d0f9c0b672a974d32c40d369f63e441a7dd66d74 change-id: 20240116-usbc-phy-vls-clamp-10189efdcf12 Best regards,