1/*
2 * include/asm-arm/arch-at91/at91_ecc.h
3 *
4 * Error Corrected Code Controller (ECC) - System peripherals regsters.
5 * Based on AT91SAM9260 datasheet revision B.
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License as published by the
9 * Free Software Foundation; either version 2 of the License, or (at your
10 * option) any later version.
11 */
12
13#ifndef AT91_ECC_H
14#define AT91_ECC_H
15
16#define AT91_ECC_CR		(AT91_ECC + 0x00)	/* Control register */
17#define		AT91_ECC_RST		(1 << 0)		/* Reset parity */
18
19#define AT91_ECC_MR		(AT91_ECC + 0x04)	/* Mode register */
20#define		AT91_ECC_PAGESIZE	(3 << 0)		/* Page Size */
21#define			AT91_ECC_PAGESIZE_528		(0)
22#define			AT91_ECC_PAGESIZE_1056		(1)
23#define			AT91_ECC_PAGESIZE_2112		(2)
24#define			AT91_ECC_PAGESIZE_4224		(3)
25
26#define AT91_ECC_SR		(AT91_ECC + 0x08)	/* Status register */
27#define		AT91_ECC_RECERR		(1 << 0)		/* Recoverable Error */
28#define		AT91_ECC_ECCERR		(1 << 1)		/* ECC Single Bit Error */
29#define		AT91_ECC_MULERR		(1 << 2)		/* Multiple Errors */
30
31#define AT91_ECC_PR		(AT91_ECC + 0x0c)	/* Parity register */
32#define		AT91_ECC_BITADDR	(0xf << 0)		/* Bit Error Address */
33#define		AT91_ECC_WORDADDR	(0xfff << 4)		/* Word Error Address */
34
35#define AT91_ECC_NPR		(AT91_ECC + 0x10)	/* NParity register */
36#define		AT91_ECC_NPARITY	(0xffff << 0)		/* NParity */
37
38#endif
39