Commit fad89aa1 authored by Luca Weiss's avatar Luca Weiss Committed by Greg Kroah-Hartman
Browse files

dt-bindings: usb: fsa4480: Add data-lanes property to endpoint



Allow specifying data-lanes to reverse the muxing orientation between
AUX+/- and SBU1/2 where necessary by the hardware design.

In the mux there's a switch that needs to be controlled from the OS, and
it either connects AUX+ -> SBU1 and AUX- -> SBU2, or the reverse: AUX+
-> SBU2 and AUX- -> SBU1, depending on the orientation of how the USB-C
connector is plugged in.

With this data-lanes property we can now specify that AUX+ and AUX-
connections are swapped between the SoC and the mux, therefore the OS
needs to consider this and reverse the direction of this switch in the
mux.

_______          _______
      |          |     |
      |-- HP   --|     |
      |-- MIC  --|     |or
SoC   |          | MUX |-- SBU1 --->  To the USB-C
Codec |-- AUX+ --|     |-- SBU2 --->  connected
      |-- AUX- --|     |
______|          |_____|

(thanks to Neil Armstrong for this ASCII art)

Signed-off-by: default avatarLuca Weiss <luca.weiss@fairphone.com>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20231020-fsa4480-swap-v2-1-9a7f9bb59873@fairphone.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 4987daf8
Loading
Loading
Loading
Loading
+28 −1
Original line number Diff line number Diff line
@@ -32,10 +32,37 @@ properties:
    type: boolean

  port:
    $ref: /schemas/graph.yaml#/properties/port
    $ref: /schemas/graph.yaml#/$defs/port-base
    description:
      A port node to link the FSA4480 to a TypeC controller for the purpose of
      handling altmode muxing and orientation switching.
    unevaluatedProperties: false

    properties:
      endpoint:
        $ref: /schemas/graph.yaml#/$defs/endpoint-base
        unevaluatedProperties: false

        properties:
          data-lanes:
            $ref: /schemas/types.yaml#/definitions/uint32-array
            description:
              Specifies how the AUX+/- lines are connected to SBU1/2.
            oneOf:
              - items:
                  - const: 0
                  - const: 1
                description: |
                  Default AUX/SBU layout
                  - AUX+ connected to SBU2
                  - AUX- connected to SBU1
              - items:
                  - const: 1
                  - const: 0
                description: |
                  Swapped AUX/SBU layout
                  - AUX+ connected to SBU1
                  - AUX- connected to SBU2

required:
  - compatible