linux/drivers/char/hw_random/iproc-rng200.c

// SPDX-License-Identifier: GPL-2.0-only
/*
* Copyright (C) 2015 Broadcom Corporation
*
*/
/*
 * DESCRIPTION: The Broadcom iProc RNG200 Driver
 */

#include <linux/hw_random.h>
#include <linux/init.h>
#include <linux/io.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/mod_devicetable.h>
#include <linux/platform_device.h>
#include <linux/delay.h>

/* Registers */
#define RNG_CTRL_OFFSET
#define RNG_CTRL_RNG_RBGEN_MASK
#define RNG_CTRL_RNG_RBGEN_ENABLE

#define RNG_SOFT_RESET_OFFSET
#define RNG_SOFT_RESET

#define RBG_SOFT_RESET_OFFSET
#define RBG_SOFT_RESET

#define RNG_INT_STATUS_OFFSET
#define RNG_INT_STATUS_MASTER_FAIL_LOCKOUT_IRQ_MASK
#define RNG_INT_STATUS_STARTUP_TRANSITIONS_MET_IRQ_MASK
#define RNG_INT_STATUS_NIST_FAIL_IRQ_MASK
#define RNG_INT_STATUS_TOTAL_BITS_COUNT_IRQ_MASK

#define RNG_FIFO_DATA_OFFSET

#define RNG_FIFO_COUNT_OFFSET
#define RNG_FIFO_COUNT_RNG_FIFO_COUNT_MASK

struct iproc_rng200_dev {};

#define to_rng_priv(rng)

static void iproc_rng200_enable_set(void __iomem *rng_base, bool enable)
{}

static void iproc_rng200_restart(void __iomem *rng_base)
{}

static int iproc_rng200_read(struct hwrng *rng, void *buf, size_t max,
			     bool wait)
{}

static int iproc_rng200_init(struct hwrng *rng)
{}

static void iproc_rng200_cleanup(struct hwrng *rng)
{}

static int iproc_rng200_probe(struct platform_device *pdev)
{}

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

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

static const struct dev_pm_ops iproc_rng200_pm_ops =;

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

static struct platform_driver iproc_rng200_driver =;
module_platform_driver();

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