Revision 9ed3e1b1
b/hw/omap_gpmc.c | ||
---|---|---|
196 | 196 |
addr -= cs * 0x30; |
197 | 197 |
f = s->cs_file + cs; |
198 | 198 |
switch (addr) { |
199 |
case 0x60: /* GPMC_CONFIG1 */
|
|
200 |
return f->config[0];
|
|
201 |
case 0x64: /* GPMC_CONFIG2 */
|
|
202 |
return f->config[1];
|
|
203 |
case 0x68: /* GPMC_CONFIG3 */
|
|
204 |
return f->config[2];
|
|
205 |
case 0x6c: /* GPMC_CONFIG4 */
|
|
206 |
return f->config[3];
|
|
207 |
case 0x70: /* GPMC_CONFIG5 */
|
|
208 |
return f->config[4];
|
|
209 |
case 0x74: /* GPMC_CONFIG6 */
|
|
210 |
return f->config[5];
|
|
211 |
case 0x78: /* GPMC_CONFIG7 */
|
|
212 |
return f->config[6];
|
|
213 |
case 0x84: /* GPMC_NAND_DATA */
|
|
214 |
return 0;
|
|
199 |
case 0x60: /* GPMC_CONFIG1 */
|
|
200 |
return f->config[0]; |
|
201 |
case 0x64: /* GPMC_CONFIG2 */
|
|
202 |
return f->config[1]; |
|
203 |
case 0x68: /* GPMC_CONFIG3 */
|
|
204 |
return f->config[2]; |
|
205 |
case 0x6c: /* GPMC_CONFIG4 */
|
|
206 |
return f->config[3]; |
|
207 |
case 0x70: /* GPMC_CONFIG5 */
|
|
208 |
return f->config[4]; |
|
209 |
case 0x74: /* GPMC_CONFIG6 */
|
|
210 |
return f->config[5]; |
|
211 |
case 0x78: /* GPMC_CONFIG7 */
|
|
212 |
return f->config[6]; |
|
213 |
case 0x84: /* GPMC_NAND_DATA */
|
|
214 |
return 0; |
|
215 | 215 |
} |
216 | 216 |
break; |
217 | 217 |
|
... | ... | |
311 | 311 |
addr -= cs * 0x30; |
312 | 312 |
f = s->cs_file + cs; |
313 | 313 |
switch (addr) { |
314 |
case 0x60: /* GPMC_CONFIG1 */
|
|
315 |
f->config[0] = value & 0xffef3e13;
|
|
316 |
break;
|
|
317 |
case 0x64: /* GPMC_CONFIG2 */
|
|
318 |
f->config[1] = value & 0x001f1f8f;
|
|
319 |
break;
|
|
320 |
case 0x68: /* GPMC_CONFIG3 */
|
|
321 |
f->config[2] = value & 0x001f1f8f;
|
|
322 |
break;
|
|
323 |
case 0x6c: /* GPMC_CONFIG4 */
|
|
324 |
f->config[3] = value & 0x1f8f1f8f;
|
|
325 |
break;
|
|
326 |
case 0x70: /* GPMC_CONFIG5 */
|
|
327 |
f->config[4] = value & 0x0f1f1f1f;
|
|
328 |
break;
|
|
329 |
case 0x74: /* GPMC_CONFIG6 */
|
|
330 |
f->config[5] = value & 0x00000fcf;
|
|
331 |
break;
|
|
332 |
case 0x78: /* GPMC_CONFIG7 */
|
|
333 |
if ((f->config[6] ^ value) & 0xf7f) {
|
|
334 |
omap_gpmc_cs_unmap(s, cs);
|
|
335 |
f->config[6] = value & 0x00000f7f;
|
|
336 |
omap_gpmc_cs_map(s, cs);
|
|
337 |
}
|
|
338 |
break;
|
|
339 |
case 0x7c: /* GPMC_NAND_COMMAND */
|
|
340 |
case 0x80: /* GPMC_NAND_ADDRESS */
|
|
341 |
case 0x84: /* GPMC_NAND_DATA */
|
|
342 |
break;
|
|
343 |
|
|
344 |
default:
|
|
345 |
goto bad_reg;
|
|
314 |
case 0x60: /* GPMC_CONFIG1 */
|
|
315 |
f->config[0] = value & 0xffef3e13; |
|
316 |
break; |
|
317 |
case 0x64: /* GPMC_CONFIG2 */
|
|
318 |
f->config[1] = value & 0x001f1f8f; |
|
319 |
break; |
|
320 |
case 0x68: /* GPMC_CONFIG3 */
|
|
321 |
f->config[2] = value & 0x001f1f8f; |
|
322 |
break; |
|
323 |
case 0x6c: /* GPMC_CONFIG4 */
|
|
324 |
f->config[3] = value & 0x1f8f1f8f; |
|
325 |
break; |
|
326 |
case 0x70: /* GPMC_CONFIG5 */
|
|
327 |
f->config[4] = value & 0x0f1f1f1f; |
|
328 |
break; |
|
329 |
case 0x74: /* GPMC_CONFIG6 */
|
|
330 |
f->config[5] = value & 0x00000fcf; |
|
331 |
break; |
|
332 |
case 0x78: /* GPMC_CONFIG7 */
|
|
333 |
if ((f->config[6] ^ value) & 0xf7f) { |
|
334 |
omap_gpmc_cs_unmap(s, cs); |
|
335 |
f->config[6] = value & 0x00000f7f; |
|
336 |
omap_gpmc_cs_map(s, cs); |
|
337 |
} |
|
338 |
break; |
|
339 |
case 0x7c: /* GPMC_NAND_COMMAND */
|
|
340 |
case 0x80: /* GPMC_NAND_ADDRESS */
|
|
341 |
case 0x84: /* GPMC_NAND_DATA */
|
|
342 |
break; |
|
343 |
|
|
344 |
default: |
|
345 |
goto bad_reg; |
|
346 | 346 |
} |
347 | 347 |
break; |
348 | 348 |
|
Also available in: Unified diff