Re: [PATCH v4 00/18] Add Qualcomm PMIC TPCM support

Luca Weiss
2023-03-24T15:10:42Z

Hi Bryan,

On Sat Mar 18, 2023 at 1:18 PM CET, Bryan O'Donoghue wrote:
> Bryan O'Donoghue (17):
> dt-bindings: regulator: qcom,usb-vbus-regulator: Mark reg as required
> dt-bindings: regulator: qcom,usb-vbus-regulator: Mark
> regulator-*-microamp required
> dt-bindings: phy: qcom,sc7180-qmp-usb3-dp-phy: Add orientation-switch
> as optional
> dt-bindings: phy: qcom,sc7180-qmp-usb3-dp-phy: Add port as an optional
> dt-bindings: usb: Add qcom,pmic-typec dt-binding header
> dt-bindings: usb: Add Qualcomm PMIC Type-C controller YAML schema
> dt-bindings: usb: Add qcom,pmic-pdphy dt-binding header
> dt-bindings: usb: Add Qualcomm PMIC PDPHY controller YAML schema
> dt-bindings: usb: Add Qualcomm PMIC TCPM YAML schema
> dt-bindings: mfd: qcom,spmi-pmic: Add pdphy to SPMI device types
> dt-bindings: mfd: qcom,spmi-pmic: Add typec to SPMI device types
> usb: typec: qcom: Add Qualcomm PMIC TCPM support
> arm64: dts: qcom: pm8150b: Add a TCPM description
> arm64: dts: qcom: qrb5165-rb5: Switch on Type-C VBUS boost
> arm64: dts: qcom: qrb5165-rb5: Switch on basic TCPM
> arm64: dts: qcom: qrb5165-rb5: Switch on TCPM usb-role-switching for
> usb_1
> arm64: dts: qcom: qrb5165-rb5: Switch on TCPM orientation-switch for
> usb_1_qmpphy
>
> Dmitry Baryshkov (1):
> phy: qcom-qmp: Register as a typec switch for orientation detection

I've just given this a spin on sm7225-fairphone-fp4 with pm7250b as the
PMIC (instead of pm8150b).

Overall it seems to work, which is awesome! I think I sent you emails in
the past where I had troubles getting earlier revisions to work.

Still there's some rough edges:

As Jianhua Lu has already reported, I'm also hitting the vbus vsafe5v
message quite often. Returning 0 in that function on error seems to work
around it and everything appears to be fine regardless.

[ 243.939593] qcom,pmic-typec c440000.spmi:pmic@2:typec@1500: vbus vsafe5v fail
[ 243.939600] qcom,pmic-tcpm pm7250b-tcpm: set_vbus set: 1 result -110

If you want to take a peek at the schematics for this device, they're
available here:
https://www.fairphone.com/wp-content/uploads/2022/09/FP4_Information-for-repairers-and-recyclers.pdf
USB things you can find on page 57, the pm7250b is on page 49.

When plugging in the device with TCPM on into my PC (peripheral mode)
then the USB device registers and unregisters every couple of seconds,
never stays stable on. No messages in dmesg when this happens. This only
happens with the USB-C plug in one direction, in the other it
works reliable.

Also I've had it that at some point the usb connection seemed to be kind
of stuck on host mode, plugging the device into my PC didn't appear to
do anything.

For host mode I tried using both a USB stick and a USB-C to headphone
jack dongle, both work fine in both directions.

In any case, I look very much forward to this landing, it will be
awesome to have this feature working OOTB! And let me know if you need
anything tested on this hardware.

Regards
Luca

>
> .../bindings/mfd/qcom,spmi-pmic.yaml | 8 +
> .../phy/qcom,sc7180-qmp-usb3-dp-phy.yaml | 10 +
> .../regulator/qcom,usb-vbus-regulator.yaml | 10 +-
> .../bindings/usb/qcom,pmic-pdphy.yaml | 89 +++
> .../bindings/usb/qcom,pmic-typec.yaml | 88 +++
> .../bindings/usb/qcom,pmic-virt-tcpm.yaml | 88 +++
> MAINTAINERS | 10 +
> arch/arm64/boot/dts/qcom/pm8150b.dtsi | 70 ++
> arch/arm64/boot/dts/qcom/qrb5165-rb5.dts | 63 +-
> drivers/phy/qualcomm/Kconfig | 8 +
> drivers/phy/qualcomm/phy-qcom-qmp-combo.c | 80 ++-
> drivers/usb/typec/Kconfig | 13 -
> drivers/usb/typec/Makefile | 1 -
> drivers/usb/typec/qcom-pmic-typec.c | 261 -------
> drivers/usb/typec/tcpm/Kconfig | 11 +
> drivers/usb/typec/tcpm/Makefile | 1 +
> drivers/usb/typec/tcpm/qcom/Makefile | 6 +
> drivers/usb/typec/tcpm/qcom/qcom_pmic_pdphy.c | 605 +++++++++++++++++
> drivers/usb/typec/tcpm/qcom/qcom_pmic_pdphy.h | 85 +++
> drivers/usb/typec/tcpm/qcom/qcom_pmic_typec.c | 637 ++++++++++++++++++
> drivers/usb/typec/tcpm/qcom/qcom_pmic_typec.h | 163 +++++
> .../usb/typec/tcpm/qcom/qcom_pmic_virt_tcpm.c | 326 +++++++++
> .../dt-bindings/usb/typec/qcom,pmic-pdphy.h | 18 +
> .../dt-bindings/usb/typec/qcom,pmic-typec.h | 18 +
> 24 files changed, 2388 insertions(+), 281 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/usb/qcom,pmic-pdphy.yaml
> create mode 100644 Documentation/devicetree/bindings/usb/qcom,pmic-typec.yaml
> create mode 100644 Documentation/devicetree/bindings/usb/qcom,pmic-virt-tcpm.yaml
> delete mode 100644 drivers/usb/typec/qcom-pmic-typec.c
> create mode 100644 drivers/usb/typec/tcpm/qcom/Makefile
> create mode 100644 drivers/usb/typec/tcpm/qcom/qcom_pmic_pdphy.c
> create mode 100644 drivers/usb/typec/tcpm/qcom/qcom_pmic_pdphy.h
> create mode 100644 drivers/usb/typec/tcpm/qcom/qcom_pmic_typec.c
> create mode 100644 drivers/usb/typec/tcpm/qcom/qcom_pmic_typec.h
> create mode 100644 drivers/usb/typec/tcpm/qcom/qcom_pmic_virt_tcpm.c
> create mode 100644 include/dt-bindings/usb/typec/qcom,pmic-pdphy.h
> create mode 100644 include/dt-bindings/usb/typec/qcom,pmic-typec.h
>
> --
> 2.39.2