#include <linux/delay.h>
#include <linux/gpio/consumer.h>
#include <linux/media-bus-format.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/regulator/consumer.h>
#include <video/display_timing.h>
#include <video/videomode.h>
#include <drm/drm_crtc.h>
#include <drm/drm_device.h>
#include <drm/drm_panel.h>
struct seiko_panel_desc { … };
struct seiko_panel { … };
static inline struct seiko_panel *to_seiko_panel(struct drm_panel *panel)
{ … }
static int seiko_panel_get_fixed_modes(struct seiko_panel *panel,
struct drm_connector *connector)
{ … }
static int seiko_panel_unprepare(struct drm_panel *panel)
{ … }
static int seiko_panel_prepare(struct drm_panel *panel)
{ … }
static int seiko_panel_get_modes(struct drm_panel *panel,
struct drm_connector *connector)
{ … }
static int seiko_panel_get_timings(struct drm_panel *panel,
unsigned int num_timings,
struct display_timing *timings)
{ … }
static const struct drm_panel_funcs seiko_panel_funcs = …;
static int seiko_panel_probe(struct device *dev,
const struct seiko_panel_desc *desc)
{ … }
static void seiko_panel_remove(struct platform_device *pdev)
{ … }
static const struct display_timing seiko_43wvf1g_timing = …;
static const struct seiko_panel_desc seiko_43wvf1g = …;
static const struct of_device_id platform_of_match[] = …;
MODULE_DEVICE_TABLE(of, platform_of_match);
static int seiko_panel_platform_probe(struct platform_device *pdev)
{ … }
static struct platform_driver seiko_panel_platform_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;