blob: cf1d790dd9dbe8f6c7b0cf61ec617999c49266aa [file] [log] [blame]
Reinhard Meyerc9c76062010-07-27 16:22:09 +02001/*
2 * Copyright (C) 2010
3 * Reinhard Meyer, reinhard.meyer@emk-elektronik.de
4 *
5 * General Purpose Backup Registers
6 * Based on AT91SAM9XE datasheet
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 */
13
14#ifndef AT91_GPBR_H
15#define AT91_GPBR_H
16
17/*
18 * The Atmel AT91SAM9 series has a small resource of 4 nonvolatile
19 * 32 Bit registers (buffered by the Vbu power).
20 *
21 * Please consider carefully before using this resource for tasks
22 * that do not really need nonvolatile registers. Maybe you can
23 * store information in EEPROM or FLASH instead.
24 *
25 * However, if you use a GPBR please document its use here and
26 * reference the define in your code!
27 *
28 * known typical uses of the GPBRs:
29 * GPBR[0]: offset for RTT timekeeping (u-boot, kernel)
30 * GPBR[1]: unused
31 * GPBR[2]: unused
32 * GPBR[3]: bootcount (u-boot)
33 */
34#define AT91_GPBR_INDEX_TIMEOFF 0
35#define AT91_GPBR_INDEX_BOOTCOUNT 3
36
37#ifndef __ASSEMBLY__
38
39typedef struct at91_gpbr {
40 u32 reg[4];
41} at91_gpbr_t;
42
43#endif /* __ASSEMBLY__ */
44
45#endif