#include <linux/bitops.h>
#include <linux/device.h>
#include <linux/mfd/syscon.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/of_platform.h>
#include <linux/platform_device.h>
#include <linux/regmap.h>
#include <linux/vexpress.h>
#include <drm/drm_fourcc.h>
#include "pl111_versatile.h"
#include "pl111_drm.h"
static struct regmap *versatile_syscon_map;
enum versatile_clcd { … };
static const struct of_device_id versatile_clcd_of_match[] = …;
static const struct of_device_id impd1_clcd_of_match[] = …;
#define INTEGRATOR_HDR_CTRL_OFFSET …
#define INTEGRATOR_CLCD_LCDBIASEN …
#define INTEGRATOR_CLCD_LCDBIASUP …
#define INTEGRATOR_CLCD_LCDBIASDN …
#define INTEGRATOR_CLCD_LCDMUX_LCD24 …
#define INTEGRATOR_CLCD_LCDMUX_SHARP …
#define INTEGRATOR_CLCD_LCDMUX_VGA555 …
#define INTEGRATOR_CLCD_LCDMUX_VGA24 …
#define INTEGRATOR_CLCD_LCD0_EN …
#define INTEGRATOR_CLCD_LCD1_EN …
#define INTEGRATOR_CLCD_LCD_STATIC1 …
#define INTEGRATOR_CLCD_LCD_STATIC2 …
#define INTEGRATOR_CLCD_LCD_STATIC …
#define INTEGRATOR_CLCD_LCD_N24BITEN …
#define INTEGRATOR_CLCD_MASK …
static void pl111_integrator_enable(struct drm_device *drm, u32 format)
{ … }
#define IMPD1_CTRL_OFFSET …
#define IMPD1_CTRL_DISP_LCD …
#define IMPD1_CTRL_DISP_VGA …
#define IMPD1_CTRL_DISP_LCD1 …
#define IMPD1_CTRL_DISP_ENABLE …
#define IMPD1_CTRL_DISP_MASK …
static void pl111_impd1_enable(struct drm_device *drm, u32 format)
{ … }
static void pl111_impd1_disable(struct drm_device *drm)
{ … }
#define SYS_CLCD …
#define SYS_CLCD_MODE_MASK …
#define SYS_CLCD_MODE_888 …
#define SYS_CLCD_MODE_5551 …
#define SYS_CLCD_MODE_565_R_LSB …
#define SYS_CLCD_MODE_565_B_LSB …
#define SYS_CLCD_CONNECTOR_MASK …
#define SYS_CLCD_NLCDIOON …
#define SYS_CLCD_VDDPOSSWITCH …
#define SYS_CLCD_PWR3V5SWITCH …
#define SYS_CLCD_VDDNEGSWITCH …
static void pl111_versatile_disable(struct drm_device *drm)
{ … }
static void pl111_versatile_enable(struct drm_device *drm, u32 format)
{ … }
static void pl111_realview_clcd_disable(struct drm_device *drm)
{ … }
static void pl111_realview_clcd_enable(struct drm_device *drm, u32 format)
{ … }
static const u32 pl110_integrator_pixel_formats[] = …;
static const u32 pl110_versatile_pixel_formats[] = …;
static const u32 pl111_realview_pixel_formats[] = …;
static const struct pl111_variant_data pl110_integrator = …;
static const struct pl111_variant_data pl110_impd1 = …;
static const struct pl111_variant_data pl110_versatile = …;
static const struct pl111_variant_data pl111_realview = …;
static const struct pl111_variant_data pl111_vexpress = …;
#define VEXPRESS_FPGAMUX_MOTHERBOARD …
#define VEXPRESS_FPGAMUX_DAUGHTERBOARD_1 …
#define VEXPRESS_FPGAMUX_DAUGHTERBOARD_2 …
static int pl111_vexpress_clcd_init(struct device *dev, struct device_node *np,
struct pl111_drm_dev_private *priv)
{ … }
int pl111_versatile_init(struct device *dev, struct pl111_drm_dev_private *priv)
{ … }
EXPORT_SYMBOL_GPL(…);