linux/drivers/gpu/drm/bridge/tc358764.c

// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (C) 2018 Samsung Electronics Co., Ltd
 *
 * Authors:
 *	Andrzej Hajda <[email protected]>
 *	Maciej Purski <[email protected]>
 */

#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)

/* PPI layer registers */
#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

/* DSI layer registers */
#define DSI_STARTDSI
#define DSI_LANEENABLE
#define DSI_RX_START

/* Video path registers */
#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

/* LVDS registers */
#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)

/* Input bit numbers used in mux registers */
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)

/* System registers */
#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

/* Lane enable PPI and DSI register bits */
#define LANEENABLE_CLEN
#define LANEENABLE_L0EN
#define LANEENABLE_L1EN
#define LANEENABLE_L2EN
#define LANEENABLE_L3EN

/* LVCFG fields */
#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();