Hi Archit, Many thanks for this documentation add-on. I wonder if an extra example of "2 DSI hosts driving a dual-channel DSI peripheral controlled by the mipi bus" could be useful? well, I am not really convinced it is necessary and maybe this extra example could be added later when someone will meet the case... and I should have sent this comment on v1 (sorry for the delay). Reviewed-by: Philippe Cornu <philippe.cornu@xxxxxx> Philippe :-) On 01/18/2018 05:53 AM, Archit Taneja wrote: > 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. > > Signed-off-by: Archit Taneja <architt@xxxxxxxxxxxxxx> > --- > v2: > - Specify that clock-master is a boolean property. > - Drop/add unit-address and #*-cells where applicable. > > .../devicetree/bindings/display/mipi-dsi-bus.txt | 80 ++++++++++++++++++++++ > 1 file changed, 80 insertions(+) > > diff --git a/Documentation/devicetree/bindings/display/mipi-dsi-bus.txt b/Documentation/devicetree/bindings/display/mipi-dsi-bus.txt > index 94fb72cb916f..7a3abbedb3fa 100644 > --- a/Documentation/devicetree/bindings/display/mipi-dsi-bus.txt > +++ b/Documentation/devicetree/bindings/display/mipi-dsi-bus.txt > @@ -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 > ============== > > @@ -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 > > @@ -71,6 +88,8 @@ Examples > with different virtual channel configurations. > - (4) is an example of a peripheral on a I2C control bus connected with 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 { > @@ -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>; > + }; > + }; > + }; > + }; > ��.n��������+%������w��{.n�����{���)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥