linux/drivers/watchdog/simatic-ipc-wdt.c

// SPDX-License-Identifier: GPL-2.0
/*
 * Siemens SIMATIC IPC driver for Watchdogs
 *
 * Copyright (c) Siemens AG, 2020-2021
 *
 * Authors:
 *  Gerd Haeussler <[email protected]>
 */

#include <linux/device.h>
#include <linux/errno.h>
#include <linux/init.h>
#include <linux/io.h>
#include <linux/ioport.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/pci.h>
#include <linux/platform_data/x86/p2sb.h>
#include <linux/platform_data/x86/simatic-ipc-base.h>
#include <linux/platform_device.h>
#include <linux/sizes.h>
#include <linux/util_macros.h>
#include <linux/watchdog.h>

#define WD_ENABLE_IOADR
#define WD_TRIGGER_IOADR
#define GPIO_COMMUNITY0_PORT_ID
#define PAD_CFG_DW0_GPP_A_23
#define SAFE_EN_N_427E
#define SAFE_EN_N_227E
#define WD_ENABLED
#define WD_TRIGGERED
#define WD_MACROMODE

#define TIMEOUT_MIN
#define TIMEOUT_DEF
#define TIMEOUT_MAX

#define GP_STATUS_REG_227E

static bool nowayout = WATCHDOG_NOWAYOUT;
module_param(nowayout, bool, 0000);
MODULE_PARM_DESC();

static struct resource gp_status_reg_227e_res =;

static struct resource io_resource_enable =;

static struct resource io_resource_trigger =;

/* the actual start will be discovered with p2sb, 0 is a placeholder */
static struct resource mem_resource =;

static u32 wd_timeout_table[] =;
static void __iomem *wd_reset_base_addr;

static int wd_start(struct watchdog_device *wdd)
{}

static int wd_stop(struct watchdog_device *wdd)
{}

static int wd_ping(struct watchdog_device *wdd)
{}

static int wd_set_timeout(struct watchdog_device *wdd, unsigned int t)
{}

static const struct watchdog_info wdt_ident =;

static const struct watchdog_ops wdt_ops =;

static void wd_secondary_enable(u32 wdtmode)
{}

static int wd_setup(u32 wdtmode)
{}

static struct watchdog_device wdd_data =;

static int simatic_ipc_wdt_probe(struct platform_device *pdev)
{}

static struct platform_driver simatic_ipc_wdt_driver =;

module_platform_driver();

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