1 /*
2  * (C) Copyright 2007
3  * DENX Software Engineering, Anatolij Gustschin, agust@denx.de
4  *
5  * See file CREDITS for list of people who contributed to this
6  * project.
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License as
10  * published by the Free Software Foundation; either version 2 of
11  * the License, or (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
21  * MA 02111-1307 USA
22  */
23 
24 /*
25  * mb862xx.h - Graphic interface for Fujitsu CoralP/Lime
26  */
27 
28 #ifndef _MB862XX_H_
29 #define _MB862XX_H_
30 
31 #define PCI_VENDOR_ID_FUJITSU	0x10CF
32 #define PCI_DEVICE_ID_CORAL_P	0x2019
33 #define PCI_DEVICE_ID_CORAL_PA	0x201E
34 
35 #define MB862XX_TYPE_LIME	0x1
36 
37 #define GC_HOST_BASE		0x01fc0000
38 #define GC_DISP_BASE		0x01fd0000
39 #define GC_DRAW_BASE		0x01ff0000
40 
41 /* Host interface registers */
42 #define GC_SRST			0x0000002c
43 #define GC_CCF			0x00000038
44 #define GC_CID			0x000000f0
45 #define GC_MMR			0x0000fffc
46 
47 /*
48  * Display Controller registers
49  * _A means the offset is aligned, we use these for boards
50  * with 8-/16-bit GDC access not working or buggy.
51  */
52 #define GC_DCM0			0x00000000
53 #define GC_HTP_A		0x00000004
54 #define GC_HTP			0x00000006
55 #define GC_HDB_HDP_A		0x00000008
56 #define GC_HDP			0x00000008
57 #define GC_HDB			0x0000000a
58 #define GC_VSW_HSW_HSP_A	0x0000000c
59 #define GC_HSP			0x0000000c
60 #define GC_HSW			0x0000000e
61 #define GC_VSW			0x0000000f
62 #define GC_VTR_A		0x00000010
63 #define GC_VTR			0x00000012
64 #define GC_VDP_VSP_A		0x00000014
65 #define GC_VSP			0x00000014
66 #define GC_VDP			0x00000016
67 #define GC_WY_WX		0x00000018
68 #define GC_WH_WW		0x0000001c
69 #define GC_L0M			0x00000020
70 #define GC_L0OA0		0x00000024
71 #define GC_L0DA0		0x00000028
72 #define GC_L0DY_L0DX		0x0000002c
73 #define GC_L2M			0x00000040
74 #define GC_L2OA0		0x00000044
75 #define GC_L2DA0		0x00000048
76 #define GC_L2OA1		0x0000004c
77 #define GC_L2DA1		0x00000050
78 #define GC_L2DX			0x00000054
79 #define GC_L2DY			0x00000056
80 #define GC_DCM1			0x00000100
81 #define GC_DCM2			0x00000104
82 #define GC_DCM3			0x00000108
83 #define GC_L0EM			0x00000110
84 #define GC_L0WY_L0WX		0x00000114
85 #define GC_L0WH_L0WW		0x00000118
86 #define GC_L2EM			0x00000130
87 #define GC_L2WX			0x00000134
88 #define GC_L2WY			0x00000136
89 #define GC_L2WW			0x00000138
90 #define GC_L2WH			0x0000013a
91 #define GC_L0PAL0		0x00000400
92 
93 /* Drawing registers */
94 #define GC_CTR			0x00000400
95 #define GC_IFCNT		0x00000408
96 #define GC_FBR			0x00000440
97 #define GC_XRES			0x00000444
98 #define GC_CXMIN		0x00000454
99 #define GC_CXMAX		0x00000458
100 #define GC_CYMIN		0x0000045c
101 #define GC_CYMAX		0x00000460
102 #define GC_FC			0x00000480
103 #define GC_BC			0x00000484
104 #define GC_FIFO			0x000004a0
105 #define GC_REV			0x00008084
106 #define GC_GEO_FIFO		0x00008400
107 
108 typedef struct {
109 	unsigned int index;
110 	unsigned int value;
111 } gdc_regs;
112 
113 int mb862xx_probe(unsigned int addr);
114 const gdc_regs *board_get_regs (void);
115 unsigned int board_video_init (void);
116 void board_backlight_switch(int);
117 
118 #endif /* _MB862XX_H_ */
119