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