linux/drivers/media/spi/gs1662.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * GS1662 device registration.
 *
 * Copyright (C) 2015-2016 Nexvision
 * Author: Charles-Antoine Couret <[email protected]>
 */

#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/spi/spi.h>
#include <linux/platform_device.h>
#include <linux/ctype.h>
#include <linux/err.h>
#include <linux/device.h>
#include <linux/module.h>

#include <linux/videodev2.h>
#include <media/v4l2-common.h>
#include <media/v4l2-ctrls.h>
#include <media/v4l2-device.h>
#include <media/v4l2-subdev.h>
#include <media/v4l2-dv-timings.h>
#include <linux/v4l2-dv-timings.h>

#define REG_STATUS
#define REG_FORCE_FMT
#define REG_LINES_PER_FRAME
#define REG_WORDS_PER_LINE
#define REG_WORDS_PER_ACT_LINE
#define REG_ACT_LINES_PER_FRAME

#define MASK_H_LOCK
#define MASK_V_LOCK
#define MASK_STD_LOCK
#define MASK_FORCE_STD
#define MASK_STD_STATUS

#define GS_WIDTH_MIN
#define GS_WIDTH_MAX
#define GS_HEIGHT_MIN
#define GS_HEIGHT_MAX
#define GS_PIXELCLOCK_MIN
#define GS_PIXELCLOCK_MAX

struct gs {};

struct gs_reg_fmt {};

static const struct spi_device_id gs_id[] =;
MODULE_DEVICE_TABLE(spi, gs_id);

static const struct v4l2_dv_timings fmt_cap[] =;

static const struct gs_reg_fmt reg_fmt[] =;

static const struct v4l2_dv_timings_cap gs_timings_cap =;

static int gs_read_register(struct spi_device *spi, u16 addr, u16 *value)
{}

static int gs_write_register(struct spi_device *spi, u16 addr, u16 value)
{}

#ifdef CONFIG_VIDEO_ADV_DEBUG
static int gs_g_register(struct v4l2_subdev *sd,
		  struct v4l2_dbg_register *reg)
{}

static int gs_s_register(struct v4l2_subdev *sd,
		  const struct v4l2_dbg_register *reg)
{}
#endif

static int gs_status_format(u16 status, struct v4l2_dv_timings *timings)
{}

static u16 get_register_timings(struct v4l2_dv_timings *timings)
{}

static inline struct gs *to_gs(struct v4l2_subdev *sd)
{}

static int gs_s_dv_timings(struct v4l2_subdev *sd, unsigned int pad,
			   struct v4l2_dv_timings *timings)
{}

static int gs_g_dv_timings(struct v4l2_subdev *sd, unsigned int pad,
			   struct v4l2_dv_timings *timings)
{}

static int gs_query_dv_timings(struct v4l2_subdev *sd, unsigned int pad,
			       struct v4l2_dv_timings *timings)
{}

static int gs_enum_dv_timings(struct v4l2_subdev *sd,
		       struct v4l2_enum_dv_timings *timings)
{}

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

static int gs_g_input_status(struct v4l2_subdev *sd, u32 *status)
{}

static int gs_dv_timings_cap(struct v4l2_subdev *sd,
			     struct v4l2_dv_timings_cap *cap)
{}

/* V4L2 core operation handlers */
static const struct v4l2_subdev_core_ops gs_core_ops =;

static const struct v4l2_subdev_video_ops gs_video_ops =;

static const struct v4l2_subdev_pad_ops gs_pad_ops =;

/* V4L2 top level operation handlers */
static const struct v4l2_subdev_ops gs_ops =;

static int gs_probe(struct spi_device *spi)
{}

static void gs_remove(struct spi_device *spi)
{}

static struct spi_driver gs_driver =;

module_spi_driver();

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