Commit f72f8055 authored by Jack Zhu's avatar Jack Zhu Committed by Hans Verkuil
Browse files

media: admin-guide: Add starfive_camss.rst for Starfive Camera Subsystem



Add starfive_camss.rst file that documents the Starfive Camera
Subsystem driver which is used for handing image sensor data.

Signed-off-by: default avatarJack Zhu <jack.zhu@starfivetech.com>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
parent f5502cd2
Loading
Loading
Loading
Loading
+72 −0
Original line number Diff line number Diff line
.. SPDX-License-Identifier: GPL-2.0

.. include:: <isonum.txt>

================================
Starfive Camera Subsystem driver
================================

Introduction
------------

This file documents the driver for the Starfive Camera Subsystem found on
Starfive JH7110 SoC. The driver is located under drivers/staging/media/starfive/
camss.

The driver implements V4L2, Media controller and v4l2_subdev interfaces. Camera
sensor using V4L2 subdev interface in the kernel is supported.

The driver has been successfully used on the Gstreamer 1.18.5 with v4l2src
plugin.


Starfive Camera Subsystem hardware
----------------------------------

The Starfive Camera Subsystem hardware consists of::

                    |\         +---------------+      +-----------+
  +----------+      |  \       |               |      |           |
  |          |      |   |      |               |      |           |
  |   MIPI   |----->|   |----->|      ISP      |----->|           |
  |          |      |   |      |               |      |           |
  +----------+      |   |      |               |      |  Memory   |
                    |MUX|      +---------------+      | Interface |
  +----------+      |   |                             |           |
  |          |      |   |---------------------------->|           |
  | Parallel |----->|   |                             |           |
  |          |      |   |                             |           |
  +----------+      |  /                              |           |
                    |/                                +-----------+

- MIPI: The MIPI interface, receiving data from a MIPI CSI-2 camera sensor.

- Parallel: The parallel interface,  receiving data from a parallel sensor.

- ISP: The ISP, processing raw Bayer data from an image sensor and producing
  YUV frames.


Topology
--------

The media controller pipeline graph is as follows:

.. _starfive_camss_graph:

.. kernel-figure:: starfive_camss_graph.dot
    :alt:   starfive_camss_graph.dot
    :align: center

The driver has 2 video devices:

- capture_raw: The capture device, capturing image data directly from a sensor.
- capture_yuv: The capture device, capturing YUV frame data processed by the
  ISP module

The driver has 3 subdevices:

- stf_isp: is responsible for all the isp operations, outputs YUV frames.
- cdns_csi2rx: a CSI-2 bridge supporting up to 4 CSI lanes in input, and 4
  different pixel streams in output.
- imx219: an image sensor, image data is sent through MIPI CSI-2.
+12 −0
Original line number Diff line number Diff line
digraph board {
	rankdir=TB
	n00000001 [label="{{<port0> 0} | stf_isp\n/dev/v4l-subdev0 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
	n00000001:port1 -> n00000008 [style=dashed]
	n00000004 [label="capture_raw\n/dev/video0", shape=box, style=filled, fillcolor=yellow]
	n00000008 [label="capture_yuv\n/dev/video1", shape=box, style=filled, fillcolor=yellow]
	n0000000e [label="{{<port0> 0} | cdns_csi2rx.19800000.csi-bridge\n | {<port1> 1 | <port2> 2 | <port3> 3 | <port4> 4}}", shape=Mrecord, style=filled, fillcolor=green]
	n0000000e:port1 -> n00000001:port0 [style=dashed]
	n0000000e:port1 -> n00000004 [style=dashed]
	n00000018 [label="{{} | imx219 6-0010\n/dev/v4l-subdev1 | {<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green]
	n00000018:port0 -> n0000000e:port0 [style=bold]
}
+1 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ Video4Linux (V4L) driver-specific documentation
	si470x
	si4713
	si476x
	starfive_camss
	vimc
	visl
	vivid
+1 −0
Original line number Diff line number Diff line
@@ -20643,6 +20643,7 @@ M: Jack Zhu <jack.zhu@starfivetech.com>
M:	Changhuang Liang <changhuang.liang@starfivetech.com>
L:	linux-media@vger.kernel.org
S:	Maintained
F:	Documentation/admin-guide/media/starfive_camss.rst
F:	Documentation/devicetree/bindings/media/starfive,jh7110-camss.yaml
STARFIVE CRYPTO DRIVER