Hi Rob, Once again sorry for the late response and thank you for your feedback. On 3/15/2017 6:35 PM, Rob Herring wrote: > On Tue, Mar 07, 2017 at 02:37:50PM +0000, Ramiro Oliveira wrote: >> Create device tree bindings documentation for the CSI-2 Host Video >> platform. >> >> Signed-off-by: Ramiro Oliveira <roliveir@xxxxxxxxxxxx> >> --- >> .../devicetree/bindings/media/snps,plat-csi2.txt | 77 ++++++++++++++++++++++ >> 1 file changed, 77 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/media/snps,plat-csi2.txt >> >> diff --git a/Documentation/devicetree/bindings/media/snps,plat-csi2.txt b/Documentation/devicetree/bindings/media/snps,plat-csi2.txt >> new file mode 100644 >> index 000000000000..f559257a0a44 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/media/snps,plat-csi2.txt >> @@ -0,0 +1,77 @@ >> +Synopsys DesignWare CSI-2 Host Video Platform >> + >> +The Synopsys DesignWare CSI-2 Host Video Device subsystem comprises of multiple >> +sub-devices represented by separate device tree nodes. Currently this includes: >> +plat-csi2, video-device, and dw-mipi-csi. >> + >> +The sub-subdevices are defined as child nodes of the common 'camera'. >> + >> +Common 'camera' node >> +-------------------- >> + >> +Required properties: >> + >> +- compatible: must be "snps,plat-csi2", "simple-bus" >> + >> +The 'camera' node must include at least one 'video-device' and one 'dw-mipi-csi' >> +child node. >> + >> +'video-device' device nodes >> +------------------- >> + >> +Required properties: >> + >> +- compatible: "snps,video-device" >> +- dmas, dma-names: List of one DMA specifier and identifier string (as defined >> + in Documentation/devicetree/bindings/dma/dma.txt) per port. Each port >> + requires a DMA channel with the identifier string set to "vdma" followed by >> + the port index. >> + >> +Image sensor nodes >> +------------------ >> + >> +The sensor device nodes should be added to their control bus controller (e.g. >> +I2C0) nodes and linked to a port node in the dw-mipi-csi,using the common video >> +interfaces bindings, defined in video-interfaces.txt. >> + >> +Example: >> + >> + >> + camera { >> + compatible = "snps,plat-csi2", "simple-bus"; >> + #address-cells = <1>; >> + #size-cells = <1>; >> + ranges; >> + video_device: video-device@0x10000 { > > Drop the '0x' and any leading 0s on unit addresses. > Sure. >> + compatible = "snps,video-device"; >> + dmas = <&axi_vdma_0 0>; >> + dma-names = "vdma0"; >> + }; > > If video-device is not a real device, then you shouldn't need a DT node. > I need a better explanation or diagram of what the h/w blocks and > connections look like here. > > From the looks of this, you can just move dmas to the csi2 node. But I > don't think that is right, because you can't generally just use an > external DMA controller with camera data (maybe for validation, but it's > not something you see in SoCs). > Actually we do use an external DMA controller directly connected to the CSI-2 Host controller, although, like you said, we use it for HW validation. I "created" the video-device in order to remove the DMA engine control from the CSI-2 Host driver, in order to make it more useful to other people. >> + >> + csi2: csi2@0x03000 { >> + compatible = "snps,dw-mipi-csi"; >> + #address-cells = <1>; >> + #size-cells = <0>; >> + reg = < 0x03000 0x7FF>; >> + interrupts = <2>; >> + phys = <&mipi_phy_ctrl1 0>; >> + resets = <&csi2_rst 1>; >> + >> + output-type = <2>; >> + ipi-mode = <0>; >> + ipi-color-mode = <0>; >> + ipi-auto-flush = <1>; >> + virtual-channel = <0>; >> + >> + port@1 { >> + reg = <1>; >> + csi1_ep1: endpoint { >> + remote-endpoint = <&camera>; >> + data-lanes = <1 2>; >> + }; >> + }; >> + }; >> + }; >> + }; >> + >> +The dw-mipi-csi device binding is defined in snps,dw-mipi-csi.txt. >> -- >> 2.11.0 >> >> -- Best Regards Ramiro Oliveira Ramiro.Oliveira@xxxxxxxxxxxx