linux/drivers/video/backlight/arcxcnn_bl.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Backlight driver for ArcticSand ARC_X_C_0N_0N Devices
 *
 * Copyright 2016 ArcticSand, Inc.
 * Author : Brian Dodge <[email protected]>
 */

#include <linux/backlight.h>
#include <linux/err.h>
#include <linux/i2c.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/slab.h>

enum arcxcnn_chip_id {};

/**
 * struct arcxcnn_platform_data
 * @name		: Backlight driver name (NULL will use default)
 * @initial_brightness	: initial value of backlight brightness
 * @leden		: initial LED string enables, upper bit is global on/off
 * @led_config_0	: fading speed (period between intensity steps)
 * @led_config_1	: misc settings, see datasheet
 * @dim_freq		: pwm dimming frequency if in pwm mode
 * @comp_config		: misc config, see datasheet
 * @filter_config	: RC/PWM filter config, see datasheet
 * @trim_config		: full scale current trim, see datasheet
 */
struct arcxcnn_platform_data {};

#define ARCXCNN_CMD
#define ARCXCNN_CMD_STDBY
#define ARCXCNN_CMD_RESET
#define ARCXCNN_CMD_BOOST
#define ARCXCNN_CMD_OVP_MASK
#define ARCXCNN_CMD_OVP_XXV
#define ARCXCNN_CMD_OVP_20V
#define ARCXCNN_CMD_OVP_24V
#define ARCXCNN_CMD_OVP_31V
#define ARCXCNN_CMD_EXT_COMP

#define ARCXCNN_CONFIG
#define ARCXCNN_STATUS1
#define ARCXCNN_STATUS2
#define ARCXCNN_FADECTRL
#define ARCXCNN_ILED_CONFIG
#define ARCXCNN_ILED_DIM_PWM
#define ARCXCNN_ILED_DIM_INT
#define ARCXCNN_LEDEN
#define ARCXCNN_LEDEN_ISETEXT
#define ARCXCNN_LEDEN_MASK
#define ARCXCNN_LEDEN_BITS
#define ARCXCNN_LEDEN_LED1
#define ARCXCNN_LEDEN_LED2
#define ARCXCNN_LEDEN_LED3
#define ARCXCNN_LEDEN_LED4
#define ARCXCNN_LEDEN_LED5
#define ARCXCNN_LEDEN_LED6

#define ARCXCNN_WLED_ISET_LSB
#define ARCXCNN_WLED_ISET_LSB_SHIFT
#define ARCXCNN_WLED_ISET_MSB

#define ARCXCNN_DIMFREQ
#define ARCXCNN_COMP_CONFIG
#define ARCXCNN_FILT_CONFIG
#define ARCXCNN_IMAXTUNE
#define ARCXCNN_ID_MSB
#define ARCXCNN_ID_LSB

#define MAX_BRIGHTNESS
#define INIT_BRIGHT

struct arcxcnn {};

static int arcxcnn_update_field(struct arcxcnn *lp, u8 reg, u8 mask, u8 data)
{}

static int arcxcnn_set_brightness(struct arcxcnn *lp, u32 brightness)
{}

static int arcxcnn_bl_update_status(struct backlight_device *bl)
{}

static const struct backlight_ops arcxcnn_bl_ops =;

static int arcxcnn_backlight_register(struct arcxcnn *lp)
{}

static void arcxcnn_parse_dt(struct arcxcnn *lp)
{}

static int arcxcnn_probe(struct i2c_client *cl)
{}

static void arcxcnn_remove(struct i2c_client *cl)
{}

static const struct of_device_id arcxcnn_dt_ids[] =;
MODULE_DEVICE_TABLE(of, arcxcnn_dt_ids);

static const struct i2c_device_id arcxcnn_ids[] =;
MODULE_DEVICE_TABLE(i2c, arcxcnn_ids);

static struct i2c_driver arcxcnn_driver =;
module_i2c_driver();

MODULE_LICENSE();
MODULE_AUTHOR();
MODULE_DESCRIPTION();