Blame view
include/gdsys_fpga.h
7.18 KB
83d290c56 SPDX: Convert all... |
1 |
/* SPDX-License-Identifier: GPL-2.0+ */ |
2da0fc0d0 ppc4xx: Add DLVis... |
2 3 |
/* * (C) Copyright 2010 |
d38826a3d treewide: Fix gds... |
4 |
* Dirk Eibach, Guntermann & Drunck GmbH, dirk.eibach@gdsys.cc |
2da0fc0d0 ppc4xx: Add DLVis... |
5 6 7 8 |
*/ #ifndef __GDSYS_FPGA_H #define __GDSYS_FPGA_H |
255ef4d90 ppc4xx: Add Io64 ... |
9 |
int init_func_fpga(void); |
2da0fc0d0 ppc4xx: Add DLVis... |
10 11 12 |
enum { FPGA_STATE_DONE_FAILED = 1 << 0, FPGA_STATE_REFLECTION_FAILED = 1 << 1, |
255ef4d90 ppc4xx: Add Io64 ... |
13 |
FPGA_STATE_PLATFORM = 1 << 2, |
2da0fc0d0 ppc4xx: Add DLVis... |
14 15 16 |
}; int get_fpga_state(unsigned dev); |
2da0fc0d0 ppc4xx: Add DLVis... |
17 |
|
aba27acf6 powerpc/ppc4xx: U... |
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
int fpga_set_reg(u32 fpga, u16 *reg, off_t regoff, u16 data); int fpga_get_reg(u32 fpga, u16 *reg, off_t regoff, u16 *data); extern struct ihs_fpga *fpga_ptr[]; #define FPGA_SET_REG(ix, fld, val) \ fpga_set_reg((ix), \ &fpga_ptr[ix]->fld, \ offsetof(struct ihs_fpga, fld), \ val) #define FPGA_GET_REG(ix, fld, val) \ fpga_get_reg((ix), \ &fpga_ptr[ix]->fld, \ offsetof(struct ihs_fpga, fld), \ val) |
0e60aa85c powerpc/ppc4xx: R... |
34 |
struct ihs_gpio { |
2da0fc0d0 ppc4xx: Add DLVis... |
35 36 37 |
u16 read; u16 clear; u16 set; |
0e60aa85c powerpc/ppc4xx: R... |
38 |
}; |
2da0fc0d0 ppc4xx: Add DLVis... |
39 |
|
0e60aa85c powerpc/ppc4xx: R... |
40 |
struct ihs_i2c { |
b46226bdb i2c: IHS I2C mast... |
41 42 |
u16 interrupt_status; u16 interrupt_enable; |
2da0fc0d0 ppc4xx: Add DLVis... |
43 |
u16 write_mailbox_ext; |
b46226bdb i2c: IHS I2C mast... |
44 |
u16 write_mailbox; |
2da0fc0d0 ppc4xx: Add DLVis... |
45 |
u16 read_mailbox_ext; |
b46226bdb i2c: IHS I2C mast... |
46 |
u16 read_mailbox; |
0e60aa85c powerpc/ppc4xx: R... |
47 |
}; |
2da0fc0d0 ppc4xx: Add DLVis... |
48 |
|
0e60aa85c powerpc/ppc4xx: R... |
49 |
struct ihs_osd { |
2da0fc0d0 ppc4xx: Add DLVis... |
50 51 52 53 |
u16 version; u16 features; u16 control; u16 xy_size; |
52158e361 ppc4xx: Set DLVis... |
54 55 56 |
u16 xy_scale; u16 x_pos; u16 y_pos; |
0e60aa85c powerpc/ppc4xx: R... |
57 |
}; |
2da0fc0d0 ppc4xx: Add DLVis... |
58 |
|
50dcf89d9 mpc83xx: Add gdsy... |
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
struct ihs_mdio { u16 control; u16 address_data; u16 rx_data; }; struct ihs_io_ep { u16 transmit_data; u16 rx_tx_control; u16 receive_data; u16 rx_tx_status; u16 reserved; u16 device_address; u16 target_address; }; |
6e9e6c36a powerpc/ppc4xx: M... |
74 |
#ifdef CONFIG_NEO |
0e60aa85c powerpc/ppc4xx: R... |
75 |
struct ihs_fpga { |
6e9e6c36a powerpc/ppc4xx: M... |
76 77 78 79 80 81 |
u16 reflection_low; /* 0x0000 */ u16 versions; /* 0x0002 */ u16 fpga_features; /* 0x0004 */ u16 fpga_version; /* 0x0006 */ u16 reserved_0[8187]; /* 0x0008 */ u16 reflection_high; /* 0x3ffe */ |
0e60aa85c powerpc/ppc4xx: R... |
82 |
}; |
6e9e6c36a powerpc/ppc4xx: M... |
83 |
#endif |
2da0fc0d0 ppc4xx: Add DLVis... |
84 |
#ifdef CONFIG_IO |
0e60aa85c powerpc/ppc4xx: R... |
85 |
struct ihs_fpga { |
2da0fc0d0 ppc4xx: Add DLVis... |
86 87 88 89 90 91 92 93 |
u16 reflection_low; /* 0x0000 */ u16 versions; /* 0x0002 */ u16 fpga_features; /* 0x0004 */ u16 fpga_version; /* 0x0006 */ u16 reserved_0[5]; /* 0x0008 */ u16 quad_serdes_reset; /* 0x0012 */ u16 reserved_1[8181]; /* 0x0014 */ u16 reflection_high; /* 0x3ffe */ |
0e60aa85c powerpc/ppc4xx: R... |
94 |
}; |
2da0fc0d0 ppc4xx: Add DLVis... |
95 |
#endif |
255ef4d90 ppc4xx: Add Io64 ... |
96 |
#ifdef CONFIG_IO64 |
aba27acf6 powerpc/ppc4xx: U... |
97 98 99 100 101 102 103 104 105 106 107 |
struct ihs_fpga_channel { u16 status_int; u16 config_int; u16 switch_connect_config; u16 tx_destination; }; struct ihs_fpga_hicb { u16 status_int; u16 config_int; }; |
0e60aa85c powerpc/ppc4xx: R... |
108 |
struct ihs_fpga { |
255ef4d90 ppc4xx: Add Io64 ... |
109 110 111 112 113 114 115 |
u16 reflection_low; /* 0x0000 */ u16 versions; /* 0x0002 */ u16 fpga_features; /* 0x0004 */ u16 fpga_version; /* 0x0006 */ u16 reserved_0[5]; /* 0x0008 */ u16 quad_serdes_reset; /* 0x0012 */ u16 reserved_1[502]; /* 0x0014 */ |
aba27acf6 powerpc/ppc4xx: U... |
116 117 118 |
struct ihs_fpga_channel ch[32]; /* 0x0400 */ struct ihs_fpga_channel hicb_ch[32]; /* 0x0500 */ u16 reserved_2[7487]; /* 0x0580 */ |
255ef4d90 ppc4xx: Add Io64 ... |
119 |
u16 reflection_high; /* 0x3ffe */ |
0e60aa85c powerpc/ppc4xx: R... |
120 |
}; |
255ef4d90 ppc4xx: Add Io64 ... |
121 |
#endif |
2da0fc0d0 ppc4xx: Add DLVis... |
122 |
#ifdef CONFIG_IOCON |
0e60aa85c powerpc/ppc4xx: R... |
123 |
struct ihs_fpga { |
2da0fc0d0 ppc4xx: Add DLVis... |
124 125 126 127 |
u16 reflection_low; /* 0x0000 */ u16 versions; /* 0x0002 */ u16 fpga_version; /* 0x0004 */ u16 fpga_features; /* 0x0006 */ |
50dcf89d9 mpc83xx: Add gdsy... |
128 129 130 131 132 133 134 135 |
u16 reserved_0[1]; /* 0x0008 */ u16 top_interrupt; /* 0x000a */ u16 reserved_1[4]; /* 0x000c */ struct ihs_gpio gpio; /* 0x0014 */ u16 mpc3w_control; /* 0x001a */ u16 reserved_2[2]; /* 0x001c */ struct ihs_io_ep ep; /* 0x0020 */ u16 reserved_3[9]; /* 0x002e */ |
071be8969 i2c: ihs_i2c: Dua... |
136 |
struct ihs_i2c i2c0; /* 0x0040 */ |
50dcf89d9 mpc83xx: Add gdsy... |
137 138 139 140 141 142 143 144 145 146 147 148 149 |
u16 reserved_4[10]; /* 0x004c */ u16 mc_int; /* 0x0060 */ u16 mc_int_en; /* 0x0062 */ u16 mc_status; /* 0x0064 */ u16 mc_control; /* 0x0066 */ u16 mc_tx_data; /* 0x0068 */ u16 mc_tx_address; /* 0x006a */ u16 mc_tx_cmd; /* 0x006c */ u16 mc_res; /* 0x006e */ u16 mc_rx_cmd_status; /* 0x0070 */ u16 mc_rx_data; /* 0x0072 */ u16 reserved_5[69]; /* 0x0074 */ u16 reflection_high; /* 0x00fe */ |
7ed45d3d0 hrcon: Add suppor... |
150 |
struct ihs_osd osd0; /* 0x0100 */ |
50dcf89d9 mpc83xx: Add gdsy... |
151 |
u16 reserved_6[889]; /* 0x010e */ |
7ed45d3d0 hrcon: Add suppor... |
152 |
u16 videomem0[2048]; /* 0x0800 */ |
50dcf89d9 mpc83xx: Add gdsy... |
153 154 |
}; #endif |
1d2541ba3 strider: Support ... |
155 |
#if defined(CONFIG_HRCON) || defined(CONFIG_STRIDER_CON_DP) |
50dcf89d9 mpc83xx: Add gdsy... |
156 157 158 159 160 161 162 |
struct ihs_fpga { u16 reflection_low; /* 0x0000 */ u16 versions; /* 0x0002 */ u16 fpga_version; /* 0x0004 */ u16 fpga_features; /* 0x0006 */ u16 reserved_0[1]; /* 0x0008 */ u16 top_interrupt; /* 0x000a */ |
7ed45d3d0 hrcon: Add suppor... |
163 164 165 |
u16 reserved_1[2]; /* 0x000c */ u16 control; /* 0x0010 */ u16 extended_control; /* 0x0012 */ |
0e60aa85c powerpc/ppc4xx: R... |
166 |
struct ihs_gpio gpio; /* 0x0014 */ |
2da0fc0d0 ppc4xx: Add DLVis... |
167 |
u16 mpc3w_control; /* 0x001a */ |
50dcf89d9 mpc83xx: Add gdsy... |
168 169 170 |
u16 reserved_2[2]; /* 0x001c */ struct ihs_io_ep ep; /* 0x0020 */ u16 reserved_3[9]; /* 0x002e */ |
071be8969 i2c: ihs_i2c: Dua... |
171 |
struct ihs_i2c i2c0; /* 0x0040 */ |
50dcf89d9 mpc83xx: Add gdsy... |
172 |
u16 reserved_4[10]; /* 0x004c */ |
e50e8968d powerpc/ppc4xx: S... |
173 174 175 176 177 178 179 180 181 182 |
u16 mc_int; /* 0x0060 */ u16 mc_int_en; /* 0x0062 */ u16 mc_status; /* 0x0064 */ u16 mc_control; /* 0x0066 */ u16 mc_tx_data; /* 0x0068 */ u16 mc_tx_address; /* 0x006a */ u16 mc_tx_cmd; /* 0x006c */ u16 mc_res; /* 0x006e */ u16 mc_rx_cmd_status; /* 0x0070 */ u16 mc_rx_data; /* 0x0072 */ |
50dcf89d9 mpc83xx: Add gdsy... |
183 |
u16 reserved_5[69]; /* 0x0074 */ |
2da0fc0d0 ppc4xx: Add DLVis... |
184 |
u16 reflection_high; /* 0x00fe */ |
7ed45d3d0 hrcon: Add suppor... |
185 186 187 188 189 190 191 192 193 194 |
struct ihs_osd osd0; /* 0x0100 */ #ifdef CONFIG_SYS_OSD_DH u16 reserved_6[57]; /* 0x010e */ struct ihs_osd osd1; /* 0x0180 */ u16 reserved_7[9]; /* 0x018e */ struct ihs_i2c i2c1; /* 0x01a0 */ u16 reserved_8[1834]; /* 0x01ac */ u16 videomem0[2048]; /* 0x1000 */ u16 videomem1[2048]; /* 0x2000 */ #else |
50dcf89d9 mpc83xx: Add gdsy... |
195 |
u16 reserved_6[889]; /* 0x010e */ |
7ed45d3d0 hrcon: Add suppor... |
196 197 |
u16 videomem0[2048]; /* 0x0800 */ #endif |
0e60aa85c powerpc/ppc4xx: R... |
198 |
}; |
2da0fc0d0 ppc4xx: Add DLVis... |
199 |
#endif |
a3f9d6c77 mpc83xx: Add stri... |
200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 |
#ifdef CONFIG_STRIDER_CPU struct ihs_fpga { u16 reflection_low; /* 0x0000 */ u16 versions; /* 0x0002 */ u16 fpga_version; /* 0x0004 */ u16 fpga_features; /* 0x0006 */ u16 reserved_0[1]; /* 0x0008 */ u16 top_interrupt; /* 0x000a */ u16 reserved_1[3]; /* 0x000c */ u16 extended_control; /* 0x0012 */ struct ihs_gpio gpio; /* 0x0014 */ u16 mpc3w_control; /* 0x001a */ u16 reserved_2[2]; /* 0x001c */ struct ihs_io_ep ep; /* 0x0020 */ u16 reserved_3[9]; /* 0x002e */ u16 mc_int; /* 0x0040 */ u16 mc_int_en; /* 0x0042 */ u16 mc_status; /* 0x0044 */ u16 mc_control; /* 0x0046 */ u16 mc_tx_data; /* 0x0048 */ u16 mc_tx_address; /* 0x004a */ u16 mc_tx_cmd; /* 0x004c */ u16 mc_res; /* 0x004e */ u16 mc_rx_cmd_status; /* 0x0050 */ u16 mc_rx_data; /* 0x0052 */ u16 reserved_4[62]; /* 0x0054 */ struct ihs_i2c i2c0; /* 0x00d0 */ }; #endif #ifdef CONFIG_STRIDER_CON struct ihs_fpga { u16 reflection_low; /* 0x0000 */ u16 versions; /* 0x0002 */ u16 fpga_version; /* 0x0004 */ u16 fpga_features; /* 0x0006 */ u16 reserved_0[1]; /* 0x0008 */ u16 top_interrupt; /* 0x000a */ u16 reserved_1[4]; /* 0x000c */ struct ihs_gpio gpio; /* 0x0014 */ u16 mpc3w_control; /* 0x001a */ u16 reserved_2[2]; /* 0x001c */ struct ihs_io_ep ep; /* 0x0020 */ u16 reserved_3[9]; /* 0x002e */ struct ihs_i2c i2c0; /* 0x0040 */ u16 reserved_4[10]; /* 0x004c */ u16 mc_int; /* 0x0060 */ u16 mc_int_en; /* 0x0062 */ u16 mc_status; /* 0x0064 */ u16 mc_control; /* 0x0066 */ u16 mc_tx_data; /* 0x0068 */ u16 mc_tx_address; /* 0x006a */ u16 mc_tx_cmd; /* 0x006c */ u16 mc_res; /* 0x006e */ u16 mc_rx_cmd_status; /* 0x0070 */ u16 mc_rx_data; /* 0x0072 */ u16 reserved_5[70]; /* 0x0074 */ |
7ed45d3d0 hrcon: Add suppor... |
257 |
struct ihs_osd osd0; /* 0x0100 */ |
a3f9d6c77 mpc83xx: Add stri... |
258 |
u16 reserved_6[889]; /* 0x010e */ |
7ed45d3d0 hrcon: Add suppor... |
259 |
u16 videomem0[2048]; /* 0x0800 */ |
a3f9d6c77 mpc83xx: Add stri... |
260 261 |
}; #endif |
2da0fc0d0 ppc4xx: Add DLVis... |
262 |
#ifdef CONFIG_DLVISION_10G |
0e60aa85c powerpc/ppc4xx: R... |
263 |
struct ihs_fpga { |
2da0fc0d0 ppc4xx: Add DLVis... |
264 265 266 267 268 269 |
u16 reflection_low; /* 0x0000 */ u16 versions; /* 0x0002 */ u16 fpga_version; /* 0x0004 */ u16 fpga_features; /* 0x0006 */ u16 reserved_0[10]; /* 0x0008 */ u16 extended_interrupt; /* 0x001c */ |
b46226bdb i2c: IHS I2C mast... |
270 |
u16 reserved_1[29]; /* 0x001e */ |
7749c84e9 ppc4xx: Enable MP... |
271 |
u16 mpc3w_control; /* 0x0058 */ |
b46226bdb i2c: IHS I2C mast... |
272 |
u16 reserved_2[3]; /* 0x005a */ |
071be8969 i2c: ihs_i2c: Dua... |
273 274 275 276 |
struct ihs_i2c i2c0; /* 0x0060 */ u16 reserved_3[2]; /* 0x006c */ struct ihs_i2c i2c1; /* 0x0070 */ u16 reserved_4[194]; /* 0x007c */ |
7ed45d3d0 hrcon: Add suppor... |
277 |
struct ihs_osd osd0; /* 0x0200 */ |
071be8969 i2c: ihs_i2c: Dua... |
278 |
u16 reserved_5[761]; /* 0x020e */ |
7ed45d3d0 hrcon: Add suppor... |
279 |
u16 videomem0[2048]; /* 0x0800 */ |
0e60aa85c powerpc/ppc4xx: R... |
280 |
}; |
2da0fc0d0 ppc4xx: Add DLVis... |
281 282 283 |
#endif #endif |