YARP
Yet Another Robot Platform
 
Loading...
Searching...
No Matches
xilinx-v4l2-controls.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2/*
3 * Xilinx Controls Header
4 *
5 * Copyright (C) 2013-2015 Ideas on Board
6 * Copyright (C) 2013-2015 Xilinx, Inc.
7 *
8 * Contacts: Hyun Kwon <hyun.kwon@xilinx.com>
9 * Laurent Pinchart <laurent.pinchart@ideasonboard.com>
10 *
11 * This software is licensed under the terms of the GNU General Public
12 * License version 2, as published by the Free Software Foundation, and
13 * may be copied, distributed, and modified under those terms.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 */
20
21#ifndef __UAPI_XILINX_V4L2_CONTROLS_H__
22#define __UAPI_XILINX_V4L2_CONTROLS_H__
23
24#include <linux/v4l2-controls.h>
25
26#define V4L2_CID_XILINX_OFFSET 0xc000
27#define V4L2_CID_XILINX_BASE (V4L2_CID_USER_BASE + V4L2_CID_XILINX_OFFSET)
28
29/*
30 * Private Controls for Xilinx Video IPs
31 */
32
33/*
34 * Xilinx TPG Video IP
35 */
36
37#define V4L2_CID_XILINX_TPG (V4L2_CID_USER_BASE + 0xc000)
38
39/* Draw cross hairs */
40#define V4L2_CID_XILINX_TPG_CROSS_HAIRS (V4L2_CID_XILINX_TPG + 1)
41/* Enable a moving box */
42#define V4L2_CID_XILINX_TPG_MOVING_BOX (V4L2_CID_XILINX_TPG + 2)
43/* Mask out a color component */
44#define V4L2_CID_XILINX_TPG_COLOR_MASK (V4L2_CID_XILINX_TPG + 3)
45/* Enable a stuck pixel feature */
46#define V4L2_CID_XILINX_TPG_STUCK_PIXEL (V4L2_CID_XILINX_TPG + 4)
47/* Enable a noisy output */
48#define V4L2_CID_XILINX_TPG_NOISE (V4L2_CID_XILINX_TPG + 5)
49/* Enable the motion feature */
50#define V4L2_CID_XILINX_TPG_MOTION (V4L2_CID_XILINX_TPG + 6)
51/* Configure the motion speed of moving patterns */
52#define V4L2_CID_XILINX_TPG_MOTION_SPEED (V4L2_CID_XILINX_TPG + 7)
53/* The row of horizontal cross hair location */
54#define V4L2_CID_XILINX_TPG_CROSS_HAIR_ROW (V4L2_CID_XILINX_TPG + 8)
55/* The colum of vertical cross hair location */
56#define V4L2_CID_XILINX_TPG_CROSS_HAIR_COLUMN (V4L2_CID_XILINX_TPG + 9)
57/* Set starting point of sine wave for horizontal component */
58#define V4L2_CID_XILINX_TPG_ZPLATE_HOR_START (V4L2_CID_XILINX_TPG + 10)
59/* Set speed of the horizontal component */
60#define V4L2_CID_XILINX_TPG_ZPLATE_HOR_SPEED (V4L2_CID_XILINX_TPG + 11)
61/* Set starting point of sine wave for vertical component */
62#define V4L2_CID_XILINX_TPG_ZPLATE_VER_START (V4L2_CID_XILINX_TPG + 12)
63/* Set speed of the vertical component */
64#define V4L2_CID_XILINX_TPG_ZPLATE_VER_SPEED (V4L2_CID_XILINX_TPG + 13)
65/* Moving box size */
66#define V4L2_CID_XILINX_TPG_BOX_SIZE (V4L2_CID_XILINX_TPG + 14)
67/* Moving box color */
68#define V4L2_CID_XILINX_TPG_BOX_COLOR (V4L2_CID_XILINX_TPG + 15)
69/* Upper limit count of generated stuck pixels */
70#define V4L2_CID_XILINX_TPG_STUCK_PIXEL_THRESH (V4L2_CID_XILINX_TPG + 16)
71/* Noise level */
72#define V4L2_CID_XILINX_TPG_NOISE_GAIN (V4L2_CID_XILINX_TPG + 17)
73/* Foreground pattern (HLS)*/
74#define V4L2_CID_XILINX_TPG_HLS_FG_PATTERN (V4L2_CID_XILINX_TPG + 18)
75
76/*
77 * Xilinx CRESAMPLE Video IP
78 */
79
80#define V4L2_CID_XILINX_CRESAMPLE (V4L2_CID_USER_BASE + 0xc020)
81
82/* The field parity for interlaced video */
83#define V4L2_CID_XILINX_CRESAMPLE_FIELD_PARITY (V4L2_CID_XILINX_CRESAMPLE + 1)
84/* Specify if the first line of video contains the Chroma information */
85#define V4L2_CID_XILINX_CRESAMPLE_CHROMA_PARITY (V4L2_CID_XILINX_CRESAMPLE + 2)
86
87/*
88 * Xilinx RGB2YUV Video IPs
89 */
90
91#define V4L2_CID_XILINX_RGB2YUV (V4L2_CID_USER_BASE + 0xc040)
92
93/* Maximum Luma(Y) value */
94#define V4L2_CID_XILINX_RGB2YUV_YMAX (V4L2_CID_XILINX_RGB2YUV + 1)
95/* Minimum Luma(Y) value */
96#define V4L2_CID_XILINX_RGB2YUV_YMIN (V4L2_CID_XILINX_RGB2YUV + 2)
97/* Maximum Cb Chroma value */
98#define V4L2_CID_XILINX_RGB2YUV_CBMAX (V4L2_CID_XILINX_RGB2YUV + 3)
99/* Minimum Cb Chroma value */
100#define V4L2_CID_XILINX_RGB2YUV_CBMIN (V4L2_CID_XILINX_RGB2YUV + 4)
101/* Maximum Cr Chroma value */
102#define V4L2_CID_XILINX_RGB2YUV_CRMAX (V4L2_CID_XILINX_RGB2YUV + 5)
103/* Minimum Cr Chroma value */
104#define V4L2_CID_XILINX_RGB2YUV_CRMIN (V4L2_CID_XILINX_RGB2YUV + 6)
105/* The offset compensation value for Luma(Y) */
106#define V4L2_CID_XILINX_RGB2YUV_YOFFSET (V4L2_CID_XILINX_RGB2YUV + 7)
107/* The offset compensation value for Cb Chroma */
108#define V4L2_CID_XILINX_RGB2YUV_CBOFFSET (V4L2_CID_XILINX_RGB2YUV + 8)
109/* The offset compensation value for Cr Chroma */
110#define V4L2_CID_XILINX_RGB2YUV_CROFFSET (V4L2_CID_XILINX_RGB2YUV + 9)
111
112/* Y = CA * R + (1 - CA - CB) * G + CB * B */
113
114/* CA coefficient */
115#define V4L2_CID_XILINX_RGB2YUV_ACOEF (V4L2_CID_XILINX_RGB2YUV + 10)
116/* CB coefficient */
117#define V4L2_CID_XILINX_RGB2YUV_BCOEF (V4L2_CID_XILINX_RGB2YUV + 11)
118/* CC coefficient */
119#define V4L2_CID_XILINX_RGB2YUV_CCOEF (V4L2_CID_XILINX_RGB2YUV + 12)
120/* CD coefficient */
121#define V4L2_CID_XILINX_RGB2YUV_DCOEF (V4L2_CID_XILINX_RGB2YUV + 13)
122
123/*
124 * Xilinx HLS Video IP
125 */
126
127#define V4L2_CID_XILINX_HLS (V4L2_CID_USER_BASE + 0xc060)
128
129/* The IP model */
130#define V4L2_CID_XILINX_HLS_MODEL (V4L2_CID_XILINX_HLS + 1)
131
132/*
133 * Xilinx MIPI CSI2 Rx Subsystem
134 */
135
136/* Base ID */
137#define V4L2_CID_XILINX_MIPICSISS (V4L2_CID_USER_BASE + 0xc080)
138
139/* Active Lanes */
140#define V4L2_CID_XILINX_MIPICSISS_ACT_LANES (V4L2_CID_XILINX_MIPICSISS + 1)
141/* Frames received since streaming is set */
142#define V4L2_CID_XILINX_MIPICSISS_FRAME_COUNTER (V4L2_CID_XILINX_MIPICSISS + 2)
143/* Reset all event counters */
144#define V4L2_CID_XILINX_MIPICSISS_RESET_COUNTERS (V4L2_CID_XILINX_MIPICSISS + 3)
145
146/*
147 * Xilinx Gamma Correction IP
148 */
149
150/* Base ID */
151#define V4L2_CID_XILINX_GAMMA_CORR (V4L2_CID_USER_BASE + 0xc0c0)
152/* Adjust Red Gamma */
153#define V4L2_CID_XILINX_GAMMA_CORR_RED_GAMMA (V4L2_CID_XILINX_GAMMA_CORR + 1)
154/* Adjust Blue Gamma */
155#define V4L2_CID_XILINX_GAMMA_CORR_BLUE_GAMMA (V4L2_CID_XILINX_GAMMA_CORR + 2)
156/* Adjust Green Gamma */
157#define V4L2_CID_XILINX_GAMMA_CORR_GREEN_GAMMA (V4L2_CID_XILINX_GAMMA_CORR + 3)
158
159/*
160 * Xilinx Color Space Converter (CSC) VPSS
161 */
162
163/* Base ID */
164#define V4L2_CID_XILINX_CSC (V4L2_CID_USER_BASE + 0xc0a0)
165/* Adjust Brightness */
166#define V4L2_CID_XILINX_CSC_BRIGHTNESS (V4L2_CID_XILINX_CSC + 1)
167/* Adjust Contrast */
168#define V4L2_CID_XILINX_CSC_CONTRAST (V4L2_CID_XILINX_CSC + 2)
169/* Adjust Red Gain */
170#define V4L2_CID_XILINX_CSC_RED_GAIN (V4L2_CID_XILINX_CSC + 3)
171/* Adjust Green Gain */
172#define V4L2_CID_XILINX_CSC_GREEN_GAIN (V4L2_CID_XILINX_CSC + 4)
173/* Adjust Blue Gain */
174#define V4L2_CID_XILINX_CSC_BLUE_GAIN (V4L2_CID_XILINX_CSC + 5)
175
176/*
177 * Xilinx SDI Rx Subsystem
178 */
179
180/* Base ID */
181#define V4L2_CID_XILINX_SDIRX (V4L2_CID_USER_BASE + 0xc100)
182
183/* Framer Control */
184#define V4L2_CID_XILINX_SDIRX_FRAMER (V4L2_CID_XILINX_SDIRX + 1)
185/* Video Lock Window Control */
186#define V4L2_CID_XILINX_SDIRX_VIDLOCK_WINDOW (V4L2_CID_XILINX_SDIRX + 2)
187/* EDH Error Mask Control */
188#define V4L2_CID_XILINX_SDIRX_EDH_ERRCNT_ENABLE (V4L2_CID_XILINX_SDIRX + 3)
189/* Mode search Control */
190#define V4L2_CID_XILINX_SDIRX_SEARCH_MODES (V4L2_CID_XILINX_SDIRX + 4)
191/* Get Detected Mode control */
192#define V4L2_CID_XILINX_SDIRX_MODE_DETECT (V4L2_CID_XILINX_SDIRX + 5)
193/* Get CRC error status */
194#define V4L2_CID_XILINX_SDIRX_CRC (V4L2_CID_XILINX_SDIRX + 6)
195/* Get EDH error count control */
196#define V4L2_CID_XILINX_SDIRX_EDH_ERRCNT (V4L2_CID_XILINX_SDIRX + 7)
197/* Get EDH status control */
198#define V4L2_CID_XILINX_SDIRX_EDH_STATUS (V4L2_CID_XILINX_SDIRX + 8)
199/* Get Transport Interlaced status */
200#define V4L2_CID_XILINX_SDIRX_TS_IS_INTERLACED (V4L2_CID_XILINX_SDIRX + 9)
201/* Get Active Streams count */
202#define V4L2_CID_XILINX_SDIRX_ACTIVE_STREAMS (V4L2_CID_XILINX_SDIRX + 10)
203/* Is Mode 3GB */
204#define V4L2_CID_XILINX_SDIRX_IS_3GB (V4L2_CID_XILINX_SDIRX + 11)
205
206/*
207 * Xilinx PYTHON1300 Receive Interface IP
208 */
209#define V4L2_CID_XILINX_PYTHON1300_RXIF (V4L2_CID_USER_BASE + 0xc200)
210#define V4L2_CID_XILINX_PYTHON1300_RXIF_REMAPPER_MODE (V4L2_CID_XILINX_PYTHON1300_RXIF + 1)
211#define V4L2_CID_XILINX_PYTHON1300_RXIF_TRG_L (V4L2_CID_XILINX_PYTHON1300_RXIF + 2)
212#define V4L2_CID_XILINX_PYTHON1300_RXIF_TRG_H (V4L2_CID_XILINX_PYTHON1300_RXIF + 3)
213
214#define V4L2_CID_XILINX_PYTHON1300 (V4L2_CID_USER_BASE + 0xc300)
215#define V4L2_CID_XILINX_PYTHON1300_SUBSAMPLING (V4L2_CID_XILINX_PYTHON1300 + 1)
216#define V4L2_CID_XILINX_PYTHON1300_DEBUG (V4L2_CID_XILINX_PYTHON1300 + 2)
217#define V4L2_CID_XILINX_PYTHON1300_TRIGGER (V4L2_CID_XILINX_PYTHON1300 + 3)
218
219/*
220 * Xilinx VIP
221 */
222
223/* Base ID */
224#define V4L2_CID_XILINX_VIP (V4L2_CID_USER_BASE + 0xc120)
225
226/* Low latency mode */
227#define V4L2_CID_XILINX_LOW_LATENCY (V4L2_CID_XILINX_VIP + 1)
228#endif /* __UAPI_XILINX_V4L2_CONTROLS_H__ */