On 2/3/22 13:23, Maxime Ripard wrote:
On Tue, Dec 07, 2021 at 06:32:38PM +0100, Marek Vasut wrote:
On 12/7/21 18:03, Laurent Pinchart wrote:
On Tue, Dec 07, 2021 at 05:47:29PM +0100, Marek Vasut wrote:
On 12/7/21 17:43, Laurent Pinchart wrote:

[...]

diff --git 
a/Documentation/devicetree/bindings/display/bridge/toshiba,tc358767.yaml 
b/Documentation/devicetree/bindings/display/bridge/toshiba,tc358767.yaml
index f1541cc05297..5cfda6f2ba69 100644
--- a/Documentation/devicetree/bindings/display/bridge/toshiba,tc358767.yaml
+++ b/Documentation/devicetree/bindings/display/bridge/toshiba,tc358767.yaml
@@ -61,8 +61,8 @@ properties:
          port@1:
            $ref: /schemas/graph.yaml#/properties/port
            description: |
-            DPI input port. The remote endpoint phandle should be a
-            reference to a valid DPI output endpoint node
+            DPI input/output port. The remote endpoint phandle should be a
+            reference to a valid DPI output or input endpoint node.

I assume the mode of operation (input or output) will be fixed for a
given hardware design. Isn't this something that should be recorded in
DT ? It would simplify configuration of the device in the driver.

Currently the configuration (DSI-to-DPI / DPI-to-eDP) is inferred from
the presence of DPI panel. If DPI panel present, DSI-to-DPI, else,
DPI-to-eDP.

I've had a look at the driver side, and it seems to complicate things
quite a bit. It seems that specifying the mode of operation explicitly
in DT could make software implementations quite a bit simpler.

Do you have any specific suggestion ? I explored multiple options while
writing that DSI-to-DPI driver code, this one was the simplest and least
redundant one.

Can we leverage the bus-type property of endpoints?

We could, but should we really add a property only for the sake of adding a property ? The driver can figure out whether this endpoint is DSI-input or DSI-output without such a new property.

Now that I look at the datasheet, the logic can be even simpler:

- If port@0 not connected
  scanout -> port@1 (DPI input) -> port@2 (eDP output) -> panel

- If port@1 not connected
  scanout -> port@0 (DSI input) -> port@2 (eDP output) -> panel

- If port@2 not connected
  scanout -> port@0 (DSI input) -> port@1 (DPI output) -> panel

So with this kind of test in the driver, the driver can determine how the TC bridge is wired, without any extra props.

Reply via email to