[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20231013-fsa4480-swap-v1-0-b877f62046cc@fairphone.com>
Date: Fri, 13 Oct 2023 13:38:04 +0200
From: Luca Weiss <luca.weiss@...rphone.com>
To: Heikki Krogerus <heikki.krogerus@...ux.intel.com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Neil Armstrong <neil.armstrong@...aro.org>,
Rob Herring <robh+dt@...nel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>,
Conor Dooley <conor+dt@...nel.org>,
Bjorn Andersson <andersson@...nel.org>
Cc: ~postmarketos/upstreaming@...ts.sr.ht, phone-devel@...r.kernel.org,
linux-usb@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-arm-msm@...r.kernel.org, devicetree@...r.kernel.org,
Luca Weiss <luca.weiss@...rphone.com>
Subject: [PATCH 0/3] Handle reversed SBU orientation for FSA4480
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@...rphone.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@...rphone.com>
Powered by blists - more mailing lists