#include <linux/device.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/nvmem-provider.h>
#include <linux/platform_device.h>
#include <linux/regmap.h>
#define SDAM_MEM_START …
#define REGISTER_MAP_ID …
#define REGISTER_MAP_VERSION …
#define SDAM_SIZE …
#define SDAM_PBS_TRIG_SET …
#define SDAM_PBS_TRIG_CLR …
struct sdam_chip { … };
static const u8 sdam_ro_map[] = …;
static bool sdam_is_valid(struct sdam_chip *sdam, unsigned int offset,
size_t len)
{ … }
static bool sdam_is_ro(unsigned int offset, size_t len)
{ … }
static int sdam_read(void *priv, unsigned int offset, void *val,
size_t bytes)
{ … }
static int sdam_write(void *priv, unsigned int offset, void *val,
size_t bytes)
{ … }
static int sdam_probe(struct platform_device *pdev)
{ … }
static const struct of_device_id sdam_match_table[] = …;
MODULE_DEVICE_TABLE(of, sdam_match_table);
static struct platform_driver sdam_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;