linux/drivers/leds/leds-an30259a.c

// SPDX-License-Identifier: GPL-2.0+
//
// Driver for Panasonic AN30259A 3-channel LED driver
//
// Copyright (c) 2018 Simon Shields <[email protected]>
//
// Datasheet:
// https://www.alliedelec.com/m/d/a9d2b3ee87c2d1a535a41dd747b1c247.pdf

#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

/* LED power registers */
#define AN30259A_REG_LED_ON
#define AN30259A_LED_EN(x)
#define AN30259A_LED_SLOPE(x)

#define AN30259A_REG_LEDCC(x)

/* slope control registers */
#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)

/* detention time control (length of each slope step) */
#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();