devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] Handle reversed SBU orientation for FSA4480
@ 2023-10-13 11:38 Luca Weiss
  2023-10-13 11:38 ` [PATCH 1/3] dt-bindings: usb: fsa4480: Add data-lanes property to endpoint Luca Weiss
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Luca Weiss @ 2023-10-13 11:38 UTC (permalink / raw)
  To: Heikki Krogerus, Greg Kroah-Hartman, Neil Armstrong, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson
  Cc: ~postmarketos/upstreaming, phone-devel, linux-usb, linux-kernel,
	linux-arm-msm, devicetree, Luca Weiss

Short reason:
Without swapping the SBU lanes, on QCM6490 Fairphone 5 the
DisplayPort-over-USB-C doesn't work.

The Orient-Chip OCP96011 used in this phone is generally compatible with
FSA4480 but has a difference how AUX+/- should be connected to SBU1/2.

Long explanation, with my current understanding:
* FSA4480 block diagram shows AUX+ connected to SBU2 and AUX- to SBU1.
* OCP96011 block diagram shows AUX+ connected to SBU1 and AUX- to SBU2
  (it's not 100% clear though in the picture but makes sense with the
  observed behavior)
* Fairphone 5 schematics have AUX+ connected to SBU2 and AUX- to SBU1,
  which would be correct for FSA4480 but since OCP96011 is used (which
  expects it to be the other way around) the Linux driver needs to
  reverse it.
  If AUX+ would be connected to SBU1 and AUX- to SBU2 as shown in the
  OCP96011 block diagram, then no driver/dts change would be needed.

Not sure if I've implemented the best solution in this patch. Other
solutions I could think of are:
* Add some custom boolean property to the node, e.g. 'fsa,swap-sbu'
* Reverse when ocs,ocp96011 compatible is used. This would be incorrect
  since when following the OCP96011 block diagram no reversing would be
  needed, as explained above.

However I think the current solution with data-lanes in the endpoint is
the best fit and is also already used for a similar purpose in another
USB mux driver.

Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
---
Luca Weiss (3):
      dt-bindings: usb: fsa4480: Add data-lanes property to endpoint
      usb: typec: fsa4480: Add support to swap SBU orientation
      dt-bindings: usb: fsa4480: Add compatible for OCP96011

 .../devicetree/bindings/usb/fcs,fsa4480.yaml       | 43 +++++++++++-
 drivers/usb/typec/mux/fsa4480.c                    | 81 ++++++++++++++++++++++
 2 files changed, 121 insertions(+), 3 deletions(-)
---
base-commit: e3b18f7200f45d66f7141136c25554ac1e82009b
change-id: 20231013-fsa4480-swap-9b0f76d73c19

Best regards,
-- 
Luca Weiss <luca.weiss@fairphone.com>


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2023-10-18  7:10 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-10-13 11:38 [PATCH 0/3] Handle reversed SBU orientation for FSA4480 Luca Weiss
2023-10-13 11:38 ` [PATCH 1/3] dt-bindings: usb: fsa4480: Add data-lanes property to endpoint Luca Weiss
2023-10-16 14:22   ` Rob Herring
2023-10-16 14:32     ` Neil Armstrong
2023-10-17 19:12       ` Rob Herring
2023-10-13 11:38 ` [PATCH 2/3] usb: typec: fsa4480: Add support to swap SBU orientation Luca Weiss
2023-10-13 12:39   ` Neil Armstrong
2023-10-17  9:01   ` Heikki Krogerus
2023-10-17 10:17     ` Luca Weiss
2023-10-18  7:10       ` Heikki Krogerus
2023-10-13 11:38 ` [PATCH 3/3] dt-bindings: usb: fsa4480: Add compatible for OCP96011 Luca Weiss

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).