linux/drivers/media/platform/samsung/s3c-camif/camif-core.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * s3c24xx/s3c64xx SoC series Camera Interface (CAMIF) driver
 *
 * Copyright (C) 2012 Sylwester Nawrocki <[email protected]>
 * Copyright (C) 2012 Tomasz Figa <[email protected]>
 */
#define pr_fmt(fmt)

#include <linux/bug.h>
#include <linux/clk.h>
#include <linux/delay.h>
#include <linux/device.h>
#include <linux/errno.h>
#include <linux/gpio.h>
#include <linux/i2c.h>
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/kernel.h>
#include <linux/list.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/pm_runtime.h>
#include <linux/slab.h>
#include <linux/types.h>

#include <media/media-device.h>
#include <media/v4l2-ctrls.h>
#include <media/v4l2-ioctl.h>
#include <media/videobuf2-v4l2.h>
#include <media/videobuf2-dma-contig.h>

#include "camif-core.h"

static char *camif_clocks[CLK_MAX_NUM] =;

static const struct camif_fmt camif_formats[] =;

/**
 * s3c_camif_find_format() - lookup camif color format by fourcc or an index
 * @vp: video path (DMA) description (codec/preview)
 * @pixelformat: fourcc to match, ignored if null
 * @index: index to the camif_formats array, ignored if negative
 */
const struct camif_fmt *s3c_camif_find_format(struct camif_vp *vp,
					      const u32 *pixelformat,
					      int index)
{}

static int camif_get_scaler_factor(u32 src, u32 tar, u32 *ratio, u32 *shift)
{}

int s3c_camif_get_scaler_config(struct camif_vp *vp,
				struct camif_scaler *scaler)
{}

static int camif_register_sensor(struct camif_dev *camif)
{}

static void camif_unregister_sensor(struct camif_dev *camif)
{}

static int camif_create_media_links(struct camif_dev *camif)
{}

static int camif_register_video_nodes(struct camif_dev *camif)
{}

static void camif_unregister_video_nodes(struct camif_dev *camif)
{}

static void camif_unregister_media_entities(struct camif_dev *camif)
{}

/*
 * Media device
 */
static int camif_media_dev_init(struct camif_dev *camif)
{}

static void camif_clk_put(struct camif_dev *camif)
{}

static int camif_clk_get(struct camif_dev *camif)
{}

/*
 * The CAMIF device has two relatively independent data processing paths
 * that can source data from memory or the common camera input frontend.
 * Register interrupts for each data processing path (camif_vp).
 */
static int camif_request_irqs(struct platform_device *pdev,
			      struct camif_dev *camif)
{}

static int s3c_camif_probe(struct platform_device *pdev)
{}

static void s3c_camif_remove(struct platform_device *pdev)
{}

static int s3c_camif_runtime_resume(struct device *dev)
{}

static int s3c_camif_runtime_suspend(struct device *dev)
{}

static const struct s3c_camif_variant s3c244x_camif_variant =;

static struct s3c_camif_drvdata s3c244x_camif_drvdata =;

static const struct s3c_camif_variant s3c6410_camif_variant =;

static struct s3c_camif_drvdata s3c6410_camif_drvdata =;

static const struct platform_device_id s3c_camif_driver_ids[] =;
MODULE_DEVICE_TABLE(platform, s3c_camif_driver_ids);

static const struct dev_pm_ops s3c_camif_pm_ops =;

static struct platform_driver s3c_camif_driver =;

module_platform_driver();

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