#include <linux/i2c.h>
#include <linux/leds.h>
#include <linux/module.h>
#include <linux/mutex.h>
#include <linux/of.h>
#include <linux/regmap.h>
#define AN30259A_MAX_LEDS …
#define AN30259A_REG_SRESET …
#define AN30259A_LED_SRESET …
#define AN30259A_REG_LED_ON …
#define AN30259A_LED_EN(x) …
#define AN30259A_LED_SLOPE(x) …
#define AN30259A_REG_LEDCC(x) …
#define AN30259A_REG_SLOPE(x) …
#define AN30259A_LED_SLOPETIME1(x) …
#define AN30259A_LED_SLOPETIME2(x) …
#define AN30259A_REG_LEDCNT1(x) …
#define AN30259A_LED_DUTYMAX(x) …
#define AN30259A_LED_DUTYMID(x) …
#define AN30259A_REG_LEDCNT2(x) …
#define AN30259A_LED_DELAY(x) …
#define AN30259A_LED_DUTYMIN(x) …
#define AN30259A_REG_LEDCNT3(x) …
#define AN30259A_LED_DT1(x) …
#define AN30259A_LED_DT2(x) …
#define AN30259A_REG_LEDCNT4(x) …
#define AN30259A_LED_DT3(x) …
#define AN30259A_LED_DT4(x) …
#define AN30259A_REG_MAX …
#define AN30259A_BLINK_MAX_TIME …
#define AN30259A_SLOPE_RESOLUTION …
#define AN30259A_NAME …
struct an30259a;
struct an30259a_led { … };
struct an30259a { … };
static int an30259a_brightness_set(struct led_classdev *cdev,
enum led_brightness brightness)
{ … }
static int an30259a_blink_set(struct led_classdev *cdev,
unsigned long *delay_off, unsigned long *delay_on)
{ … }
static int an30259a_dt_init(struct i2c_client *client,
struct an30259a *chip)
{ … }
static const struct regmap_config an30259a_regmap_config = …;
static void an30259a_init_default_state(struct an30259a_led *led)
{ … }
static int an30259a_probe(struct i2c_client *client)
{ … }
static const struct of_device_id an30259a_match_table[] = …;
MODULE_DEVICE_TABLE(of, an30259a_match_table);
static const struct i2c_device_id an30259a_id[] = …;
MODULE_DEVICE_TABLE(i2c, an30259a_id);
static struct i2c_driver an30259a_driver = …;
module_i2c_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;