AT91: add two new header files for RTT and GPBR
Subsystems (2)
PATCH 1/3 AT91: add two new header files for RTT and GPBR
adds at91_rtt.h and at91_gpbr.h
condenses GPBR usage assignment into one file (at91_gpbr.h)
Signed-off-by Reinhard Meyer <[email protected]>
--- arch/arm/include/asm/arch-at91/at91_gpbr.h | 45 ++++++++++++++++++++++++++++ arch/arm/include/asm/arch-at91/at91_rtt.h | 36 ++++++++++++++++++++++ 2 files changed, 81 insertions(+), 0 deletions(-) create mode 100644 arch/arm/include/asm/arch-at91/at91_gpbr.h create mode 100644 arch/arm/include/asm/arch-at91/at91_rtt.h
arch/arm/include/asm/arch-at91/at91_gpbr.h new file +45 -0
@@ -0,0 +1,45 @@ +/* +* Copyright (C) 2010 +* Reinhard Meyer, reinhard.meyer at emk-elektronik.de +* +* General Purpose Backup Registers +* Based on AT91SAM9XE datasheet +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 2 of the License, or +* (at your option) any later version. +*/ + +#ifndef AT91_GPBR_H +#define AT91_GPBR_H + +/* +* The Atmel AT91SAM9 series has a small resource of 4 nonvolatile +* 32 Bit registers (buffered by the Vbu power). +* +* Please consider carefully before using this resource for tasks +* that do not really need nonvolatile registers. Maybe you can +* store information in EEPROM or FLASH instead. +* +* However, if you use a GPBR please document its use here and +* reference the define in your code! +* +* known typical uses of the GPBRs: +* GPBR[0]: offset for RTT timekeeping (u-boot, kernel) +* GPBR[1]: unused +* GPBR[2]: unused +* GPBR[3]: bootcount (u-boot) +*/ +#define AT91_GPBR_INDEX_TIMEOFF 0 +#define AT91_GPBR_INDEX_BOOTCOUNT 3 + +#ifndef __ASSEMBLY__ + +typedef struct at91_gpbr { +u32 reg[4 ]; +}at91_gpbr_t ; + +#endif /* __ASSEMBLY__ */ + +#endif
arch/arm/include/asm/arch-at91/at91_rtt.h new file +36 -0
@@ -0,0 +1,36 @@ +/* +* Copyright (C) 2010 +* Reinhard Meyer, reinhard.meyer at emk-elektronik.de +* +* Real-time Timer +* Based on AT91SAM9XE datasheet +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 2 of the License, or +* (at your option) any later version. +*/ + +#ifndef AT91_RTT_H +#define AT91_RTT_H + +#ifndef __ASSEMBLY__ + +typedef struct at91_rtt { +u32 mr;/* Mode Register RW 0x00008000 */ +u32 ar;/* Alarm Register RW 0xFFFFFFFF */ +u32 vr;/* Value Register RO 0x00000000 */ +u32 sr;/* Status Register RO 0x00000000 */ +}at91_rtt_t ; + +#endif /* __ASSEMBLY__ */ + +#define AT91_RTT_MR_RTPRES 0x0000ffff +#define AT91_RTT_MR_ALMIEN 0x00010000 +#define AT91_RTT_RTTINCIEN 0x00020000 +#define AT91_RTT_RTTRST 0x00040000 + +#define AT91_RTT_SR_ALMS 0x00000001 +#define AT91_RTT_SR_RTTINC 0x00000002 + +#endif
Signature · 1 line
1.5.6.5