linux/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c

// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright 2019-2020 NXP
 */

#include <linux/clk.h>
#include <linux/device.h>
#include <linux/errno.h>
#include <linux/kernel.h>
#include <linux/mfd/syscon.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/pm.h>
#include <linux/pm_runtime.h>
#include <linux/property.h>
#include <linux/slab.h>
#include <linux/string.h>
#include <linux/types.h>

#include <media/media-device.h>
#include <media/v4l2-async.h>
#include <media/v4l2-device.h>
#include <media/v4l2-mc.h>

#include "imx8-isi-core.h"

/* -----------------------------------------------------------------------------
 * V4L2 async subdevs
 */

struct mxc_isi_async_subdev {};

static inline struct mxc_isi_async_subdev *
asd_to_mxc_isi_async_subdev(struct v4l2_async_connection *asd)
{
	return container_of(asd, struct mxc_isi_async_subdev, asd);
};

static inline struct mxc_isi_dev *
notifier_to_mxc_isi_dev(struct v4l2_async_notifier *n)
{
	return container_of(n, struct mxc_isi_dev, notifier);
};

static int mxc_isi_async_notifier_bound(struct v4l2_async_notifier *notifier,
					struct v4l2_subdev *sd,
					struct v4l2_async_connection *asc)
{}

static int mxc_isi_async_notifier_complete(struct v4l2_async_notifier *notifier)
{}

static const struct v4l2_async_notifier_operations mxc_isi_async_notifier_ops =;

static int mxc_isi_pipe_register(struct mxc_isi_pipe *pipe)
{}

static void mxc_isi_pipe_unregister(struct mxc_isi_pipe *pipe)
{}

static int mxc_isi_v4l2_init(struct mxc_isi_dev *isi)
{}

static void mxc_isi_v4l2_cleanup(struct mxc_isi_dev *isi)
{}

/* -----------------------------------------------------------------------------
 * Device information
 */

/* Panic will assert when the buffers are 50% full */

/* For i.MX8QXP C0 and i.MX8MN ISI IER version */
static const struct mxc_isi_ier_reg mxc_imx8_isi_ier_v1 =;

/* For i.MX8MP ISI IER version */
static const struct mxc_isi_ier_reg mxc_imx8_isi_ier_v2 =;

/* Panic will assert when the buffers are 50% full */
static const struct mxc_isi_set_thd mxc_imx8_isi_thd_v1 =;

static const struct clk_bulk_data mxc_imx8mn_clks[] =;

static const struct mxc_isi_plat_data mxc_imx8mn_data =;

static const struct mxc_isi_plat_data mxc_imx8mp_data =;

static const struct mxc_isi_plat_data mxc_imx93_data =;

/* -----------------------------------------------------------------------------
 * Power management
 */

static int mxc_isi_pm_suspend(struct device *dev)
{}

static int mxc_isi_pm_resume(struct device *dev)
{}

static int mxc_isi_runtime_suspend(struct device *dev)
{}

static int mxc_isi_runtime_resume(struct device *dev)
{}

static const struct dev_pm_ops mxc_isi_pm_ops =;

/* -----------------------------------------------------------------------------
 * Probe, remove & driver
 */

static int mxc_isi_clk_get(struct mxc_isi_dev *isi)
{}

static int mxc_isi_probe(struct platform_device *pdev)
{}

static void mxc_isi_remove(struct platform_device *pdev)
{}

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

static struct platform_driver mxc_isi_driver =;
module_platform_driver();

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