#include <linux/delay.h>
#include <linux/gpio/consumer.h>
#include <linux/i2c.h>
#include <linux/module.h>
#include <linux/of.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>
#define PTN3460_EDID_ADDR …
#define PTN3460_EDID_EMULATION_ADDR …
#define PTN3460_EDID_ENABLE_EMULATION …
#define PTN3460_EDID_EMULATION_SELECTION …
#define PTN3460_EDID_SRAM_LOAD_ADDR …
struct ptn3460_bridge { … };
static inline struct ptn3460_bridge *
bridge_to_ptn3460(struct drm_bridge *bridge)
{ … }
static inline struct ptn3460_bridge *
connector_to_ptn3460(struct drm_connector *connector)
{ … }
static int ptn3460_read_bytes(struct ptn3460_bridge *ptn_bridge, char addr,
u8 *buf, int len)
{ … }
static int ptn3460_write_byte(struct ptn3460_bridge *ptn_bridge, char addr,
char val)
{ … }
static int ptn3460_select_edid(struct ptn3460_bridge *ptn_bridge)
{ … }
static void ptn3460_pre_enable(struct drm_bridge *bridge)
{ … }
static void ptn3460_disable(struct drm_bridge *bridge)
{ … }
static const struct drm_edid *ptn3460_edid_read(struct drm_bridge *bridge,
struct drm_connector *connector)
{ … }
static int ptn3460_connector_get_modes(struct drm_connector *connector)
{ … }
static const struct drm_connector_helper_funcs ptn3460_connector_helper_funcs = …;
static const struct drm_connector_funcs ptn3460_connector_funcs = …;
static int ptn3460_bridge_attach(struct drm_bridge *bridge,
enum drm_bridge_attach_flags flags)
{ … }
static const struct drm_bridge_funcs ptn3460_bridge_funcs = …;
static int ptn3460_probe(struct i2c_client *client)
{ … }
static void ptn3460_remove(struct i2c_client *client)
{ … }
static const struct i2c_device_id ptn3460_i2c_table[] = …;
MODULE_DEVICE_TABLE(i2c, ptn3460_i2c_table);
static const struct of_device_id ptn3460_match[] = …;
MODULE_DEVICE_TABLE(of, ptn3460_match);
static struct i2c_driver ptn3460_driver = …;
module_i2c_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;