linux/drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c

// SPDX-License-Identifier: GPL-2.0
/*
 * Samsung S6D7AA0 MIPI-DSI TFT LCD controller drm_panel driver.
 *
 * Copyright (C) 2022 Artur Weber <[email protected]>
 */

#include <linux/backlight.h>
#include <linux/delay.h>
#include <linux/gpio/consumer.h>
#include <linux/module.h>
#include <linux/regulator/consumer.h>
#include <linux/of.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_BL_CTL
#define MCS_OTP_RELOAD
#define MCS_PASSWD1
#define MCS_PASSWD2
#define MCS_PASSWD3

struct s6d7aa0 {};

struct s6d7aa0_panel_desc {};

enum s6d7aa0_panels {};

static inline struct s6d7aa0 *panel_to_s6d7aa0(struct drm_panel *panel)
{}

static void s6d7aa0_reset(struct s6d7aa0 *ctx)
{}

static int s6d7aa0_lock(struct s6d7aa0 *ctx, bool lock)
{}

static int s6d7aa0_on(struct s6d7aa0 *ctx)
{}

static int s6d7aa0_off(struct s6d7aa0 *ctx)
{}

static int s6d7aa0_prepare(struct drm_panel *panel)
{}

static int s6d7aa0_disable(struct drm_panel *panel)
{}

static int s6d7aa0_unprepare(struct drm_panel *panel)
{}

/* Backlight control code */

static int s6d7aa0_bl_update_status(struct backlight_device *bl)
{}

static int s6d7aa0_bl_get_brightness(struct backlight_device *bl)
{}

static const struct backlight_ops s6d7aa0_bl_ops =;

static struct backlight_device *
s6d7aa0_create_backlight(struct mipi_dsi_device *dsi)
{}

/* Initialization code and structures for LSL080AL02 panel */

static int s6d7aa0_lsl080al02_init(struct s6d7aa0 *ctx)
{}

static int s6d7aa0_lsl080al02_off(struct s6d7aa0 *ctx)
{}

static const struct drm_display_mode s6d7aa0_lsl080al02_mode =;

static const struct s6d7aa0_panel_desc s6d7aa0_lsl080al02_desc =;

/* Initialization code and structures for LSL080AL03 panel */

static int s6d7aa0_lsl080al03_init(struct s6d7aa0 *ctx)
{}

static int s6d7aa0_lsl080al03_off(struct s6d7aa0 *ctx)
{}

static const struct drm_display_mode s6d7aa0_lsl080al03_mode =;

static const struct s6d7aa0_panel_desc s6d7aa0_lsl080al03_desc =;

/* Initialization structures for LTL101AT01 panel */

static const struct drm_display_mode s6d7aa0_ltl101at01_mode =;

static const struct s6d7aa0_panel_desc s6d7aa0_ltl101at01_desc =;

static int s6d7aa0_get_modes(struct drm_panel *panel,
					struct drm_connector *connector)
{}

static const struct drm_panel_funcs s6d7aa0_panel_funcs =;

static int s6d7aa0_probe(struct mipi_dsi_device *dsi)
{}

static void s6d7aa0_remove(struct mipi_dsi_device *dsi)
{}

static const struct of_device_id s6d7aa0_of_match[] =;
MODULE_DEVICE_TABLE(of, s6d7aa0_of_match);

static struct mipi_dsi_driver s6d7aa0_driver =;
module_mipi_dsi_driver();

MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_LICENSE();