mirror of https://gitee.com/openkylin/linux.git
media: Documentation: ccs: Add CCS driver documentation
Document the MIPI CCS driver and the C register definition generator. Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This commit is contained in:
parent
1ec0b899c2
commit
4ad97bfb1a
|
@ -0,0 +1,82 @@
|
|||
.. SPDX-License-Identifier: GPL-2.0-only OR BSD-3-Clause
|
||||
|
||||
.. include:: <isonum.txt>
|
||||
|
||||
MIPI CCS camera sensor driver
|
||||
=============================
|
||||
|
||||
The MIPI CCS camera sensor driver is a generic driver for `MIPI CCS
|
||||
<https://www.mipi.org/specifications/camera-command-set>`_ compliant
|
||||
camera sensors. It exposes three sub-devices representing the pixel array,
|
||||
the binner and the scaler.
|
||||
|
||||
As the capabilities of individual devices vary, the driver exposes
|
||||
interfaces based on the capabilities that exist in hardware.
|
||||
|
||||
Pixel Array sub-device
|
||||
----------------------
|
||||
|
||||
The pixel array sub-device represents the camera sensor's pixel matrix, as well
|
||||
as analogue crop functionality present in many compliant devices. The analogue
|
||||
crop is configured using the ``V4L2_SEL_TGT_CROP`` on the source pad (0) of the
|
||||
entity. The size of the pixel matrix can be obtained by getting the
|
||||
``V4L2_SEL_TGT_NATIVE_SIZE`` target.
|
||||
|
||||
Binner
|
||||
------
|
||||
|
||||
The binner sub-device represents the binning functionality on the sensor. For
|
||||
that purpose, selection target ``V4L2_SEL_TGT_COMPOSE`` is supported on the
|
||||
sink pad (0).
|
||||
|
||||
Additionally, if a device has no scaler or digital crop functionality, the
|
||||
source pad (1) expses another digital crop selection rectangle that can only
|
||||
crop at the end of the lines and frames.
|
||||
|
||||
Scaler
|
||||
------
|
||||
|
||||
The scaler sub-device represents the digital crop and scaling functionality of
|
||||
the sensor. The V4L2 selection target ``V4L2_SEL_TGT_CROP`` is used to
|
||||
configure the digital crop on the sink pad (0) when digital crop is supported.
|
||||
Scaling is configured using selection target ``V4L2_SEL_TGT_COMPOSE`` on the
|
||||
sink pad (0) as well.
|
||||
|
||||
Additionally, if the scaler sub-device exists, its source pad (1) exposes
|
||||
another digital crop selection rectangle that can only crop at the end of the
|
||||
lines and frames.
|
||||
|
||||
Digital and analogue crop
|
||||
-------------------------
|
||||
|
||||
Digital crop functionality is referred to as cropping that effectively works by
|
||||
dropping some data on the floor. Analogue crop, on the other hand, means that
|
||||
the cropped information is never retrieved. In case of camera sensors, the
|
||||
analogue data is never read from the pixel matrix that are outside the
|
||||
configured selection rectangle that designates crop. The difference has an
|
||||
effect in device timing and likely also in power consumption.
|
||||
|
||||
Register definition generator
|
||||
-----------------------------
|
||||
|
||||
The ccs-regs.txt file contains MIPI CCS register definitions that are used
|
||||
to produce C source code files for definitions that can be better used by
|
||||
programs written in C language. As there are many dependencies between the
|
||||
produced files, please do not modify them manually as it's error-prone and
|
||||
in vain, but instead change the script producing them.
|
||||
|
||||
Usage
|
||||
~~~~~
|
||||
|
||||
Conventionally the script is called this way to update the CCS driver
|
||||
definitions:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
$ Documentation/driver-api/media/drivers/ccs/mk-ccs-regs -k \
|
||||
-e drivers/media/i2c/ccs/ccs-regs.h \
|
||||
-L drivers/media/i2c/ccs/ccs-limits.h \
|
||||
-l drivers/media/i2c/ccs/ccs-limits.c \
|
||||
-c Documentation/driver-api/media/drivers/ccs/ccs-regs.txt
|
||||
|
||||
**Copyright** |copy| 2020 Intel Corporation
|
|
@ -26,6 +26,7 @@ Video4Linux (V4L) drivers
|
|||
tuners
|
||||
vimc-devel
|
||||
zoran
|
||||
ccs/ccs
|
||||
|
||||
|
||||
Digital TV drivers
|
||||
|
|
Loading…
Reference in New Issue