brintos

brintos / linux-shallow public Read only

0
0
Text · 1.3 KiB · bc3f0da Raw
64 lines · c
1/* SPDX-License-Identifier: GPL-2.0+ */2/*3 * Copyright (c) 2011-2018 Magewell Electronics Co., Ltd. (Nanjing)4 * Author: Yong Deng <yong.deng@magewell.com>5 * Copyright 2021-2022 Bootlin6 * Author: Paul Kocialkowski <paul.kocialkowski@bootlin.com>7 */8 9#ifndef _SUN6I_CSI_H_10#define _SUN6I_CSI_H_11 12#include <media/v4l2-device.h>13#include <media/videobuf2-v4l2.h>14 15#include "sun6i_csi_bridge.h"16#include "sun6i_csi_capture.h"17 18#define SUN6I_CSI_NAME		"sun6i-csi"19#define SUN6I_CSI_DESCRIPTION	"Allwinner A31 CSI Device"20 21enum sun6i_csi_port {22	SUN6I_CSI_PORT_PARALLEL		= 0,23	SUN6I_CSI_PORT_MIPI_CSI2	= 1,24	SUN6I_CSI_PORT_ISP		= 2,25};26 27struct sun6i_csi_buffer {28	struct vb2_v4l2_buffer		v4l2_buffer;29	struct list_head		list;30};31 32struct sun6i_csi_v4l2 {33	struct v4l2_device		v4l2_dev;34	struct media_device		media_dev;35};36 37struct sun6i_csi_device {38	struct device			*dev;39	struct v4l2_device		*v4l2_dev;40	struct media_device		*media_dev;41 42	struct sun6i_csi_v4l2		v4l2;43	struct sun6i_csi_bridge		bridge;44	struct sun6i_csi_capture	capture;45 46	struct regmap			*regmap;47	struct clk			*clock_mod;48	struct clk			*clock_ram;49	struct reset_control		*reset;50 51	bool				isp_available;52};53 54struct sun6i_csi_variant {55	unsigned long	clock_mod_rate;56};57 58/* ISP */59 60int sun6i_csi_isp_complete(struct sun6i_csi_device *csi_dev,61			   struct v4l2_device *v4l2_dev);62 63#endif64