aboutsummaryrefslogtreecommitdiff
path: root/drivers/sysreset
diff options
context:
space:
mode:
authorIgor Opaniuk <igor.opaniuk@foundries.io>2021-04-01 02:01:55 +0300
committerTom Rini <trini@konsulko.com>2021-04-20 07:31:12 -0400
commita6713b3a3c7adf4a99e9ad8c04356fce200fb83f (patch)
treeec558ebf93ac28fc6456e22e19a23b7973075067 /drivers/sysreset
parent91f00ba2c1c980236ba526b5e8f34e982e7b48d8 (diff)
downloadu-boot-a6713b3a3c7adf4a99e9ad8c04356fce200fb83f.zip
u-boot-a6713b3a3c7adf4a99e9ad8c04356fce200fb83f.tar.gz
u-boot-a6713b3a3c7adf4a99e9ad8c04356fce200fb83f.tar.bz2
sysreset: provide type of reset in do_reset cmd
Add additional param for reset cmd, which provides type of reset. Signed-off-by: Igor Opaniuk <igor.opaniuk@foundries.io>
Diffstat (limited to 'drivers/sysreset')
-rw-r--r--drivers/sysreset/sysreset-uclass.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/sysreset/sysreset-uclass.c b/drivers/sysreset/sysreset-uclass.c
index 9512f68..279b087 100644
--- a/drivers/sysreset/sysreset-uclass.c
+++ b/drivers/sysreset/sysreset-uclass.c
@@ -122,10 +122,19 @@ void reset_cpu(void)
#if IS_ENABLED(CONFIG_SYSRESET_CMD_RESET)
int do_reset(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
{
+ enum sysreset_t reset_type = SYSRESET_COLD;
+
+ if (argc > 2)
+ return CMD_RET_USAGE;
+
+ if (argc == 2 && argv[1][0] == '-' && argv[1][1] == 'w') {
+ reset_type = SYSRESET_WARM;
+ }
+
printf("resetting ...\n");
mdelay(100);
- sysreset_walk_halt(SYSRESET_COLD);
+ sysreset_walk_halt(reset_type);
return 0;
}