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

Dmitry Baryshkov dmitry.baryshkov at linaro.org
Tue Jan 23 17:43:59 PST 2024


On Tue, 23 Jan 2024 at 22:43, Luca Weiss <luca.weiss at fairphone.com> wrote:
>
> 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

Probably this makes sense on pmi632 patches, as you definitely tested
only those and not RB2 ones.

>
> 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.

I suppose it is the same story as SDM660. The SoC supports USB 3.0,
but device manufacturers at that time didn't care for the sake of
making them cheaper. So development kits had USB 3.0 (e.g. IFC6560),
but the actual phones didn't.

>
> [   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,
>


-- 
With best wishes
Dmitry



More information about the linux-phy mailing list