#include <drm/drm_atomic_helper.h>
#include <drm/drm_of.h>
#include <drm/drm_print.h>
#include <drm/drm_mipi_dsi.h>
#include <linux/delay.h>
#include <linux/gpio/consumer.h>
#include <linux/i2c.h>
#include <linux/media-bus-format.h>
#include <linux/module.h>
#include <linux/regmap.h>
#include <linux/regulator/consumer.h>
enum cmd_registers { … };
enum input_source { … };
#define DEV_ID_MASK …
#define IMAGE_FREESE_EN …
#define DSI_PORT_EN …
#define EXT_SOURCE_FMT_DSI …
#define RED_LED_EN …
#define GREEN_LED_EN …
#define BLUE_LED_EN …
#define LED_MASK …
#define MAX_BYTE_SIZE …
struct dlpc { … };
static inline struct dlpc *bridge_to_dlpc(struct drm_bridge *bridge)
{ … }
static bool dlpc_writeable_noinc_reg(struct device *dev, unsigned int reg)
{ … }
static const struct regmap_range dlpc_volatile_ranges[] = …;
static const struct regmap_access_table dlpc_volatile_table = …;
static struct regmap_config dlpc_regmap_config = …;
static void dlpc_atomic_enable(struct drm_bridge *bridge,
struct drm_bridge_state *old_bridge_state)
{ … }
static void dlpc_atomic_pre_enable(struct drm_bridge *bridge,
struct drm_bridge_state *old_bridge_state)
{ … }
static void dlpc_atomic_post_disable(struct drm_bridge *bridge,
struct drm_bridge_state *old_bridge_state)
{ … }
#define MAX_INPUT_SEL_FORMATS …
static u32 *
dlpc_atomic_get_input_bus_fmts(struct drm_bridge *bridge,
struct drm_bridge_state *bridge_state,
struct drm_crtc_state *crtc_state,
struct drm_connector_state *conn_state,
u32 output_fmt,
unsigned int *num_input_fmts)
{ … }
static void dlpc_mode_set(struct drm_bridge *bridge,
const struct drm_display_mode *mode,
const struct drm_display_mode *adjusted_mode)
{ … }
static int dlpc_attach(struct drm_bridge *bridge,
enum drm_bridge_attach_flags flags)
{ … }
static const struct drm_bridge_funcs dlpc_bridge_funcs = …;
static int dlpc3433_parse_dt(struct dlpc *dlpc)
{ … }
static int dlpc_host_attach(struct dlpc *dlpc)
{ … }
static int dlpc3433_probe(struct i2c_client *client)
{ … }
static void dlpc3433_remove(struct i2c_client *client)
{ … }
static const struct i2c_device_id dlpc3433_id[] = …;
MODULE_DEVICE_TABLE(i2c, dlpc3433_id);
static const struct of_device_id dlpc3433_match_table[] = …;
MODULE_DEVICE_TABLE(of, dlpc3433_match_table);
static struct i2c_driver dlpc3433_driver = …;
module_i2c_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;