404

[ Avaa Bypassed ]




Upload:

Command:

botdev@18.220.147.154: ~ $
/*
 * Copyright 2012 Steffen Trumtrar <s.trumtrar@pengutronix.de>
 *
 * description of display timings
 *
 * This file is released under the GPLv2
 */

#ifndef __LINUX_DISPLAY_TIMING_H
#define __LINUX_DISPLAY_TIMING_H

#include <linux/bitops.h>
#include <linux/types.h>

enum display_flags {
	DISPLAY_FLAGS_HSYNC_LOW		= BIT(0),
	DISPLAY_FLAGS_HSYNC_HIGH	= BIT(1),
	DISPLAY_FLAGS_VSYNC_LOW		= BIT(2),
	DISPLAY_FLAGS_VSYNC_HIGH	= BIT(3),

	/* data enable flag */
	DISPLAY_FLAGS_DE_LOW		= BIT(4),
	DISPLAY_FLAGS_DE_HIGH		= BIT(5),
	/* drive data on pos. edge */
	DISPLAY_FLAGS_PIXDATA_POSEDGE	= BIT(6),
	/* drive data on neg. edge */
	DISPLAY_FLAGS_PIXDATA_NEGEDGE	= BIT(7),
	DISPLAY_FLAGS_INTERLACED	= BIT(8),
	DISPLAY_FLAGS_DOUBLESCAN	= BIT(9),
	DISPLAY_FLAGS_DOUBLECLK		= BIT(10),
	/* drive sync on pos. edge */
	DISPLAY_FLAGS_SYNC_POSEDGE	= BIT(11),
	/* drive sync on neg. edge */
	DISPLAY_FLAGS_SYNC_NEGEDGE	= BIT(12),
};

/*
 * A single signal can be specified via a range of minimal and maximal values
 * with a typical value, that lies somewhere inbetween.
 */
struct timing_entry {
	u32 min;
	u32 typ;
	u32 max;
};

/*
 * Single "mode" entry. This describes one set of signal timings a display can
 * have in one setting. This struct can later be converted to struct videomode
 * (see include/video/videomode.h). As each timing_entry can be defined as a
 * range, one struct display_timing may become multiple struct videomodes.
 *
 * Example: hsync active high, vsync active low
 *
 *				    Active Video
 * Video  ______________________XXXXXXXXXXXXXXXXXXXXXX_____________________
 *	  |<- sync ->|<- back ->|<----- active ----->|<- front ->|<- sync..
 *	  |	     |	 porch  |		     |	 porch	 |
 *
 * HSync _|¯¯¯¯¯¯¯¯¯¯|___________________________________________|¯¯¯¯¯¯¯¯¯
 *
 * VSync ¯|__________|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|_________
 */
struct display_timing {
	struct timing_entry pixelclock;

	struct timing_entry hactive;		/* hor. active video */
	struct timing_entry hfront_porch;	/* hor. front porch */
	struct timing_entry hback_porch;	/* hor. back porch */
	struct timing_entry hsync_len;		/* hor. sync len */

	struct timing_entry vactive;		/* ver. active video */
	struct timing_entry vfront_porch;	/* ver. front porch */
	struct timing_entry vback_porch;	/* ver. back porch */
	struct timing_entry vsync_len;		/* ver. sync len */

	enum display_flags flags;		/* display flags */
};

/*
 * This describes all timing settings a display provides.
 * The native_mode is the default setting for this display.
 * Drivers that can handle multiple videomodes should work with this struct and
 * convert each entry to the desired end result.
 */
struct display_timings {
	unsigned int num_timings;
	unsigned int native_mode;

	struct display_timing **timings;
};

/* get one entry from struct display_timings */
static inline struct display_timing *display_timings_get(const struct
							 display_timings *disp,
							 unsigned int index)
{
	if (disp->num_timings > index)
		return disp->timings[index];
	else
		return NULL;
}

void display_timings_release(struct display_timings *disp);

#endif

Filemanager

Name Type Size Permission Actions
atmel_lcdc.h File 6.8 KB 0644
aty128.h File 13.27 KB 0644
auo_k190xfb.h File 2.79 KB 0644
broadsheetfb.h File 2.12 KB 0644
cirrus.h File 5.67 KB 0644
cvisionppc.h File 1.54 KB 0644
da8xx-fb.h File 1.99 KB 0644
display_timing.h File 3.11 KB 0644
edid.h File 228 B 0644
exynos5433_decon.h File 6.82 KB 0644
exynos7_decon.h File 10.9 KB 0644
gbe.h File 10.54 KB 0644
hecubafb.h File 1.5 KB 0644
ili9320.h File 5.8 KB 0644
imx-ipu-image-convert.h File 6.97 KB 0644
imx-ipu-v3.h File 14.88 KB 0644
kyro.h File 2.36 KB 0644
mach64.h File 47.14 KB 0644
maxinefb.h File 1.24 KB 0644
mbxfb.h File 2.16 KB 0644
metronomefb.h File 1.48 KB 0644
mipi_display.h File 4.52 KB 0644
mmp_disp.h File 7.61 KB 0644
neomagic.h File 4.9 KB 0644
newport.h File 18.68 KB 0644
of_display_timing.h File 968 B 0644
of_videomode.h File 367 B 0644
omap-panel-data.h File 2.18 KB 0644
omapfb_dss.h File 23.44 KB 0644
omapvrfb.h File 2.38 KB 0644
permedia2.h File 8.96 KB 0644
platform_lcd.h File 589 B 0644
pm3fb.h File 45.31 KB 0644
pmag-ba-fb.h File 1.02 KB 0644
pmagb-b-fb.h File 2.34 KB 0644
pxa168fb.h File 2.67 KB 0644
radeon.h File 109.21 KB 0644
s1d13xxxfb.h File 9.95 KB 0644
sa1100fb.h File 1.26 KB 0644
samsung_fimd.h File 16.8 KB 0644
sh_mobile_lcdc.h File 6.11 KB 0644
sh_mobile_meram.h File 2.44 KB 0644
sisfb.h File 1.23 KB 0644
sstfb.h File 11.04 KB 0644
tdfx.h File 5.32 KB 0644
tgafb.h File 6.94 KB 0644
trident.h File 3.23 KB 0644
udlfb.h File 2.85 KB 0644
uvesafb.h File 2.85 KB 0644
vga.h File 13.72 KB 0644
videomode.h File 1.35 KB 0644
w100fb.h File 3.72 KB 0644