18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0+ */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * vsp1_uif.h -- R-Car VSP1 User Logic Interface 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright (C) 2017-2018 Laurent Pinchart 68c2ecf20Sopenharmony_ci * 78c2ecf20Sopenharmony_ci * Contact: Laurent Pinchart (laurent.pinchart@ideasonboard.com) 88c2ecf20Sopenharmony_ci */ 98c2ecf20Sopenharmony_ci#ifndef __VSP1_UIF_H__ 108c2ecf20Sopenharmony_ci#define __VSP1_UIF_H__ 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci#include "vsp1_entity.h" 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_cistruct vsp1_device; 158c2ecf20Sopenharmony_ci 168c2ecf20Sopenharmony_ci#define UIF_PAD_SINK 0 178c2ecf20Sopenharmony_ci#define UIF_PAD_SOURCE 1 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_cistruct vsp1_uif { 208c2ecf20Sopenharmony_ci struct vsp1_entity entity; 218c2ecf20Sopenharmony_ci bool m3w_quirk; 228c2ecf20Sopenharmony_ci}; 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_cistatic inline struct vsp1_uif *to_uif(struct v4l2_subdev *subdev) 258c2ecf20Sopenharmony_ci{ 268c2ecf20Sopenharmony_ci return container_of(subdev, struct vsp1_uif, entity.subdev); 278c2ecf20Sopenharmony_ci} 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_cistruct vsp1_uif *vsp1_uif_create(struct vsp1_device *vsp1, unsigned int index); 308c2ecf20Sopenharmony_ciu32 vsp1_uif_get_crc(struct vsp1_uif *uif); 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ci#endif /* __VSP1_UIF_H__ */ 33