1629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchart/*
2629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchart * vsp1_bru.h  --  R-Car VSP1 Blend ROP Unit
3629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchart *
4629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchart * Copyright (C) 2013 Renesas Corporation
5629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchart *
6629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchart * Contact: Laurent Pinchart (laurent.pinchart@ideasonboard.com)
7629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchart *
8629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchart * This program is free software; you can redistribute it and/or modify
9629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchart * it under the terms of the GNU General Public License as published by
10629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchart * the Free Software Foundation; either version 2 of the License, or
11629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchart * (at your option) any later version.
12629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchart */
13629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchart#ifndef __VSP1_BRU_H__
14629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchart#define __VSP1_BRU_H__
15629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchart
16629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchart#include <media/media-entity.h>
17a16e2794592b733d47f372f0cadcd9ff0f349ca9Laurent Pinchart#include <media/v4l2-ctrls.h>
18629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchart#include <media/v4l2-subdev.h>
19629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchart
20629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchart#include "vsp1_entity.h"
21629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchart
22629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchartstruct vsp1_device;
236418b4d6e1f1d70199a93eeeed948be2229b9c1aLaurent Pinchartstruct vsp1_rwpf;
24629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchart
25629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchart#define BRU_PAD_SINK(n)				(n)
26629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchart#define BRU_PAD_SOURCE				4
27629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchart
28629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchartstruct vsp1_bru {
29629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchart	struct vsp1_entity entity;
30629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchart
31a16e2794592b733d47f372f0cadcd9ff0f349ca9Laurent Pinchart	struct v4l2_ctrl_handler ctrls;
32a16e2794592b733d47f372f0cadcd9ff0f349ca9Laurent Pinchart
336418b4d6e1f1d70199a93eeeed948be2229b9c1aLaurent Pinchart	struct {
346418b4d6e1f1d70199a93eeeed948be2229b9c1aLaurent Pinchart		struct vsp1_rwpf *rpf;
356418b4d6e1f1d70199a93eeeed948be2229b9c1aLaurent Pinchart		struct v4l2_rect compose;
366418b4d6e1f1d70199a93eeeed948be2229b9c1aLaurent Pinchart	} inputs[4];
37629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchart};
38629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchart
39629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchartstatic inline struct vsp1_bru *to_bru(struct v4l2_subdev *subdev)
40629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchart{
41629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchart	return container_of(subdev, struct vsp1_bru, entity.subdev);
42629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchart}
43629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchart
44629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchartstruct vsp1_bru *vsp1_bru_create(struct vsp1_device *vsp1);
45629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchart
46629bb6d4b38fe62d36ab52ad22c3ab726f6ce6e8Laurent Pinchart#endif /* __VSP1_BRU_H__ */
47