[PATCH 0/8] typec: mux: Introduce support for multiple TypeC muxes

Bjorn Andersson posted 8 patches 4 years, 6 months ago
There is a newer version of this series
.../bindings/phy/qcom,qmp-usb3-dp-phy.yaml    |  14 +
.../devicetree/bindings/usb/fcs,fsa4480.yaml  |  72 +++++
drivers/base/property.c                       |  83 ++++--
drivers/phy/qualcomm/phy-qcom-qmp.c           | 176 ++++++++++--
drivers/usb/typec/bus.c                       |   2 +-
drivers/usb/typec/mux.c                       | 257 +++++++++++++-----
drivers/usb/typec/mux.h                       |  12 +-
drivers/usb/typec/mux/Kconfig                 |   9 +
drivers/usb/typec/mux/Makefile                |   1 +
drivers/usb/typec/mux/fsa4480.c               | 220 +++++++++++++++
drivers/usb/typec/mux/intel_pmc_mux.c         |   8 +-
drivers/usb/typec/mux/pi3usb30532.c           |   8 +-
include/linux/property.h                      |   5 +
include/linux/usb/typec_mux.h                 |  22 +-
14 files changed, 762 insertions(+), 127 deletions(-)
create mode 100644 Documentation/devicetree/bindings/usb/fcs,fsa4480.yaml
create mode 100644 drivers/usb/typec/mux/fsa4480.c
[PATCH 0/8] typec: mux: Introduce support for multiple TypeC muxes
Posted by Bjorn Andersson 4 years, 6 months ago
This series introduces a level of indirection between the controller's view of
a typec_mux/switch and the implementation and then expands that to support
multiple drivers.

This is needed in order to support devices such as the Qualcomm Snapdragon 888
HDK, which does muxing and orientation handling in the QMP (USB+DP) PHY and SBU
muxing in the external FSA4480 chip.

Additionally integration of typec mux and switch in the QMP PHY is included in
the series, as is the new FSA4480 driver. This is done to deal with the
renaming of the driver-side typec_mux -> typec_mux_dev.

Bjorn Andersson (8):
  dt-bindings: phy: qcom,qmp-usb3-dp: Add altmode/switch properties
  phy: qcom-qmp: Register typec mux and orientation switch
  device property: Helper to match multiple connections
  device property: Use multi-connection matchers for single case
  typec: mux: Introduce indirection
  typec: mux: Allow multiple mux_devs per mux
  dt-bindings: usb: Add binding for fcs,fsa4480
  usb: typec: mux: Add On Semi fsa4480 driver

 .../bindings/phy/qcom,qmp-usb3-dp-phy.yaml    |  14 +
 .../devicetree/bindings/usb/fcs,fsa4480.yaml  |  72 +++++
 drivers/base/property.c                       |  83 ++++--
 drivers/phy/qualcomm/phy-qcom-qmp.c           | 176 ++++++++++--
 drivers/usb/typec/bus.c                       |   2 +-
 drivers/usb/typec/mux.c                       | 257 +++++++++++++-----
 drivers/usb/typec/mux.h                       |  12 +-
 drivers/usb/typec/mux/Kconfig                 |   9 +
 drivers/usb/typec/mux/Makefile                |   1 +
 drivers/usb/typec/mux/fsa4480.c               | 220 +++++++++++++++
 drivers/usb/typec/mux/intel_pmc_mux.c         |   8 +-
 drivers/usb/typec/mux/pi3usb30532.c           |   8 +-
 include/linux/property.h                      |   5 +
 include/linux/usb/typec_mux.h                 |  22 +-
 14 files changed, 762 insertions(+), 127 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/usb/fcs,fsa4480.yaml
 create mode 100644 drivers/usb/typec/mux/fsa4480.c

-- 
2.33.1

Re: [PATCH 0/8] typec: mux: Introduce support for multiple TypeC muxes
Posted by Hans de Goede 4 years, 6 months ago
Hi Bjorn,

On 12/28/21 06:21, Bjorn Andersson wrote:
> This series introduces a level of indirection between the controller's view of
> a typec_mux/switch and the implementation and then expands that to support
> multiple drivers.
> 
> This is needed in order to support devices such as the Qualcomm Snapdragon 888
> HDK, which does muxing and orientation handling in the QMP (USB+DP) PHY and SBU
> muxing in the external FSA4480 chip.
> 
> Additionally integration of typec mux and switch in the QMP PHY is included in
> the series, as is the new FSA4480 driver. This is done to deal with the
> renaming of the driver-side typec_mux -> typec_mux_dev.
> 
> Bjorn Andersson (8):
>   dt-bindings: phy: qcom,qmp-usb3-dp: Add altmode/switch properties
>   phy: qcom-qmp: Register typec mux and orientation switch
>   device property: Helper to match multiple connections
>   device property: Use multi-connection matchers for single case
>   typec: mux: Introduce indirection
>   typec: mux: Allow multiple mux_devs per mux
>   dt-bindings: usb: Add binding for fcs,fsa4480
>   usb: typec: mux: Add On Semi fsa4480 driver

Thank you for your series, I will leave commenting on the
dt-bindings and typec-mux changes to others.

But what I can do is test this on an x86 device using
a pi3usb30532 mux for USB super-speed and DP-alt-mode
muxing / orientation switching.

I'm going to wait a bit with doing that till this has had
some reviews and possibly also some newer versions because
of those reviews. If you haven't received a Tested-by from me
when this looks like it is ready for merging please ping me.

Regards,

Hans


> 
>  .../bindings/phy/qcom,qmp-usb3-dp-phy.yaml    |  14 +
>  .../devicetree/bindings/usb/fcs,fsa4480.yaml  |  72 +++++
>  drivers/base/property.c                       |  83 ++++--
>  drivers/phy/qualcomm/phy-qcom-qmp.c           | 176 ++++++++++--
>  drivers/usb/typec/bus.c                       |   2 +-
>  drivers/usb/typec/mux.c                       | 257 +++++++++++++-----
>  drivers/usb/typec/mux.h                       |  12 +-
>  drivers/usb/typec/mux/Kconfig                 |   9 +
>  drivers/usb/typec/mux/Makefile                |   1 +
>  drivers/usb/typec/mux/fsa4480.c               | 220 +++++++++++++++
>  drivers/usb/typec/mux/intel_pmc_mux.c         |   8 +-
>  drivers/usb/typec/mux/pi3usb30532.c           |   8 +-
>  include/linux/property.h                      |   5 +
>  include/linux/usb/typec_mux.h                 |  22 +-
>  14 files changed, 762 insertions(+), 127 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/usb/fcs,fsa4480.yaml
>  create mode 100644 drivers/usb/typec/mux/fsa4480.c
> 

Re: [PATCH 0/8] typec: mux: Introduce support for multiple TypeC muxes
Posted by Bjorn Andersson 4 years, 6 months ago
On Tue 28 Dec 04:20 PST 2021, Hans de Goede wrote:

> Hi Bjorn,
> 
> On 12/28/21 06:21, Bjorn Andersson wrote:
> > This series introduces a level of indirection between the controller's view of
> > a typec_mux/switch and the implementation and then expands that to support
> > multiple drivers.
> > 
> > This is needed in order to support devices such as the Qualcomm Snapdragon 888
> > HDK, which does muxing and orientation handling in the QMP (USB+DP) PHY and SBU
> > muxing in the external FSA4480 chip.
> > 
> > Additionally integration of typec mux and switch in the QMP PHY is included in
> > the series, as is the new FSA4480 driver. This is done to deal with the
> > renaming of the driver-side typec_mux -> typec_mux_dev.
> > 
> > Bjorn Andersson (8):
> >   dt-bindings: phy: qcom,qmp-usb3-dp: Add altmode/switch properties
> >   phy: qcom-qmp: Register typec mux and orientation switch
> >   device property: Helper to match multiple connections
> >   device property: Use multi-connection matchers for single case
> >   typec: mux: Introduce indirection
> >   typec: mux: Allow multiple mux_devs per mux
> >   dt-bindings: usb: Add binding for fcs,fsa4480
> >   usb: typec: mux: Add On Semi fsa4480 driver
> 
> Thank you for your series, I will leave commenting on the
> dt-bindings and typec-mux changes to others.
> 
> But what I can do is test this on an x86 device using
> a pi3usb30532 mux for USB super-speed and DP-alt-mode
> muxing / orientation switching.
> 

Thanks Hans, that would be much appreciated. I realize that I failed to
mention that I don't have this hardware, so I've not been able to test
it myself.

> I'm going to wait a bit with doing that till this has had
> some reviews and possibly also some newer versions because
> of those reviews. If you haven't received a Tested-by from me
> when this looks like it is ready for merging please ping me.
> 

Will ping you when appropriate.

Thanks,
Bjorn

> Regards,
> 
> Hans
> 
> 
> > 
> >  .../bindings/phy/qcom,qmp-usb3-dp-phy.yaml    |  14 +
> >  .../devicetree/bindings/usb/fcs,fsa4480.yaml  |  72 +++++
> >  drivers/base/property.c                       |  83 ++++--
> >  drivers/phy/qualcomm/phy-qcom-qmp.c           | 176 ++++++++++--
> >  drivers/usb/typec/bus.c                       |   2 +-
> >  drivers/usb/typec/mux.c                       | 257 +++++++++++++-----
> >  drivers/usb/typec/mux.h                       |  12 +-
> >  drivers/usb/typec/mux/Kconfig                 |   9 +
> >  drivers/usb/typec/mux/Makefile                |   1 +
> >  drivers/usb/typec/mux/fsa4480.c               | 220 +++++++++++++++
> >  drivers/usb/typec/mux/intel_pmc_mux.c         |   8 +-
> >  drivers/usb/typec/mux/pi3usb30532.c           |   8 +-
> >  include/linux/property.h                      |   5 +
> >  include/linux/usb/typec_mux.h                 |  22 +-
> >  14 files changed, 762 insertions(+), 127 deletions(-)
> >  create mode 100644 Documentation/devicetree/bindings/usb/fcs,fsa4480.yaml
> >  create mode 100644 drivers/usb/typec/mux/fsa4480.c
> > 
>