linux/drivers/gpu/drm/panel/panel-raydium-rm68200.c

// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (C) STMicroelectronics SA 2017
 *
 * Authors: Philippe Cornu <[email protected]>
 *          Yannick Fertre <[email protected]>
 */

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

/*** Manufacturer Command Set ***/
#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

/* CMD2 P0 commands (Display Options and Power) */
#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

/* CMD2 P2 commands (GOA Timing Control) - no description in datasheet */
#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

/* CMD2 P3 commands (Gamma) */
#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...)

/*
 * This panel is not able to auto-increment all cmd addresses so for some of
 * them, we need to send them one by one...
 */
#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();