linux/drivers/gpu/drm/bridge/parade-ps8622.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Parade PS8622 eDP/LVDS bridge driver
 *
 * Copyright (C) 2014 Google, Inc.
 */

#include <linux/backlight.h>
#include <linux/delay.h>
#include <linux/err.h>
#include <linux/gpio/consumer.h>
#include <linux/i2c.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/pm.h>
#include <linux/regulator/consumer.h>

#include <drm/drm_atomic_helper.h>
#include <drm/drm_bridge.h>
#include <drm/drm_crtc.h>
#include <drm/drm_of.h>
#include <drm/drm_panel.h>
#include <drm/drm_print.h>
#include <drm/drm_probe_helper.h>

/* Brightness scale on the Parade chip */
#define PS8622_MAX_BRIGHTNESS

/* Timings taken from the version 1.7 datasheet for the PS8622/PS8625 */
#define PS8622_POWER_RISE_T1_MIN_US
#define PS8622_POWER_RISE_T1_MAX_US
#define PS8622_RST_HIGH_T2_MIN_US
#define PS8622_RST_HIGH_T2_MAX_US
#define PS8622_PWMO_END_T12_MS
#define PS8622_POWER_FALL_T16_MAX_US
#define PS8622_POWER_OFF_T17_MS

#if ((PS8622_RST_HIGH_T2_MIN_US + PS8622_POWER_RISE_T1_MAX_US) > \
	(PS8622_RST_HIGH_T2_MAX_US + PS8622_POWER_RISE_T1_MIN_US))
#error "T2.min + T1.max must be less than T2.max + T1.min"
#endif

struct ps8622_bridge {};

static inline struct ps8622_bridge *
		bridge_to_ps8622(struct drm_bridge *bridge)
{}

static int ps8622_set(struct i2c_client *client, u8 page, u8 reg, u8 val)
{}

static int ps8622_send_config(struct ps8622_bridge *ps8622)
{}

static int ps8622_backlight_update(struct backlight_device *bl)
{}

static const struct backlight_ops ps8622_backlight_ops =;

static void ps8622_pre_enable(struct drm_bridge *bridge)
{}

static void ps8622_disable(struct drm_bridge *bridge)
{}

static void ps8622_post_disable(struct drm_bridge *bridge)
{}

static int ps8622_attach(struct drm_bridge *bridge,
			 enum drm_bridge_attach_flags flags)
{}

static const struct drm_bridge_funcs ps8622_bridge_funcs =;

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

static int ps8622_probe(struct i2c_client *client)
{}

static void ps8622_remove(struct i2c_client *client)
{}

static const struct i2c_device_id ps8622_i2c_table[] =;
MODULE_DEVICE_TABLE(i2c, ps8622_i2c_table);

static struct i2c_driver ps8622_driver =;
module_i2c_driver();

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