Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[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>

authored by

Sylwester Nawrocki and committed by
Mauro Carvalho Chehab
53f8a899 ae704bc3

+29 -15
+29 -15
Documentation/devicetree/bindings/media/samsung-fimc.txt
··· 15 15 16 16 Required properties: 17 17 18 - - compatible : must be "samsung,fimc", "simple-bus" 19 - - clocks : list of clock specifiers, corresponding to entries in 20 - the clock-names property; 21 - - clock-names : must contain "sclk_cam0", "sclk_cam1", "pxl_async0", 22 - "pxl_async1" entries, matching entries in the clocks property. 18 + - compatible: must be "samsung,fimc", "simple-bus" 19 + - clocks: list of clock specifiers, corresponding to entries in 20 + the clock-names property; 21 + - clock-names : must contain "sclk_cam0", "sclk_cam1", "pxl_async0", 22 + "pxl_async1" entries, matching entries in the clocks property. 23 + 24 + - #clock-cells: from the common clock bindings (../clock/clock-bindings.txt), 25 + must be 1. A clock provider is associated with the 'camera' node and it should 26 + be referenced by external sensors that use clocks provided by the SoC on 27 + CAM_*_CLKOUT pins. The clock specifier cell stores an index of a clock. 28 + The indices are 0, 1 for CAM_A_CLKOUT, CAM_B_CLKOUT clocks respectively. 29 + 30 + - clock-output-names: from the common clock bindings, should contain names of 31 + clocks registered by the camera subsystem corresponding to CAM_A_CLKOUT, 32 + CAM_B_CLKOUT output clocks respectively. 23 33 24 34 The pinctrl bindings defined in ../pinctrl/pinctrl-bindings.txt must be used 25 35 to define a required pinctrl state named "default" and optional pinctrl states: ··· 41 31 way around. 42 32 43 33 The 'camera' node must include at least one 'fimc' child node. 34 + 44 35 45 36 'fimc' device nodes 46 37 ------------------- ··· 99 88 100 89 Optional properties 101 90 102 - - samsung,camclk-out : specifies clock output for remote sensor, 103 - 0 - CAM_A_CLKOUT, 1 - CAM_B_CLKOUT; 91 + - samsung,camclk-out (deprecated) : specifies clock output for remote sensor, 92 + 0 - CAM_A_CLKOUT, 1 - CAM_B_CLKOUT; 104 93 105 94 Image sensor nodes 106 95 ------------------ ··· 108 97 The sensor device nodes should be added to their control bus controller (e.g. 109 98 I2C0) nodes and linked to a port node in the csis or the parallel-ports node, 110 99 using the common video interfaces bindings, defined in video-interfaces.txt. 111 - The implementation of this bindings requires clock-frequency property to be 112 - present in the sensor device nodes. 113 100 114 101 Example: 115 102 ··· 123 114 vddio-supply = <...>; 124 115 125 116 clock-frequency = <24000000>; 126 - clocks = <...>; 117 + clocks = <&camera 1>; 127 118 clock-names = "mclk"; 128 119 129 120 port { ··· 144 135 vddio-supply = <...>; 145 136 146 137 clock-frequency = <24000000>; 147 - clocks = <...>; 138 + clocks = <&camera 0>; 148 139 clock-names = "mclk"; 149 140 150 141 port { ··· 158 149 159 150 camera { 160 151 compatible = "samsung,fimc", "simple-bus"; 161 - #address-cells = <1>; 162 - #size-cells = <1>; 163 - status = "okay"; 164 - 152 + clocks = <&clock 132>, <&clock 133>, <&clock 351>, 153 + <&clock 352>; 154 + clock-names = "sclk_cam0", "sclk_cam1", "pxl_async0", 155 + "pxl_async1"; 156 + #clock-cells = <1>; 157 + clock-output-names = "cam_a_clkout", "cam_b_clkout"; 165 158 pinctrl-names = "default"; 166 159 pinctrl-0 = <&cam_port_a_clk_active>; 160 + status = "okay"; 161 + #address-cells = <1>; 162 + #size-cells = <1>; 167 163 168 164 /* parallel camera ports */ 169 165 parallel-ports {