linux/drivers/gpu/drm/panel/panel-himax-hx8394.c

// SPDX-License-Identifier: GPL-2.0
/*
 * Driver for panels based on Himax HX8394 controller, such as:
 *
 * - HannStar HSD060BHW4 5.99" MIPI-DSI panel
 *
 * Copyright (C) 2021 Kamil Trzciński
 *
 * Based on drivers/gpu/drm/panel/panel-sitronix-st7703.c
 * Copyright (C) Purism SPC 2019
 */

#include <linux/delay.h>
#include <linux/gpio/consumer.h>
#include <linux/media-bus-format.h>
#include <linux/mod_devicetable.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 DRV_NAME

/* Manufacturer specific commands sent via DSI, listed in HX8394-F datasheet */
#define HX8394_CMD_SETSEQUENCE
#define HX8394_CMD_SETPOWER
#define HX8394_CMD_SETDISP
#define HX8394_CMD_SETCYC
#define HX8394_CMD_SETVCOM
#define HX8394_CMD_SETTE
#define HX8394_CMD_SETSENSOR
#define HX8394_CMD_SETEXTC
#define HX8394_CMD_SETMIPI
#define HX8394_CMD_SETOTP
#define HX8394_CMD_SETREGBANK
#define HX8394_CMD_UNKNOWN5
#define HX8394_CMD_UNKNOWN1
#define HX8394_CMD_SETDGCLUT
#define HX8394_CMD_SETID
#define HX8394_CMD_SETDDB
#define HX8394_CMD_UNKNOWN2
#define HX8394_CMD_SETCABC
#define HX8394_CMD_SETCABCGAIN
#define HX8394_CMD_SETPANEL
#define HX8394_CMD_SETOFFSET
#define HX8394_CMD_SETGIP0
#define HX8394_CMD_UNKNOWN3
#define HX8394_CMD_SETGIP1
#define HX8394_CMD_SETGIP2
#define HX8394_CMD_SETGPO
#define HX8394_CMD_UNKNOWN4
#define HX8394_CMD_SETSCALING
#define HX8394_CMD_SETIDLE
#define HX8394_CMD_SETGAMMA
#define HX8394_CMD_SETCHEMODE_DYN
#define HX8394_CMD_SETCHE
#define HX8394_CMD_SETCESEL
#define HX8394_CMD_SET_SP_CMD
#define HX8394_CMD_SETREADINDEX
#define HX8394_CMD_GETSPIREAD

struct hx8394 {};

struct hx8394_panel_desc {};

static inline struct hx8394 *panel_to_hx8394(struct drm_panel *panel)
{}

static int hsd060bhw4_init_sequence(struct hx8394 *ctx)
{}

static const struct drm_display_mode hsd060bhw4_mode =;

static const struct hx8394_panel_desc hsd060bhw4_desc =;

static int powkiddy_x55_init_sequence(struct hx8394 *ctx)
{}

static const struct drm_display_mode powkiddy_x55_mode =;

static const struct hx8394_panel_desc powkiddy_x55_desc =;

static int hx8394_enable(struct drm_panel *panel)
{}

static int hx8394_disable(struct drm_panel *panel)
{}

static int hx8394_unprepare(struct drm_panel *panel)
{}

static int hx8394_prepare(struct drm_panel *panel)
{}

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

static enum drm_panel_orientation hx8394_get_orientation(struct drm_panel *panel)
{}

static const struct drm_panel_funcs hx8394_drm_funcs =;

static int hx8394_probe(struct mipi_dsi_device *dsi)
{}

static void hx8394_remove(struct mipi_dsi_device *dsi)
{}

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

static struct mipi_dsi_driver hx8394_driver =;
module_mipi_dsi_driver();

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