125981136fb13bcacf5f475f3e0ec750341e1e671Christopher Ferris/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
212e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris/*
312e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris * Xilinx Controls Header
412e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris *
512e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris * Copyright (C) 2013-2015 Ideas on Board
612e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris * Copyright (C) 2013-2015 Xilinx, Inc.
712e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris *
812e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris * Contacts: Hyun Kwon <hyun.kwon@xilinx.com>
912e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris *           Laurent Pinchart <laurent.pinchart@ideasonboard.com>
1012e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris *
1112e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris * This software is licensed under the terms of the GNU General Public
1212e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris * License version 2, as published by the Free Software Foundation, and
1312e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris * may be copied, distributed, and modified under those terms.
1412e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris *
1512e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris * This program is distributed in the hope that it will be useful,
1612e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris * but WITHOUT ANY WARRANTY; without even the implied warranty of
1712e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1812e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris * GNU General Public License for more details.
1912e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris */
2012e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris
2112e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris#ifndef __UAPI_XILINX_V4L2_CONTROLS_H__
2212e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris#define __UAPI_XILINX_V4L2_CONTROLS_H__
2312e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris
2412e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris#include <linux/v4l2-controls.h>
2512e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris
2612e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris#define V4L2_CID_XILINX_OFFSET	0xc000
2712e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris#define V4L2_CID_XILINX_BASE	(V4L2_CID_USER_BASE + V4L2_CID_XILINX_OFFSET)
2812e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris
2912e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris/*
3012e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris * Private Controls for Xilinx Video IPs
3112e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris */
3212e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris
3312e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris/*
3412e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris * Xilinx TPG Video IP
3512e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris */
3612e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris
3712e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris#define V4L2_CID_XILINX_TPG			(V4L2_CID_USER_BASE + 0xc000)
3812e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris
3912e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris/* Draw cross hairs */
4012e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris#define V4L2_CID_XILINX_TPG_CROSS_HAIRS		(V4L2_CID_XILINX_TPG + 1)
4112e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris/* Enable a moving box */
4212e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris#define V4L2_CID_XILINX_TPG_MOVING_BOX		(V4L2_CID_XILINX_TPG + 2)
4312e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris/* Mask out a color component */
4412e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris#define V4L2_CID_XILINX_TPG_COLOR_MASK		(V4L2_CID_XILINX_TPG + 3)
4512e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris/* Enable a stuck pixel feature */
4612e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris#define V4L2_CID_XILINX_TPG_STUCK_PIXEL		(V4L2_CID_XILINX_TPG + 4)
4712e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris/* Enable a noisy output */
4812e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris#define V4L2_CID_XILINX_TPG_NOISE		(V4L2_CID_XILINX_TPG + 5)
4912e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris/* Enable the motion feature */
5012e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris#define V4L2_CID_XILINX_TPG_MOTION		(V4L2_CID_XILINX_TPG + 6)
5112e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris/* Configure the motion speed of moving patterns */
5212e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris#define V4L2_CID_XILINX_TPG_MOTION_SPEED	(V4L2_CID_XILINX_TPG + 7)
5312e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris/* The row of horizontal cross hair location */
5412e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris#define V4L2_CID_XILINX_TPG_CROSS_HAIR_ROW	(V4L2_CID_XILINX_TPG + 8)
5512e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris/* The colum of vertical cross hair location */
5612e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris#define V4L2_CID_XILINX_TPG_CROSS_HAIR_COLUMN	(V4L2_CID_XILINX_TPG + 9)
5712e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris/* Set starting point of sine wave for horizontal component */
5812e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris#define V4L2_CID_XILINX_TPG_ZPLATE_HOR_START	(V4L2_CID_XILINX_TPG + 10)
5912e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris/* Set speed of the horizontal component */
6012e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris#define V4L2_CID_XILINX_TPG_ZPLATE_HOR_SPEED	(V4L2_CID_XILINX_TPG + 11)
6112e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris/* Set starting point of sine wave for vertical component */
6212e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris#define V4L2_CID_XILINX_TPG_ZPLATE_VER_START	(V4L2_CID_XILINX_TPG + 12)
6312e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris/* Set speed of the vertical component */
6412e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris#define V4L2_CID_XILINX_TPG_ZPLATE_VER_SPEED	(V4L2_CID_XILINX_TPG + 13)
6512e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris/* Moving box size */
6612e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris#define V4L2_CID_XILINX_TPG_BOX_SIZE		(V4L2_CID_XILINX_TPG + 14)
6712e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris/* Moving box color */
6812e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris#define V4L2_CID_XILINX_TPG_BOX_COLOR		(V4L2_CID_XILINX_TPG + 15)
6912e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris/* Upper limit count of generated stuck pixels */
7012e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris#define V4L2_CID_XILINX_TPG_STUCK_PIXEL_THRESH	(V4L2_CID_XILINX_TPG + 16)
7112e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris/* Noise level */
7212e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris#define V4L2_CID_XILINX_TPG_NOISE_GAIN		(V4L2_CID_XILINX_TPG + 17)
7312e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris
7412e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris#endif /* __UAPI_XILINX_V4L2_CONTROLS_H__ */
75