Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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: Luca Weiss <luca.weiss@fairphone.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20231020-fsa4480-swap-v2-1-9a7f9bb59873@fairphone.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Luca Weiss and committed by
Greg Kroah-Hartman
fad89aa1 4987daf8

+28 -1
+28 -1
Documentation/devicetree/bindings/usb/fcs,fsa4480.yaml
··· 32 32 type: boolean 33 33 34 34 port: 35 - $ref: /schemas/graph.yaml#/properties/port 35 + $ref: /schemas/graph.yaml#/$defs/port-base 36 36 description: 37 37 A port node to link the FSA4480 to a TypeC controller for the purpose of 38 38 handling altmode muxing and orientation switching. 39 + unevaluatedProperties: false 40 + 41 + properties: 42 + endpoint: 43 + $ref: /schemas/graph.yaml#/$defs/endpoint-base 44 + unevaluatedProperties: false 45 + 46 + properties: 47 + data-lanes: 48 + $ref: /schemas/types.yaml#/definitions/uint32-array 49 + description: 50 + Specifies how the AUX+/- lines are connected to SBU1/2. 51 + oneOf: 52 + - items: 53 + - const: 0 54 + - const: 1 55 + description: | 56 + Default AUX/SBU layout 57 + - AUX+ connected to SBU2 58 + - AUX- connected to SBU1 59 + - items: 60 + - const: 1 61 + - const: 0 62 + description: | 63 + Swapped AUX/SBU layout 64 + - AUX+ connected to SBU1 65 + - AUX- connected to SBU2 39 66 40 67 required: 41 68 - compatible