linux/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c

/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright(c) 2016, Analogix Semiconductor.
 * Copyright(c) 2017, Icenowy Zheng <[email protected]>
 *
 * Based on anx7808 driver obtained from chromeos with copyright:
 * Copyright(c) 2013, Google Inc.
 */
#include <linux/delay.h>
#include <linux/err.h>
#include <linux/gpio/consumer.h>
#include <linux/i2c.h>
#include <linux/interrupt.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/of_platform.h>
#include <linux/regmap.h>
#include <linux/regulator/consumer.h>
#include <linux/types.h>

#include <drm/display/drm_dp_helper.h>
#include <drm/drm_atomic_helper.h>
#include <drm/drm_bridge.h>
#include <drm/drm_crtc.h>
#include <drm/drm_edid.h>
#include <drm/drm_of.h>
#include <drm/drm_panel.h>
#include <drm/drm_print.h>
#include <drm/drm_probe_helper.h>

#include "analogix-i2c-dptx.h"
#include "analogix-i2c-txcommon.h"

#define POLL_DELAY
#define POLL_TIMEOUT

#define I2C_IDX_DPTX
#define I2C_IDX_TXCOM

static const u8 anx6345_i2c_addresses[] =;
#define I2C_NUM_ADDRESSES

struct anx6345 {};

static inline struct anx6345 *connector_to_anx6345(struct drm_connector *c)
{}

static inline struct anx6345 *bridge_to_anx6345(struct drm_bridge *bridge)
{}

static int anx6345_set_bits(struct regmap *map, u8 reg, u8 mask)
{}

static int anx6345_clear_bits(struct regmap *map, u8 reg, u8 mask)
{}

static ssize_t anx6345_aux_transfer(struct drm_dp_aux *aux,
				    struct drm_dp_aux_msg *msg)
{}

static int anx6345_dp_link_training(struct anx6345 *anx6345)
{}

static int anx6345_tx_initialization(struct anx6345 *anx6345)
{}

static void anx6345_poweron(struct anx6345 *anx6345)
{}

static void anx6345_poweroff(struct anx6345 *anx6345)
{}

static int anx6345_start(struct anx6345 *anx6345)
{}

static int anx6345_config_dp_output(struct anx6345 *anx6345)
{}

static int anx6345_get_downstream_info(struct anx6345 *anx6345)
{}

static int anx6345_get_modes(struct drm_connector *connector)
{}

static const struct drm_connector_helper_funcs anx6345_connector_helper_funcs =;

static void
anx6345_connector_destroy(struct drm_connector *connector)
{}

static const struct drm_connector_funcs anx6345_connector_funcs =;

static int anx6345_bridge_attach(struct drm_bridge *bridge,
				 enum drm_bridge_attach_flags flags)
{}

static void anx6345_bridge_detach(struct drm_bridge *bridge)
{}

static enum drm_mode_status
anx6345_bridge_mode_valid(struct drm_bridge *bridge,
			  const struct drm_display_info *info,
			  const struct drm_display_mode *mode)
{}

static void anx6345_bridge_disable(struct drm_bridge *bridge)
{}

static void anx6345_bridge_enable(struct drm_bridge *bridge)
{}

static const struct drm_bridge_funcs anx6345_bridge_funcs =;

static void unregister_i2c_dummy_clients(struct anx6345 *anx6345)
{}

static const struct regmap_config anx6345_regmap_config =;

static const u16 anx6345_chipid_list[] =;

static bool anx6345_get_chip_id(struct anx6345 *anx6345)
{}

static int anx6345_i2c_probe(struct i2c_client *client)
{}

static void anx6345_i2c_remove(struct i2c_client *client)
{}

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

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

static struct i2c_driver anx6345_driver =;
module_i2c_driver();

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