diff mbox

of: Add MIPI DSI bus device tree bindings

Message ID 1385998631-18515-1-git-send-email-treding@nvidia.com (mailing list archive)
State New, archived
Headers show

Commit Message

Thierry Reding Dec. 2, 2013, 3:37 p.m. UTC
Document the device tree bindings for the MIPI DSI bus. The MIPI Display
Serial Interface specifies a serial bus and a protocol for communication
between a host and up to four peripherals.

Signed-off-by: Thierry Reding <treding@nvidia.com>
---
 .../devicetree/bindings/mipi/dsi/mipi-dsi-bus.txt  | 54 ++++++++++++++++++++++
 1 file changed, 54 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/mipi/dsi/mipi-dsi-bus.txt

Comments

Tomasz Figa Dec. 2, 2013, 7:57 p.m. UTC | #1
Hi Thierry,

On Monday 02 of December 2013 16:37:11 Thierry Reding wrote:
> Document the device tree bindings for the MIPI DSI bus. The MIPI Display
> Serial Interface specifies a serial bus and a protocol for communication
> between a host and up to four peripherals.
> 
> Signed-off-by: Thierry Reding <treding@nvidia.com>
> ---
>  .../devicetree/bindings/mipi/dsi/mipi-dsi-bus.txt  | 54 ++++++++++++++++++++++
>  1 file changed, 54 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/mipi/dsi/mipi-dsi-bus.txt
>
> diff --git a/Documentation/devicetree/bindings/mipi/dsi/mipi-dsi-bus.txt b/Documentation/devicetree/bindings/mipi/dsi/mipi-dsi-bus.txt
> new file mode 100644
> index 000000000000..f58ca4485a2f
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mipi/dsi/mipi-dsi-bus.txt
> @@ -0,0 +1,54 @@
> +MIPI DSI (Display Serial Interface) busses
> +==========================================
> +
> +The MIPI Display Serial Interface specifies a serial bus and a protocol for
> +communication between a host and up to four peripherals. This document will
> +define the syntax used to represent a DSI bus in a device tree.
> +
> +This document describes DSI bus-specific properties only or defines existing
> +standard properties in the context of the DSI bus.
> +
> +Each DSI host provides a DSI bus. The DSI host controller's node contains a
> +set of properties that characterize the bus. Child nodes describe individual
> +peripherals on that bus.
> +
> +DSI host
> +--------
> +
> +In addition to the standard properties and those defined by the parent bus of
> +a DSI host, the following properties apply to a node representing a DSI host.
> +
> +Required properties:
> +- #address-cells: The number of cells required to represent an address on the
> +  bus. DSI peripherals are addressed using a 2-bit virtual channel number, so
> +  a maximum of 4 devices can be addressed on a single bus. Hence the value of
> +  this property should be 1.
> +- #size-cells: Should be 0.
> +
> +DSI peripheral
> +--------------
> +
> +Peripherals are represented as child nodes of the DSI host's node. Properties
> +described here apply to all DSI peripherals, but individual bindings may want
> +to define additional, device-specific properties.
> +
> +Required properties:
> +- reg: The virtual channel number of a DSI peripheral. Must be in the range
> +  from 0 to 3.
> +
> +Example
> +-------
> +
> +	dsi-host {
> +		...
> +
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		peripheral@0 {
> +			compatible = "...";
> +			reg = <0>;
> +		};
> +
> +		...
> +	};
> 

In general, this looks good to me as a starter, so we could have support
for DSI bus merged. IMHO we should consider adding some generic bus
properties in future, though.

Anyway, have my

Reviewed-by: Tomasz Figa <t.figa@samsung.com>

Best regards,
Tomasz
Thierry Reding Dec. 2, 2013, 9:04 p.m. UTC | #2
On Mon, Dec 02, 2013 at 08:57:20PM +0100, Tomasz Figa wrote:
> On Monday 02 of December 2013 16:37:11 Thierry Reding wrote:
[...]
> > +Example
> > +-------
> > +
> > +	dsi-host {
> > +		...
> > +
> > +		#address-cells = <1>;
> > +		#size-cells = <0>;
> > +
> > +		peripheral@0 {
> > +			compatible = "...";
> > +			reg = <0>;
> > +		};
> > +
> > +		...
> > +	};
> > 
> 
> In general, this looks good to me as a starter, so we could have support
> for DSI bus merged. IMHO we should consider adding some generic bus
> properties in future, though.

To be honest this looked somewhat minimal to me too at first, and then I
tried to come up with any other properties but couldn't think of any. Of
course anything that we add later on has the potential to break ABI
compatibility.

A few of the things I had in mind that might be added as properties were
the number of lanes or the video format. But those will already be
implied by the compatible value and therefore don't really belong in the
DT.

But if anyone can think of other properties that would be useful for DSI
host or peripherals, by all means, let me know.

> Anyway, have my
> 
> Reviewed-by: Tomasz Figa <t.figa@samsung.com>

Thanks,
Thierry
Bert Kenward Dec. 24, 2013, 8:31 a.m. UTC | #3
Hello. Late to the party...

On Monday December 2 2013 at 21:05, Thierry Reding wrote:
> On Mon, Dec 02, 2013 at 08:57:20PM +0100, Tomasz Figa wrote:
> > In general, this looks good to me as a starter, so we could have support
> > for DSI bus merged. IMHO we should consider adding some generic bus
> > properties in future, though.
> 
> To be honest this looked somewhat minimal to me too at first, and then I
> tried to come up with any other properties but couldn't think of any. Of
> course anything that we add later on has the potential to break ABI
> compatibility.
> 
> A few of the things I had in mind that might be added as properties were
> the number of lanes or the video format. But those will already be
> implied by the compatible value and therefore don't really belong in the
> DT.
> 
> But if anyone can think of other properties that would be useful for DSI
> host or peripherals, by all means, let me know.

I've been working through the DSI bus patch set in conjunction with this one. There are two properties that are properties of the board rather than the host or the connected panels, so could fit in the DT. The first is the number of lanes connected - the compatible string can only provide the maximum number of lanes. Having said that, the panel will specify how many lanes it uses - if they're not all connected up you'll hopefully have noticed during the board layout...

The other property (that may actually be useful) is the maximum HS clock speed. The host and panel drivers will specify one, along with an implicit minimum from the panel driver for the data rate requirement. The board may also impose limits on the clock speed. For burst mode video or command mode some flexibility in bus clock speed is helpful, with the actual used clock rate frequently depending on RF concerns.

Bert.
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/mipi/dsi/mipi-dsi-bus.txt b/Documentation/devicetree/bindings/mipi/dsi/mipi-dsi-bus.txt
new file mode 100644
index 000000000000..f58ca4485a2f
--- /dev/null
+++ b/Documentation/devicetree/bindings/mipi/dsi/mipi-dsi-bus.txt
@@ -0,0 +1,54 @@ 
+MIPI DSI (Display Serial Interface) busses
+==========================================
+
+The MIPI Display Serial Interface specifies a serial bus and a protocol for
+communication between a host and up to four peripherals. This document will
+define the syntax used to represent a DSI bus in a device tree.
+
+This document describes DSI bus-specific properties only or defines existing
+standard properties in the context of the DSI bus.
+
+Each DSI host provides a DSI bus. The DSI host controller's node contains a
+set of properties that characterize the bus. Child nodes describe individual
+peripherals on that bus.
+
+DSI host
+--------
+
+In addition to the standard properties and those defined by the parent bus of
+a DSI host, the following properties apply to a node representing a DSI host.
+
+Required properties:
+- #address-cells: The number of cells required to represent an address on the
+  bus. DSI peripherals are addressed using a 2-bit virtual channel number, so
+  a maximum of 4 devices can be addressed on a single bus. Hence the value of
+  this property should be 1.
+- #size-cells: Should be 0.
+
+DSI peripheral
+--------------
+
+Peripherals are represented as child nodes of the DSI host's node. Properties
+described here apply to all DSI peripherals, but individual bindings may want
+to define additional, device-specific properties.
+
+Required properties:
+- reg: The virtual channel number of a DSI peripheral. Must be in the range
+  from 0 to 3.
+
+Example
+-------
+
+	dsi-host {
+		...
+
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		peripheral@0 {
+			compatible = "...";
+			reg = <0>;
+		};
+
+		...
+	};