1234567891011121314151617181920212223242526272829 |
- 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.
|