Re: [V2, 4/5] Documentation: dt-bindings: Document bindings for DW MIPI CSI-2 Host

From: Laurent Pinchart
Date: Thu Sep 20 2018 - 09:24:46 EST


Hi Luis,

Thank you for the patch.

On Thursday, 20 September 2018 14:16:42 EEST Luis Oliveira wrote:
> Add bindings for Synopsys DesignWare MIPI CSI-2 host.
>
> Signed-off-by: Luis Oliveira <lolivei@xxxxxxxxxxxx>
> ---
> Changelog
> v2:
> - no changes
>
> .../devicetree/bindings/media/snps,dw-csi-plat.txt | 74 +++++++++++++++++++
> 1 file changed, 74 insertions(+)
> create mode 100644
> Documentation/devicetree/bindings/media/snps,dw-csi-plat.txt
>
> diff --git a/Documentation/devicetree/bindings/media/snps,dw-csi-plat.txt
> b/Documentation/devicetree/bindings/media/snps,dw-csi-plat.txt new file
> mode 100644
> index 0000000..028f5eb
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/media/snps,dw-csi-plat.txt
> @@ -0,0 +1,74 @@
> +Synopsys DesignWare CSI-2 Host controller
> +
> +Description
> +-----------
> +
> +This HW block is used to receive image coming from an MIPI CSI-2 compatible
> +camera.
> +
> +Required properties:
> +- compatible: shall be "snps,dw-csi-plat"
> +- reg : physical base address and size of the device memory mapped
> + registers;
> +- interrupts : CSI-2 Host interrupt
> +- snps,output-type : Core output to be used (IPI-> 0 or IDI->1 or BOTH-
>2)
> These
> + values choose which of the Core outputs will be used, it
> + can be Image Data Interface or Image Pixel Interface.
> +- phys : List of one PHY specifier (as defined in
> + Documentation/devicetree/bindings/phy/phy-bindings.txt).
> + This PHY is a MIPI DPHY working in RX mode.
> +- resets : Reference to a reset controller (optional)
> +
> +Optional properties(if in IPI mode):
> +- snps,ipi-mode : Mode to be used when in IPI(Camera -> 0 or Controller -
>
> 1)
> + This property defines if the controller will use the video
> + timings available
> + in the video stream or if it will use pre-defined ones.

How does one select this ?

> +- snps,ipi-color-mode : Bus depth to be used in IPI (48 bits -> 0 or 16
> bits -> 1)
> + This property defines the width of the IPI bus.

How about using the standard bus-width property in the endpoint of the output
port ?

> +- snps,ipi-auto-flush : Data auto-flush (1 -> Yes or 0 -> No). This
> property defines
> + if the data is automatically flushed in each vsync
> or if
> + this process is done manually

This seems like a configuration option, not a hardware property. I don't think
it belongs to DT.

> +- snps,virtual-channel : Virtual channel where data is present when in IPI
> mode. This
> + property chooses the virtual channel which IPI will use to
> + retrieve the video stream.

The virtual channel doesn't belong to DT, it should be queried from the sensor
at runtime (and when a sensor can send multiple data streams, that should even
be configurable).

> +The per-board settings:
> + - port sub-node describing a single endpoint connected to the camera as
> + described in video-interfaces.txt[1].

You need to explicitly list all the ports for this device, with their number
and function.

> +Example:
> +
> + csi2_1: csi2@3000 {
> + compatible = "snps,dw-csi-plat";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + reg = < 0x03000 0x7FF>;
> + interrupts = <2>;
> + output-type = <2>;
> + resets = <&dw_rst 1>;
> + phys = <&mipi_dphy_rx1 0>;
> + phy-names = "csi2-dphy";
> +
> + /* IPI optional Configurations */
> + snps,ipi-mode = <0>;
> + snps,ipi-color-mode = <0>;
> + snps,ipi-auto-flush = <1>;
> + snps,virtual-channel = <0>;
> +
> + /* CSI-2 per-board settings */
> + port@1 {
> + reg = <1>;
> + csi1_ep1: endpoint {
> + remote-endpoint = <&camera_1>;
> + data-lanes = <1 2>;
> + };
> + };
> + port@2 {
> + csi1_ep2: endpoint {
> + remote-endpoint = <&vif1_ep>;
> + };
> + };
> + };
> +
> +

Extra blank lines.

--
Regards,

Laurent Pinchart