[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: Sylwester Nawrocki <s.nawrocki@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
This commit is contained in:
Sylwester Nawrocki 2013-12-20 18:56:05 -03:00 committed by Mauro Carvalho Chehab
parent ae704bc3bd
commit 53f8a899a3
1 changed files with 29 additions and 15 deletions

View File

@ -15,11 +15,21 @@ Common 'camera' node
Required properties: Required properties:
- compatible : must be "samsung,fimc", "simple-bus" - compatible: must be "samsung,fimc", "simple-bus"
- clocks : list of clock specifiers, corresponding to entries in - clocks: list of clock specifiers, corresponding to entries in
the clock-names property; the clock-names property;
- clock-names : must contain "sclk_cam0", "sclk_cam1", "pxl_async0", - clock-names : must contain "sclk_cam0", "sclk_cam1", "pxl_async0",
"pxl_async1" entries, matching entries in the clocks property. "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 The pinctrl bindings defined in ../pinctrl/pinctrl-bindings.txt must be used
to define a required pinctrl state named "default" and optional pinctrl states: to define a required pinctrl state named "default" and optional pinctrl states:
@ -32,6 +42,7 @@ way around.
The 'camera' node must include at least one 'fimc' child node. The 'camera' node must include at least one 'fimc' child node.
'fimc' device nodes 'fimc' device nodes
------------------- -------------------
@ -88,8 +99,8 @@ port nodes specifies data input - 0, 1 indicates input A, B respectively.
Optional properties 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; 0 - CAM_A_CLKOUT, 1 - CAM_B_CLKOUT;
Image sensor nodes Image sensor nodes
------------------ ------------------
@ -97,8 +108,6 @@ Image sensor nodes
The sensor device nodes should be added to their control bus controller (e.g. 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, 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. 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: Example:
@ -114,7 +123,7 @@ Example:
vddio-supply = <...>; vddio-supply = <...>;
clock-frequency = <24000000>; clock-frequency = <24000000>;
clocks = <...>; clocks = <&camera 1>;
clock-names = "mclk"; clock-names = "mclk";
port { port {
@ -135,7 +144,7 @@ Example:
vddio-supply = <...>; vddio-supply = <...>;
clock-frequency = <24000000>; clock-frequency = <24000000>;
clocks = <...>; clocks = <&camera 0>;
clock-names = "mclk"; clock-names = "mclk";
port { port {
@ -149,12 +158,17 @@ Example:
camera { camera {
compatible = "samsung,fimc", "simple-bus"; compatible = "samsung,fimc", "simple-bus";
#address-cells = <1>; clocks = <&clock 132>, <&clock 133>, <&clock 351>,
#size-cells = <1>; <&clock 352>;
status = "okay"; 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-names = "default";
pinctrl-0 = <&cam_port_a_clk_active>; pinctrl-0 = <&cam_port_a_clk_active>;
status = "okay";
#address-cells = <1>;
#size-cells = <1>;
/* parallel camera ports */ /* parallel camera ports */
parallel-ports { parallel-ports {