linux/drivers/media/platform/ti/davinci/vpif.c

/*
 * vpif - Video Port Interface driver
 * VPIF is a receiver and transmitter for video data. It has two channels(0, 1)
 * that receiving video byte stream and two channels(2, 3) for video output.
 * The hardware supports SDTV, HDTV formats, raw data capture.
 * Currently, the driver supports NTSC and PAL standards.
 *
 * Copyright (C) 2009 Texas Instruments Incorporated - https://www.ti.com/
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation version 2.
 *
 * This program is distributed .as is. WITHOUT ANY WARRANTY of any
 * kind, whether express or implied; without even the implied warranty
 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

#include <linux/err.h>
#include <linux/init.h>
#include <linux/io.h>
#include <linux/irq.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/pm_runtime.h>
#include <linux/spinlock.h>
#include <linux/v4l2-dv-timings.h>
#include <linux/of_graph.h>

#include "vpif.h"

MODULE_DESCRIPTION();
MODULE_LICENSE();

#define VPIF_DRIVER_NAME
MODULE_ALIAS();

#define VPIF_CH0_MAX_MODES
#define VPIF_CH1_MAX_MODES
#define VPIF_CH2_MAX_MODES
#define VPIF_CH3_MAX_MODES

struct vpif_data {};

DEFINE_SPINLOCK();
EXPORT_SYMBOL_GPL();

void __iomem *vpif_base;
EXPORT_SYMBOL_GPL();

/*
 * vpif_ch_params: video standard configuration parameters for vpif
 *
 * The table must include all presets from supported subdevices.
 */
const struct vpif_channel_config_params vpif_ch_params[] =;
EXPORT_SYMBOL_GPL();

const unsigned int vpif_ch_params_count =;
EXPORT_SYMBOL_GPL();

static inline void vpif_wr_bit(u32 reg, u32 bit, u32 val)
{}

/* This structure is used to keep track of VPIF size register's offsets */
struct vpif_registers {};

static const struct vpif_registers vpifregs[VPIF_NUM_CHANNELS] =;

/* vpif_set_mode_info:
 * This function is used to set horizontal and vertical config parameters
 * As per the standard in the channel, configure the values of L1, L3,
 * L5, L7  L9, L11 in VPIF Register , also write width and height
 */
static void vpif_set_mode_info(const struct vpif_channel_config_params *config,
				u8 channel_id, u8 config_channel_id)
{}

/* config_vpif_params
 * Function to set the parameters of a channel
 * Mainly modifies the channel ciontrol register
 * It sets frame format, yc mux mode
 */
static void config_vpif_params(struct vpif_params *vpifparams,
				u8 channel_id, u8 found)
{}

/* vpif_set_video_params
 * This function is used to set video parameters in VPIF register
 */
int vpif_set_video_params(struct vpif_params *vpifparams, u8 channel_id)
{}
EXPORT_SYMBOL();

void vpif_set_vbi_display_params(struct vpif_vbi_params *vbiparams,
				u8 channel_id)
{}
EXPORT_SYMBOL();

int vpif_channel_getfid(u8 channel_id)
{}
EXPORT_SYMBOL();

static void vpif_pdev_release(struct device *dev)
{}

static int vpif_probe(struct platform_device *pdev)
{}

static void vpif_remove(struct platform_device *pdev)
{}

#ifdef CONFIG_PM
static int vpif_suspend(struct device *dev)
{}

static int vpif_resume(struct device *dev)
{}

static const struct dev_pm_ops vpif_pm =;

#define vpif_pm_ops
#else
#define vpif_pm_ops
#endif

#if IS_ENABLED(CONFIG_OF)
static const struct of_device_id vpif_of_match[] =;
MODULE_DEVICE_TABLE(of, vpif_of_match);
#endif

static struct platform_driver vpif_driver =;

static void vpif_exit(void)
{}

static int __init vpif_init(void)
{}
subsys_initcall(vpif_init);
module_exit(vpif_exit);