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

// SPDX-License-Identifier: GPL-2.0
/*
 * S6E63M0 AMOLED LCD drm_panel driver.
 *
 * Copyright (C) 2019 Paweł Chmiel <[email protected]>
 * Derived from drivers/gpu/drm/panel-samsung-ld9040.c
 *
 * Andrzej Hajda <[email protected]>
 */

#include <drm/drm_modes.h>
#include <drm/drm_panel.h>

#include <linux/backlight.h>
#include <linux/delay.h>
#include <linux/gpio/consumer.h>
#include <linux/module.h>
#include <linux/regulator/consumer.h>
#include <linux/media-bus-format.h>

#include <video/mipi_display.h>

#include "panel-samsung-s6e63m0.h"

#define S6E63M0_LCD_ID_VALUE_M2
#define S6E63M0_LCD_ID_VALUE_SM2
#define S6E63M0_LCD_ID_VALUE_SM2_1

#define NUM_GAMMA_LEVELS
#define GAMMA_TABLE_COUNT

#define MAX_BRIGHTNESS

/* array of gamma tables for gamma value 2.2 */
static u8 const s6e63m0_gamma_22[NUM_GAMMA_LEVELS][GAMMA_TABLE_COUNT] =;

#define NUM_ACL_LEVELS
#define ACL_TABLE_COUNT

static u8 const s6e63m0_acl[NUM_ACL_LEVELS][ACL_TABLE_COUNT] =;

/* This tells us which ACL level goes with which gamma */
static u8 const s6e63m0_acl_per_gamma[NUM_GAMMA_LEVELS] =;

/* The ELVSS backlight regulator has 5 levels */
#define S6E63M0_ELVSS_LEVELS

static u8 const s6e63m0_elvss_offsets[S6E63M0_ELVSS_LEVELS] =;

/* This tells us which ELVSS level goes with which gamma */
static u8 const s6e63m0_elvss_per_gamma[NUM_GAMMA_LEVELS] =;

struct s6e63m0 {};

static const struct drm_display_mode default_mode =;

static inline struct s6e63m0 *panel_to_s6e63m0(struct drm_panel *panel)
{}

static int s6e63m0_clear_error(struct s6e63m0 *ctx)
{}

static void s6e63m0_dcs_read(struct s6e63m0 *ctx, const u8 cmd, u8 *data)
{}

static void s6e63m0_dcs_write(struct s6e63m0 *ctx, const u8 *data, size_t len)
{}

#define s6e63m0_dcs_write_seq_static(ctx, seq ...)

static int s6e63m0_check_lcd_type(struct s6e63m0 *ctx)
{}

static void s6e63m0_init(struct s6e63m0 *ctx)
{}

static int s6e63m0_power_on(struct s6e63m0 *ctx)
{}

static int s6e63m0_power_off(struct s6e63m0 *ctx)
{}

static int s6e63m0_disable(struct drm_panel *panel)
{}

static int s6e63m0_unprepare(struct drm_panel *panel)
{}

static int s6e63m0_prepare(struct drm_panel *panel)
{}

static int s6e63m0_enable(struct drm_panel *panel)
{}

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

static const struct drm_panel_funcs s6e63m0_drm_funcs =;

static int s6e63m0_set_brightness(struct backlight_device *bd)
{}

static const struct backlight_ops s6e63m0_backlight_ops =;

static int s6e63m0_backlight_register(struct s6e63m0 *ctx, u32 max_brightness)
{}

int s6e63m0_probe(struct device *dev, void *trsp,
		  int (*dcs_read)(struct device *dev, void *trsp, const u8 cmd, u8 *val),
		  int (*dcs_write)(struct device *dev, void *trsp, const u8 *data, size_t len),
		  bool dsi_mode)
{}
EXPORT_SYMBOL_GPL();

void s6e63m0_remove(struct device *dev)
{}
EXPORT_SYMBOL_GPL();

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