#include <linux/bcd.h>
#include <linux/i2c.h>
#include <linux/regmap.h>
#include <linux/rtc.h>
#define SD2405AL_REG_T_SEC …
#define SD2405AL_REG_T_MIN …
#define SD2405AL_REG_T_HOUR …
#define SD2405AL_BIT_12H_PM …
#define SD2405AL_BIT_24H …
#define SD2405AL_REG_T_WEEK …
#define SD2405AL_REG_T_DAY …
#define SD2405AL_REG_T_MON …
#define SD2405AL_REG_T_YEAR …
#define SD2405AL_NUM_T_REGS …
#define SD2405AL_REG_CTR1 …
#define SD2405AL_BIT_WRTC2 …
#define SD2405AL_BIT_WRTC3 …
#define SD2405AL_REG_CTR2 …
#define SD2405AL_BIT_WRTC1 …
#define SD2405AL_REG_CTR3 …
#define SD2405AL_REG_TTF …
#define SD2405AL_REG_CNTDWN …
#define SD2405AL_REG_M_START …
#define SD2405AL_REG_M_END …
struct sd2405al { … };
static int sd2405al_enable_reg_write(struct sd2405al *sd2405al)
{ … }
static int sd2405al_disable_reg_write(struct sd2405al *sd2405al)
{ … }
static int sd2405al_read_time(struct device *dev, struct rtc_time *time)
{ … }
static int sd2405al_set_time(struct device *dev, struct rtc_time *time)
{ … }
static const struct rtc_class_ops sd2405al_rtc_ops = …;
static const struct regmap_config sd2405al_regmap_conf = …;
static int sd2405al_probe(struct i2c_client *client)
{ … }
static const struct i2c_device_id sd2405al_id[] = …;
MODULE_DEVICE_TABLE(i2c, sd2405al_id);
static const __maybe_unused struct of_device_id sd2405al_of_match[] = …;
MODULE_DEVICE_TABLE(of, sd2405al_of_match);
static struct i2c_driver sd2405al_driver = …;
module_i2c_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;