/**
 * @file  gpio-fp.h
 * @brief GPIO API for Fastcall driver(Fingerprint)
 *
 * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd.
 *
 * This software is proprietary of Samsung Electronics.
 * No part of this software, either material or conceptual may be copied
 * or distributed, transmitted, transcribed, stored in a retrieval system
 * or translated into any human or computer language in any form by any means,
 * electronic, mechanical, manual or otherwise, or disclosed to third parties
 * without the express written permission of Samsung Electronics.
 */

#ifndef __GPIO_FP_H__
#define __GPIO_FP_H__

#ifdef __cplusplus
extern "C" {
#endif

#if defined(CONFIG_EXYNOS9820)
#include "fp-register-9820.h"
#elif defined(CONFIG_EXYNOS9610)
#include "fp-register-9610.h"
#elif defined(CONFIG_EXYNOS9830)
#include "fp-register-9830.h"
#elif defined(CONFIG_EXYNOS9630)
#include "fp-register-9630.h"
#elif defined(CONFIG_EXYNOS3830)
#include "fp-register-3830.h"
#elif defined(CONFIG_EXYNOS2100)
#include "fp-register-2100.h"
#elif defined(CONFIG_S5E9925)
#include "fp-register-s5e9925.h"
#elif defined(CONFIG_S5E8825)
#include "fp-register-s5e8825.h"
#endif

#define FP_REG_SIZE	    4

#define FP_RET_SUCCESS			0
#define FP_RET_FAILED			-1
#define FP_RET_UNUSED_FUNCTION	-2

#define FP_ERROR_PREFIX 0x00F0
#define FP_SMC_RETURN_VALUE 0x000F

#define FP_TZPC_SET_USI 		(0x1 << 0)
#define FP_TZPC_SET_USI_MODE 	(0x1 << 1)
#define FP_TZPC_SET_GPIO 		(0x1 << 2)

#define FP_TZPC_ERROR_RETURN 	(0x1 << 4)

enum fp_control_case {
	FP_SET_POWEROFF = 1,
	FP_SET_POWERON_INACTIVE,
	FP_SET_TZPC_SECURE = 6,
};

/* For TZPC */
uint32_t fp_set_tzpc_secure(void);
uint32_t fp_set_poweroff_regs(void);
uint32_t fp_set_poweron_inactive_regs(void);

#ifdef __cplusplus
}
#endif

#endif
