xref: /openbmc/u-boot/arch/arm/mach-at91/armv7/reset.c (revision e8f80a5a)
1*83d290c5STom Rini // SPDX-License-Identifier: GPL-2.0+
262011840SMasahiro Yamada /*
362011840SMasahiro Yamada  * (C) Copyright 2007-2008
462011840SMasahiro Yamada  * Stelian Pop <stelian@popies.net>
562011840SMasahiro Yamada  * Lead Tech Design <www.leadtechdesign.com>
662011840SMasahiro Yamada  *
762011840SMasahiro Yamada  * (C) Copyright 2013
862011840SMasahiro Yamada  * Bo Shen <voice.shen@atmel.com>
962011840SMasahiro Yamada  */
1062011840SMasahiro Yamada 
1162011840SMasahiro Yamada #include <common.h>
1262011840SMasahiro Yamada #include <asm/io.h>
1362011840SMasahiro Yamada #include <asm/arch/hardware.h>
1462011840SMasahiro Yamada #include <asm/arch/at91_rstc.h>
1562011840SMasahiro Yamada 
1662011840SMasahiro Yamada /* Reset the cpu by telling the reset controller to do so */
reset_cpu(ulong ignored)1762011840SMasahiro Yamada void reset_cpu(ulong ignored)
1862011840SMasahiro Yamada {
1962011840SMasahiro Yamada 	at91_rstc_t *rstc = (at91_rstc_t *)ATMEL_BASE_RSTC;
2062011840SMasahiro Yamada 
2162011840SMasahiro Yamada 	writel(AT91_RSTC_KEY
2262011840SMasahiro Yamada 		| AT91_RSTC_CR_PROCRST	/* Processor Reset */
2362011840SMasahiro Yamada 		| AT91_RSTC_CR_PERRST	/* Peripheral Reset */
2462011840SMasahiro Yamada #ifdef CONFIG_AT91RESET_EXTRST
2562011840SMasahiro Yamada 		| AT91_RSTC_CR_EXTRST	/* External Reset (assert nRST pin) */
2662011840SMasahiro Yamada #endif
2762011840SMasahiro Yamada 		, &rstc->cr);
2862011840SMasahiro Yamada 	/* never reached */
2962011840SMasahiro Yamada 	do { } while (1);
3062011840SMasahiro Yamada }
31