#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/export.h>
#include <linux/slab.h>
#include <linux/bug.h>
#include <linux/device.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
#include <linux/regmap.h>
#include <linux/workqueue.h>
#include <linux/mfd/wm8350/core.h>
#include <linux/mfd/wm8350/audio.h>
#include <linux/mfd/wm8350/comparator.h>
#include <linux/mfd/wm8350/gpio.h>
#include <linux/mfd/wm8350/pmic.h>
#include <linux/mfd/wm8350/rtc.h>
#include <linux/mfd/wm8350/supply.h>
#include <linux/mfd/wm8350/wdt.h>
#define WM8350_CLOCK_CONTROL_1 …
#define WM8350_AIF_TEST …
#define WM8350_BUS_DEBUG …
#if WM8350_BUS_DEBUG
#define dump …
#else
#define dump(bytes, src) …
#endif
#define WM8350_LOCK_DEBUG …
#if WM8350_LOCK_DEBUG
#define ldbg …
#else
#define ldbg(format, arg...) …
#endif
static DEFINE_MUTEX(reg_lock_mutex);
int wm8350_clear_bits(struct wm8350 *wm8350, u16 reg, u16 mask)
{ … }
EXPORT_SYMBOL_GPL(…);
int wm8350_set_bits(struct wm8350 *wm8350, u16 reg, u16 mask)
{ … }
EXPORT_SYMBOL_GPL(…);
u16 wm8350_reg_read(struct wm8350 *wm8350, int reg)
{ … }
EXPORT_SYMBOL_GPL(…);
int wm8350_reg_write(struct wm8350 *wm8350, int reg, u16 val)
{ … }
EXPORT_SYMBOL_GPL(…);
int wm8350_block_read(struct wm8350 *wm8350, int start_reg, int regs,
u16 *dest)
{ … }
EXPORT_SYMBOL_GPL(…);
int wm8350_block_write(struct wm8350 *wm8350, int start_reg, int regs,
u16 *src)
{ … }
EXPORT_SYMBOL_GPL(…);
int wm8350_reg_lock(struct wm8350 *wm8350)
{ … }
EXPORT_SYMBOL_GPL(…);
int wm8350_reg_unlock(struct wm8350 *wm8350)
{ … }
EXPORT_SYMBOL_GPL(…);
int wm8350_read_auxadc(struct wm8350 *wm8350, int channel, int scale, int vref)
{ … }
EXPORT_SYMBOL_GPL(…);
static irqreturn_t wm8350_auxadc_irq(int irq, void *irq_data)
{ … }
static void wm8350_client_dev_register(struct wm8350 *wm8350,
const char *name,
struct platform_device **pdev)
{ … }
int wm8350_device_init(struct wm8350 *wm8350, int irq,
struct wm8350_platform_data *pdata)
{ … }
EXPORT_SYMBOL_GPL(…);