1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Copyright (c) 2004 Arnaud Patard <arnaud.patard@rtp-net.org>
4  *
5  * Inspired by pxafb.h
6 */
7 
8 #ifndef __ASM_PLAT_FB_S3C2410_H
9 #define __ASM_PLAT_FB_S3C2410_H __FILE__
10 
11 struct s3c2410fb_hw {
12 	unsigned long	lcdcon1;
13 	unsigned long	lcdcon2;
14 	unsigned long	lcdcon3;
15 	unsigned long	lcdcon4;
16 	unsigned long	lcdcon5;
17 };
18 
19 /* LCD description */
20 struct s3c2410fb_display {
21 	/* LCD type */
22 	unsigned type;
23 
24 	/* Screen size */
25 	unsigned short width;
26 	unsigned short height;
27 
28 	/* Screen info */
29 	unsigned short xres;
30 	unsigned short yres;
31 	unsigned short bpp;
32 
33 	unsigned pixclock;		/* pixclock in picoseconds */
34 	unsigned short left_margin;  /* value in pixels (TFT) or HCLKs (STN) */
35 	unsigned short right_margin; /* value in pixels (TFT) or HCLKs (STN) */
36 	unsigned short hsync_len;    /* value in pixels (TFT) or HCLKs (STN) */
37 	unsigned short upper_margin;	/* value in lines (TFT) or 0 (STN) */
38 	unsigned short lower_margin;	/* value in lines (TFT) or 0 (STN) */
39 	unsigned short vsync_len;	/* value in lines (TFT) or 0 (STN) */
40 
41 	/* lcd configuration registers */
42 	unsigned long	lcdcon5;
43 };
44 
45 struct s3c2410fb_mach_info {
46 
47 	struct s3c2410fb_display *displays;	/* attached displays info */
48 	unsigned num_displays;			/* number of defined displays */
49 	unsigned default_display;
50 
51 	/* GPIOs */
52 
53 	unsigned long	gpcup;
54 	unsigned long	gpcup_mask;
55 	unsigned long	gpccon;
56 	unsigned long	gpccon_mask;
57 	unsigned long	gpdup;
58 	unsigned long	gpdup_mask;
59 	unsigned long	gpdcon;
60 	unsigned long	gpdcon_mask;
61 
62 	/* lpc3600 control register */
63 	unsigned long	lpcsel;
64 };
65 
66 extern void __init s3c24xx_fb_set_platdata(struct s3c2410fb_mach_info *);
67 
68 #endif /* __ASM_PLAT_FB_S3C2410_H */
69