xref: /linux/include/media/rppx1.h (revision 67f8bc848ee31831336bd478e57d2f993551902e)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Copyright (C) 2026 Renesas Electronics Corp.
4  * Copyright (C) 2026 Ideas on Board Oy
5  * Copyright (C) 2026 Ragnatech AB
6  */
7 
8 #ifndef __MEDIA_DCT_RPPX1_H__
9 #define __MEDIA_DCT_RPPX1_H__
10 
11 #include <linux/v4l2-mediabus.h>
12 #include <linux/media/dreamchip/rppx1-config.h>
13 
14 #include <media/videobuf2-core.h>
15 
16 struct rppx1;
17 
18 struct rppx1 *rppx1_create(void __iomem *base, struct device *dev);
19 
20 void rppx1_destroy(struct rppx1 *rpp);
21 
22 int rppx1_start(struct rppx1 *rpp, const struct v4l2_mbus_framefmt *input,
23 		const struct v4l2_mbus_framefmt *hv,
24 		const struct v4l2_mbus_framefmt *mv);
25 
26 int rppx1_stop(struct rppx1 *rpp);
27 
28 bool rppx1_interrupt(struct rppx1 *rpp, u32 *isc);
29 
30 typedef int (*rppx1_reg_write)(void *priv, u32 offset, u32 value);
31 int rppx1_params(struct rppx1 *rpp, struct vb2_buffer *vb, size_t max_size,
32 		 rppx1_reg_write write, void *priv);
33 
34 void rppx1_stats_fill_isr(struct rppx1 *rpp, u32 isc, void *buf);
35 
36 #endif /* __MEDIA_DCT_RPPX1_H__ */
37