linux/drivers/staging/media/starfive/camss/stf-camss.c

// SPDX-License-Identifier: GPL-2.0
/*
 * stf_camss.c
 *
 * Starfive Camera Subsystem driver
 *
 * Copyright (C) 2021-2023 StarFive Technology Co., Ltd.
 *
 * Author: Jack Zhu <[email protected]>
 * Author: Changhuang Liang <[email protected]>
 *
 */
#include <linux/module.h>
#include <linux/of.h>
#include <linux/of_graph.h>
#include <linux/platform_device.h>
#include <linux/pm_runtime.h>
#include <linux/videodev2.h>
#include <media/v4l2-fwnode.h>
#include <media/v4l2-mc.h>

#include "stf-camss.h"

static const char * const stfcamss_clocks[] =;

static const char * const stfcamss_resets[] =;

static const struct stf_isr_data stf_isrs[] =;

static int stfcamss_get_mem_res(struct stfcamss *stfcamss)
{}

/*
 * stfcamss_of_parse_endpoint_node - Parse port endpoint node
 * @dev: Device
 * @node: Device node to be parsed
 * @csd: Parsed data from port endpoint node
 *
 * Return 0 on success or a negative error code on failure
 */
static int stfcamss_of_parse_endpoint_node(struct stfcamss *stfcamss,
					   struct device_node *node,
					   struct stfcamss_async_subdev *csd)
{}

/*
 * stfcamss_of_parse_ports - Parse ports node
 * @stfcamss: STFCAMSS device
 *
 * Return number of "port" nodes found in "ports" node
 */
static int stfcamss_of_parse_ports(struct stfcamss *stfcamss)
{}

static int stfcamss_register_devs(struct stfcamss *stfcamss)
{}

static void stfcamss_unregister_devs(struct stfcamss *stfcamss)
{}

static int stfcamss_subdev_notifier_bound(struct v4l2_async_notifier *async,
					  struct v4l2_subdev *subdev,
					  struct v4l2_async_connection *asc)
{}

static int stfcamss_subdev_notifier_complete(struct v4l2_async_notifier *ntf)
{}

static const struct v4l2_async_notifier_operations
stfcamss_subdev_notifier_ops =;

static void stfcamss_mc_init(struct platform_device *pdev,
			     struct stfcamss *stfcamss)
{}

/*
 * stfcamss_probe - Probe STFCAMSS platform device
 * @pdev: Pointer to STFCAMSS platform device
 *
 * Return 0 on success or a negative error code on failure
 */
static int stfcamss_probe(struct platform_device *pdev)
{}

/*
 * stfcamss_remove - Remove STFCAMSS platform device
 * @pdev: Pointer to STFCAMSS platform device
 *
 * Always returns 0.
 */
static void stfcamss_remove(struct platform_device *pdev)
{}

static const struct of_device_id stfcamss_of_match[] =;

MODULE_DEVICE_TABLE(of, stfcamss_of_match);

static int __maybe_unused stfcamss_runtime_suspend(struct device *dev)
{}

static int __maybe_unused stfcamss_runtime_resume(struct device *dev)
{}

static const struct dev_pm_ops stfcamss_pm_ops =;

static struct platform_driver stfcamss_driver =;

module_platform_driver();

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