mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
4f14e3272f
The extended-controls.rst file had become too big. Split it up: each control class reference gets its own rst file, and this file just describes the Extended Control API. Each control class reference is also moved up one level into the table of contents to make it easier to find e.g. the codec control reference. Finally I rearranged the order so that all camera-related control classes are grouped together, ditto for codec/jpeg and fm-rx/tx. The ext-ctrls-codec.rst is still pretty big and it is a candidate to split up further in the future, possibly per codec. Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
193 lines
6.5 KiB
ReStructuredText
193 lines
6.5 KiB
ReStructuredText
.. Permission is granted to copy, distribute and/or modify this
|
|
.. document under the terms of the GNU Free Documentation License,
|
|
.. Version 1.1 or any later version published by the Free Software
|
|
.. Foundation, with no Invariant Sections, no Front-Cover Texts
|
|
.. and no Back-Cover Texts. A copy of the license is included at
|
|
.. Documentation/media/uapi/fdl-appendix.rst.
|
|
..
|
|
.. TODO: replace it to GFDL-1.1-or-later WITH no-invariant-sections
|
|
|
|
.. _flash-controls:
|
|
|
|
***********************
|
|
Flash Control Reference
|
|
***********************
|
|
|
|
The V4L2 flash controls are intended to provide generic access to flash
|
|
controller devices. Flash controller devices are typically used in
|
|
digital cameras.
|
|
|
|
The interface can support both LED and xenon flash devices. As of
|
|
writing this, there is no xenon flash driver using this interface.
|
|
|
|
|
|
.. _flash-controls-use-cases:
|
|
|
|
Supported use cases
|
|
===================
|
|
|
|
|
|
Unsynchronised LED flash (software strobe)
|
|
------------------------------------------
|
|
|
|
Unsynchronised LED flash is controlled directly by the host as the
|
|
sensor. The flash must be enabled by the host before the exposure of the
|
|
image starts and disabled once it ends. The host is fully responsible
|
|
for the timing of the flash.
|
|
|
|
Example of such device: Nokia N900.
|
|
|
|
|
|
Synchronised LED flash (hardware strobe)
|
|
----------------------------------------
|
|
|
|
The synchronised LED flash is pre-programmed by the host (power and
|
|
timeout) but controlled by the sensor through a strobe signal from the
|
|
sensor to the flash.
|
|
|
|
The sensor controls the flash duration and timing. This information
|
|
typically must be made available to the sensor.
|
|
|
|
|
|
LED flash as torch
|
|
------------------
|
|
|
|
LED flash may be used as torch in conjunction with another use case
|
|
involving camera or individually.
|
|
|
|
|
|
.. _flash-control-id:
|
|
|
|
Flash Control IDs
|
|
-----------------
|
|
|
|
``V4L2_CID_FLASH_CLASS (class)``
|
|
The FLASH class descriptor.
|
|
|
|
``V4L2_CID_FLASH_LED_MODE (menu)``
|
|
Defines the mode of the flash LED, the high-power white LED attached
|
|
to the flash controller. Setting this control may not be possible in
|
|
presence of some faults. See V4L2_CID_FLASH_FAULT.
|
|
|
|
|
|
|
|
.. flat-table::
|
|
:header-rows: 0
|
|
:stub-columns: 0
|
|
|
|
* - ``V4L2_FLASH_LED_MODE_NONE``
|
|
- Off.
|
|
* - ``V4L2_FLASH_LED_MODE_FLASH``
|
|
- Flash mode.
|
|
* - ``V4L2_FLASH_LED_MODE_TORCH``
|
|
- Torch mode. See V4L2_CID_FLASH_TORCH_INTENSITY.
|
|
|
|
|
|
|
|
``V4L2_CID_FLASH_STROBE_SOURCE (menu)``
|
|
Defines the source of the flash LED strobe.
|
|
|
|
.. tabularcolumns:: |p{7.0cm}|p{10.5cm}|
|
|
|
|
.. flat-table::
|
|
:header-rows: 0
|
|
:stub-columns: 0
|
|
|
|
* - ``V4L2_FLASH_STROBE_SOURCE_SOFTWARE``
|
|
- The flash strobe is triggered by using the
|
|
V4L2_CID_FLASH_STROBE control.
|
|
* - ``V4L2_FLASH_STROBE_SOURCE_EXTERNAL``
|
|
- The flash strobe is triggered by an external source. Typically
|
|
this is a sensor, which makes it possible to synchronises the
|
|
flash strobe start to exposure start.
|
|
|
|
|
|
|
|
``V4L2_CID_FLASH_STROBE (button)``
|
|
Strobe flash. Valid when V4L2_CID_FLASH_LED_MODE is set to
|
|
V4L2_FLASH_LED_MODE_FLASH and V4L2_CID_FLASH_STROBE_SOURCE
|
|
is set to V4L2_FLASH_STROBE_SOURCE_SOFTWARE. Setting this
|
|
control may not be possible in presence of some faults. See
|
|
V4L2_CID_FLASH_FAULT.
|
|
|
|
``V4L2_CID_FLASH_STROBE_STOP (button)``
|
|
Stop flash strobe immediately.
|
|
|
|
``V4L2_CID_FLASH_STROBE_STATUS (boolean)``
|
|
Strobe status: whether the flash is strobing at the moment or not.
|
|
This is a read-only control.
|
|
|
|
``V4L2_CID_FLASH_TIMEOUT (integer)``
|
|
Hardware timeout for flash. The flash strobe is stopped after this
|
|
period of time has passed from the start of the strobe.
|
|
|
|
``V4L2_CID_FLASH_INTENSITY (integer)``
|
|
Intensity of the flash strobe when the flash LED is in flash mode
|
|
(V4L2_FLASH_LED_MODE_FLASH). The unit should be milliamps (mA)
|
|
if possible.
|
|
|
|
``V4L2_CID_FLASH_TORCH_INTENSITY (integer)``
|
|
Intensity of the flash LED in torch mode
|
|
(V4L2_FLASH_LED_MODE_TORCH). The unit should be milliamps (mA)
|
|
if possible. Setting this control may not be possible in presence of
|
|
some faults. See V4L2_CID_FLASH_FAULT.
|
|
|
|
``V4L2_CID_FLASH_INDICATOR_INTENSITY (integer)``
|
|
Intensity of the indicator LED. The indicator LED may be fully
|
|
independent of the flash LED. The unit should be microamps (uA) if
|
|
possible.
|
|
|
|
``V4L2_CID_FLASH_FAULT (bitmask)``
|
|
Faults related to the flash. The faults tell about specific problems
|
|
in the flash chip itself or the LEDs attached to it. Faults may
|
|
prevent further use of some of the flash controls. In particular,
|
|
V4L2_CID_FLASH_LED_MODE is set to V4L2_FLASH_LED_MODE_NONE
|
|
if the fault affects the flash LED. Exactly which faults have such
|
|
an effect is chip dependent. Reading the faults resets the control
|
|
and returns the chip to a usable state if possible.
|
|
|
|
.. tabularcolumns:: |p{8.0cm}|p{9.5cm}|
|
|
|
|
.. flat-table::
|
|
:header-rows: 0
|
|
:stub-columns: 0
|
|
|
|
* - ``V4L2_FLASH_FAULT_OVER_VOLTAGE``
|
|
- Flash controller voltage to the flash LED has exceeded the limit
|
|
specific to the flash controller.
|
|
* - ``V4L2_FLASH_FAULT_TIMEOUT``
|
|
- The flash strobe was still on when the timeout set by the user ---
|
|
V4L2_CID_FLASH_TIMEOUT control --- has expired. Not all flash
|
|
controllers may set this in all such conditions.
|
|
* - ``V4L2_FLASH_FAULT_OVER_TEMPERATURE``
|
|
- The flash controller has overheated.
|
|
* - ``V4L2_FLASH_FAULT_SHORT_CIRCUIT``
|
|
- The short circuit protection of the flash controller has been
|
|
triggered.
|
|
* - ``V4L2_FLASH_FAULT_OVER_CURRENT``
|
|
- Current in the LED power supply has exceeded the limit specific to
|
|
the flash controller.
|
|
* - ``V4L2_FLASH_FAULT_INDICATOR``
|
|
- The flash controller has detected a short or open circuit
|
|
condition on the indicator LED.
|
|
* - ``V4L2_FLASH_FAULT_UNDER_VOLTAGE``
|
|
- Flash controller voltage to the flash LED has been below the
|
|
minimum limit specific to the flash controller.
|
|
* - ``V4L2_FLASH_FAULT_INPUT_VOLTAGE``
|
|
- The input voltage of the flash controller is below the limit under
|
|
which strobing the flash at full current will not be possible.The
|
|
condition persists until this flag is no longer set.
|
|
* - ``V4L2_FLASH_FAULT_LED_OVER_TEMPERATURE``
|
|
- The temperature of the LED has exceeded its allowed upper limit.
|
|
|
|
|
|
|
|
``V4L2_CID_FLASH_CHARGE (boolean)``
|
|
Enable or disable charging of the xenon flash capacitor.
|
|
|
|
``V4L2_CID_FLASH_READY (boolean)``
|
|
Is the flash ready to strobe? Xenon flashes require their capacitors
|
|
charged before strobing. LED flashes often require a cooldown period
|
|
after strobe during which another strobe will not be possible. This
|
|
is a read-only control.
|