blob: 34ecaf9ea57a478d55ad161aaf7360d96098f7d5 [file] [log] [blame]
/*
* Copyright (c) 2016 Samsung Electronics Co., Ltd.
* http://www.samsung.com/
*
* EXYNOS - EL3 Monitor support
* Author: Junho Choi <junhosj.choi@samsung.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifndef __EXYNOS_EL3_MON_H
#define __EXYNOS_EL3_MON_H
/* Error code */
#define EXYNOS_ERROR_TZASC_WRONG_REGION (-1)
#define EXYNOS_ERROR_ALREADY_INITIALIZED (1)
#define EXYNOS_ERROR_NOT_VALID_ADDRESS (0x1000)
/* Parameters for TZPC of power domains */
#define EXYNOS_GET_IN_PD_DOWN (0)
#define EXYNOS_WAKEUP_PD_DOWN (1)
#define EXYNOS_PD_RUNTIME_PM (0)
#define EXYNOS_PD_CONNECTIVITY (1)
/* Connectivity sub system */
#define EXYNOS_GNSS (0)
#define EXYNOS_WLBT (1)
#define EXYNOS_SHUB (u64)(2)
/* Target to set */
#define EXYNOS_SET_CONN_TZPC (0)
/* Mask */
#define SHIFT_CONN_IP (32)
#define MASK_CONN_IP_TARGET (0xFFFFFFFF)
#ifndef __ASSEMBLY__
enum __error_flag {
CONN_NO_ERROR = 0,
CONN_ALREADY_SET,
CONN_INVALID_TARGET,
CONN_INVALID_CONN_IP
};
int exynos_pd_tz_save(unsigned int addr);
int exynos_pd_tz_restore(unsigned int addr);
int exynos_conn_tz_save(unsigned int addr);
int exynos_conn_tz_restore(unsigned int addr);
#endif /* __ASSEMBLY__ */
#endif /* __EXYNOS_EL3_MON_H */