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