linux/drivers/media/platform/rockchip/rkisp1/rkisp1-csi.c

// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Rockchip ISP1 Driver - CSI-2 Receiver
 *
 * Copyright (C) 2019 Collabora, Ltd.
 * Copyright (C) 2022 Ideas on Board
 *
 * Based on Rockchip ISP1 driver by Rockchip Electronics Co., Ltd.
 * Copyright (C) 2017 Rockchip Electronics Co., Ltd.
 */

#include <linux/delay.h>
#include <linux/device.h>
#include <linux/lockdep.h>
#include <linux/phy/phy.h>
#include <linux/phy/phy-mipi-dphy.h>

#include <media/v4l2-ctrls.h>
#include <media/v4l2-fwnode.h>

#include "rkisp1-common.h"
#include "rkisp1-csi.h"

#define RKISP1_CSI_DEV_NAME

#define RKISP1_CSI_DEF_FMT

static inline struct rkisp1_csi *to_rkisp1_csi(struct v4l2_subdev *sd)
{}

int rkisp1_csi_link_sensor(struct rkisp1_device *rkisp1, struct v4l2_subdev *sd,
			   struct rkisp1_sensor_async *s_asd,
			   unsigned int source_pad)
{}

static int rkisp1_csi_config(struct rkisp1_csi *csi,
			     const struct rkisp1_sensor_async *sensor,
			     const struct rkisp1_mbus_info *format)
{}

static void rkisp1_csi_enable(struct rkisp1_csi *csi)
{}

static void rkisp1_csi_disable(struct rkisp1_csi *csi)
{}

static int rkisp1_csi_start(struct rkisp1_csi *csi,
			    const struct rkisp1_sensor_async *sensor,
			    const struct rkisp1_mbus_info *format)
{}

static void rkisp1_csi_stop(struct rkisp1_csi *csi)
{}

irqreturn_t rkisp1_csi_isr(int irq, void *ctx)
{}

/* ----------------------------------------------------------------------------
 * Subdev pad operations
 */

static int rkisp1_csi_enum_mbus_code(struct v4l2_subdev *sd,
				     struct v4l2_subdev_state *sd_state,
				     struct v4l2_subdev_mbus_code_enum *code)
{}

static int rkisp1_csi_init_state(struct v4l2_subdev *sd,
				 struct v4l2_subdev_state *sd_state)
{}

static int rkisp1_csi_set_fmt(struct v4l2_subdev *sd,
			      struct v4l2_subdev_state *sd_state,
			      struct v4l2_subdev_format *fmt)
{}

/* ----------------------------------------------------------------------------
 * Subdev video operations
 */

static int rkisp1_csi_s_stream(struct v4l2_subdev *sd, int enable)
{}

/* ----------------------------------------------------------------------------
 * Registration
 */

static const struct media_entity_operations rkisp1_csi_media_ops =;

static const struct v4l2_subdev_video_ops rkisp1_csi_video_ops =;

static const struct v4l2_subdev_pad_ops rkisp1_csi_pad_ops =;

static const struct v4l2_subdev_ops rkisp1_csi_ops =;

static const struct v4l2_subdev_internal_ops rkisp1_csi_internal_ops =;

int rkisp1_csi_register(struct rkisp1_device *rkisp1)
{}

void rkisp1_csi_unregister(struct rkisp1_device *rkisp1)
{}

int rkisp1_csi_init(struct rkisp1_device *rkisp1)
{}

void rkisp1_csi_cleanup(struct rkisp1_device *rkisp1)
{}