#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>
#define W1_FAMILY_DS2406 …
#define W1_F12_FUNC_READ_STATUS …
#define W1_F12_FUNC_WRITE_STATUS …
static ssize_t w1_f12_read_state(
struct file *filp, struct kobject *kobj,
struct bin_attribute *bin_attr,
char *buf, loff_t off, size_t count)
{ … }
static ssize_t w1_f12_write_output(
struct file *filp, struct kobject *kobj,
struct bin_attribute *bin_attr,
char *buf, loff_t off, size_t count)
{ … }
#define NB_SYSFS_BIN_FILES …
static struct bin_attribute w1_f12_sysfs_bin_files[NB_SYSFS_BIN_FILES] = …;
static int w1_f12_add_slave(struct w1_slave *sl)
{ … }
static void w1_f12_remove_slave(struct w1_slave *sl)
{ … }
static const struct w1_family_ops w1_f12_fops = …;
static struct w1_family w1_family_12 = …;
module_w1_family(…);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;