#include <linux/clk.h>
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/rtc.h>
#define HW_ILR …
#define BM_RTCALF …
#define BM_RTCCIF …
#define HW_CCR …
#define BM_CCALOFF …
#define BM_CTCRST …
#define BM_CLKEN …
#define HW_CIIR …
#define BM_CIIR_IMYEAR …
#define BM_CIIR_IMMON …
#define BM_CIIR_IMDOY …
#define BM_CIIR_IMDOW …
#define BM_CIIR_IMDOM …
#define BM_CIIR_IMHOUR …
#define BM_CIIR_IMMIN …
#define BM_CIIR_IMSEC …
#define HW_AMR …
#define BM_AMR_IMYEAR …
#define BM_AMR_IMMON …
#define BM_AMR_IMDOY …
#define BM_AMR_IMDOW …
#define BM_AMR_IMDOM …
#define BM_AMR_IMHOUR …
#define BM_AMR_IMMIN …
#define BM_AMR_IMSEC …
#define BM_AMR_OFF …
#define HW_CTIME0 …
#define BM_CTIME0_DOW_S …
#define BM_CTIME0_DOW_M …
#define BM_CTIME0_HOUR_S …
#define BM_CTIME0_HOUR_M …
#define BM_CTIME0_MIN_S …
#define BM_CTIME0_MIN_M …
#define BM_CTIME0_SEC_S …
#define BM_CTIME0_SEC_M …
#define HW_CTIME1 …
#define BM_CTIME1_YEAR_S …
#define BM_CTIME1_YEAR_M …
#define BM_CTIME1_MON_S …
#define BM_CTIME1_MON_M …
#define BM_CTIME1_DOM_S …
#define BM_CTIME1_DOM_M …
#define HW_CTIME2 …
#define BM_CTIME2_DOY_S …
#define BM_CTIME2_DOY_M …
#define HW_SEC …
#define HW_MIN …
#define HW_HOUR …
#define HW_DOM …
#define HW_DOW …
#define HW_DOY …
#define HW_MONTH …
#define HW_YEAR …
#define HW_CALIBRATION …
#define BM_CALDIR_BACK …
#define BM_CALVAL_M …
#define HW_GPREG0 …
#define HW_GPREG1 …
#define HW_GPREG2 …
#define HW_GPREG3 …
#define HW_GPREG4 …
#define HW_ALSEC …
#define HW_ALMIN …
#define HW_ALHOUR …
#define HW_ALDOM …
#define HW_ALDOW …
#define HW_ALDOY …
#define HW_ALMON …
#define HW_ALYEAR …
struct asm9260_rtc_priv { … };
static irqreturn_t asm9260_rtc_irq(int irq, void *dev_id)
{ … }
static int asm9260_rtc_read_time(struct device *dev, struct rtc_time *tm)
{ … }
static int asm9260_rtc_set_time(struct device *dev, struct rtc_time *tm)
{ … }
static int asm9260_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm)
{ … }
static int asm9260_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm)
{ … }
static int asm9260_alarm_irq_enable(struct device *dev, unsigned int enabled)
{ … }
static const struct rtc_class_ops asm9260_rtc_ops = …;
static int asm9260_rtc_probe(struct platform_device *pdev)
{ … }
static void asm9260_rtc_remove(struct platform_device *pdev)
{ … }
static const struct of_device_id asm9260_dt_ids[] = …;
MODULE_DEVICE_TABLE(of, asm9260_dt_ids);
static struct platform_driver asm9260_rtc_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;