#include <linux/err.h>
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/delay.h>
#include <linux/rtc.h>
#include <linux/platform_device.h>
#include <linux/module.h>
#include <linux/mod_devicetable.h>
#include <linux/gpio/consumer.h>
#define GPIO_RTC_RESERVED …
#define GPIO_RTC_DATA_SET …
#define GPIO_RTC_DATA_CLEAR …
#define GPIO_RTC_PIN_PULL_ENABLE …
#define GPIO_RTC_PIN_PULL_TYPE …
#define GPIO_RTC_INT_ENABLE …
#define GPIO_RTC_INT_RAW_STATE …
#define GPIO_RTC_INT_MASKED_STATE …
#define GPIO_RTC_INT_MASK …
#define GPIO_RTC_INT_CLEAR …
#define GPIO_RTC_INT_TRIGGER …
#define GPIO_RTC_INT_BOTH …
#define GPIO_RTC_INT_RISE_NEG …
#define GPIO_RTC_BOUNCE_ENABLE …
#define GPIO_RTC_BOUNCE_PRE_SCALE …
#define GPIO_RTC_PROTECT_W …
#define GPIO_RTC_PROTECT_R …
#define GPIO_RTC_YEAR_W …
#define GPIO_RTC_YEAR_R …
#define GPIO_RTC_DAY_W …
#define GPIO_RTC_DAY_R …
#define GPIO_RTC_MONTH_W …
#define GPIO_RTC_MONTH_R …
#define GPIO_RTC_DATE_W …
#define GPIO_RTC_DATE_R …
#define GPIO_RTC_HOURS_W …
#define GPIO_RTC_HOURS_R …
#define GPIO_RTC_MINUTES_W …
#define GPIO_RTC_MINUTES_R …
#define GPIO_RTC_SECONDS_W …
#define GPIO_RTC_SECONDS_R …
#define GPIO_RTC_DELAY_TIME …
struct moxart_rtc { … };
static int day_of_year[12] = …;
static void moxart_rtc_write_byte(struct device *dev, u8 data)
{ … }
static u8 moxart_rtc_read_byte(struct device *dev)
{ … }
static u8 moxart_rtc_read_register(struct device *dev, u8 cmd)
{ … }
static void moxart_rtc_write_register(struct device *dev, u8 cmd, u8 data)
{ … }
static int moxart_rtc_set_time(struct device *dev, struct rtc_time *tm)
{ … }
static int moxart_rtc_read_time(struct device *dev, struct rtc_time *tm)
{ … }
static const struct rtc_class_ops moxart_rtc_ops = …;
static int moxart_rtc_probe(struct platform_device *pdev)
{ … }
static const struct of_device_id moxart_rtc_match[] = …;
MODULE_DEVICE_TABLE(of, moxart_rtc_match);
static struct platform_driver moxart_rtc_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_AUTHOR(…) …;