Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
include
video
w100fb.h
Go to the documentation of this file.
1
/*
2
* Support for the w100 frame buffer.
3
*
4
* Copyright (c) 2004-2005 Richard Purdie
5
* Copyright (c) 2005 Ian Molton
6
*
7
* This program is free software; you can redistribute it and/or modify
8
* it under the terms of the GNU General Public License version 2 as
9
* published by the Free Software Foundation.
10
*/
11
12
#define W100_GPIO_PORT_A 0
13
#define W100_GPIO_PORT_B 1
14
15
#define CLK_SRC_XTAL 0
16
#define CLK_SRC_PLL 1
17
18
struct
w100fb_par
;
19
20
unsigned
long
w100fb_gpio_read
(
int
port
);
21
void
w100fb_gpio_write
(
int
port
,
unsigned
long
value
);
22
unsigned
long
w100fb_get_hsynclen
(
struct
device
*
dev
);
23
24
/* LCD Specific Routines and Config */
25
struct
w100_tg_info
{
26
void
(*
change
)(
struct
w100fb_par
*);
27
void
(*
suspend
)(
struct
w100fb_par
*);
28
void
(*
resume
)(
struct
w100fb_par
*);
29
};
30
31
/* General Platform Specific w100 Register Values */
32
struct
w100_gen_regs
{
33
unsigned
long
lcd_format
;
34
unsigned
long
lcdd_cntl1
;
35
unsigned
long
lcdd_cntl2
;
36
unsigned
long
genlcd_cntl1
;
37
unsigned
long
genlcd_cntl2
;
38
unsigned
long
genlcd_cntl3
;
39
};
40
41
struct
w100_gpio_regs
{
42
unsigned
long
init_data1
;
43
unsigned
long
init_data2
;
44
unsigned
long
gpio_dir1
;
45
unsigned
long
gpio_oe1
;
46
unsigned
long
gpio_dir2
;
47
unsigned
long
gpio_oe2
;
48
};
49
50
/* Optional External Memory Configuration */
51
struct
w100_mem_info
{
52
unsigned
long
ext_cntl
;
53
unsigned
long
sdram_mode_reg
;
54
unsigned
long
ext_timing_cntl
;
55
unsigned
long
io_cntl
;
56
unsigned
int
size
;
57
};
58
59
struct
w100_bm_mem_info
{
60
unsigned
long
ext_mem_bw
;
61
unsigned
long
offset
;
62
unsigned
long
ext_timing_ctl
;
63
unsigned
long
ext_cntl
;
64
unsigned
long
mode_reg
;
65
unsigned
long
io_cntl
;
66
unsigned
long
config
;
67
};
68
69
/* LCD Mode definition */
70
struct
w100_mode
{
71
unsigned
int
xres
;
72
unsigned
int
yres
;
73
unsigned
short
left_margin
;
74
unsigned
short
right_margin
;
75
unsigned
short
upper_margin
;
76
unsigned
short
lower_margin
;
77
unsigned
long
crtc_ss
;
78
unsigned
long
crtc_ls
;
79
unsigned
long
crtc_gs
;
80
unsigned
long
crtc_vpos_gs
;
81
unsigned
long
crtc_rev
;
82
unsigned
long
crtc_dclk
;
83
unsigned
long
crtc_gclk
;
84
unsigned
long
crtc_goe
;
85
unsigned
long
crtc_ps1_active
;
86
char
pll_freq
;
87
char
fast_pll_freq
;
88
int
sysclk_src
;
89
int
sysclk_divider
;
90
int
pixclk_src
;
91
int
pixclk_divider
;
92
int
pixclk_divider_rotated
;
93
};
94
95
struct
w100_pll_info
{
96
uint16_t
freq
;
/* desired Fout for PLL (Mhz) */
97
uint8_t
M
;
/* input divider */
98
uint8_t
N_int
;
/* VCO multiplier */
99
uint8_t
N_fac
;
/* VCO multiplier fractional part */
100
uint8_t
tfgoal
;
101
uint8_t
lock_time
;
102
};
103
104
/* Initial Video mode orientation flags */
105
#define INIT_MODE_ROTATED 0x1
106
#define INIT_MODE_FLIPPED 0x2
107
108
/*
109
* This structure describes the machine which we are running on.
110
* It is set by machine specific code and used in the probe routine
111
* of drivers/video/w100fb.c
112
*/
113
struct
w100fb_mach_info
{
114
/* General Platform Specific Registers */
115
struct
w100_gen_regs
*
regs
;
116
/* Table of modes the LCD is capable of */
117
struct
w100_mode
*
modelist
;
118
unsigned
int
num_modes
;
119
/* Hooks for any platform specific tg/lcd code (optional) */
120
struct
w100_tg_info
*
tg
;
121
/* External memory definition (if present) */
122
struct
w100_mem_info
*
mem
;
123
/* Additional External memory definition (if present) */
124
struct
w100_bm_mem_info
*
bm_mem
;
125
/* GPIO definitions (optional) */
126
struct
w100_gpio_regs
*
gpio
;
127
/* Initial Mode flags */
128
unsigned
int
init_mode
;
129
/* Xtal Frequency */
130
unsigned
int
xtal_freq
;
131
/* Enable Xtal input doubler (1 == enable) */
132
unsigned
int
xtal_dbl
;
133
};
134
135
/* General frame buffer data structure */
136
struct
w100fb_par
{
137
unsigned
int
chip_id
;
138
unsigned
int
xres
;
139
unsigned
int
yres
;
140
unsigned
int
extmem_active
;
141
unsigned
int
flip
;
142
unsigned
int
blanked
;
143
unsigned
int
fastpll_mode
;
144
unsigned
long
hsync_len
;
145
struct
w100_mode
*
mode
;
146
struct
w100_pll_info
*
pll_table
;
147
struct
w100fb_mach_info
*
mach
;
148
uint32_t
*
saved_intmem
;
149
uint32_t
*
saved_extmem
;
150
};
Generated on Thu Jan 10 2013 14:42:32 for Linux Kernel by
1.8.2