/*
 * Copyright (c) 2013-2016 TRUSTONIC LIMITED
 * All rights reserved
 *
 * The present software is the confidential and proprietary information of
 * TRUSTONIC LIMITED. You shall not disclose the present software and shall
 * use it only in accordance with the terms of the license agreement you
 * entered into with TRUSTONIC LIMITED. This software may be subject to
 * export or import laws in certain countries.
 */
/**
 * Driver ID definition.
 */

#ifndef RTMDRVID_H_
#define RTMDRVID_H_

#define MC_DRV_VENDOR_ID_SHIFT     (16)
#define MC_DRV_VENDOR_ID_MASK      (0xFFFF << MC_DRV_VENDOR_ID_SHIFT)
#define MC_DRV_NUMBER_MASK         (0x0000FFFF)

/** Trustonic vendor IDs. */
typedef enum {
    MC_DRV_VENDOR_ID_TRUSTONIC   = 0 << MC_DRV_VENDOR_ID_SHIFT,
} mcDrvVendorId_t;

/** Trustonic driver numbers. */
typedef enum {
    MC_DRV_NUMBER_INVALID = 0,
    MC_DRV_NUMBER_CRYPTO  = 0x150,
    TB_DRV_NUMBER_TUI  = 0x101,
    TB_DRV_NUMBER_SFS  = 0x104,
    TB_DRV_NUMBER_TPLAY  = 0x600,
    TB_DRV_NUMBER_RPMB = 0x0700,
    TB_DRV_NUMBER_ANDROID = 0x0717
} mcDrvNumber_t;

/** Trustonic driver IDs.  */
typedef enum {
    MC_DRV_ID_INVALID = MC_DRV_VENDOR_ID_TRUSTONIC | MC_DRV_NUMBER_INVALID,
    MC_DRV_ID_CRYPTO  = MC_DRV_VENDOR_ID_TRUSTONIC | MC_DRV_NUMBER_CRYPTO,
    MC_DRV_ID_SFS  = MC_DRV_VENDOR_ID_TRUSTONIC | TB_DRV_NUMBER_SFS,
    TB_DRV_ID_TUI  = MC_DRV_VENDOR_ID_TRUSTONIC | TB_DRV_NUMBER_TUI,
    TB_DRV_ID_TPLAY  = MC_DRV_VENDOR_ID_TRUSTONIC | TB_DRV_NUMBER_TPLAY,
    TB_DRV_ID_RPMB  = MC_DRV_VENDOR_ID_TRUSTONIC | TB_DRV_NUMBER_RPMB,
    TB_DRV_ID_ANDROID = MC_DRV_VENDOR_ID_TRUSTONIC | TB_DRV_NUMBER_ANDROID
} mcDriverId_t;

#endif /* RTMDRVID_H_ */
