Skip to content

Commit

Permalink
dt-bindings: mipi-dsi: Add dual-channel DSI related info
Browse files Browse the repository at this point in the history
Add binding info for peripherals that support dual-channel DSI. Add
corresponding optional bindings for DSI host controllers that may
be configured in this mode. Add an example of an I2C controlled
device operating in dual-channel DSI mode.

Reviewed-by: Rob Herring <robh@kernel.org>
Reviewed-by: Philippe Cornu <philippe.cornu@st.com>
Reviewed-by: Sean Paul <seanpaul@chromium.org>
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Archit Taneja <architt@codeaurora.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20180709090751.10221-3-architt@codeaurora.org
  • Loading branch information
Archit Taneja committed Jul 25, 2018
1 parent 9b32f89 commit 5e03f02
Showing 1 changed file with 80 additions and 0 deletions.
80 changes: 80 additions & 0 deletions Documentation/devicetree/bindings/display/mipi-dsi-bus.txt
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,13 @@ Required properties:
- #size-cells: Should be 0. There are cases where it makes sense to use a
different value here. See below.

Optional properties:
- clock-master: boolean. Should be enabled if the host is being used in
conjunction with another DSI host to drive the same peripheral. Hardware
supporting such a configuration generally requires the data on both the busses
to be driven by the same clock. Only the DSI host instance controlling this
clock should contain this property.

DSI peripheral
==============

Expand Down Expand Up @@ -62,6 +69,16 @@ primary control bus, but are also connected to a DSI bus (mostly for the data
path). Connections between such peripherals and a DSI host can be represented
using the graph bindings [1], [2].

Peripherals that support dual channel DSI
-----------------------------------------

Peripherals with higher bandwidth requirements can be connected to 2 DSI
busses. Each DSI bus/channel drives some portion of the pixel data (generally
left/right half of each line of the display, or even/odd lines of the display).
The graph bindings should be used to represent the multiple DSI busses that are
connected to this peripheral. Each DSI host's output endpoint can be linked to
an input endpoint of the DSI peripheral.

[1] Documentation/devicetree/bindings/graph.txt
[2] Documentation/devicetree/bindings/media/video-interfaces.txt

Expand All @@ -71,6 +88,8 @@ Examples
with different virtual channel configurations.
- (4) is an example of a peripheral on a I2C control bus connected to a
DSI host using of-graph bindings.
- (5) is an example of 2 DSI hosts driving a dual-channel DSI peripheral,
which uses I2C as its primary control bus.

1)
dsi-host {
Expand Down Expand Up @@ -153,3 +172,64 @@ Examples
};
};
};

5)
i2c-host {
dsi-bridge@35 {
compatible = "...";
reg = <0x35>;

ports {
#address-cells = <1>;
#size-cells = <0>;

port@0 {
reg = <0>;
dsi0_in: endpoint {
remote-endpoint = <&dsi0_out>;
};
};

port@1 {
reg = <1>;
dsi1_in: endpoint {
remote-endpoint = <&dsi1_out>;
};
};
};
};
};

dsi0-host {
...

/*
* this DSI instance drives the clock for both the host
* controllers
*/
clock-master;

ports {
...

port {
dsi0_out: endpoint {
remote-endpoint = <&dsi0_in>;
};
};
};
};

dsi1-host {
...

ports {
...

port {
dsi1_out: endpoint {
remote-endpoint = <&dsi1_in>;
};
};
};
};

0 comments on commit 5e03f02

Please sign in to comment.