#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/device.h>
#include <linux/types.h>
#include <linux/delay.h>
#include <linux/slab.h>
#include <linux/crc16.h>
#include <linux/w1.h>
#include <linux/nvmem-provider.h>
#define W1_DS2501_UNW_FAMILY …
#define W1_DS2501_SIZE …
#define W1_DS2502_FAMILY …
#define W1_DS2502_UNW_FAMILY …
#define W1_DS2502_SIZE …
#define W1_DS2505_FAMILY …
#define W1_DS2505_SIZE …
#define W1_PAGE_SIZE …
#define W1_EXT_READ_MEMORY …
#define W1_READ_DATA_CRC …
#define OFF2PG(off) …
#define CRC16_INIT …
#define CRC16_VALID …
struct w1_eprom_data { … };
static int w1_ds2502_read_page(struct w1_slave *sl, int pageno)
{ … }
static int w1_ds2505_read_page(struct w1_slave *sl, int pageno)
{ … }
static int w1_nvmem_read(void *priv, unsigned int off, void *buf, size_t count)
{ … }
static int w1_eprom_add_slave(struct w1_slave *sl)
{ … }
static const struct w1_family_ops w1_eprom_fops = …;
static struct w1_family w1_family_09 = …;
static struct w1_family w1_family_0b = …;
static struct w1_family w1_family_89 = …;
static struct w1_family w1_family_91 = …;
static int __init w1_ds250x_init(void)
{ … }
static void __exit w1_ds250x_exit(void)
{ … }
module_init(…) …;
module_exit(w1_ds250x_exit);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_ALIAS(…) …;
MODULE_ALIAS(…) …;
MODULE_ALIAS(…) …;
MODULE_ALIAS(…) …;