#include <linux/cleanup.h>
#include <linux/err.h>
#include <linux/gpio/consumer.h>
#include <linux/leds-expresswire.h>
#include <linux/led-class-flash.h>
#include <linux/module.h>
#include <linux/mutex.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/regulator/consumer.h>
#define KTD2692_MOVIE_MODE_CURRENT_LEVELS …
#define KTD2692_MM_TO_FL_RATIO(x) …
#define KTD2692_MM_MIN_CURR_THRESHOLD_SCALE …
#define KTD2692_FLASH_MODE_TIMEOUT_LEVELS …
#define KTD2692_FLASH_MODE_TIMEOUT_DISABLE …
#define KTD2692_FLASH_MODE_CURR_PERCENT(x) …
#define GET_TIMEOUT_OFFSET(timeout, step) …
#define KTD2692_REG_LVP_BASE …
#define KTD2692_REG_FLASH_TIMEOUT_BASE …
#define KTD2692_REG_MM_MIN_CURR_THRESHOLD_BASE …
#define KTD2692_REG_MOVIE_CURRENT_BASE …
#define KTD2692_REG_FLASH_CURRENT_BASE …
#define KTD2692_REG_MODE_BASE …
#define KTD2692_NAME_LENGTH …
enum ktd2692_led_mode { … };
struct ktd2692_led_config_data { … };
const struct expresswire_timing ktd2692_timing = …;
struct ktd2692_context { … };
static struct ktd2692_context *fled_cdev_to_led(
struct led_classdev_flash *fled_cdev)
{ … }
static int ktd2692_led_brightness_set(struct led_classdev *led_cdev,
enum led_brightness brightness)
{ … }
static int ktd2692_led_flash_strobe_set(struct led_classdev_flash *fled_cdev,
bool state)
{ … }
static int ktd2692_led_flash_timeout_set(struct led_classdev_flash *fled_cdev,
u32 timeout)
{ … }
static void ktd2692_init_movie_current_max(struct ktd2692_led_config_data *cfg)
{ … }
static void ktd2692_init_flash_timeout(struct led_classdev_flash *fled_cdev,
struct ktd2692_led_config_data *cfg)
{ … }
static void ktd2692_setup(struct ktd2692_context *led)
{ … }
static void regulator_disable_action(void *_data)
{ … }
static int ktd2692_parse_dt(struct ktd2692_context *led, struct device *dev,
struct ktd2692_led_config_data *cfg)
{ … }
static const struct led_flash_ops flash_ops = …;
static int ktd2692_probe(struct platform_device *pdev)
{ … }
static void ktd2692_remove(struct platform_device *pdev)
{ … }
static const struct of_device_id ktd2692_match[] = …;
MODULE_DEVICE_TABLE(of, ktd2692_match);
static struct platform_driver ktd2692_driver = …;
module_platform_driver(…) …;
MODULE_IMPORT_NS(…);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;