#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/io.h>
#include <linux/platform_device.h>
#include <linux/rtc.h>
#include <linux/bcd.h>
#include <linux/slab.h>
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
struct bq4802 { … };
static u8 bq4802_read_io(struct bq4802 *p, int off)
{ … }
static void bq4802_write_io(struct bq4802 *p, int off, u8 val)
{ … }
static u8 bq4802_read_mem(struct bq4802 *p, int off)
{ … }
static void bq4802_write_mem(struct bq4802 *p, int off, u8 val)
{ … }
static int bq4802_read_time(struct device *dev, struct rtc_time *tm)
{ … }
static int bq4802_set_time(struct device *dev, struct rtc_time *tm)
{ … }
static const struct rtc_class_ops bq4802_ops = …;
static int bq4802_probe(struct platform_device *pdev)
{ … }
MODULE_ALIAS(…) …;
static struct platform_driver bq4802_driver = …;
module_platform_driver(…) …;