forked from apache/nuttx
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
arch/samv7: add function to retrieve reset cause from HW
SAMv7 reset controller stores the cause of last reset (SW reset, power up, pin reset etc.) in status register. This commit adds function that allows the board to retrieve this information. This function should be called from board support layer either during initialization or based on incoming ioctl call. Adding the sam_get_reset_cause() to sam_systemreset.c also resulted in always compiling this file by default and only putting up_systemreset() under CONFIG_SAMV7_SYSTEMRESET option. Also header file sam_systemreset.h was created as it defines reset types in comfortable manner for future processing in board layer. This is done to avoid passing boardctl dependent structure to architecture layer. Signed-off-by: Michal Lenc <[email protected]>
- Loading branch information
1 parent
38f8aae
commit 9e98ed4
Showing
3 changed files
with
112 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
/**************************************************************************** | ||
* arch/arm/src/samv7/sam_systemreset.h | ||
* | ||
* Licensed to the Apache Software Foundation (ASF) under one or more | ||
* contributor license agreements. See the NOTICE file distributed with | ||
* this work for additional information regarding copyright ownership. The | ||
* ASF licenses this file to you under the Apache License, Version 2.0 (the | ||
* "License"); you may not use this file except in compliance with the | ||
* License. You may obtain a copy of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | ||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | ||
* License for the specific language governing permissions and limitations | ||
* under the License. | ||
* | ||
****************************************************************************/ | ||
|
||
#ifndef __ARCH_ARM_SRC_SAMV7_SAM_SYSTEMRESET_H | ||
#define __ARCH_ARM_SRC_SAMV7_SAM_SYSTEMRESET_H | ||
|
||
/**************************************************************************** | ||
* Included Files | ||
****************************************************************************/ | ||
|
||
#include <stdint.h> | ||
|
||
/**************************************************************************** | ||
* Pre-processor Definitions | ||
****************************************************************************/ | ||
|
||
#define SAMV7_RESET_PWRUP 1 | ||
#define SAMV7_RESET_BACKUP 2 | ||
#define SAMV7_RESET_WDOG 3 | ||
#define SAMV7_RESET_SWRST 4 | ||
#define SAMV7_RESET_NRST 5 | ||
|
||
/**************************************************************************** | ||
* Public Function Prototypes | ||
****************************************************************************/ | ||
|
||
/**************************************************************************** | ||
* Name: sam_get_reset_cause | ||
* | ||
* Description: | ||
* Get cause of the last CPU reset. This is done by reading reset status | ||
* registger. | ||
* | ||
* Returned Value: | ||
* CPU reset cause in form of macros defined in sam_systemreset.h. This is | ||
* to avoid passing boardctl dependent structure to architecture layer. | ||
* Board level specific code should include sam_systemreset.h and set | ||
* boardctl result according to that. -1 is returned in case of invalid | ||
* value in status register. | ||
* | ||
****************************************************************************/ | ||
|
||
int sam_get_reset_cause(void); | ||
|
||
#endif /* __ARCH_ARM_SRC_SAMV7_SAM_SYSTEMRESET_H */ |