GNU Linux-libre 4.19.245-gnu1
[releases.git] / arch / arm / plat-samsung / include / plat / fb-s3c2410.h
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 */