#include <linux/kernel.h>
#include <linux/device.h>
#include <linux/errno.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/mfd/rn5t618.h>
#include <linux/platform_device.h>
#include <linux/regmap.h>
#include <linux/bcd.h>
#include <linux/rtc.h>
#include <linux/slab.h>
#include <linux/irqdomain.h>
struct rc5t619_rtc { … };
#define CTRL1_ALARM_ENABLED …
#define CTRL1_24HR …
#define CTRL1_PERIODIC_MASK …
#define CTRL2_PON …
#define CTRL2_ALARM_STATUS …
#define CTRL2_CTFG …
#define CTRL2_CTC …
#define MONTH_CENTFLAG …
#define HOUR_PMFLAG …
#define MDAY_DAL_EXT …
static uint8_t rtc5t619_12hour_bcd2bin(uint8_t hour)
{ … }
static uint8_t rtc5t619_12hour_bin2bcd(uint8_t hour)
{ … }
static int rc5t619_rtc_periodic_disable(struct device *dev)
{ … }
static int rc5t619_rtc_pon_setup(struct device *dev)
{ … }
static int rc5t619_rtc_read_time(struct device *dev, struct rtc_time *tm)
{ … }
static int rc5t619_rtc_set_time(struct device *dev, struct rtc_time *tm)
{ … }
static int rc5t619_rtc_alarm_enable(struct device *dev, unsigned int enabled)
{ … }
static int rc5t619_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm)
{ … }
static int rc5t619_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm)
{ … }
static const struct rtc_class_ops rc5t619_rtc_ops = …;
static int rc5t619_rtc_alarm_flag_clr(struct device *dev)
{ … }
static irqreturn_t rc5t619_rtc_irq(int irq, void *data)
{ … }
static int rc5t619_rtc_probe(struct platform_device *pdev)
{ … }
static const struct platform_device_id rc5t619_rtc_id[] = …;
MODULE_DEVICE_TABLE(platform, rc5t619_rtc_id);
static struct platform_driver rc5t619_rtc_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;