1/* SPDX-License-Identifier: GPL-2.0-only */
2/*
3 * Copyright (C) 2021-2022 Digiteq Automotive
4 *     author: Martin Tuma <martin.tuma@digiteqautomotive.com>
5 */
6
7#ifndef __MGB4_IO_H__
8#define __MGB4_IO_H__
9
10#include <media/v4l2-dev.h>
11
12#define MGB4_DEFAULT_WIDTH     1280
13#define MGB4_DEFAULT_HEIGHT    640
14#define MGB4_DEFAULT_PERIOD    (125000000 / 60)
15
16/* Register access error indication */
17#define MGB4_ERR_NO_REG        0xFFFFFFFE
18/* Frame buffer addresses greater than 0xFFFFFFFA indicate HW errors */
19#define MGB4_ERR_QUEUE_TIMEOUT 0xFFFFFFFD
20#define MGB4_ERR_QUEUE_EMPTY   0xFFFFFFFC
21#define MGB4_ERR_QUEUE_FULL    0xFFFFFFFB
22
23struct mgb4_frame_buffer {
24	struct vb2_v4l2_buffer vb;
25	struct list_head list;
26};
27
28static inline struct mgb4_frame_buffer *to_frame_buffer(struct vb2_v4l2_buffer *vbuf)
29{
30	return container_of(vbuf, struct mgb4_frame_buffer, vb);
31}
32
33#endif
34