#include <linux/delay.h>
#include <linux/io.h>
#include <linux/leds.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/spinlock.h>
#define BCM6358_REG_MODE …
#define BCM6358_REG_CTRL …
#define BCM6358_SLED_CLKDIV_MASK …
#define BCM6358_SLED_CLKDIV_1 …
#define BCM6358_SLED_CLKDIV_2 …
#define BCM6358_SLED_CLKDIV_4 …
#define BCM6358_SLED_CLKDIV_8 …
#define BCM6358_SLED_POLARITY …
#define BCM6358_SLED_BUSY …
#define BCM6358_SLED_MAX_COUNT …
#define BCM6358_SLED_WAIT …
struct bcm6358_led { … };
static void bcm6358_led_write(void __iomem *reg, unsigned long data)
{ … }
static unsigned long bcm6358_led_read(void __iomem *reg)
{ … }
static unsigned long bcm6358_led_busy(void __iomem *mem)
{ … }
static void bcm6358_led_set(struct led_classdev *led_cdev,
enum led_brightness value)
{ … }
static int bcm6358_led(struct device *dev, struct device_node *nc, u32 reg,
void __iomem *mem, spinlock_t *lock)
{ … }
static int bcm6358_leds_probe(struct platform_device *pdev)
{ … }
static const struct of_device_id bcm6358_leds_of_match[] = …;
MODULE_DEVICE_TABLE(of, bcm6358_leds_of_match);
static struct platform_driver bcm6358_leds_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_ALIAS(…) …;