summaryrefslogtreecommitdiff
path: root/bsp/at91/at91sam9260/platform/at91_rstc.h
blob: e7ba900e3693ca6357f97034b900b75f8c6a103d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/*
 * Copyright (c) 2006-2021, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2011-01-13     weety      first version
 */

#ifndef AT91_RSTC_H
#define AT91_RSTC_H

#ifdef __cplusplus
extern "C" {
#endif

#define AT91_RSTC_CR        (AT91_RSTC + 0x00)  /* Reset Controller Control Register */
#define     AT91_RSTC_PROCRST   (1 << 0)        /* Processor Reset */
#define     AT91_RSTC_PERRST    (1 << 2)        /* Peripheral Reset */
#define     AT91_RSTC_EXTRST    (1 << 3)        /* External Reset */
#define     AT91_RSTC_KEY       (0xa5 << 24)        /* KEY Password */

#define AT91_RSTC_SR        (AT91_RSTC + 0x04)  /* Reset Controller Status Register */
#define     AT91_RSTC_URSTS     (1 << 0)        /* User Reset Status */
#define     AT91_RSTC_RSTTYP    (7 << 8)        /* Reset Type */
#define         AT91_RSTC_RSTTYP_GENERAL    (0 << 8)
#define         AT91_RSTC_RSTTYP_WAKEUP     (1 << 8)
#define         AT91_RSTC_RSTTYP_WATCHDOG   (2 << 8)
#define         AT91_RSTC_RSTTYP_SOFTWARE   (3 << 8)
#define         AT91_RSTC_RSTTYP_USER   (4 << 8)
#define     AT91_RSTC_NRSTL     (1 << 16)       /* NRST Pin Level */
#define     AT91_RSTC_SRCMP     (1 << 17)       /* Software Reset Command in Progress */

#define AT91_RSTC_MR        (AT91_RSTC + 0x08)  /* Reset Controller Mode Register */
#define     AT91_RSTC_URSTEN    (1 << 0)        /* User Reset Enable */
#define     AT91_RSTC_URSTIEN   (1 << 4)        /* User Reset Interrupt Enable */
#define     AT91_RSTC_ERSTL     (0xf << 8)      /* External Reset Length */

#ifdef __cplusplus
}
#endif

#endif