blob: e32617bc7f9d0ffbaa46bc93ae7c67b8bd4a680b [file] [log] [blame]
Manjunath Hadli606b69e2011-06-17 04:01:34 -03001/*
2 * Copyright (C) 2010 Texas Instruments Inc
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation version 2.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
Manjunath Hadli606b69e2011-06-17 04:01:34 -030012 */
13#ifndef _VPBE_VENC_H
14#define _VPBE_VENC_H
15
16#include <media/v4l2-subdev.h>
17#include <media/davinci/vpbe_types.h>
18
Lad, Prabhakarcaff80c2012-11-20 07:30:36 -030019#define DM644X_VPBE_VENC_SUBDEV_NAME "dm644x,vpbe-venc"
20#define DM365_VPBE_VENC_SUBDEV_NAME "dm365,vpbe-venc"
21#define DM355_VPBE_VENC_SUBDEV_NAME "dm355,vpbe-venc"
Manjunath Hadli606b69e2011-06-17 04:01:34 -030022
23/* venc events */
24#define VENC_END_OF_FRAME BIT(0)
25#define VENC_FIRST_FIELD BIT(1)
26#define VENC_SECOND_FIELD BIT(2)
27
28struct venc_platform_data {
Boris BREZILLON27ffaeb2014-11-10 14:28:31 -030029 int (*setup_pinmux)(u32 if_type, int field);
Manjunath Hadli606b69e2011-06-17 04:01:34 -030030 int (*setup_clock)(enum vpbe_enc_timings_type type,
Hans Verkuil36864082012-10-01 11:39:46 -030031 unsigned int pixclock);
Boris BREZILLON27ffaeb2014-11-10 14:28:31 -030032 int (*setup_if_config)(u32 pixcode);
Manjunath Hadli606b69e2011-06-17 04:01:34 -030033 /* Number of LCD outputs supported */
34 int num_lcd_outputs;
Manjunath Hadli194ed212011-09-10 02:19:55 -030035 struct vpbe_if_params *lcd_if_params;
Manjunath Hadli606b69e2011-06-17 04:01:34 -030036};
37
38enum venc_ioctls {
39 VENC_GET_FLD = 1,
40};
41
42/* exported functions */
43struct v4l2_subdev *venc_sub_dev_init(struct v4l2_device *v4l2_dev,
44 const char *venc_name);
45#endif