Cc: Pawel, Kumar On 08/16/2013 11:20 AM, Arun Kumar K wrote: > From: Shaik Ameer Basha <shaik.ameer@xxxxxxxxxxx> > > This patch adds support for media device for EXYNOS5 SoCs. > The current media device supports the following ips to connect > through the media controller framework. > > * MIPI-CSIS > Support interconnection(subdev interface) between devices > > * FIMC-LITE > Support capture interface from device(Sensor, MIPI-CSIS) to memory > Support interconnection(subdev interface) between devices > > * FIMC-IS > Camera post-processing IP having multiple sub-nodes. > > G-Scaler will be added later to the current media device. > > The media device creates two kinds of pipelines for connecting > the above mentioned IPs. > The pipeline0 is uses Sensor, MIPI-CSIS and FIMC-LITE which captures > image data and dumps to memory. > Pipeline1 uses FIMC-IS components for doing post-processing > operations on the captured image and give scaled YUV output. > > Pipeline0 > +--------+ +-----------+ +-----------+ +--------+ > | Sensor | --> | MIPI-CSIS | --> | FIMC-LITE | --> | Memory | > +--------+ +-----------+ +-----------+ +--------+ > > Pipeline1 > +--------+ +--------+ +-----------+ +-----------+ > | Memory | --> | ISP | --> | SCC | --> | SCP | > +--------+ +--------+ +-----------+ +-----------+ > > Signed-off-by: Shaik Ameer Basha <shaik.ameer@xxxxxxxxxxx> > Signed-off-by: Arun Kumar K <arun.kk@xxxxxxxxxxx> > --- > .../devicetree/bindings/media/exynos5-mdev.txt | 126 ++ > drivers/media/platform/exynos5-is/exynos5-mdev.c | 1210 ++++++++++++++++++++ > drivers/media/platform/exynos5-is/exynos5-mdev.h | 126 ++ > 3 files changed, 1462 insertions(+) > create mode 100644 Documentation/devicetree/bindings/media/exynos5-mdev.txt > create mode 100644 drivers/media/platform/exynos5-is/exynos5-mdev.c > create mode 100644 drivers/media/platform/exynos5-is/exynos5-mdev.h > > diff --git a/Documentation/devicetree/bindings/media/exynos5-mdev.txt b/Documentation/devicetree/bindings/media/exynos5-mdev.txt > new file mode 100644 > index 0000000..b1299e2 > --- /dev/null > +++ b/Documentation/devicetree/bindings/media/exynos5-mdev.txt Sorry, I missed this previously. How about renaming this file to something more specific to the subsystem it describes, e.g. exynos5250-camera.txt ? > @@ -0,0 +1,126 @@ > +Samsung EXYNOS5 SoC Camera Subsystem > +------------------------------------ > + > +The Exynos5 SoC Camera subsystem comprises of multiple sub-devices > +represented by separate device tree nodes. Currently this includes: FIMC-LITE, > +MIPI CSIS and FIMC-IS. > + > +The sub-device nodes are referenced using phandles in the common 'camera' node > +which also includes common properties of the whole subsystem not really > +specific to any single sub-device, like common camera port pins or the common > +camera bus clocks. > + > +Common 'camera' node > +-------------------- > + > +Required properties: > + > +- compatible : must be "samsung,exynos5250-fimc" > +- clocks : list of clock specifiers, corresponding to entries in > + the clock-names property; > +- clock-names : must contain "sclk_bayer" entry > +- samsung,csis : list of phandles to the mipi-csis device nodes > +- samsung,fimc-lite : list of phandles to the fimc-lite device nodes > +- samsung,fimc-is : phandle to the fimc-is device node > + > +The pinctrl bindings defined in ../pinctrl/pinctrl-bindings.txt must be used > +to define a required pinctrl state named "default". > + > +'parallel-ports' node > +--------------------- > + > +This node should contain child 'port' nodes specifying active parallel video > +input ports. It includes camera A, camera B and RGB bay inputs. > +'reg' property in the port nodes specifies the input type: > + 1 - parallel camport A > + 2 - parallel camport B > + 5 - RGB camera bay > + > +3, 4 are for MIPI CSI-2 bus and are already described in samsung-mipi-csis.txt > + > +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 csis or the parallel-ports node, > +using the common video interfaces bindings, defined in video-interfaces.txt. > + > +Example: > + > + aliases { > + fimc-lite0 = &fimc_lite_0 > + }; > + > + /* Parallel bus IF sensor */ > + i2c_0: i2c@13860000 { > + s5k6aa: sensor@3c { > + compatible = "samsung,s5k6aafx"; > + reg = <0x3c>; > + vddio-supply = <...>; > + > + clock-frequency = <24000000>; > + clocks = <...>; > + clock-names = "mclk"; > + > + port { > + s5k6aa_ep: endpoint { > + remote-endpoint = <&fimc0_ep>; > + bus-width = <8>; > + hsync-active = <0>; > + vsync-active = <1>; > + pclk-sample = <1>; > + }; > + }; > + }; > + }; > + > + /* MIPI CSI-2 bus IF sensor */ > + s5c73m3: sensor@1a { > + compatible = "samsung,s5c73m3"; > + reg = <0x1a>; > + vddio-supply = <...>; > + > + clock-frequency = <24000000>; > + clocks = <...>; > + clock-names = "mclk"; > + > + port { > + s5c73m3_1: endpoint { > + data-lanes = <1 2 3 4>; > + remote-endpoint = <&csis0_ep>; > + }; > + }; > + }; > + > + camera { > + compatible = "samsung,exynos5250-fimc"; > + #address-cells = <1>; > + #size-cells = <1>; > + status = "okay"; > + > + pinctrl-names = "default"; > + pinctrl-0 = <&cam_port_a_clk_active>; > + > + samsung,csis = <&csis_0>, <&csis_1>; > + samsung,fimc-lite = <&fimc_lite_0>, <&fimc_lite_1>, <&fimc_lite_2>; > + samsung,fimc-is = <&fimc_is>; > + > + /* parallel camera ports */ > + parallel-ports { > + /* camera A input */ > + port@0 { This should be port@1 > + reg = <0>; and reg = <1>; > + camport_a_ep: endpoint { > + remote-endpoint = <&s5k6aa_ep>; > + bus-width = <8>; > + hsync-active = <0>; > + vsync-active = <1>; > + pclk-sample = <1>; > + }; > + }; > + }; > + }; > + > +MIPI-CSIS device binding is defined in samsung-mipi-csis.txt, FIMC-LITE > +device binding is defined in exynos-fimc-lite.txt and FIMC-IS binding > +is defined in exynos5-fimc-is.txt. Otherwise looks good to me. I think we now need an Ack from the DT maintainers. If they are OK with the binding I could queue this whole series for v3.12 this week, once you resend patches #1, #2. Thanks, Sylwester -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html