#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/gpio/consumer.h>
#include <linux/interrupt.h>
#include <linux/leds.h>
#include <linux/slab.h>
#include "../leds.h"
struct gpio_trig_data { … };
static irqreturn_t gpio_trig_irq(int irq, void *_led)
{ … }
static ssize_t desired_brightness_show(struct device *dev,
struct device_attribute *attr, char *buf)
{ … }
static ssize_t desired_brightness_store(struct device *dev,
struct device_attribute *attr, const char *buf, size_t n)
{ … }
static DEVICE_ATTR_RW(desired_brightness);
static struct attribute *gpio_trig_attrs[] = …;
ATTRIBUTE_GROUPS(…);
static int gpio_trig_activate(struct led_classdev *led)
{ … }
static void gpio_trig_deactivate(struct led_classdev *led)
{ … }
static struct led_trigger gpio_led_trigger = …;
module_led_trigger(…);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;