#include <linux/delay.h>
#include <linux/gpio/consumer.h>
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/of_graph.h>
#include <linux/regulator/consumer.h>
#include <video/mipi_display.h>
#include <drm/drm_atomic_helper.h>
#include <drm/drm_mipi_dsi.h>
#include <drm/drm_of.h>
#include <drm/drm_print.h>
#define FLD_MASK(start, end) …
#define FLD_VAL(val, start, end) …
#define PPI_STARTPPI …
#define PPI_LPTXTIMECNT …
#define PPI_LANEENABLE …
#define PPI_TX_RX_TA …
#define PPI_D0S_CLRSIPOCOUNT …
#define PPI_D1S_CLRSIPOCOUNT …
#define PPI_D2S_CLRSIPOCOUNT …
#define PPI_D3S_CLRSIPOCOUNT …
#define PPI_START_FUNCTION …
#define DSI_STARTDSI …
#define DSI_LANEENABLE …
#define DSI_RX_START …
#define VP_CTRL …
#define VP_CTRL_MSF …
#define VP_CTRL_VTGEN …
#define VP_CTRL_EVTMODE …
#define VP_CTRL_RGB888 …
#define VP_CTRL_VSDELAY(v) …
#define VP_CTRL_HSPOL …
#define VP_CTRL_DEPOL …
#define VP_CTRL_VSPOL …
#define VP_HTIM1 …
#define VP_HTIM1_HBP(v) …
#define VP_HTIM1_HSYNC(v) …
#define VP_HTIM2 …
#define VP_HTIM2_HFP(v) …
#define VP_HTIM2_HACT(v) …
#define VP_VTIM1 …
#define VP_VTIM1_VBP(v) …
#define VP_VTIM1_VSYNC(v) …
#define VP_VTIM2 …
#define VP_VTIM2_VFP(v) …
#define VP_VTIM2_VACT(v) …
#define VP_VFUEN …
#define LV_MX0003 …
#define LV_MX0407 …
#define LV_MX0811 …
#define LV_MX1215 …
#define LV_MX1619 …
#define LV_MX2023 …
#define LV_MX2427 …
#define LV_MX(b0, b1, b2, b3) …
enum { … };
#define LV_CFG …
#define LV_PHY0 …
#define LV_PHY0_RST(v) …
#define LV_PHY0_IS(v) …
#define LV_PHY0_ND(v) …
#define LV_PHY0_PRBS_ON(v) …
#define SYS_RST …
#define SYS_ID …
#define SYS_RST_I2CS …
#define SYS_RST_I2CM …
#define SYS_RST_LCD …
#define SYS_RST_BM …
#define SYS_RST_DSIRX …
#define SYS_RST_REG …
#define LPX_PERIOD …
#define TTA_SURE …
#define TTA_GET …
#define LANEENABLE_CLEN …
#define LANEENABLE_L0EN …
#define LANEENABLE_L1EN …
#define LANEENABLE_L2EN …
#define LANEENABLE_L3EN …
#define LV_CFG_LVEN …
#define LV_CFG_LVDLINK …
#define LV_CFG_CLKPOL1 …
#define LV_CFG_CLKPOL2 …
static const char * const tc358764_supplies[] = …;
struct tc358764 { … };
static int tc358764_clear_error(struct tc358764 *ctx)
{ … }
static void tc358764_read(struct tc358764 *ctx, u16 addr, u32 *val)
{ … }
static void tc358764_write(struct tc358764 *ctx, u16 addr, u32 val)
{ … }
static inline struct tc358764 *bridge_to_tc358764(struct drm_bridge *bridge)
{ … }
static int tc358764_init(struct tc358764 *ctx)
{ … }
static void tc358764_reset(struct tc358764 *ctx)
{ … }
static void tc358764_post_disable(struct drm_bridge *bridge)
{ … }
static void tc358764_pre_enable(struct drm_bridge *bridge)
{ … }
static int tc358764_attach(struct drm_bridge *bridge,
enum drm_bridge_attach_flags flags)
{ … }
static const struct drm_bridge_funcs tc358764_bridge_funcs = …;
static int tc358764_parse_dt(struct tc358764 *ctx)
{ … }
static int tc358764_configure_regulators(struct tc358764 *ctx)
{ … }
static int tc358764_probe(struct mipi_dsi_device *dsi)
{ … }
static void tc358764_remove(struct mipi_dsi_device *dsi)
{ … }
static const struct of_device_id tc358764_of_match[] = …;
MODULE_DEVICE_TABLE(of, tc358764_of_match);
static struct mipi_dsi_driver tc358764_driver = …;
module_mipi_dsi_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;