linux/drivers/gpu/drm/panel/panel-novatek-nt35560.c

// SPDX-License-Identifier: GPL-2.0+
/*
 * MIPI-DSI Novatek NT35560-based panel controller.
 *
 * Supported panels include:
 * Sony ACX424AKM - a 480x854 AMOLED DSI panel
 * Sony ACX424AKP - a 480x864 AMOLED DSI panel
 *
 * Copyright (C) Linaro Ltd. 2019-2021
 * Author: Linus Walleij
 * Based on code and know-how from Marcus Lorentzon
 * Copyright (C) ST-Ericsson SA 2010
 * Based on code and know-how from Johan Olson and Joakim Wesslen
 * Copyright (C) Sony Ericsson Mobile Communications 2010
 */
#include <linux/backlight.h>
#include <linux/delay.h>
#include <linux/gpio/consumer.h>
#include <linux/module.h>
#include <linux/of.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 NT35560_DCS_READ_ID1
#define NT35560_DCS_READ_ID2
#define NT35560_DCS_READ_ID3
#define NT35560_DCS_SET_MDDI

/*
 * Sony seems to use vendor ID 0x81
 */
#define DISPLAY_SONY_ACX424AKP_ID1
#define DISPLAY_SONY_ACX424AKP_ID2
#define DISPLAY_SONY_ACX424AKP_ID3
/*
 * The fourth ID looks like a bug, vendor IDs begin at 0x80
 * and panel 00 ... seems like default values.
 */
#define DISPLAY_SONY_ACX424AKP_ID4

struct nt35560_config {};

struct nt35560 {};

static const struct drm_display_mode sony_acx424akp_vid_mode =;

/*
 * The timings are not very helpful as the display is used in
 * command mode using the maximum HS frequency.
 */
static const struct drm_display_mode sony_acx424akp_cmd_mode =;

static const struct nt35560_config sony_acx424akp_data =;

static const struct drm_display_mode sony_acx424akm_vid_mode =;

/*
 * The timings are not very helpful as the display is used in
 * command mode using the maximum HS frequency.
 */
static const struct drm_display_mode sony_acx424akm_cmd_mode =;

static const struct nt35560_config sony_acx424akm_data =;

static inline struct nt35560 *panel_to_nt35560(struct drm_panel *panel)
{}

#define FOSC
#define SCALE_FACTOR_NS_DIV_MHZ

static int nt35560_set_brightness(struct backlight_device *bl)
{}

static const struct backlight_ops nt35560_bl_ops =;

static const struct backlight_properties nt35560_bl_props =;

static int nt35560_read_id(struct nt35560 *nt)
{}

static int nt35560_power_on(struct nt35560 *nt)
{}

static void nt35560_power_off(struct nt35560 *nt)
{}

static int nt35560_prepare(struct drm_panel *panel)
{}

static int nt35560_unprepare(struct drm_panel *panel)
{}


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

static const struct drm_panel_funcs nt35560_drm_funcs =;

static int nt35560_probe(struct mipi_dsi_device *dsi)
{}

static void nt35560_remove(struct mipi_dsi_device *dsi)
{}

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

static struct mipi_dsi_driver nt35560_driver =;
module_mipi_dsi_driver();

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