#include <linux/module.h>
#include <linux/mod_devicetable.h>
#include <linux/rtc.h>
#include <linux/platform_device.h>
#include <linux/io.h>
#include <linux/gfp.h>
#define EP93XX_RTC_DATA …
#define EP93XX_RTC_MATCH …
#define EP93XX_RTC_STATUS …
#define EP93XX_RTC_STATUS_INTR …
#define EP93XX_RTC_LOAD …
#define EP93XX_RTC_CONTROL …
#define EP93XX_RTC_CONTROL_MIE …
#define EP93XX_RTC_SWCOMP …
#define EP93XX_RTC_SWCOMP_DEL_MASK …
#define EP93XX_RTC_SWCOMP_DEL_SHIFT …
#define EP93XX_RTC_SWCOMP_INT_MASK …
#define EP93XX_RTC_SWCOMP_INT_SHIFT …
struct ep93xx_rtc { … };
static int ep93xx_rtc_get_swcomp(struct device *dev, unsigned short *preload,
unsigned short *delete)
{ … }
static int ep93xx_rtc_read_time(struct device *dev, struct rtc_time *tm)
{ … }
static int ep93xx_rtc_set_time(struct device *dev, struct rtc_time *tm)
{ … }
static int ep93xx_rtc_proc(struct device *dev, struct seq_file *seq)
{ … }
static const struct rtc_class_ops ep93xx_rtc_ops = …;
static ssize_t comp_preload_show(struct device *dev,
struct device_attribute *attr, char *buf)
{ … }
static DEVICE_ATTR_RO(comp_preload);
static ssize_t comp_delete_show(struct device *dev,
struct device_attribute *attr, char *buf)
{ … }
static DEVICE_ATTR_RO(comp_delete);
static struct attribute *ep93xx_rtc_attrs[] = …;
static const struct attribute_group ep93xx_rtc_sysfs_files = …;
static int ep93xx_rtc_probe(struct platform_device *pdev)
{ … }
static const struct of_device_id ep93xx_rtc_of_ids[] = …;
MODULE_DEVICE_TABLE(of, ep93xx_rtc_of_ids);
static struct platform_driver ep93xx_rtc_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_ALIAS(…) …;