#include <linux/i2c.h>
#include <linux/leds.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/regmap.h>
#include <linux/slab.h>
#define TLC591XX_MAX_LEDS …
#define TLC591XX_MAX_BRIGHTNESS …
#define TLC591XX_REG_MODE1 …
#define MODE1_RESPON_ADDR_MASK …
#define MODE1_NORMAL_MODE …
#define MODE1_SPEED_MODE …
#define TLC591XX_REG_MODE2 …
#define MODE2_DIM …
#define MODE2_BLINK …
#define MODE2_OCH_STOP …
#define MODE2_OCH_ACK …
#define TLC591XX_REG_PWM(x) …
#define TLC591XX_REG_GRPPWM …
#define TLC591XX_REG_GRPFREQ …
#define LEDOUT_OFF …
#define LEDOUT_ON …
#define LEDOUT_DIM …
#define LEDOUT_BLINK …
#define LEDOUT_MASK …
#define ldev_to_led(c) …
struct tlc591xx_led { … };
struct tlc591xx_priv { … };
struct tlc591xx { … };
static const struct tlc591xx tlc59116 = …;
static const struct tlc591xx tlc59108 = …;
static int
tlc591xx_set_mode(struct regmap *regmap, u8 mode)
{ … }
static int
tlc591xx_set_ledout(struct tlc591xx_priv *priv, struct tlc591xx_led *led,
u8 val)
{ … }
static int
tlc591xx_set_pwm(struct tlc591xx_priv *priv, struct tlc591xx_led *led,
u8 brightness)
{ … }
static int
tlc591xx_brightness_set(struct led_classdev *led_cdev,
enum led_brightness brightness)
{ … }
static const struct regmap_config tlc591xx_regmap = …;
static const struct of_device_id of_tlc591xx_leds_match[] __maybe_unused = …;
MODULE_DEVICE_TABLE(of, of_tlc591xx_leds_match);
static int
tlc591xx_probe(struct i2c_client *client)
{ … }
static const struct i2c_device_id tlc591xx_id[] = …;
MODULE_DEVICE_TABLE(i2c, tlc591xx_id);
static struct i2c_driver tlc591xx_driver = …;
module_i2c_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;