xref: /linux/drivers/media/platform/rockchip/rkcif/rkcif-interface.h (revision 24f171c7e145f43b9f187578e89b0982ce87e54c)
1*85411d17SMichael Riesch /* SPDX-License-Identifier: GPL-2.0 */
2*85411d17SMichael Riesch /*
3*85411d17SMichael Riesch  * Rockchip Camera Interface (CIF) Driver
4*85411d17SMichael Riesch  *
5*85411d17SMichael Riesch  * Abstraction for the INTERFACE and CROP parts of the different CIF variants.
6*85411d17SMichael Riesch  * They shall be represented as V4L2 subdevice with one sink pad and one
7*85411d17SMichael Riesch  * source pad. The sink pad is connected to a subdevice: either the subdevice
8*85411d17SMichael Riesch  * provided by the driver of the companion chip connected to the DVP, or the
9*85411d17SMichael Riesch  * subdevice provided by the MIPI CSI-2 receiver driver. The source pad is
10*85411d17SMichael Riesch  * to V4l2 device(s) provided by one or many instance(s) of the DMA
11*85411d17SMichael Riesch  * abstraction.
12*85411d17SMichael Riesch  *
13*85411d17SMichael Riesch  * Copyright (C) 2025 Michael Riesch <michael.riesch@wolfvision.net>
14*85411d17SMichael Riesch  * Copyright (C) 2025 Collabora, Ltd.
15*85411d17SMichael Riesch  */
16*85411d17SMichael Riesch 
17*85411d17SMichael Riesch #ifndef _RKCIF_INTERFACE_H
18*85411d17SMichael Riesch #define _RKCIF_INTERFACE_H
19*85411d17SMichael Riesch 
20*85411d17SMichael Riesch #include "rkcif-common.h"
21*85411d17SMichael Riesch 
22*85411d17SMichael Riesch int rkcif_interface_register(struct rkcif_device *rkcif,
23*85411d17SMichael Riesch 			     struct rkcif_interface *interface);
24*85411d17SMichael Riesch 
25*85411d17SMichael Riesch void rkcif_interface_unregister(struct rkcif_interface *interface);
26*85411d17SMichael Riesch 
27*85411d17SMichael Riesch const struct rkcif_input_fmt *
28*85411d17SMichael Riesch rkcif_interface_find_input_fmt(struct rkcif_interface *interface, bool ret_def,
29*85411d17SMichael Riesch 			       u32 mbus_code);
30*85411d17SMichael Riesch 
31*85411d17SMichael Riesch #endif
32