/*
 *
 * Copyright (C) 2012-2019, Samsung Electronics Co., Ltd.
 *
 * Macros and structure to access hardware devices
 */

#ifndef _DEVICE_H_
#define _DEVICE_H_

/* Device identifiers */
typedef enum {
    DEV_DECON,
    DEV_DECON_SEC,
    DEV_IDMA_SEC,
    DEV_IDMA,
    DEV_DPP,
    DEV_DSIM,
    DEV_SMMU,
    DEV_GPA,
    DEV_TUI_FB,
    DEV_TUI_WB,
    MAX_DEVICE_NUM,
    DEV_TUI_NONE /* mmap, munmap without Device identifier */
} devicenum_t;

typedef enum {
    DEV_COMMAND_MODE = 0,
    DEV_VIDEO_MODE,
    DEV_DP_PSR_MODE,
} device_panel_mode_t;

#define DECON_REG(offset)         DEV_REG(DEV_DECON, offset)
#define DECON_SEC_REG(offset)     DEV_REG(DEV_DECON_SEC, offset)
#define IDMA_SEC_REG(offset)      DEV_REG(DEV_IDMA_SEC, offset)
#define IDMA_REG(offset)          DEV_REG(DEV_IDMA, offset)
#define DPP_REG(offset)           DEV_REG(DEV_DPP, offset)
#define DSIM_REG(offset)          DEV_REG(DEV_DSIM, offset)
#define SMMU_REG(offset)          DEV_REG(DEV_SMMU, offset)
#define GPA_REG(offset)           DEV_REG(DEV_GPA, offset)

#endif /* _DEVICE_H_ */