#include <linux/kernel.h>
#include <linux/platform_device.h>
#include <linux/slab.h>
#include <linux/leds.h>
#include <linux/err.h>
#include <linux/mfd/wm831x/core.h>
#include <linux/mfd/wm831x/pdata.h>
#include <linux/mfd/wm831x/status.h>
#include <linux/module.h>
struct wm831x_status { … };
#define to_wm831x_status(led_cdev) …
static void wm831x_status_set(struct wm831x_status *led)
{ … }
static int wm831x_status_brightness_set(struct led_classdev *led_cdev,
enum led_brightness value)
{ … }
static int wm831x_status_blink_set(struct led_classdev *led_cdev,
unsigned long *delay_on,
unsigned long *delay_off)
{ … }
static const char * const led_src_texts[] = …;
static ssize_t src_show(struct device *dev,
struct device_attribute *attr, char *buf)
{ … }
static ssize_t src_store(struct device *dev,
struct device_attribute *attr,
const char *buf, size_t size)
{ … }
static DEVICE_ATTR_RW(src);
static struct attribute *wm831x_status_attrs[] = …;
ATTRIBUTE_GROUPS(…);
static int wm831x_status_probe(struct platform_device *pdev)
{ … }
static void wm831x_status_remove(struct platform_device *pdev)
{ … }
static struct platform_driver wm831x_status_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_ALIAS(…) …;