#include <linux/interrupt.h>
#include <linux/mfd/core.h>
#include <linux/mfd/rk808.h>
#include <linux/module.h>
#include <linux/regmap.h>
#include <linux/spi/spi.h>
#define RK806_ADDR_SIZE …
#define RK806_CMD_WITH_SIZE(CMD, VALUE_BYTES) …
static const struct regmap_range rk806_volatile_ranges[] = …;
static const struct regmap_access_table rk806_volatile_table = …;
static const struct regmap_config rk806_regmap_config_spi = …;
static int rk806_spi_bus_write(void *context, const void *vdata, size_t count)
{ … }
static int rk806_spi_bus_read(void *context, const void *vreg, size_t reg_size,
void *val, size_t val_size)
{ … }
static const struct regmap_bus rk806_regmap_bus_spi = …;
static int rk8xx_spi_probe(struct spi_device *spi)
{ … }
static const struct of_device_id rk8xx_spi_of_match[] = …;
MODULE_DEVICE_TABLE(of, rk8xx_spi_of_match);
static const struct spi_device_id rk8xx_spi_id_table[] = …;
MODULE_DEVICE_TABLE(spi, rk8xx_spi_id_table);
static struct spi_driver rk8xx_spi_driver = …;
module_spi_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;