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