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