#include <linux/i2c.h>
#include <linux/leds.h>
#include <linux/module.h>
#include <linux/regulator/consumer.h>
#include <linux/mutex.h>
#include <linux/of.h>
#include <linux/regmap.h>
#define AW2013_MAX_LEDS …
#define AW2013_RSTR …
#define AW2013_RSTR_RESET …
#define AW2013_RSTR_CHIP_ID …
#define AW2013_GCR …
#define AW2013_GCR_ENABLE …
#define AW2013_LCTR …
#define AW2013_LCTR_LE(x) …
#define AW2013_LCFG(x) …
#define AW2013_LCFG_IMAX_MASK …
#define AW2013_LCFG_MD …
#define AW2013_LCFG_FI …
#define AW2013_LCFG_FO …
#define AW2013_REG_PWM(x) …
#define AW2013_LEDT0(x) …
#define AW2013_LEDT0_T1(x) …
#define AW2013_LEDT0_T2(x) …
#define AW2013_LEDT1(x) …
#define AW2013_LEDT1_T3(x) …
#define AW2013_LEDT1_T4(x) …
#define AW2013_LEDT2(x) …
#define AW2013_LEDT2_T0(x) …
#define AW2013_LEDT2_REPEAT(x) …
#define AW2013_REG_MAX …
#define AW2013_TIME_STEP …
struct aw2013;
struct aw2013_led { … };
struct aw2013 { … };
static int aw2013_chip_init(struct aw2013 *chip)
{ … }
static void aw2013_chip_disable(struct aw2013 *chip)
{ … }
static int aw2013_chip_enable(struct aw2013 *chip)
{ … }
static bool aw2013_chip_in_use(struct aw2013 *chip)
{ … }
static int aw2013_brightness_set(struct led_classdev *cdev,
enum led_brightness brightness)
{ … }
static int aw2013_blink_set(struct led_classdev *cdev,
unsigned long *delay_on, unsigned long *delay_off)
{ … }
static int aw2013_probe_dt(struct aw2013 *chip)
{ … }
static void aw2013_chip_disable_action(void *data)
{ … }
static const struct regmap_config aw2013_regmap_config = …;
static int aw2013_probe(struct i2c_client *client)
{ … }
static const struct of_device_id aw2013_match_table[] = …;
MODULE_DEVICE_TABLE(of, aw2013_match_table);
static struct i2c_driver aw2013_driver = …;
module_i2c_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;