/*
 * Copyright (C) 2014-2018, Samsung Electronics Co., Ltd.
 *
 * Custom Handler main program
 */

#ifndef __HANDLER_H__
#define __HANDLER_H__

#include <stddef.h>
#include <stdint.h>

#ifndef PAGE_SIZE
#define PAGE_SIZE				4096
#endif

#if defined(CONFIG_ESE_TZ_CONTROL)
#define SUBFUN_ESE_SECURE_INIT			10	/* eSE Secure SFR */
#endif

#if defined(CONFIG_MST_TZ_CONTROL)
#define SBUFUN_MST_GPIO_PROTECTION		20	/* MST Secure SFR */
#endif

/* Fingerprint sensor start number 100 */
#if defined(CONFIG_FP_TZ_CONTROL)
#define MC_FC_FP_HANDLER_MAIN 100
uint32_t fp_handler_main(uint32_t val_1, uint32_t val_2);
#endif

uint32_t read_sfr(unsigned long phys_addr, size_t size);
void write_sfr(unsigned long phys_addr, unsigned long data, size_t size);

#define WRITE_SFR(base, offset, data)		write_sfr((base) + (offset), (data), 4)
#define READ_SFR(base, offset)			read_sfr((base) + (offset), 4)
#define SET_SFR_BITS(base, offset, mask)	WRITE_SFR((base), (offset), READ_SFR((base), (offset)) | (mask))

uint32_t ese_secure_lock(uint32_t p1, uint32_t p2);
uint32_t ese_set_suspend(uint32_t p1, uint32_t p2);
uint32_t ese_set_resume(uint32_t p1, uint32_t p2);

#endif	/* __HANDLER_H__ */
