Re: [PATCH v7 01/13] [media] exynos5-is: Adding media device driver for exynos5

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 08/21/2013 08:34 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>
---
  .../bindings/media/exynos5250-camera.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/exynos5250-camera.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/exynos5250-camera.txt b/Documentation/devicetree/bindings/media/exynos5250-camera.txt
new file mode 100644
index 0000000..09420ba
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/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@1 {
+				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.

Does this binding look OK, can I have a DT maintainer Ack for that ?

--
Thanks,
Sylwester
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux