You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by ag...@apache.org on 2021/02/21 13:22:45 UTC
[incubator-nuttx] 02/02: boards: raspberrypi-pico: Introduce
rp2040_reset.c to support reboot
This is an automated email from the ASF dual-hosted git repository.
aguettouche pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
commit 706740bfc3ad822177e1d175b45cd7cd611b6237
Author: Masayuki Ishikawa <ma...@gmail.com>
AuthorDate: Sun Feb 21 17:16:54 2021 +0900
boards: raspberrypi-pico: Introduce rp2040_reset.c to support reboot
Summary:
- This commit introduces rp2040_reset.c to support reboot
Impact:
- None
Testing:
- Tested with both BOOTSEL=ON and OFF
---
.../rp2040/raspberrypi-pico/configs/nsh/defconfig | 1 +
boards/arm/rp2040/raspberrypi-pico/src/Makefile | 4 ++
.../arm/rp2040/raspberrypi-pico/src/rp2040_reset.c | 61 ++++++++++++++++++++++
3 files changed, 66 insertions(+)
diff --git a/boards/arm/rp2040/raspberrypi-pico/configs/nsh/defconfig b/boards/arm/rp2040/raspberrypi-pico/configs/nsh/defconfig
index e2e6ad9..884aec2 100644
--- a/boards/arm/rp2040/raspberrypi-pico/configs/nsh/defconfig
+++ b/boards/arm/rp2040/raspberrypi-pico/configs/nsh/defconfig
@@ -21,6 +21,7 @@ CONFIG_ARCH_CHIP="rp2040"
CONFIG_ARCH_CHIP_RP2040=y
CONFIG_ARCH_RAMVECTORS=y
CONFIG_ARCH_STACKDUMP=y
+CONFIG_BOARDCTL_RESET=y
CONFIG_BOARD_LOOPSPERMSEC=2988
CONFIG_BUILTIN=y
CONFIG_DEBUG_FULLOPT=y
diff --git a/boards/arm/rp2040/raspberrypi-pico/src/Makefile b/boards/arm/rp2040/raspberrypi-pico/src/Makefile
index af5f036..8791c68 100644
--- a/boards/arm/rp2040/raspberrypi-pico/src/Makefile
+++ b/boards/arm/rp2040/raspberrypi-pico/src/Makefile
@@ -24,4 +24,8 @@ CSRCS = rp2040_boardinitialize.c
CSRCS += rp2040_appinit.c
CSRCS += rp2040_bringup.c
+ifeq ($(CONFIG_BOARDCTL_RESET),y)
+CSRCS += rp2040_reset.c
+endif
+
include $(TOPDIR)/boards/Board.mk
diff --git a/boards/arm/rp2040/raspberrypi-pico/src/rp2040_reset.c b/boards/arm/rp2040/raspberrypi-pico/src/rp2040_reset.c
new file mode 100644
index 0000000..b81ca6b
--- /dev/null
+++ b/boards/arm/rp2040/raspberrypi-pico/src/rp2040_reset.c
@@ -0,0 +1,61 @@
+/****************************************************************************
+ * boards/arm/rp2040/raspberrypi-pico/src/rp2040_reset.c
+ *
+ * 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.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+#include <nuttx/board.h>
+#include <nuttx/arch.h>
+
+#ifdef CONFIG_BOARDCTL_RESET
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: board_reset
+ *
+ * Description:
+ * Reset board. Support for this function is required by board-level
+ * logic if CONFIG_BOARDCTL_RESET is selected.
+ *
+ * Input Parameters:
+ * status - Status information provided with the reset event. This
+ * meaning of this status information is board-specific. If not
+ * used by a board, the value zero may be provided in calls to
+ * board_reset().
+ *
+ * Returned Value:
+ * If this function returns, then it was not possible to power-off the
+ * board due to some constraints. The return value int this case is a
+ * board-specific reason for the failure to shutdown.
+ *
+ ****************************************************************************/
+
+int board_reset(int status)
+{
+ up_systemreset();
+ return 0;
+}
+
+#endif /* CONFIG_BOARDCTL_RESET */