Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 53f8a899 authored by Sylwester Nawrocki's avatar Sylwester Nawrocki Committed by Mauro Carvalho Chehab
Browse files

[media] Documentation: devicetree: Update Samsung FIMC DT binding



This patch documents following updates of the Exynos4 SoC camera subsystem
devicetree binding:

 - addition of #clock-cells and clock-output-names properties to 'camera'
   node - these are now needed so the image sensor sub-devices can reference
   clocks provided by the camera host interface,
 - dropped a note about required clock-frequency properties at the
   image sensor nodes; the sensor devices can now control their clock
   explicitly through the clk API and there is no need to require this
   property in the camera host interface binding.

Signed-off-by: default avatarSylwester Nawrocki <s.nawrocki@samsung.com>
Acked-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
Acked-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
parent ae704bc3
Loading
Loading
Loading
Loading
+29 −15
Original line number Diff line number Diff line
@@ -21,6 +21,16 @@ Required properties:
- clock-names : must contain "sclk_cam0", "sclk_cam1", "pxl_async0",
  "pxl_async1" entries, matching entries in the clocks property.

- #clock-cells: from the common clock bindings (../clock/clock-bindings.txt),
  must be 1. A clock provider is associated with the 'camera' node and it should
  be referenced by external sensors that use clocks provided by the SoC on
  CAM_*_CLKOUT pins. The clock specifier cell stores an index of a clock.
  The indices are 0, 1 for CAM_A_CLKOUT, CAM_B_CLKOUT clocks respectively.

- clock-output-names: from the common clock bindings, should contain names of
  clocks registered by the camera subsystem corresponding to CAM_A_CLKOUT,
  CAM_B_CLKOUT output clocks respectively.

The pinctrl bindings defined in ../pinctrl/pinctrl-bindings.txt must be used
to define a required pinctrl state named "default" and optional pinctrl states:
"idle", "active-a", active-b". These optional states can be used to switch the
@@ -32,6 +42,7 @@ way around.

The 'camera' node must include at least one 'fimc' child node.


'fimc' device nodes
-------------------

@@ -88,7 +99,7 @@ port nodes specifies data input - 0, 1 indicates input A, B respectively.

Optional properties

- samsung,camclk-out : specifies clock output for remote sensor,
- samsung,camclk-out (deprecated) : specifies clock output for remote sensor,
  0 - CAM_A_CLKOUT, 1 - CAM_B_CLKOUT;

Image sensor nodes
@@ -97,8 +108,6 @@ 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.
The implementation of this bindings requires clock-frequency property to be
present in the sensor device nodes.

Example:

@@ -114,7 +123,7 @@ Example:
			vddio-supply = <...>;

			clock-frequency = <24000000>;
			clocks = <...>;
			clocks = <&camera 1>;
			clock-names = "mclk";

			port {
@@ -135,7 +144,7 @@ Example:
			vddio-supply = <...>;

			clock-frequency = <24000000>;
			clocks = <...>;
			clocks = <&camera 0>;
			clock-names = "mclk";

			port {
@@ -149,12 +158,17 @@ Example:

	camera {
		compatible = "samsung,fimc", "simple-bus";
		#address-cells = <1>;
		#size-cells = <1>;
		status = "okay";

		clocks = <&clock 132>, <&clock 133>, <&clock 351>,
			 <&clock 352>;
		clock-names = "sclk_cam0", "sclk_cam1", "pxl_async0",
			      "pxl_async1";
		#clock-cells = <1>;
		clock-output-names = "cam_a_clkout", "cam_b_clkout";
		pinctrl-names = "default";
		pinctrl-0 = <&cam_port_a_clk_active>;
		status = "okay";
		#address-cells = <1>;
		#size-cells = <1>;

		/* parallel camera ports */
		parallel-ports {