[PATCH v2 00/15] usb: typec: qcom-pmic-typec: enable support for PMI632 PMIC

Luca Weiss luca.weiss at fairphone.com
Tue Jan 23 12:43:20 PST 2024


On Sat Jan 13, 2024 at 9:55 PM CET, Dmitry Baryshkov wrote:
> The Qualcomm PMI632 PMIC (found on Qualcomm Robotics RB2 platform)
> doesn't support USB Power Delivery. However this PMIC still supports
> handling of the Type-C port (orientation detection, etc). Reuse exiting
> qcom-pmic-typec driver to support Type-C related functionality of this
> PMIC. Use this to enable USB-C connector support on the RB2 platform.

Hi Dmitry,

I'm happy to report that testing this series on v6.8-rc1 kernel on
sdm632-fairphone-fp3 shows that USB role switching is working with this!

It's not extensive testing but plugging in a USB stick and USB headphone
jack dongle in both directions show up in dmesg as expected, and
afterwards also USB networking gadget still works to ssh into the
device.

My .dts part is a bit different to your RB2 dts since
sdm632-fairphone-fp3 doesn't support USB 3.0, only USB 2.0, but
otherwise looks pretty similar. I'll send a patch for that once your
series has landed.

Not sure on which patches it makes sense, but have my:

Tested-by: Luca Weiss <luca.weiss at fairphone.com> # sdm632-fairphone-fp3

And for reference:

Only thing I've noticed here is "Host supports USB 3.0 SuperSpeed" which
is half true, to my knowledge SDM632 does support USB 3.0 but it's not
hooked up (for some reason) on most MSM8953/SDM632-based devices.

[   22.986096] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[   22.986273] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 1
[   22.990847] xhci-hcd xhci-hcd.1.auto: hcc params 0x0230f665 hci version 0x100 quirks 0x0000000002000010
[   22.998260] xhci-hcd xhci-hcd.1.auto: irq 57, io mem 0x07000000
[   23.007684] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[   23.013435] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 2
[   23.019029] xhci-hcd xhci-hcd.1.auto: Host supports USB 3.0 SuperSpeed
[   23.027696] hub 1-0:1.0: USB hub found
[   23.033167] hub 1-0:1.0: 1 port detected
[   23.037538] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[   23.041853] hub 2-0:1.0: USB hub found
[   23.049034] hub 2-0:1.0: 1 port detected
[   23.120301] qcom,pmic-typec 200f000.spmi:pmic at 2:typec at 1500: vbus vsafe5v fail
[   23.845537] usb 1-1: new high-speed USB device number 2 using xhci-hcd
[   23.995466] usb-storage 1-1:1.0: USB Mass Storage device detected
[   23.996166] scsi host0: usb-storage 1-1:1.0
[   25.022547] scsi 0:0:0:0: Direct-Access     SanDisk  Ultra            1.00 PQ: 0 ANSI: 6
[   25.023926] sd 0:0:0:0: [sda] 60062500 512-byte logical blocks: (30.8 GB/28.6 GiB)
[   25.030873] sd 0:0:0:0: [sda] Write Protect is off
[   25.037204] sd 0:0:0:0: [sda] Mode Sense: 43 00 00 00
[   25.042395] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[   25.070314]  sda: sda1 sda2 sda3
[   25.071050] sd 0:0:0:0: [sda] Attached SCSI removable disk


[   31.347094] usb 1-1: USB disconnect, device number 2
[   31.364973] xhci-hcd xhci-hcd.1.auto: remove, state 4
[   31.365149] usb usb2: USB disconnect, device number 1
[   31.370427] xhci-hcd xhci-hcd.1.auto: USB bus 2 deregistered
[   31.374236] xhci-hcd xhci-hcd.1.auto: remove, state 1
[   31.379906] usb usb1: USB disconnect, device number 1
[   31.475790] xhci-hcd xhci-hcd.1.auto: USB bus 1 deregistered

Regards
Luca


>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov at linaro.org>
> ---
> Changes in v2:
> - Split qcom_pmic_typec_pdphy_set_roles() changes to separate patch
>   (Konrad)
> - Simplified devm_kzalloc / sizeof() argument (Konrad)
> - Made start / stop callbacks mandatory (Bryan)
> - Reworked Type-C port handling into a backend similar to PD PHY (Bryan)
> - Made more qcom-pmic-typec data static const (Bryan)
> - Squashed usbc PHY single-lane removal patch (Konrad)
> - Further usbc PHY cleanup (Konrad)
> - Fixed order of DT properties in pmi632.dtsi (Konrad)
> - Instead of specifying bogus PDOs for the port, specify pd-disable and
>   typec-power-opmode properties for the connector
> - Moved orientation-switch / usb-dual-role properties to sm6115.dtsi
>   (Konrad)
> - Linked usb_dwc3_ss and usb_qmpphy_usb_ss_in
> - Link to v1: https://lore.kernel.org/r/20240113-pmi632-typec-v1-0-de7dfd459353@linaro.org
>
> ---
> Dmitry Baryshkov (14):
>       dt-bindings: regulator: qcom,usb-vbus-regulator: add support for PMI632
>       dt-bindings: usb: qcom,pmic-typec: add support for the PMI632 block
>       dt-bindings: phy: qcom,msm8998-qmp-usb3-phy: split from sc8280xp PHY schema
>       dt-bindings: phy: qcom,msm8998-qmp-usb3-phy: support USB-C data
>       usb: typec: tcpm: fix the PD disabled case
>       usb: typec: qcom-pmic-typec: fix arguments of qcom_pmic_typec_pdphy_set_roles
>       usb: typec: qcom-pmic-typec: allow different implementations for the PD PHY
>       usb: typec: qcom-pmic-typec: allow different implementations for the port backend
>       usb: typec: qcom-pmic-typec: add support for PMI632 PMIC
>       phy: qcom: qmp-usb: split USB-C PHY driver
>       phy: qcom: qmp-usb: drop dual-lane handling
>       phy: qcom: qmp-usbc: add support for the Type-C handling
>       arm64: dts: qcom: pmi632: define USB-C related blocks
>       arm64: dts: qcom: qrb4210-rb2: enable USB-C port handling
>
> Vladimir Zapolskiy (1):
>       arm64: dts: qcom: sm6115: drop pipe clock selection
>
>  .../bindings/phy/qcom,msm8998-qmp-usb3-phy.yaml    |  171 +++
>  .../phy/qcom,sc8280xp-qmp-usb3-uni-phy.yaml        |   22 -
>  .../regulator/qcom,usb-vbus-regulator.yaml         |    9 +-
>  .../devicetree/bindings/usb/qcom,pmic-typec.yaml   |   28 +-
>  arch/arm64/boot/dts/qcom/pmi632.dtsi               |   30 +
>  arch/arm64/boot/dts/qcom/qrb4210-rb2.dts           |   50 +-
>  arch/arm64/boot/dts/qcom/sm6115.dtsi               |   44 +-
>  drivers/phy/qualcomm/Makefile                      |    2 +-
>  drivers/phy/qualcomm/phy-qcom-qmp-usb.c            |  323 +-----
>  drivers/phy/qualcomm/phy-qcom-qmp-usbc.c           | 1169 ++++++++++++++++++++
>  drivers/usb/typec/tcpm/qcom/Makefile               |    3 +-
>  drivers/usb/typec/tcpm/qcom/qcom_pmic_typec.c      |  254 +----
>  drivers/usb/typec/tcpm/qcom/qcom_pmic_typec.h      |   27 +
>  .../usb/typec/tcpm/qcom/qcom_pmic_typec_pdphy.c    |  157 ++-
>  .../usb/typec/tcpm/qcom/qcom_pmic_typec_pdphy.h    |   94 +-
>  .../typec/tcpm/qcom/qcom_pmic_typec_pdphy_stub.c   |   80 ++
>  drivers/usb/typec/tcpm/qcom/qcom_pmic_typec_port.c |  290 ++++-
>  drivers/usb/typec/tcpm/qcom/qcom_pmic_typec_port.h |  172 +--
>  drivers/usb/typec/tcpm/tcpm.c                      |    3 +-
>  19 files changed, 2058 insertions(+), 870 deletions(-)
> ---
> base-commit: 9e21984d62c56a0f6d1fc6f76b646212cfd7fe88
> change-id: 20240112-pmi632-typec-4c7533092387
>
> Best regards,




More information about the linux-phy mailing list