Freescale i.MX7 CMOS Sensor Interface
=====================================

csi node
--------

This is device node for the CMOS Sensor Interface (CSI) which enables the chip
to connect directly to external CMOS image sensors.

Required properties:

- compatible    : "fsl,imx7-csi";
- reg           : base address and length of the register set for the device;
- interrupts    : should contain CSI interrupt;
- clocks        : list of clock specifiers, see
        Documentation/devicetree/bindings/clock/clock-bindings.txt for details;
- clock-names   : must contain "axi", "mclk" and "dcic" entries, matching
                 entries in the clock property;

The device node shall contain one 'port' child node with one child 'endpoint'
node, according to the bindings defined in:
Documentation/devicetree/bindings/media/video-interfaces.txt.

In the following example a remote endpoint is a video multiplexer.

example:

                csi: csi@30710000 {
                        #address-cells = <1>;
                        #size-cells = <0>;

                        compatible = "fsl,imx7-csi";
                        reg = <0x30710000 0x10000>;
                        interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clks IMX7D_CLK_DUMMY>,
                                        <&clks IMX7D_CSI_MCLK_ROOT_CLK>,
                                        <&clks IMX7D_CLK_DUMMY>;
                        clock-names = "axi", "mclk", "dcic";

                        port {
                                csi_from_csi_mux: endpoint {
                                        remote-endpoint = <&csi_mux_to_csi>;
                                };
                        };
                };
