lkml.org 
[lkml]   [2023]   [Oct]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH v2 0/3] Handle reversed SBU orientation for FSA4480
    Date
    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>
    ---
    Changes in v2:
    - Expand commit message for first dt-bindings patch incl. ASCII art
    - Use fwnode_* instead of_* APIs
    - Drop manual check for data-lanes property length, read_u32_array will
    already error on too short or too long property.
    - Drop dev_info for reversed data-lanes mapping
    - Link to v1: https://lore.kernel.org/r/20231013-fsa4480-swap-v1-0-b877f62046cc@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 | 71 ++++++++++++++++++++++
    2 files changed, 111 insertions(+), 3 deletions(-)
    ---
    base-commit: e3b18f7200f45d66f7141136c25554ac1e82009b
    change-id: 20231013-fsa4480-swap-9b0f76d73c19

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

    \
     
     \ /
      Last update: 2023-10-20 11:36    [W:4.679 / U:0.200 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site