linux/drivers/rtc/rtc-asm9260.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Copyright (C) 2016 Oleksij Rempel <[email protected]>
 */

#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>

/* Miscellaneous registers */
/* Interrupt Location Register */
#define HW_ILR
#define BM_RTCALF
#define BM_RTCCIF

/* Clock Control Register */
#define HW_CCR
/* Calibration counter disable */
#define BM_CCALOFF
/* Reset internal oscillator divider */
#define BM_CTCRST
/* Clock Enable */
#define BM_CLKEN

/* Counter Increment Interrupt Register */
#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

/* Alarm Mask Register */
#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

/* Consolidated time registers */
#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

/* Time counter registers */
#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

/* General purpose registers */
#define HW_GPREG0
#define HW_GPREG1
#define HW_GPREG2
#define HW_GPREG3
#define HW_GPREG4

/* Alarm register group */
#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();