linux/drivers/staging/media/sunxi/sun6i-isp/sun6i_isp.h

/* SPDX-License-Identifier: GPL-2.0+ */
/*
 * Copyright 2021-2022 Bootlin
 * Author: Paul Kocialkowski <[email protected]>
 */

#ifndef _SUN6I_ISP_H_
#define _SUN6I_ISP_H_

#include <media/v4l2-device.h>
#include <media/videobuf2-v4l2.h>

#include "sun6i_isp_capture.h"
#include "sun6i_isp_params.h"
#include "sun6i_isp_proc.h"

#define SUN6I_ISP_NAME
#define SUN6I_ISP_DESCRIPTION

enum sun6i_isp_port {};

struct sun6i_isp_buffer {};

struct sun6i_isp_v4l2 {};

struct sun6i_isp_table {};

struct sun6i_isp_tables {};

struct sun6i_isp_device {};

struct sun6i_isp_variant {};

/* Helpers */

u32 sun6i_isp_load_read(struct sun6i_isp_device *isp_dev, u32 offset);
void sun6i_isp_load_write(struct sun6i_isp_device *isp_dev, u32 offset,
			  u32 value);
u32 sun6i_isp_address_value(dma_addr_t address);

/* State */

void sun6i_isp_state_update(struct sun6i_isp_device *isp_dev, bool ready_hold);

/* Tables */

void sun6i_isp_tables_configure(struct sun6i_isp_device *isp_dev);

#endif