History

media: Documentation: ccs: Add user documentation for the CCS driver

Add user documentation for the CCS driver. This includes e.g. sub-devices implemented by the driver.

Sakari Ailus committed 6 years ago

Commit db08f691 parent cd9f1453 files · +61 −0Browse files

Unified · Split

3 files
  1. Documentation/userspace-api/media/drivers/ccs.rst +59 −0
  2. Documentation/userspace-api/media/drivers/index.rst +1 −0
  3. MAINTAINERS +1 −0
Documentation/userspace-api/media/drivers/ccs.rst+59−0
@@ -0,0 +1,59 @@
1+.. SPDX-License-Identifier: GPL-2.0-only
2+
3+.. include:: <isonum.txt>
4+
5+MIPI CCS camera sensor driver
6+=============================
7+
8+The MIPI CCS camera sensor driver is a generic driver for `MIPI CCS
9+<https://www.mipi.org/specifications/camera-command-set>`_ compliant
10+camera sensors. It exposes three sub-devices representing the pixel array,
11+the binner and the scaler.
12+
13+As the capabilities of individual devices vary, the driver exposes
14+interfaces based on the capabilities that exist in hardware.
15+
16+Pixel Array sub-device
17+----------------------
18+
19+The pixel array sub-device represents the camera sensor's pixel matrix, as well
20+as analogue crop functionality present in many compliant devices. The analogue
21+crop is configured using the ``V4L2_SEL_TGT_CROP`` on the source pad (0) of the
22+entity. The size of the pixel matrix can be obtained by getting the
23+``V4L2_SEL_TGT_NATIVE_SIZE`` target.
24+
25+Binner
26+------
27+
28+The binner sub-device represents the binning functionality on the sensor. For
29+that purpose, selection target ``V4L2_SEL_TGT_COMPOSE`` is supported on the
30+sink pad (0).
31+
32+Additionally, if a device has no scaler or digital crop functionality, the
33+source pad (1) expses another digital crop selection rectangle that can only
34+crop at the end of the lines and frames.
35+
36+Scaler
37+------
38+
39+The scaler sub-device represents the digital crop and scaling functionality of
40+the sensor. The V4L2 selection target ``V4L2_SEL_TGT_CROP`` is used to
41+configure the digital crop on the sink pad (0) when digital crop is supported.
42+Scaling is configured using selection target ``V4L2_SEL_TGT_COMPOSE`` on the
43+sink pad (0) as well.
44+
45+Additionally, if the scaler sub-device exists, its source pad (1) exposes
46+another digital crop selection rectangle that can only crop at the end of the
47+lines and frames.
48+
49+Digital and analogue crop
50+-------------------------
51+
52+Digital crop functionality is referred to as cropping that effectively works by
53+dropping some data on the floor. Analogue crop, on the other hand, means that
54+the cropped information is never retrieved. In case of camera sensors, the
55+analogue data is never read from the pixel matrix that are outside the
56+configured selection rectangle that designates crop. The difference has an
57+effect in device timing and likely also in power consumption.
58+
59+**Copyright** |copy| 2020 Intel Corporation
Documentation/userspace-api/media/drivers/index.rst+1−0
@@ -31,6 +31,7 @@ For more details see the file COPYING in the source distribution of Linux. · 30 unmodified lines
3131 :maxdepth: 5
3232 :numbered:
3333
34+ ccs
3435 cx2341x-uapi
3536 imx-uapi
3637 max2175
MAINTAINERS+1−0
@@ -11836,6 +11836,7 @@ L: linux-media@vger.kernel.org · 11835 unmodified lines
1183611836 S: Maintained
1183711837 F: Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml
1183811838 F: Documentation/driver-api/media/drivers/ccs/
11839+F: Documentation/userspace-api/media/drivers/ccs.rst
1183911840 F: drivers/media/i2c/ccs-pll.c
1184011841 F: drivers/media/i2c/ccs-pll.h
1184111842 F: drivers/media/i2c/ccs/