2019-05-29 07:17:56 -07:00
/* SPDX-License-Identifier: GPL-2.0-only */
2012-02-10 01:47:45 +02:00
/*
* arch / arm / mach - tegra / reset . h
*
* CPU reset dispatcher .
*
* Copyright ( c ) 2011 , NVIDIA Corporation .
*/
# ifndef __MACH_TEGRA_RESET_H
# define __MACH_TEGRA_RESET_H
# define TEGRA_RESET_MASK_PRESENT 0
# define TEGRA_RESET_MASK_LP1 1
# define TEGRA_RESET_MASK_LP2 2
# define TEGRA_RESET_STARTUP_SECONDARY 3
# define TEGRA_RESET_STARTUP_LP2 4
# define TEGRA_RESET_STARTUP_LP1 5
2019-03-18 01:52:08 +03:00
# define TEGRA_RESET_RESETTABLE_STATUS 6
# define TEGRA_RESET_TF_PRESENT 7
# define TEGRA_RESET_DATA_SIZE 8
# define RESET_DATA(x) ((TEGRA_RESET_##x)*4)
2012-02-10 01:47:45 +02:00
# ifndef __ASSEMBLY__
2012-10-31 17:41:17 +08:00
# include "irammap.h"
2012-02-10 01:47:45 +02:00
extern unsigned long __tegra_cpu_reset_handler_data [ TEGRA_RESET_DATA_SIZE ] ;
void __tegra_cpu_reset_handler_start ( void ) ;
void __tegra_cpu_reset_handler ( void ) ;
2015-01-15 13:58:57 +03:00
void __tegra20_cpu1_resettable_status_offset ( void ) ;
2012-02-10 01:47:45 +02:00
void __tegra_cpu_reset_handler_end ( void ) ;
2012-10-31 17:41:17 +08:00
# ifdef CONFIG_PM_SLEEP
2013-08-12 17:40:03 +08:00
# define tegra_cpu_lp1_mask \
( IO_ADDRESS ( TEGRA_IRAM_BASE + TEGRA_IRAM_RESET_HANDLER_OFFSET + \
( ( u32 ) & __tegra_cpu_reset_handler_data [ TEGRA_RESET_MASK_LP1 ] - \
( u32 ) __tegra_cpu_reset_handler_start ) ) )
2012-10-31 17:41:17 +08:00
# define tegra_cpu_lp2_mask \
( IO_ADDRESS ( TEGRA_IRAM_BASE + TEGRA_IRAM_RESET_HANDLER_OFFSET + \
( ( u32 ) & __tegra_cpu_reset_handler_data [ TEGRA_RESET_MASK_LP2 ] - \
( u32 ) __tegra_cpu_reset_handler_start ) ) )
2015-01-15 13:58:57 +03:00
# define tegra20_cpu1_resettable_status \
( IO_ADDRESS ( TEGRA_IRAM_BASE + TEGRA_IRAM_RESET_HANDLER_OFFSET + \
2019-03-18 01:52:08 +03:00
( ( u32 ) & __tegra_cpu_reset_handler_data [ TEGRA_RESET_RESETTABLE_STATUS ] - \
( u32 ) __tegra_cpu_reset_handler_start ) ) )
2012-10-31 17:41:17 +08:00
# endif
2012-02-10 01:47:45 +02:00
# define tegra_cpu_reset_handler_offset \
( ( u32 ) __tegra_cpu_reset_handler - \
( u32 ) __tegra_cpu_reset_handler_start )
# define tegra_cpu_reset_handler_size \
( __tegra_cpu_reset_handler_end - \
__tegra_cpu_reset_handler_start )
void __init tegra_cpu_reset_handler_init ( void ) ;
# endif
# endif