The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Wed Feb 20 20:53:29 2019 +0000
Revision:
172:65be27845400
Parent:
171:3a7713b1edbc
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 161:aa5281ff4a02 1 /*
AnnaBridge 170:e95d10626187 2 * The Clear BSD License
AnnaBridge 161:aa5281ff4a02 3 * Copyright (c) 2015, Freescale Semiconductor, Inc.
AnnaBridge 161:aa5281ff4a02 4 * Copyright 2017 NXP
AnnaBridge 170:e95d10626187 5 * All rights reserved.
AnnaBridge 161:aa5281ff4a02 6 *
AnnaBridge 161:aa5281ff4a02 7 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 170:e95d10626187 8 * are permitted (subject to the limitations in the disclaimer below) provided
AnnaBridge 170:e95d10626187 9 * that the following conditions are met:
AnnaBridge 161:aa5281ff4a02 10 *
AnnaBridge 161:aa5281ff4a02 11 * o Redistributions of source code must retain the above copyright notice, this list
AnnaBridge 161:aa5281ff4a02 12 * of conditions and the following disclaimer.
AnnaBridge 161:aa5281ff4a02 13 *
AnnaBridge 161:aa5281ff4a02 14 * o Redistributions in binary form must reproduce the above copyright notice, this
AnnaBridge 161:aa5281ff4a02 15 * list of conditions and the following disclaimer in the documentation and/or
AnnaBridge 161:aa5281ff4a02 16 * other materials provided with the distribution.
AnnaBridge 161:aa5281ff4a02 17 *
AnnaBridge 161:aa5281ff4a02 18 * o Neither the name of the copyright holder nor the names of its
AnnaBridge 161:aa5281ff4a02 19 * contributors may be used to endorse or promote products derived from this
AnnaBridge 161:aa5281ff4a02 20 * software without specific prior written permission.
AnnaBridge 161:aa5281ff4a02 21 *
AnnaBridge 170:e95d10626187 22 * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE.
AnnaBridge 161:aa5281ff4a02 23 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
AnnaBridge 161:aa5281ff4a02 24 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
AnnaBridge 161:aa5281ff4a02 25 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 161:aa5281ff4a02 26 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
AnnaBridge 161:aa5281ff4a02 27 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
AnnaBridge 161:aa5281ff4a02 28 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
AnnaBridge 161:aa5281ff4a02 29 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
AnnaBridge 161:aa5281ff4a02 30 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
AnnaBridge 161:aa5281ff4a02 31 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
AnnaBridge 161:aa5281ff4a02 32 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 161:aa5281ff4a02 33 */
AnnaBridge 161:aa5281ff4a02 34 #ifndef _FSL_AIPSTZ_H_
AnnaBridge 161:aa5281ff4a02 35 #define _FSL_AIPSTZ_H_
AnnaBridge 161:aa5281ff4a02 36
AnnaBridge 161:aa5281ff4a02 37 #include "fsl_common.h"
AnnaBridge 161:aa5281ff4a02 38
AnnaBridge 161:aa5281ff4a02 39 /*!
AnnaBridge 161:aa5281ff4a02 40 * @addtogroup aipstz
AnnaBridge 161:aa5281ff4a02 41 * @{
AnnaBridge 161:aa5281ff4a02 42 */
AnnaBridge 161:aa5281ff4a02 43
AnnaBridge 161:aa5281ff4a02 44 /*******************************************************************************
AnnaBridge 161:aa5281ff4a02 45 * Definitions
AnnaBridge 161:aa5281ff4a02 46 ******************************************************************************/
AnnaBridge 161:aa5281ff4a02 47
AnnaBridge 161:aa5281ff4a02 48 /*! @name Driver version */
AnnaBridge 161:aa5281ff4a02 49 /*@{*/
AnnaBridge 161:aa5281ff4a02 50 #define FSL_AIPSTZ_DRIVER_VERSION (MAKE_VERSION(2, 0, 0)) /*!< Version 2.0.0 */
AnnaBridge 161:aa5281ff4a02 51 /*@}*/
AnnaBridge 161:aa5281ff4a02 52
AnnaBridge 161:aa5281ff4a02 53 /*! @brief List of AIPSTZ privilege configuration.*/
AnnaBridge 161:aa5281ff4a02 54 typedef enum _aipstz_master_privilege_level {
AnnaBridge 161:aa5281ff4a02 55 kAIPSTZ_MasterBufferedWriteEnable = (1U << 3), /*!< Write accesses from this master are allowed to be buffered. */
AnnaBridge 161:aa5281ff4a02 56 kAIPSTZ_MasterTrustedForReadEnable = (1U << 2), /*!< This master is trusted for read accesses. */
AnnaBridge 161:aa5281ff4a02 57 kAIPSTZ_MasterTrustedForWriteEnable = (1U << 1), /*!< This master is trusted for write accesses. */
AnnaBridge 161:aa5281ff4a02 58 kAIPSTZ_MasterForceUserModeEnable = 1U /*!< Accesses from this master are forced to user-mode. */
AnnaBridge 161:aa5281ff4a02 59 } aipstz_master_privilege_level_t;
AnnaBridge 161:aa5281ff4a02 60
AnnaBridge 161:aa5281ff4a02 61 /*! @brief List of AIPSTZ masters. Organized by width for the 8-15 bits and shift for lower 8 bits.*/
AnnaBridge 161:aa5281ff4a02 62 typedef enum _aipstz_master {
AnnaBridge 161:aa5281ff4a02 63 kAIPSTZ_Master0 = (0x400U | 28U),
AnnaBridge 161:aa5281ff4a02 64 kAIPSTZ_Master1 = (0x400U | 24U),
AnnaBridge 161:aa5281ff4a02 65 kAIPSTZ_Master2 = (0x400U | 20U),
AnnaBridge 161:aa5281ff4a02 66 kAIPSTZ_Master3 = (0x400U | 16U),
AnnaBridge 161:aa5281ff4a02 67 kAIPSTZ_Master5 = (0x400U | 8U)
AnnaBridge 161:aa5281ff4a02 68 } aipstz_master_t;
AnnaBridge 161:aa5281ff4a02 69
AnnaBridge 161:aa5281ff4a02 70 /*! @brief List of AIPSTZ peripheral access control configuration.*/
AnnaBridge 161:aa5281ff4a02 71 typedef enum _aipstz_peripheral_access_control {
AnnaBridge 161:aa5281ff4a02 72 kAIPSTZ_PeripheralAllowUntrustedMaster = 1U,
AnnaBridge 170:e95d10626187 73 kAIPSTZ_PeripheralWriteProtected = (1U << 1),
AnnaBridge 170:e95d10626187 74 kAIPSTZ_PeripheralRequireSupervisor = (1U << 2),
AnnaBridge 170:e95d10626187 75 kAIPSTZ_PeripheralAllowBufferedWrite = (1U << 3)
AnnaBridge 161:aa5281ff4a02 76 } aipstz_peripheral_access_control_t;
AnnaBridge 161:aa5281ff4a02 77
AnnaBridge 161:aa5281ff4a02 78 /*! @brief List of AIPSTZ peripherals. Organized by register offset for higher 32 bits, width for the 8-15 bits and shift for lower 8 bits.*/
AnnaBridge 161:aa5281ff4a02 79 typedef enum _aipstz_peripheral {
AnnaBridge 161:aa5281ff4a02 80 kAIPSTZ_Peripheral0 = ((0x40 << 16) | (4 << 8) | 28),
AnnaBridge 161:aa5281ff4a02 81 kAIPSTZ_Peripheral1 = ((0x40 << 16) | (4 << 8) | 24),
AnnaBridge 161:aa5281ff4a02 82 kAIPSTZ_Peripheral2 = ((0x40 << 16) | (4 << 8) | 20),
AnnaBridge 161:aa5281ff4a02 83 kAIPSTZ_Peripheral3 = ((0x40 << 16) | (4 << 8) | 16),
AnnaBridge 161:aa5281ff4a02 84 kAIPSTZ_Peripheral4 = ((0x40 << 16) | (4 << 8) | 12),
AnnaBridge 161:aa5281ff4a02 85 kAIPSTZ_Peripheral5 = ((0x40 << 16) | (4 << 8) | 8),
AnnaBridge 161:aa5281ff4a02 86 kAIPSTZ_Peripheral6 = ((0x40 << 16) | (4 << 8) | 4),
AnnaBridge 161:aa5281ff4a02 87 kAIPSTZ_Peripheral7 = ((0x40 << 16) | (4 << 8) | 0),
AnnaBridge 161:aa5281ff4a02 88 kAIPSTZ_Peripheral8 = ((0x44 << 16) | (4 << 8) | 28),
AnnaBridge 161:aa5281ff4a02 89 kAIPSTZ_Peripheral9 = ((0x44 << 16) | (4 << 8) | 24),
AnnaBridge 161:aa5281ff4a02 90 kAIPSTZ_Peripheral10 = ((0x44 << 16) | (4 << 8) | 20),
AnnaBridge 161:aa5281ff4a02 91 kAIPSTZ_Peripheral11 = ((0x44 << 16) | (4 << 8) | 16),
AnnaBridge 161:aa5281ff4a02 92 kAIPSTZ_Peripheral12 = ((0x44 << 16) | (4 << 8) | 12),
AnnaBridge 161:aa5281ff4a02 93 kAIPSTZ_Peripheral13 = ((0x44 << 16) | (4 << 8) | 8),
AnnaBridge 161:aa5281ff4a02 94 kAIPSTZ_Peripheral14 = ((0x44 << 16) | (4 << 8) | 4),
AnnaBridge 161:aa5281ff4a02 95 kAIPSTZ_Peripheral15 = ((0x44 << 16) | (4 << 8) | 0),
AnnaBridge 161:aa5281ff4a02 96 kAIPSTZ_Peripheral16 = ((0x48 << 16) | (4 << 8) | 28),
AnnaBridge 161:aa5281ff4a02 97 kAIPSTZ_Peripheral17 = ((0x48 << 16) | (4 << 8) | 24),
AnnaBridge 161:aa5281ff4a02 98 kAIPSTZ_Peripheral18 = ((0x48 << 16) | (4 << 8) | 20),
AnnaBridge 161:aa5281ff4a02 99 kAIPSTZ_Peripheral19 = ((0x48 << 16) | (4 << 8) | 16),
AnnaBridge 161:aa5281ff4a02 100 kAIPSTZ_Peripheral20 = ((0x48 << 16) | (4 << 8) | 12),
AnnaBridge 161:aa5281ff4a02 101 kAIPSTZ_Peripheral21 = ((0x48 << 16) | (4 << 8) | 8),
AnnaBridge 161:aa5281ff4a02 102 kAIPSTZ_Peripheral22 = ((0x48 << 16) | (4 << 8) | 4),
AnnaBridge 161:aa5281ff4a02 103 kAIPSTZ_Peripheral23 = ((0x48 << 16) | (4 << 8) | 0),
AnnaBridge 161:aa5281ff4a02 104 kAIPSTZ_Peripheral24 = ((0x4C << 16) | (4 << 8) | 28),
AnnaBridge 161:aa5281ff4a02 105 kAIPSTZ_Peripheral25 = ((0x4C << 16) | (4 << 8) | 24),
AnnaBridge 161:aa5281ff4a02 106 kAIPSTZ_Peripheral26 = ((0x4C << 16) | (4 << 8) | 20),
AnnaBridge 161:aa5281ff4a02 107 kAIPSTZ_Peripheral27 = ((0x4C << 16) | (4 << 8) | 16),
AnnaBridge 161:aa5281ff4a02 108 kAIPSTZ_Peripheral28 = ((0x4C << 16) | (4 << 8) | 12),
AnnaBridge 161:aa5281ff4a02 109 kAIPSTZ_Peripheral29 = ((0x4C << 16) | (4 << 8) | 8),
AnnaBridge 161:aa5281ff4a02 110 kAIPSTZ_Peripheral30 = ((0x4C << 16) | (4 << 8) | 4),
AnnaBridge 161:aa5281ff4a02 111 kAIPSTZ_Peripheral31 = ((0x4C << 16) | (4 << 8) | 0),
AnnaBridge 161:aa5281ff4a02 112 kAIPSTZ_Peripheral32 = ((0x50 << 16) | (4 << 8) | 28),
AnnaBridge 161:aa5281ff4a02 113 kAIPSTZ_Peripheral33 = ((0x50 << 16) | (4 << 8) | 24)
AnnaBridge 161:aa5281ff4a02 114 } aipstz_peripheral_t;
AnnaBridge 161:aa5281ff4a02 115
AnnaBridge 161:aa5281ff4a02 116 /*******************************************************************************
AnnaBridge 161:aa5281ff4a02 117 * API
AnnaBridge 161:aa5281ff4a02 118 ******************************************************************************/
AnnaBridge 161:aa5281ff4a02 119
AnnaBridge 161:aa5281ff4a02 120 #if defined(__cplusplus)
AnnaBridge 161:aa5281ff4a02 121 extern "C" {
AnnaBridge 161:aa5281ff4a02 122 #endif
AnnaBridge 161:aa5281ff4a02 123
AnnaBridge 161:aa5281ff4a02 124 /*!
AnnaBridge 161:aa5281ff4a02 125 * @name Initialization and deinitialization
AnnaBridge 161:aa5281ff4a02 126 * @{
AnnaBridge 161:aa5281ff4a02 127 */
AnnaBridge 161:aa5281ff4a02 128
AnnaBridge 161:aa5281ff4a02 129 /*!
AnnaBridge 161:aa5281ff4a02 130 * @brief Configure the privilege level for master.
AnnaBridge 161:aa5281ff4a02 131 *
AnnaBridge 161:aa5281ff4a02 132 * @param base AIPSTZ peripheral base pointer
AnnaBridge 161:aa5281ff4a02 133 * @param master Masters for AIPSTZ.
AnnaBridge 161:aa5281ff4a02 134 * @param privilegeConfig Configuration is ORed from @aipstz_master_privilege_level_t.
AnnaBridge 161:aa5281ff4a02 135 */
AnnaBridge 161:aa5281ff4a02 136 void AIPSTZ_SetMasterPriviledgeLevel(AIPSTZ_Type *base, aipstz_master_t master, uint32_t privilegeConfig);
AnnaBridge 161:aa5281ff4a02 137
AnnaBridge 161:aa5281ff4a02 138 /*!
AnnaBridge 161:aa5281ff4a02 139 * @brief Configure the access for peripheral.
AnnaBridge 161:aa5281ff4a02 140 *
AnnaBridge 161:aa5281ff4a02 141 * @param base AIPSTZ peripheral base pointer
AnnaBridge 161:aa5281ff4a02 142 * @param master Peripheral for AIPSTZ.
AnnaBridge 161:aa5281ff4a02 143 * @param accessControl Configuration is ORed from @aipstz_peripheral_access_control_t.
AnnaBridge 161:aa5281ff4a02 144 */
AnnaBridge 161:aa5281ff4a02 145 void AIPSTZ_SetPeripheralAccessControl(AIPSTZ_Type *base, aipstz_peripheral_t peripheral, uint32_t accessControl);
AnnaBridge 161:aa5281ff4a02 146
AnnaBridge 161:aa5281ff4a02 147 /*! @}*/
AnnaBridge 161:aa5281ff4a02 148
AnnaBridge 161:aa5281ff4a02 149 #if defined(__cplusplus)
AnnaBridge 161:aa5281ff4a02 150 }
AnnaBridge 161:aa5281ff4a02 151 #endif
AnnaBridge 161:aa5281ff4a02 152
AnnaBridge 161:aa5281ff4a02 153 /*! @}*/
AnnaBridge 161:aa5281ff4a02 154
AnnaBridge 161:aa5281ff4a02 155 #endif /* _FSL_AIPSTZ_H_ */