diff options
author | Sakari Ailus <sakari.ailus@iki.fi> | 2011-05-04 09:45:58 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2011-07-27 16:55:39 -0400 |
commit | 7ba85fa4fdbbe800e92a937ca567120ef32fe49f (patch) | |
tree | 21e6e25380442d994ee3a1fb8d06b9da6a1abcd0 /Documentation | |
parent | 0b159acdd577dfd961ad14177c23e97d3ad33009 (diff) |
[media] v4l: Add flash control documentation
Add documentation for V4L2 flash controls.
Signed-off-by: Sakari Ailus <sakari.ailus@iki.fi>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/DocBook/media/v4l/compat.xml | 3 | ||||
-rw-r--r-- | Documentation/DocBook/media/v4l/controls.xml | 283 | ||||
-rw-r--r-- | Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml | 7 |
3 files changed, 293 insertions, 0 deletions
diff --git a/Documentation/DocBook/media/v4l/compat.xml b/Documentation/DocBook/media/v4l/compat.xml index d7c015e8df81..ce1004a7da52 100644 --- a/Documentation/DocBook/media/v4l/compat.xml +++ b/Documentation/DocBook/media/v4l/compat.xml | |||
@@ -2475,6 +2475,9 @@ ioctls.</para> | |||
2475 | <listitem> | 2475 | <listitem> |
2476 | <para>&VIDIOC-DBG-G-CHIP-IDENT; ioctl.</para> | 2476 | <para>&VIDIOC-DBG-G-CHIP-IDENT; ioctl.</para> |
2477 | </listitem> | 2477 | </listitem> |
2478 | <listitem> | ||
2479 | <para>Flash API. <xref linkend="flash-controls" /></para> | ||
2480 | </listitem> | ||
2478 | </itemizedlist> | 2481 | </itemizedlist> |
2479 | </section> | 2482 | </section> |
2480 | 2483 | ||
diff --git a/Documentation/DocBook/media/v4l/controls.xml b/Documentation/DocBook/media/v4l/controls.xml index a920ee80f640..9155127ed6ab 100644 --- a/Documentation/DocBook/media/v4l/controls.xml +++ b/Documentation/DocBook/media/v4l/controls.xml | |||
@@ -2092,6 +2092,289 @@ manually or automatically if set to zero. Unit, range and step are driver-specif | |||
2092 | <para>For more details about RDS specification, refer to | 2092 | <para>For more details about RDS specification, refer to |
2093 | <xref linkend="en50067" /> document, from CENELEC.</para> | 2093 | <xref linkend="en50067" /> document, from CENELEC.</para> |
2094 | </section> | 2094 | </section> |
2095 | |||
2096 | <section id="flash-controls"> | ||
2097 | <title>Flash Control Reference</title> | ||
2098 | |||
2099 | <note> | ||
2100 | <title>Experimental</title> | ||
2101 | |||
2102 | <para>This is an <link linkend="experimental">experimental</link> | ||
2103 | interface and may change in the future.</para> | ||
2104 | </note> | ||
2105 | |||
2106 | <para> | ||
2107 | The V4L2 flash controls are intended to provide generic access | ||
2108 | to flash controller devices. Flash controller devices are | ||
2109 | typically used in digital cameras. | ||
2110 | </para> | ||
2111 | |||
2112 | <para> | ||
2113 | The interface can support both LED and xenon flash devices. As | ||
2114 | of writing this, there is no xenon flash driver using this | ||
2115 | interface. | ||
2116 | </para> | ||
2117 | |||
2118 | <section id="flash-controls-use-cases"> | ||
2119 | <title>Supported use cases</title> | ||
2120 | |||
2121 | <section> | ||
2122 | <title>Unsynchronised LED flash (software strobe)</title> | ||
2123 | |||
2124 | <para> | ||
2125 | Unsynchronised LED flash is controlled directly by the | ||
2126 | host as the sensor. The flash must be enabled by the host | ||
2127 | before the exposure of the image starts and disabled once | ||
2128 | it ends. The host is fully responsible for the timing of | ||
2129 | the flash. | ||
2130 | </para> | ||
2131 | |||
2132 | <para>Example of such device: Nokia N900.</para> | ||
2133 | </section> | ||
2134 | |||
2135 | <section> | ||
2136 | <title>Synchronised LED flash (hardware strobe)</title> | ||
2137 | |||
2138 | <para> | ||
2139 | The synchronised LED flash is pre-programmed by the host | ||
2140 | (power and timeout) but controlled by the sensor through a | ||
2141 | strobe signal from the sensor to the flash. | ||
2142 | </para> | ||
2143 | |||
2144 | <para> | ||
2145 | The sensor controls the flash duration and timing. This | ||
2146 | information typically must be made available to the | ||
2147 | sensor. | ||
2148 | </para> | ||
2149 | |||
2150 | </section> | ||
2151 | |||
2152 | <section> | ||
2153 | <title>LED flash as torch</title> | ||
2154 | |||
2155 | <para> | ||
2156 | LED flash may be used as torch in conjunction with another | ||
2157 | use case involving camera or individually. | ||
2158 | </para> | ||
2159 | |||
2160 | </section> | ||
2161 | |||
2162 | </section> | ||
2163 | |||
2164 | <table pgwide="1" frame="none" id="flash-control-id"> | ||
2165 | <title>Flash Control IDs</title> | ||
2166 | |||
2167 | <tgroup cols="4"> | ||
2168 | <colspec colname="c1" colwidth="1*" /> | ||
2169 | <colspec colname="c2" colwidth="6*" /> | ||
2170 | <colspec colname="c3" colwidth="2*" /> | ||
2171 | <colspec colname="c4" colwidth="6*" /> | ||
2172 | <spanspec namest="c1" nameend="c2" spanname="id" /> | ||
2173 | <spanspec namest="c2" nameend="c4" spanname="descr" /> | ||
2174 | <thead> | ||
2175 | <row> | ||
2176 | <entry spanname="id" align="left">ID</entry> | ||
2177 | <entry align="left">Type</entry> | ||
2178 | </row><row rowsep="1"><entry spanname="descr" align="left">Description</entry> | ||
2179 | </row> | ||
2180 | </thead> | ||
2181 | <tbody valign="top"> | ||
2182 | <row><entry></entry></row> | ||
2183 | <row> | ||
2184 | <entry spanname="id"><constant>V4L2_CID_FLASH_CLASS</constant></entry> | ||
2185 | <entry>class</entry> | ||
2186 | </row> | ||
2187 | <row> | ||
2188 | <entry spanname="descr">The FLASH class descriptor.</entry> | ||
2189 | </row> | ||
2190 | <row> | ||
2191 | <entry spanname="id"><constant>V4L2_CID_FLASH_LED_MODE</constant></entry> | ||
2192 | <entry>menu</entry> | ||
2193 | </row> | ||
2194 | <row id="v4l2-flash-led-mode"> | ||
2195 | <entry spanname="descr">Defines the mode of the flash LED, | ||
2196 | the high-power white LED attached to the flash controller. | ||
2197 | Setting this control may not be possible in presence of | ||
2198 | some faults. See V4L2_CID_FLASH_FAULT.</entry> | ||
2199 | </row> | ||
2200 | <row> | ||
2201 | <entrytbl spanname="descr" cols="2"> | ||
2202 | <tbody valign="top"> | ||
2203 | <row> | ||
2204 | <entry><constant>V4L2_FLASH_LED_MODE_NONE</constant></entry> | ||
2205 | <entry>Off.</entry> | ||
2206 | </row> | ||
2207 | <row> | ||
2208 | <entry><constant>V4L2_FLASH_LED_MODE_FLASH</constant></entry> | ||
2209 | <entry>Flash mode.</entry> | ||
2210 | </row> | ||
2211 | <row> | ||
2212 | <entry><constant>V4L2_FLASH_LED_MODE_TORCH</constant></entry> | ||
2213 | <entry>Torch mode. See V4L2_CID_FLASH_TORCH_INTENSITY.</entry> | ||
2214 | </row> | ||
2215 | </tbody> | ||
2216 | </entrytbl> | ||
2217 | </row> | ||
2218 | <row> | ||
2219 | <entry spanname="id"><constant>V4L2_CID_FLASH_STROBE_SOURCE</constant></entry> | ||
2220 | <entry>menu</entry> | ||
2221 | </row> | ||
2222 | <row id="v4l2-flash-strobe-source"><entry | ||
2223 | spanname="descr">Defines the source of the flash LED | ||
2224 | strobe.</entry> | ||
2225 | </row> | ||
2226 | <row> | ||
2227 | <entrytbl spanname="descr" cols="2"> | ||
2228 | <tbody valign="top"> | ||
2229 | <row> | ||
2230 | <entry><constant>V4L2_FLASH_STROBE_SOURCE_SOFTWARE</constant></entry> | ||
2231 | <entry>The flash strobe is triggered by using | ||
2232 | the V4L2_CID_FLASH_STROBE control.</entry> | ||
2233 | </row> | ||
2234 | <row> | ||
2235 | <entry><constant>V4L2_FLASH_STROBE_SOURCE_EXTERNAL</constant></entry> | ||
2236 | <entry>The flash strobe is triggered by an | ||
2237 | external source. Typically this is a sensor, | ||
2238 | which makes it possible to synchronises the | ||
2239 | flash strobe start to exposure start.</entry> | ||
2240 | </row> | ||
2241 | </tbody> | ||
2242 | </entrytbl> | ||
2243 | </row> | ||
2244 | <row> | ||
2245 | <entry spanname="id"><constant>V4L2_CID_FLASH_STROBE</constant></entry> | ||
2246 | <entry>button</entry> | ||
2247 | </row> | ||
2248 | <row> | ||
2249 | <entry spanname="descr">Strobe flash. Valid when | ||
2250 | V4L2_CID_FLASH_LED_MODE is set to | ||
2251 | V4L2_FLASH_LED_MODE_FLASH and V4L2_CID_FLASH_STROBE_SOURCE | ||
2252 | is set to V4L2_FLASH_STROBE_SOURCE_SOFTWARE. Setting this | ||
2253 | control may not be possible in presence of some faults. | ||
2254 | See V4L2_CID_FLASH_FAULT.</entry> | ||
2255 | </row> | ||
2256 | <row> | ||
2257 | <entry spanname="id"><constant>V4L2_CID_FLASH_STROBE_STOP</constant></entry> | ||
2258 | <entry>button</entry> | ||
2259 | </row> | ||
2260 | <row><entry spanname="descr">Stop flash strobe immediately.</entry> | ||
2261 | </row> | ||
2262 | <row> | ||
2263 | <entry spanname="id"><constant>V4L2_CID_FLASH_STROBE_STATUS</constant></entry> | ||
2264 | <entry>boolean</entry> | ||
2265 | </row> | ||
2266 | <row> | ||
2267 | <entry spanname="descr">Strobe status: whether the flash | ||
2268 | is strobing at the moment or not. This is a read-only | ||
2269 | control.</entry> | ||
2270 | </row> | ||
2271 | <row> | ||
2272 | <entry spanname="id"><constant>V4L2_CID_FLASH_TIMEOUT</constant></entry> | ||
2273 | <entry>integer</entry> | ||
2274 | </row> | ||
2275 | <row> | ||
2276 | <entry spanname="descr">Hardware timeout for flash. The | ||
2277 | flash strobe is stopped after this period of time has | ||
2278 | passed from the start of the strobe.</entry> | ||
2279 | </row> | ||
2280 | <row> | ||
2281 | <entry spanname="id"><constant>V4L2_CID_FLASH_INTENSITY</constant></entry> | ||
2282 | <entry>integer</entry> | ||
2283 | </row> | ||
2284 | <row> | ||
2285 | <entry spanname="descr">Intensity of the flash strobe when | ||
2286 | the flash LED is in flash mode | ||
2287 | (V4L2_FLASH_LED_MODE_FLASH). The unit should be milliamps | ||
2288 | (mA) if possible.</entry> | ||
2289 | </row> | ||
2290 | <row> | ||
2291 | <entry spanname="id"><constant>V4L2_CID_FLASH_TORCH_INTENSITY</constant></entry> | ||
2292 | <entry>integer</entry> | ||
2293 | </row> | ||
2294 | <row> | ||
2295 | <entry spanname="descr">Intensity of the flash LED in | ||
2296 | torch mode (V4L2_FLASH_LED_MODE_TORCH). The unit should be | ||
2297 | milliamps (mA) if possible. Setting this control may not | ||
2298 | be possible in presence of some faults. See | ||
2299 | V4L2_CID_FLASH_FAULT.</entry> | ||
2300 | </row> | ||
2301 | <row> | ||
2302 | <entry spanname="id"><constant>V4L2_CID_FLASH_INDICATOR_INTENSITY</constant></entry> | ||
2303 | <entry>integer</entry> | ||
2304 | </row> | ||
2305 | <row> | ||
2306 | <entry spanname="descr">Intensity of the indicator LED. | ||
2307 | The indicator LED may be fully independent of the flash | ||
2308 | LED. The unit should be microamps (uA) if possible.</entry> | ||
2309 | </row> | ||
2310 | <row> | ||
2311 | <entry spanname="id"><constant>V4L2_CID_FLASH_FAULT</constant></entry> | ||
2312 | <entry>bitmask</entry> | ||
2313 | </row> | ||
2314 | <row> | ||
2315 | <entry spanname="descr">Faults related to the flash. The | ||
2316 | faults tell about specific problems in the flash chip | ||
2317 | itself or the LEDs attached to it. Faults may prevent | ||
2318 | further use of some of the flash controls. In particular, | ||
2319 | V4L2_CID_FLASH_LED_MODE is set to V4L2_FLASH_LED_MODE_NONE | ||
2320 | if the fault affects the flash LED. Exactly which faults | ||
2321 | have such an effect is chip dependent. Reading the faults | ||
2322 | resets the control and returns the chip to a usable state | ||
2323 | if possible.</entry> | ||
2324 | </row> | ||
2325 | <row> | ||
2326 | <entrytbl spanname="descr" cols="2"> | ||
2327 | <tbody valign="top"> | ||
2328 | <row> | ||
2329 | <entry><constant>V4L2_FLASH_FAULT_OVER_VOLTAGE</constant></entry> | ||
2330 | <entry>Flash controller voltage to the flash LED | ||
2331 | has exceeded the limit specific to the flash | ||
2332 | controller.</entry> | ||
2333 | </row> | ||
2334 | <row> | ||
2335 | <entry><constant>V4L2_FLASH_FAULT_TIMEOUT</constant></entry> | ||
2336 | <entry>The flash strobe was still on when | ||
2337 | the timeout set by the user --- | ||
2338 | V4L2_CID_FLASH_TIMEOUT control --- has expired. | ||
2339 | Not all flash controllers may set this in all | ||
2340 | such conditions.</entry> | ||
2341 | </row> | ||
2342 | <row> | ||
2343 | <entry><constant>V4L2_FLASH_FAULT_OVER_TEMPERATURE</constant></entry> | ||
2344 | <entry>The flash controller has overheated.</entry> | ||
2345 | </row> | ||
2346 | <row> | ||
2347 | <entry><constant>V4L2_FLASH_FAULT_SHORT_CIRCUIT</constant></entry> | ||
2348 | <entry>The short circuit protection of the flash | ||
2349 | controller has been triggered.</entry> | ||
2350 | </row> | ||
2351 | </tbody> | ||
2352 | </entrytbl> | ||
2353 | </row> | ||
2354 | <row> | ||
2355 | <entry spanname="id"><constant>V4L2_CID_FLASH_CHARGE</constant></entry> | ||
2356 | <entry>boolean</entry> | ||
2357 | </row> | ||
2358 | <row><entry spanname="descr">Enable or disable charging of the xenon | ||
2359 | flash capacitor.</entry> | ||
2360 | </row> | ||
2361 | <row> | ||
2362 | <entry spanname="id"><constant>V4L2_CID_FLASH_READY</constant></entry> | ||
2363 | <entry>boolean</entry> | ||
2364 | </row> | ||
2365 | <row> | ||
2366 | <entry spanname="descr">Is the flash ready to strobe? | ||
2367 | Xenon flashes require their capacitors charged before | ||
2368 | strobing. LED flashes often require a cooldown period | ||
2369 | after strobe during which another strobe will not be | ||
2370 | possible. This is a read-only control.</entry> | ||
2371 | </row> | ||
2372 | <row><entry></entry></row> | ||
2373 | </tbody> | ||
2374 | </tgroup> | ||
2375 | </table> | ||
2376 | |||
2377 | </section> | ||
2095 | </section> | 2378 | </section> |
2096 | 2379 | ||
2097 | <!-- | 2380 | <!-- |
diff --git a/Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml b/Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml index 5e73517fa232..5122ce87e0b8 100644 --- a/Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml +++ b/Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml | |||
@@ -250,6 +250,13 @@ These controls are described in <xref | |||
250 | These controls are described in <xref | 250 | These controls are described in <xref |
251 | linkend="fm-tx-controls" />.</entry> | 251 | linkend="fm-tx-controls" />.</entry> |
252 | </row> | 252 | </row> |
253 | <row> | ||
254 | <entry><constant>V4L2_CTRL_CLASS_FLASH</constant></entry> | ||
255 | <entry>0x9c0000</entry> | ||
256 | <entry>The class containing flash device controls. | ||
257 | These controls are described in <xref | ||
258 | linkend="flash-controls" />.</entry> | ||
259 | </row> | ||
253 | </tbody> | 260 | </tbody> |
254 | </tgroup> | 261 | </tgroup> |
255 | </table> | 262 | </table> |