#include <linux/module.h>
#include <linux/device.h>
#include <linux/kernel.h>
#include <linux/delay.h>
#include <linux/slab.h>
#include "ad525x_dpot.h"
struct dpot_data { … };
static inline int dpot_read_d8(struct dpot_data *dpot)
{ … }
static inline int dpot_read_r8d8(struct dpot_data *dpot, u8 reg)
{ … }
static inline int dpot_read_r8d16(struct dpot_data *dpot, u8 reg)
{ … }
static inline int dpot_write_d8(struct dpot_data *dpot, u8 val)
{ … }
static inline int dpot_write_r8d8(struct dpot_data *dpot, u8 reg, u16 val)
{ … }
static inline int dpot_write_r8d16(struct dpot_data *dpot, u8 reg, u16 val)
{ … }
static s32 dpot_read_spi(struct dpot_data *dpot, u8 reg)
{ … }
static s32 dpot_read_i2c(struct dpot_data *dpot, u8 reg)
{ … }
static s32 dpot_read(struct dpot_data *dpot, u8 reg)
{ … }
static s32 dpot_write_spi(struct dpot_data *dpot, u8 reg, u16 value)
{ … }
static s32 dpot_write_i2c(struct dpot_data *dpot, u8 reg, u16 value)
{ … }
static s32 dpot_write(struct dpot_data *dpot, u8 reg, u16 value)
{ … }
static ssize_t sysfs_show_reg(struct device *dev,
struct device_attribute *attr,
char *buf, u32 reg)
{ … }
static ssize_t sysfs_set_reg(struct device *dev,
struct device_attribute *attr,
const char *buf, size_t count, u32 reg)
{ … }
static ssize_t sysfs_do_cmd(struct device *dev,
struct device_attribute *attr,
const char *buf, size_t count, u32 reg)
{ … }
#define DPOT_DEVICE_SHOW(_name, _reg) …
#define DPOT_DEVICE_SET(_name, _reg) …
#define DPOT_DEVICE_SHOW_SET(name, reg) …
#define DPOT_DEVICE_SHOW_ONLY(name, reg) …
DPOT_DEVICE_SHOW_SET(…);
DPOT_DEVICE_SHOW_SET(…);
DPOT_DEVICE_SHOW_ONLY(…);
DPOT_DEVICE_SHOW_SET(…);
DPOT_DEVICE_SHOW_SET(…);
DPOT_DEVICE_SHOW_SET(…);
DPOT_DEVICE_SHOW_SET(…);
DPOT_DEVICE_SHOW_ONLY(…);
DPOT_DEVICE_SHOW_SET(…);
DPOT_DEVICE_SHOW_SET(…);
DPOT_DEVICE_SHOW_SET(…);
DPOT_DEVICE_SHOW_SET(…);
DPOT_DEVICE_SHOW_ONLY(…);
DPOT_DEVICE_SHOW_SET(…);
DPOT_DEVICE_SHOW_SET(…);
DPOT_DEVICE_SHOW_SET(…);
DPOT_DEVICE_SHOW_SET(…);
DPOT_DEVICE_SHOW_ONLY(…);
DPOT_DEVICE_SHOW_SET(…);
DPOT_DEVICE_SHOW_SET(…);
DPOT_DEVICE_SHOW_SET(…);
DPOT_DEVICE_SHOW_SET(…);
DPOT_DEVICE_SHOW_ONLY(…);
DPOT_DEVICE_SHOW_SET(…);
DPOT_DEVICE_SHOW_SET(…);
DPOT_DEVICE_SHOW_SET(…);
DPOT_DEVICE_SHOW_SET(…);
DPOT_DEVICE_SHOW_ONLY(…);
DPOT_DEVICE_SHOW_SET(…);
DPOT_DEVICE_SHOW_SET(…);
static const struct attribute *dpot_attrib_wipers[] = …;
static const struct attribute *dpot_attrib_eeprom[] = …;
static const struct attribute *dpot_attrib_otp[] = …;
static const struct attribute *dpot_attrib_otp_en[] = …;
static const struct attribute *dpot_attrib_tolerance[] = …;
#define DPOT_DEVICE_DO_CMD(_name, _cmd) …
DPOT_DEVICE_DO_CMD(…);
DPOT_DEVICE_DO_CMD(…);
DPOT_DEVICE_DO_CMD(…);
DPOT_DEVICE_DO_CMD(…);
static struct attribute *ad525x_attributes_commands[] = …;
static const struct attribute_group ad525x_group_commands = …;
static int ad_dpot_add_files(struct device *dev,
unsigned int features, unsigned int rdac)
{ … }
static inline void ad_dpot_remove_files(struct device *dev,
unsigned int features, unsigned int rdac)
{ … }
int ad_dpot_probe(struct device *dev,
struct ad_dpot_bus_data *bdata, unsigned long devid,
const char *name)
{ … }
EXPORT_SYMBOL(…);
void ad_dpot_remove(struct device *dev)
{ … }
EXPORT_SYMBOL(…);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;