// Copyright (c) 2019 Qualcomm Technologies, Inc.  All Rights
// Reserved.  Qualcomm Technologies Proprietary and Confidential.

/** @cond */
interface IClockConfig {
/** @endcond */

  /**
     @addtogroup IClockConfig
     @{
   */

  /** @cond */
  /**
    Clock Levels
   */
  const int32 LEVEL_INACTIVE = 0x0;
  const int32 LEVEL_LOW      = 0x1;
  const int32 LEVEL_MEDIUM   = 0x2;
  const int32 LEVEL_HIGH     = 0x3;

  /**
    Clock Resources
   */
  const int32 ELEMENT_1 = 0x1;
  const int32 ELEMENT_2 = 0x2;
  const int32 ELEMENT_3 = 0x3;
  const int32 PRNG      = 0x4;
  /** @endcond */

  /**
    Sets the crypto/bimc/snoc bandwidth

    @param[in] resReq    Resource to vote clocks; all associated
                         clocks are turned on and voted for.
    @param[in] level     Clock level.
    @param[in] flags     Flags (for future use).

    @return Object_OK on success.
   */
  method setBandwidth(in uint32 resReq, in uint32 level, in uint32 flags);


  /** @} */ /* end_addtogroup IClockConfig */
};
