Kevin Kadooka / mbed-dev

Fork of mbed-dev by mbed official

Committer:
<>
Date:
Wed Jan 04 16:58:05 2017 +0000
Revision:
154:37f96f9d4de2
This updates the lib to the mbed lib v133

Who changed what in which revision?

UserRevisionLine numberNew contents of line
<> 154:37f96f9d4de2 1 /*
<> 154:37f96f9d4de2 2 * Copyright (c) 2015, Freescale Semiconductor, Inc.
<> 154:37f96f9d4de2 3 * All rights reserved.
<> 154:37f96f9d4de2 4 *
<> 154:37f96f9d4de2 5 * Redistribution and use in source and binary forms, with or without modification,
<> 154:37f96f9d4de2 6 * are permitted provided that the following conditions are met:
<> 154:37f96f9d4de2 7 *
<> 154:37f96f9d4de2 8 * o Redistributions of source code must retain the above copyright notice, this list
<> 154:37f96f9d4de2 9 * of conditions and the following disclaimer.
<> 154:37f96f9d4de2 10 *
<> 154:37f96f9d4de2 11 * o Redistributions in binary form must reproduce the above copyright notice, this
<> 154:37f96f9d4de2 12 * list of conditions and the following disclaimer in the documentation and/or
<> 154:37f96f9d4de2 13 * other materials provided with the distribution.
<> 154:37f96f9d4de2 14 *
<> 154:37f96f9d4de2 15 * o Neither the name of Freescale Semiconductor, Inc. nor the names of its
<> 154:37f96f9d4de2 16 * contributors may be used to endorse or promote products derived from this
<> 154:37f96f9d4de2 17 * software without specific prior written permission.
<> 154:37f96f9d4de2 18 *
<> 154:37f96f9d4de2 19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
<> 154:37f96f9d4de2 20 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
<> 154:37f96f9d4de2 21 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
<> 154:37f96f9d4de2 22 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
<> 154:37f96f9d4de2 23 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
<> 154:37f96f9d4de2 24 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
<> 154:37f96f9d4de2 25 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
<> 154:37f96f9d4de2 26 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
<> 154:37f96f9d4de2 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
<> 154:37f96f9d4de2 28 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<> 154:37f96f9d4de2 29 */
<> 154:37f96f9d4de2 30 #ifndef _FSL_RNGA_DRIVER_H_
<> 154:37f96f9d4de2 31 #define _FSL_RNGA_DRIVER_H_
<> 154:37f96f9d4de2 32
<> 154:37f96f9d4de2 33 #include "fsl_common.h"
<> 154:37f96f9d4de2 34
<> 154:37f96f9d4de2 35 #if defined(FSL_FEATURE_SOC_RNG_COUNT) && FSL_FEATURE_SOC_RNG_COUNT
<> 154:37f96f9d4de2 36 /*!
<> 154:37f96f9d4de2 37 * @addtogroup rnga
<> 154:37f96f9d4de2 38 * @{
<> 154:37f96f9d4de2 39 */
<> 154:37f96f9d4de2 40
<> 154:37f96f9d4de2 41
<> 154:37f96f9d4de2 42 /*******************************************************************************
<> 154:37f96f9d4de2 43 * Definitions
<> 154:37f96f9d4de2 44 *******************************************************************************/
<> 154:37f96f9d4de2 45
<> 154:37f96f9d4de2 46 /*! @name Driver version */
<> 154:37f96f9d4de2 47 /*@{*/
<> 154:37f96f9d4de2 48 /*! @brief RNGA driver version 2.0.1. */
<> 154:37f96f9d4de2 49 #define FSL_RNGA_DRIVER_VERSION (MAKE_VERSION(2, 0, 1))
<> 154:37f96f9d4de2 50 /*@}*/
<> 154:37f96f9d4de2 51
<> 154:37f96f9d4de2 52 /*! @brief RNGA working mode */
<> 154:37f96f9d4de2 53 typedef enum _rnga_mode
<> 154:37f96f9d4de2 54 {
<> 154:37f96f9d4de2 55 kRNGA_ModeNormal = 0U, /*!< Normal Mode. The ring-oscillator clocks are active; RNGA generates entropy
<> 154:37f96f9d4de2 56 (randomness) from the clocks and stores it in shift registers.*/
<> 154:37f96f9d4de2 57 kRNGA_ModeSleep = 1U, /*!< Sleep Mode. The ring-oscillator clocks are inactive; RNGA does not generate entropy.*/
<> 154:37f96f9d4de2 58 } rnga_mode_t;
<> 154:37f96f9d4de2 59
<> 154:37f96f9d4de2 60 /*******************************************************************************
<> 154:37f96f9d4de2 61 * API
<> 154:37f96f9d4de2 62 *******************************************************************************/
<> 154:37f96f9d4de2 63
<> 154:37f96f9d4de2 64 #if defined(__cplusplus)
<> 154:37f96f9d4de2 65 extern "C" {
<> 154:37f96f9d4de2 66 #endif
<> 154:37f96f9d4de2 67
<> 154:37f96f9d4de2 68 /*!
<> 154:37f96f9d4de2 69 * @brief Initializes the RNGA.
<> 154:37f96f9d4de2 70 *
<> 154:37f96f9d4de2 71 * This function initializes the RNGA.
<> 154:37f96f9d4de2 72 * When called, the RNGA entropy generation starts immediately.
<> 154:37f96f9d4de2 73 *
<> 154:37f96f9d4de2 74 * @param base RNGA base address
<> 154:37f96f9d4de2 75 */
<> 154:37f96f9d4de2 76 void RNGA_Init(RNG_Type *base);
<> 154:37f96f9d4de2 77
<> 154:37f96f9d4de2 78 /*!
<> 154:37f96f9d4de2 79 * @brief Shuts down the RNGA.
<> 154:37f96f9d4de2 80 *
<> 154:37f96f9d4de2 81 * This function shuts down the RNGA.
<> 154:37f96f9d4de2 82 *
<> 154:37f96f9d4de2 83 * @param base RNGA base address
<> 154:37f96f9d4de2 84 */
<> 154:37f96f9d4de2 85 void RNGA_Deinit(RNG_Type *base);
<> 154:37f96f9d4de2 86
<> 154:37f96f9d4de2 87 /*!
<> 154:37f96f9d4de2 88 * @brief Gets random data.
<> 154:37f96f9d4de2 89 *
<> 154:37f96f9d4de2 90 * This function gets random data from the RNGA.
<> 154:37f96f9d4de2 91 *
<> 154:37f96f9d4de2 92 * @param base RNGA base address
<> 154:37f96f9d4de2 93 * @param data pointer to user buffer to be filled by random data
<> 154:37f96f9d4de2 94 * @param data_size size of data in bytes
<> 154:37f96f9d4de2 95 * @return RNGA status
<> 154:37f96f9d4de2 96 */
<> 154:37f96f9d4de2 97 status_t RNGA_GetRandomData(RNG_Type *base, void *data, size_t data_size);
<> 154:37f96f9d4de2 98
<> 154:37f96f9d4de2 99 /*!
<> 154:37f96f9d4de2 100 * @brief Feeds the RNGA module.
<> 154:37f96f9d4de2 101 *
<> 154:37f96f9d4de2 102 * This function inputs an entropy value that the RNGA uses to seed its
<> 154:37f96f9d4de2 103 * pseudo-random algorithm.
<> 154:37f96f9d4de2 104 *
<> 154:37f96f9d4de2 105 * @param base RNGA base address
<> 154:37f96f9d4de2 106 * @param seed input seed value
<> 154:37f96f9d4de2 107 */
<> 154:37f96f9d4de2 108 void RNGA_Seed(RNG_Type *base, uint32_t seed);
<> 154:37f96f9d4de2 109
<> 154:37f96f9d4de2 110 /*!
<> 154:37f96f9d4de2 111 * @brief Sets the RNGA in normal mode or sleep mode.
<> 154:37f96f9d4de2 112 *
<> 154:37f96f9d4de2 113 * This function sets the RNGA in sleep mode or normal mode.
<> 154:37f96f9d4de2 114 *
<> 154:37f96f9d4de2 115 * @param base RNGA base address
<> 154:37f96f9d4de2 116 * @param mode normal mode or sleep mode
<> 154:37f96f9d4de2 117 */
<> 154:37f96f9d4de2 118 void RNGA_SetMode(RNG_Type *base, rnga_mode_t mode);
<> 154:37f96f9d4de2 119
<> 154:37f96f9d4de2 120 /*!
<> 154:37f96f9d4de2 121 * @brief Gets the RNGA working mode.
<> 154:37f96f9d4de2 122 *
<> 154:37f96f9d4de2 123 * This function gets the RNGA working mode.
<> 154:37f96f9d4de2 124 *
<> 154:37f96f9d4de2 125 * @param base RNGA base address
<> 154:37f96f9d4de2 126 * @return normal mode or sleep mode
<> 154:37f96f9d4de2 127 */
<> 154:37f96f9d4de2 128 rnga_mode_t RNGA_GetMode(RNG_Type *base);
<> 154:37f96f9d4de2 129
<> 154:37f96f9d4de2 130 #if defined(__cplusplus)
<> 154:37f96f9d4de2 131 }
<> 154:37f96f9d4de2 132 #endif
<> 154:37f96f9d4de2 133
<> 154:37f96f9d4de2 134 /*! @}*/
<> 154:37f96f9d4de2 135
<> 154:37f96f9d4de2 136 #endif /* FSL_FEATURE_SOC_RNG_COUNT */
<> 154:37f96f9d4de2 137 #endif /* _FSL_RNGA_H_*/