#include <linux/delay.h>
#include <linux/gpio/consumer.h>
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/regulator/consumer.h>
#include <video/mipi_display.h>
#include <drm/drm_mipi_dsi.h>
#include <drm/drm_modes.h>
#include <drm/drm_panel.h>
#define MCS_CMD_MODE_SW …
#define MCS_CMD1_UCS …
#define MCS_CMD2_P0 …
#define MCS_CMD2_P1 …
#define MCS_CMD2_P2 …
#define MCS_CMD2_P3 …
#define MCS_STBCTR …
#define MCS_SGOPCTR …
#define MCS_SDCTR …
#define MCS_INVCTR …
#define MCS_EXT_PWR_IC …
#define MCS_SETAVDD …
#define MCS_SETAVEE …
#define MCS_BT2CTR …
#define MCS_BT3CTR …
#define MCS_BT4CTR …
#define MCS_VCMCTR …
#define MCS_SETVGN …
#define MCS_SETVGP …
#define MCS_SW_CTRL …
#define GOA_VSTV1 …
#define GOA_VSTV2 …
#define GOA_VCLK1 …
#define GOA_VCLK2 …
#define GOA_VCLK_OPT1 …
#define GOA_BICLK1 …
#define GOA_BICLK2 …
#define GOA_BICLK3 …
#define GOA_BICLK4 …
#define GOA_BICLK_OPT1 …
#define GOA_BICLK_OPT2 …
#define MCS_GOA_GPO1 …
#define MCS_GOA_GPO2 …
#define MCS_GOA_EQ …
#define MCS_GOA_CLK_GALLON …
#define MCS_GOA_FS_SEL0 …
#define MCS_GOA_FS_SEL1 …
#define MCS_GOA_FS_SEL2 …
#define MCS_GOA_FS_SEL3 …
#define MCS_GOA_BS_SEL0 …
#define MCS_GOA_BS_SEL1 …
#define MCS_GOA_BS_SEL2 …
#define MCS_GOA_BS_SEL3 …
#define MCS_GOA_BS_SEL4 …
#define MCS_GAMMA_VP …
#define MCS_GAMMA_VN …
struct rm68200 { … };
static const struct drm_display_mode default_mode = …;
static inline struct rm68200 *panel_to_rm68200(struct drm_panel *panel)
{ … }
static void rm68200_dcs_write_buf(struct rm68200 *ctx, const void *data,
size_t len)
{ … }
static void rm68200_dcs_write_cmd(struct rm68200 *ctx, u8 cmd, u8 value)
{ … }
#define dcs_write_seq(ctx, seq...) …
#define dcs_write_cmd_seq(ctx, cmd, seq...) …
static void rm68200_init_sequence(struct rm68200 *ctx)
{ … }
static int rm68200_unprepare(struct drm_panel *panel)
{ … }
static int rm68200_prepare(struct drm_panel *panel)
{ … }
static int rm68200_get_modes(struct drm_panel *panel,
struct drm_connector *connector)
{ … }
static const struct drm_panel_funcs rm68200_drm_funcs = …;
static int rm68200_probe(struct mipi_dsi_device *dsi)
{ … }
static void rm68200_remove(struct mipi_dsi_device *dsi)
{ … }
static const struct of_device_id raydium_rm68200_of_match[] = …;
MODULE_DEVICE_TABLE(of, raydium_rm68200_of_match);
static struct mipi_dsi_driver raydium_rm68200_driver = …;
module_mipi_dsi_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;