/*
 * Copyright (C) 2012 - 2020, Samsung Electronics Co., Ltd.
 *
 * TUI LL display driver header
 */

#pragma once

#include <sys/resource.h>

/********* !!!! WARNING !!!! ***************
* Please make sure such header is not included
* in more than one source-file of TA
*******************************************/

#define TA_PROP_UUID                    {0, 0, 0, {0, 0, 0x54, 0x49, 0x64, 0x73, 0x70, 0x6c}}
#define TA_PROP_SINGLE_INSTANCE         TRUE
#define TA_PROP_MULTISESSION            TRUE
#define TA_PROP_INSTANCE_KEEPALIVE      FALSE
#define TA_PROP_DATASIZE                RLIM_INFINITY
#define TA_PROP_STACKSIZE               0x4000
#define TA_PROP_GROUP_ID                TUI_SIGN_TYPE "_drv"
#define TA_PROP_VERSION                 "ver. none      "

/* !!!! WARNING !!!! Do not write your code after this line !!!! */
#include <ta_property.h>
#include <ta_custom_property.h>
#include <tee_prop_names.h>

TA_PROP_CUSTOM_START
TA_PROP_CUSTOM_U32(TA_DRV_VERSION_PROP_NAME, 1)

#if defined(TUI_FOR_EXYNOS9925)
TA_PROP_CUSTOM_U32ARRAY(TA_MEM_LIST_PROP_NAME, (19 * 2), {  // Number of arguments. (ADDR and SIZE)
    ADDR(0x10000000), SIZE(0x1000),     // for soc revision check.
    ADDR(0x19f00000), SIZE(0xFFFF),     // SFR region: (0x16100000--0x10001000)
    ADDR(0x19f10000), SIZE(0xFFFF),     // SFR region: (0x16110000--0x10002000)
    ADDR(0x19f20000), SIZE(0xFFFF),     // SFR region: (0x16130000--0x10003000)
    ADDR(0x19f30000), SIZE(0xFFFF),     // SFR region: (0x160D0000--0x10001000)
    ADDR(0x1ad58000), SIZE(0x1000),     // SFR region: (0x160B0000--0x10002000)
    ADDR(0x1af58000), SIZE(0x1000),     // SFR region: (0x16030000--0x10003000)
    ADDR(0x1ad5f000), SIZE(0x1000),     // SFR region: (0x16030000--0x10003000)
    ADDR(0x19eb0000), SIZE(0x300),      // SFR region: (0x160B0000--0x10002000)
    ADDR(0x19e21000), SIZE(0x10),       // SFR region: (0x16030000--0x10003000)
    ADDR(0x19ee0100), SIZE(0x700),      // SFR region: (0x16030000--0x10003000)
    ADDR(0x19ee0000), SIZE(0x100),      // SFR region: (0x160B0000--0x10002000)
    ADDR(0x15860714), SIZE(0x10),       // SFR region: (0x16030000--0x10003000)
    ADDR(0x1ad00000), SIZE(0x1000),     // SFR region: (0x16030000--0x10003000)
    ADDR(0x1ad30000), SIZE(0x1000),     // SFR region: (0x160B0000--0x10002000)
    ADDR(0x1ad50000), SIZE(0x1000),     // SFR region: (0x16030000--0x10003000)
    ADDR(0x1ad40000), SIZE(0x4000),     // SFR region: (0x160B0000--0x10002000)
    ADDR(0x1ad60000), SIZE(0x1000),     // SFR region: (0x16030000--0x10003000)
    ADDR(0x1ad3f000), SIZE(0x1000)      // SFR region: (0x16030000--0x10003000)
})
#endif

#if defined(TUI_FOR_EXYNOS8825)
TA_PROP_CUSTOM_U32ARRAY(TA_MEM_LIST_PROP_NAME, (12 * 2), { // Number of arguments. (ADDR and SIZE)
    ADDR(0x14940000), SIZE(0xFFFF),     // SFR region: (0x16100000--0x10001000)
    ADDR(0x14950000), SIZE(0xFFFF),     // SFR region: (0x16110000--0x10002000)
    ADDR(0x14960000), SIZE(0xFFFF),     // SFR region: (0x16130000--0x10003000)
    ADDR(0x14970000), SIZE(0xFFFF),     // SFR region: (0x160D0000--0x10001000)
    ADDR(0x149b0000), SIZE(0xFFFF),     // SFR region: (0x160D0000--0x10001000)
    ADDR(0x148C0000), SIZE(0x300),      // SFR region: (0x160B0000--0x10002000)
    ADDR(0x148E0100), SIZE(0x700),      // SFR region: (0x16030000--0x10003000)
    ADDR(0x148E0000), SIZE(0x100),      // SFR region: (0x160B0000--0x10002000)
    ADDR(0x14821000), SIZE(0x10),       // SFR region: (0x16030000--0x10003000)
    ADDR(0x11860714), SIZE(0x10),       // SFR region: (0x16030000--0x10003000)
    ADDR(0x14890000), SIZE(0x1000),     // SFR region: (0x16030000--0x10003000)
    ADDR(0x14840000), SIZE(0x1000)      // SFR region: (0x16030000--0x10003000)
})
#endif

TA_PROP_CUSTOM_END
