linux/drivers/watchdog/rave-sp-wdt.c

// SPDX-License-Identifier: GPL-2.0+

/*
 * Driver for watchdog aspect of for Zodiac Inflight Innovations RAVE
 * Supervisory Processor(SP) MCU
 *
 * Copyright (C) 2017 Zodiac Inflight Innovation
 *
 */

#include <linux/delay.h>
#include <linux/kernel.h>
#include <linux/mfd/rave-sp.h>
#include <linux/module.h>
#include <linux/nvmem-consumer.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/reboot.h>
#include <linux/slab.h>
#include <linux/watchdog.h>

enum {};

/**
 * struct rave_sp_wdt_variant - RAVE SP watchdog variant
 *
 * @max_timeout:	Largest possible watchdog timeout setting
 * @min_timeout:	Smallest possible watchdog timeout setting
 *
 * @configure:		Function to send configuration command
 * @restart:		Function to send "restart" command
 */
struct rave_sp_wdt_variant {};

/**
 * struct rave_sp_wdt - RAVE SP watchdog
 *
 * @wdd:		Underlying watchdog device
 * @sp:			Pointer to parent RAVE SP device
 * @variant:		Device specific variant information
 * @reboot_notifier:	Reboot notifier implementing machine reset
 */
struct rave_sp_wdt {};

static struct rave_sp_wdt *to_rave_sp_wdt(struct watchdog_device *wdd)
{}

static int rave_sp_wdt_exec(struct watchdog_device *wdd, void *data,
			    size_t data_size)
{}

static int rave_sp_wdt_legacy_configure(struct watchdog_device *wdd, bool on)
{}

static int rave_sp_wdt_rdu_configure(struct watchdog_device *wdd, bool on)
{}

/**
 * rave_sp_wdt_configure - Configure watchdog device
 *
 * @wdd:	Device to configure
 * @on:		Desired state of the watchdog timer (ON/OFF)
 *
 * This function configures two aspects of the watchdog timer:
 *
 *  - Wheither it is ON or OFF
 *  - Its timeout duration
 *
 * with first aspect specified via function argument and second via
 * the value of 'wdd->timeout'.
 */
static int rave_sp_wdt_configure(struct watchdog_device *wdd, bool on)
{}

static int rave_sp_wdt_legacy_restart(struct watchdog_device *wdd)
{}

static int rave_sp_wdt_rdu_restart(struct watchdog_device *wdd)
{}

static int rave_sp_wdt_reboot_notifier(struct notifier_block *nb,
				       unsigned long action, void *data)
{}

static int rave_sp_wdt_restart(struct watchdog_device *wdd,
			       unsigned long action, void *data)
{}

static int rave_sp_wdt_start(struct watchdog_device *wdd)
{}

static int rave_sp_wdt_stop(struct watchdog_device *wdd)
{}

static int rave_sp_wdt_set_timeout(struct watchdog_device *wdd,
				   unsigned int timeout)
{}

static int rave_sp_wdt_ping(struct watchdog_device *wdd)
{}

static const struct watchdog_info rave_sp_wdt_info =;

static const struct watchdog_ops rave_sp_wdt_ops =;

static const struct rave_sp_wdt_variant rave_sp_wdt_legacy =;

static const struct rave_sp_wdt_variant rave_sp_wdt_rdu =;

static const struct of_device_id rave_sp_wdt_of_match[] =;

static int rave_sp_wdt_probe(struct platform_device *pdev)
{}

static struct platform_driver rave_sp_wdt_driver =;

module_platform_driver();

MODULE_DEVICE_TABLE(of, rave_sp_wdt_of_match);
MODULE_LICENSE();
MODULE_AUTHOR();
MODULE_AUTHOR();
MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_ALIAS();