summaryrefslogtreecommitdiff
path: root/Documentation/media/kapi/v4l2-clocks.rst
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@s-opensource.com>2016-07-22 09:38:58 -0300
committerMauro Carvalho Chehab <mchehab@s-opensource.com>2016-07-23 08:04:21 -0300
commitb67b81d75056fe0e44d4122e6885b446c881d514 (patch)
treed57fbd7360e5b94c1e2729475d76eace8c462543 /Documentation/media/kapi/v4l2-clocks.rst
parent46f74f1d3efe6608a6cfc7e3bb653b5f11f87a15 (diff)
[media] move V4L2 clocks to a separate .rst file
Move the v4l2 clocks stuff from v4l2-framework to a separate file and adds an attention that came from the v4l2-clk.h. Note: as this is meant to be a temporary kAPI, and it is used only by two drivers (soc_camera and em28xx), where the first one is in deprecation process, it probably not a worth effort to document its header. Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Diffstat (limited to 'Documentation/media/kapi/v4l2-clocks.rst')
-rw-r--r--Documentation/media/kapi/v4l2-clocks.rst29
1 files changed, 29 insertions, 0 deletions
diff --git a/Documentation/media/kapi/v4l2-clocks.rst b/Documentation/media/kapi/v4l2-clocks.rst
new file mode 100644
index 000000000000..b8a895860a8a
--- /dev/null
+++ b/Documentation/media/kapi/v4l2-clocks.rst
@@ -0,0 +1,29 @@
+V4L2 clocks
+-----------
+
+.. attention::
+
+ This is a temporary API and it shall be replaced by the generic
+ clock API, when the latter becomes widely available.
+
+Many subdevices, like camera sensors, TV decoders and encoders, need a clock
+signal to be supplied by the system. Often this clock is supplied by the
+respective bridge device. The Linux kernel provides a Common Clock Framework for
+this purpose. However, it is not (yet) available on all architectures. Besides,
+the nature of the multi-functional (clock, data + synchronisation, I2C control)
+connection of subdevices to the system might impose special requirements on the
+clock API usage. E.g. V4L2 has to support clock provider driver unregistration
+while a subdevice driver is holding a reference to the clock. For these reasons
+a V4L2 clock helper API has been developed and is provided to bridge and
+subdevice drivers.
+
+The API consists of two parts: two functions to register and unregister a V4L2
+clock source: v4l2_clk_register() and v4l2_clk_unregister() and calls to control
+a clock object, similar to the respective generic clock API calls:
+v4l2_clk_get(), v4l2_clk_put(), v4l2_clk_enable(), v4l2_clk_disable(),
+v4l2_clk_get_rate(), and v4l2_clk_set_rate(). Clock suppliers have to provide
+clock operations that will be called when clock users invoke respective API
+methods.
+
+It is expected that once the CCF becomes available on all relevant
+architectures this API will be removed.