Lines Matching +full:0 +full:x24
20 #define j44(a, b) (((a >> 4) & 0x0f) + (b & 0xf0))
21 #define j53(a, b) (((a >> 3) & 0x1f) + ((b << 4) & 0xe0))
25 module_param(epatc8, int, 0);
31 * cont = 0 IDE register file
35 static int cont_map[3] = { 0x18, 0x10, 0 };
42 case 0: in epat_write_regr()
45 w0(0x60+r); w2(1); w0(val); w2(4); in epat_write_regr()
50 w3(0x40+r); w4(val); in epat_write_regr()
63 case 0: in epat_read_regr()
68 w0(0x40+r); w2(1); w2(4); in epat_read_regr()
69 a = r1(); b = r2(); w0(0xff); in epat_read_regr()
72 w0(0x20+r); w2(1); w2(0x25); in epat_read_regr()
78 w3(r); w2(0x24); a = r4(); w2(4); in epat_read_regr()
91 case 0: in epat_read_block()
92 w0(7); w2(1); w2(3); w0(0xff); in epat_read_block()
93 ph = 0; in epat_read_block()
94 for (k = 0; k < count; k++) { in epat_read_block()
96 w0(0xfd); in epat_read_block()
106 w0(0); w2(4); in epat_read_block()
110 w0(0x47); w2(1); w2(5); w0(0xff); in epat_read_block()
111 ph = 0; in epat_read_block()
112 for (k = 0; k < count; k++) { in epat_read_block()
114 w0(0xfd); in epat_read_block()
120 w0(0); w2(4); in epat_read_block()
124 w0(0x27); w2(1); w2(0x25); w0(0); in epat_read_block()
125 ph = 0; in epat_read_block()
126 for (k = 0; k < count - 1; k++) { in epat_read_block()
127 w2(0x24 + ph); in epat_read_block()
131 w2(0x26); w2(0x27); in epat_read_block()
133 w2(0x25); w2(4); in epat_read_block()
137 w3(0x80); w2(0x24); in epat_read_block()
138 for (k = 0; k < count - 1; k++) in epat_read_block()
140 w2(4); w3(0xa0); w2(0x24); in epat_read_block()
146 w3(0x80); w2(0x24); in epat_read_block()
147 for (k = 0; k < count / 2 - 1; k++) in epat_read_block()
150 w2(4); w3(0xa0); w2(0x24); in epat_read_block()
156 w3(0x80); w2(0x24); in epat_read_block()
157 for (k = 0; k < count / 4 - 1; k++) in epat_read_block()
161 w2(4); w3(0xa0); w2(0x24); in epat_read_block()
173 case 0: in epat_write_block()
176 w0(0x67); w2(1); w2(5); in epat_write_block()
177 ph = 0; in epat_write_block()
178 for (k = 0; k < count; k++) { in epat_write_block()
186 w3(0xc0); in epat_write_block()
187 for (k = 0; k < count; k++) in epat_write_block()
192 w3(0xc0); in epat_write_block()
193 for (k = 0; k < count / 2; k++) in epat_write_block()
198 w3(0xc0); in epat_write_block()
199 for (k = 0; k < count / 4; k++) in epat_write_block()
213 #define WRi(r, v) epat_write_regr(pi, 0, r, v)
214 #define RRi(r) epat_read_regr(pi, 0, r)
220 w2(4); w0(0x22); w0(0xaa); \
221 w0(0x55); w0(0); w0(0xff); \
222 w0(0x87); w0(0x78); w0(x); \
223 w2(4); w2(5); w2(4); w0(0xff); \
224 } while (0)
232 CPP(0); in epat_connect()
235 CPP(0x40); CPP(0xe0); in epat_connect()
236 w0(0); w2(1); w2(4); in epat_connect()
237 WR(0x8, 0x12); in epat_connect()
238 WR(0xc, 0x14); in epat_connect()
239 WR(0x12, 0x10); in epat_connect()
240 WR(0xe, 0xf); in epat_connect()
241 WR(0xf, 4); in epat_connect()
242 /* WR(0xe,0xa);WR(0xf,4); */ in epat_connect()
243 WR(0xe, 0xd); in epat_connect()
244 WR(0xf, 0); in epat_connect()
245 /* CPP(0x30); */ in epat_connect()
249 CPP(0xe0); in epat_connect()
250 w0(0); w2(1); w2(4); /* Idle into SPP */ in epat_connect()
252 w0(0); w2(1); w2(4); w2(0xc); in epat_connect()
254 w0(0x40); w2(6); w2(7); w2(4); w2(0xc); w2(4); in epat_connect()
258 WR(8, 0x10); in epat_connect()
259 WR(0xc, 0x14); in epat_connect()
260 WR(0xa, 0x38); in epat_connect()
261 WR(0x12, 0x10); in epat_connect()
267 CPP(0x30); in epat_disconnect()
275 int e[2] = { 0, 0 }; in epat_test_proto()
279 cc = RR(0xd); in epat_test_proto()
283 for (j=0;j<2;j++) { in epat_test_proto()
284 WRi(6, 0xa0 + j * 0x10); in epat_test_proto()
285 for (k = 0; k < 256; k++) { in epat_test_proto()
286 WRi(2, k ^ 0xaa); in epat_test_proto()
287 WRi(3, k ^ 0x55); in epat_test_proto()
288 if (RRi(2) != (k ^ 0xaa)) in epat_test_proto()
294 f = 0; in epat_test_proto()
296 WR(0x13, 1); WR(0x13, 0); WR(0xa, 0x11); in epat_test_proto()
299 for (k = 0; k < 256; k++) { in epat_test_proto()
300 if ((scratch[2 * k] & 0xff) != k) in epat_test_proto()
302 if ((scratch[2 * k + 1] & 0xff) != 0xff - k) in epat_test_proto()
308 "epat: port 0x%x, mode %d, ccr %x, test=(%d,%d,%d)\n", in epat_test_proto()
309 pi->port, pi->mode, cc, e[0], e[1], f); in epat_test_proto()
311 return (e[0] && e[1]) || f; in epat_test_proto()
321 WR(0xa, 0x38); /* read the version code */ in epat_log_adapter()
322 ver = RR(0xb); in epat_log_adapter()
326 "Shuttle EPAT chip %x at 0x%x, mode %d (%s), delay %d\n", in epat_log_adapter()