linux/drivers/media/i2c/rdacm21.c

// SPDX-License-Identifier: GPL-2.0+
/*
 * IMI RDACM21 GMSL Camera Driver
 *
 * Copyright (C) 2017-2020 Jacopo Mondi
 * Copyright (C) 2017-2019 Kieran Bingham
 * Copyright (C) 2017-2019 Laurent Pinchart
 * Copyright (C) 2017-2019 Niklas Söderlund
 * Copyright (C) 2016 Renesas Electronics Corporation
 * Copyright (C) 2015 Cogent Embedded, Inc.
 */

#include <linux/delay.h>
#include <linux/fwnode.h>
#include <linux/init.h>
#include <linux/i2c.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/videodev2.h>

#include <media/v4l2-async.h>
#include <media/v4l2-ctrls.h>
#include <media/v4l2-subdev.h>
#include "max9271.h"

#define MAX9271_RESET_CYCLES

#define OV490_I2C_ADDRESS

#define OV490_PAGE_HIGH_REG
#define OV490_PAGE_LOW_REG

/*
 * The SCCB slave handling is undocumented; the registers naming scheme is
 * totally arbitrary.
 */
#define OV490_SCCB_SLAVE_WRITE
#define OV490_SCCB_SLAVE_READ
#define OV490_SCCB_SLAVE0_DIR
#define OV490_SCCB_SLAVE0_ADDR_HIGH
#define OV490_SCCB_SLAVE0_ADDR_LOW

#define OV490_DVP_CTRL3

#define OV490_ODS_CTRL_FRAME_OUTPUT_EN
#define OV490_ODS_CTRL

#define OV490_HOST_CMD
#define OV490_HOST_CMD_TRIGGER

#define OV490_ID_VAL
#define OV490_ID(_p, _v)
#define OV490_PID
#define OV490_VER
#define OV490_PID_TIMEOUT
#define OV490_OUTPUT_EN_TIMEOUT

#define OV490_GPIO0
#define OV490_SPWDN0
#define OV490_GPIO_SEL0
#define OV490_GPIO_SEL1
#define OV490_GPIO_DIRECTION0
#define OV490_GPIO_DIRECTION1
#define OV490_GPIO_OUTPUT_VALUE0
#define OV490_GPIO_OUTPUT_VALUE1

#define OV490_ISP_HSIZE_LOW
#define OV490_ISP_HSIZE_HIGH
#define OV490_ISP_VSIZE_LOW
#define OV490_ISP_VSIZE_HIGH

#define OV10640_PID_TIMEOUT
#define OV10640_ID_HIGH
#define OV10640_CHIP_ID
#define OV10640_PIXEL_RATE

struct rdacm21_device {};

static inline struct rdacm21_device *sd_to_rdacm21(struct v4l2_subdev *sd)
{}

static const struct ov490_reg {} ov490_regs_wizard[] =;

static int ov490_read(struct rdacm21_device *dev, u16 reg, u8 *val)
{}

static int ov490_write(struct rdacm21_device *dev, u16 reg, u8 val)
{}

static int ov490_set_page(struct rdacm21_device *dev, u16 page)
{}

static int ov490_read_reg(struct rdacm21_device *dev, u32 reg, u8 *val)
{}

static int ov490_write_reg(struct rdacm21_device *dev, u32 reg, u8 val)
{}

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

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

static int rdacm21_get_fmt(struct v4l2_subdev *sd,
			   struct v4l2_subdev_state *sd_state,
			   struct v4l2_subdev_format *format)
{}

static const struct v4l2_subdev_video_ops rdacm21_video_ops =;

static const struct v4l2_subdev_pad_ops rdacm21_subdev_pad_ops =;

static const struct v4l2_subdev_ops rdacm21_subdev_ops =;

static void ov10640_power_up(struct rdacm21_device *dev)
{}

static int ov10640_check_id(struct rdacm21_device *dev)
{}

static int ov490_initialize(struct rdacm21_device *dev)
{}

static int rdacm21_initialize(struct rdacm21_device *dev)
{}

static int rdacm21_probe(struct i2c_client *client)
{}

static void rdacm21_remove(struct i2c_client *client)
{}

static const struct of_device_id rdacm21_of_ids[] =;
MODULE_DEVICE_TABLE(of, rdacm21_of_ids);

static struct i2c_driver rdacm21_i2c_driver =;

module_i2c_driver();

MODULE_DESCRIPTION();
MODULE_AUTHOR();
MODULE_LICENSE();