mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

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

Committer:
mbed_official
Date:
Wed Jul 01 09:45:11 2015 +0100
Revision:
579:53297373a894
Parent:
514:7668256dbe61
Synchronized with git revision d5b4d2ab9c47edb4dc5776e7177b0c2263459081

Full URL: https://github.com/mbedmicro/mbed/commit/d5b4d2ab9c47edb4dc5776e7177b0c2263459081/

Initial version of drivers for SAMR21

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 514:7668256dbe61 1 /*******************************************************************************
mbed_official 514:7668256dbe61 2 * Copyright (C) 2015 Maxim Integrated Products, Inc., All Rights Reserved.
mbed_official 514:7668256dbe61 3 *
mbed_official 514:7668256dbe61 4 * Permission is hereby granted, free of charge, to any person obtaining a
mbed_official 514:7668256dbe61 5 * copy of this software and associated documentation files (the "Software"),
mbed_official 514:7668256dbe61 6 * to deal in the Software without restriction, including without limitation
mbed_official 514:7668256dbe61 7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
mbed_official 514:7668256dbe61 8 * and/or sell copies of the Software, and to permit persons to whom the
mbed_official 514:7668256dbe61 9 * Software is furnished to do so, subject to the following conditions:
mbed_official 514:7668256dbe61 10 *
mbed_official 514:7668256dbe61 11 * The above copyright notice and this permission notice shall be included
mbed_official 514:7668256dbe61 12 * in all copies or substantial portions of the Software.
mbed_official 514:7668256dbe61 13 *
mbed_official 514:7668256dbe61 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
mbed_official 514:7668256dbe61 15 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
mbed_official 514:7668256dbe61 16 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
mbed_official 514:7668256dbe61 17 * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
mbed_official 514:7668256dbe61 18 * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
mbed_official 514:7668256dbe61 19 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
mbed_official 514:7668256dbe61 20 * OTHER DEALINGS IN THE SOFTWARE.
mbed_official 514:7668256dbe61 21 *
mbed_official 514:7668256dbe61 22 * Except as contained in this notice, the name of Maxim Integrated
mbed_official 514:7668256dbe61 23 * Products, Inc. shall not be used except as stated in the Maxim Integrated
mbed_official 514:7668256dbe61 24 * Products, Inc. Branding Policy.
mbed_official 514:7668256dbe61 25 *
mbed_official 514:7668256dbe61 26 * The mere transfer of this software does not imply any licenses
mbed_official 514:7668256dbe61 27 * of trade secrets, proprietary technology, copyrights, patents,
mbed_official 514:7668256dbe61 28 * trademarks, maskwork rights, or any other form of intellectual
mbed_official 514:7668256dbe61 29 * property whatsoever. Maxim Integrated Products, Inc. retains all
mbed_official 514:7668256dbe61 30 * ownership rights.
mbed_official 514:7668256dbe61 31 *******************************************************************************
mbed_official 514:7668256dbe61 32 */
mbed_official 514:7668256dbe61 33
mbed_official 514:7668256dbe61 34 #ifndef _MXC_AES_REGS_H_
mbed_official 514:7668256dbe61 35 #define _MXC_AES_REGS_H_
mbed_official 514:7668256dbe61 36
mbed_official 514:7668256dbe61 37 #ifdef __cplusplus
mbed_official 514:7668256dbe61 38 extern "C" {
mbed_official 514:7668256dbe61 39 #endif
mbed_official 514:7668256dbe61 40
mbed_official 514:7668256dbe61 41 #include <stdint.h>
mbed_official 514:7668256dbe61 42
mbed_official 514:7668256dbe61 43 /**
mbed_official 514:7668256dbe61 44 * @file aes_regs.h
mbed_official 514:7668256dbe61 45 * @addtogroup aes AES
mbed_official 514:7668256dbe61 46 * @{
mbed_official 514:7668256dbe61 47 */
mbed_official 514:7668256dbe61 48
mbed_official 514:7668256dbe61 49 /**
mbed_official 514:7668256dbe61 50 * @brief Settings for AES_CTRL.CRYPT_MODE
mbed_official 514:7668256dbe61 51 */
mbed_official 514:7668256dbe61 52 typedef enum {
mbed_official 514:7668256dbe61 53 MXC_E_AES_CTRL_ENCRYPT_MODE = 0,
mbed_official 514:7668256dbe61 54 MXC_E_AES_CTRL_DECRYPT_MODE = 1
mbed_official 514:7668256dbe61 55 } mxc_aes_ctrl_crypt_mode_t;
mbed_official 514:7668256dbe61 56
mbed_official 514:7668256dbe61 57 /**
mbed_official 514:7668256dbe61 58 * @brief Settings for AES_CTRL.EXP_KEY_MODE
mbed_official 514:7668256dbe61 59 */
mbed_official 514:7668256dbe61 60 typedef enum {
mbed_official 514:7668256dbe61 61 MXC_E_AES_CTRL_CALC_NEW_EXP_KEY = 0,
mbed_official 514:7668256dbe61 62 MXC_E_AES_CTRL_USE_LAST_EXP_KEY = 1
mbed_official 514:7668256dbe61 63 } mxc_aes_ctrl_exp_key_mode_t;
mbed_official 514:7668256dbe61 64
mbed_official 514:7668256dbe61 65 /**
mbed_official 514:7668256dbe61 66 * @brief Settings for AES_CTRL.KEY_SIZE
mbed_official 514:7668256dbe61 67 */
mbed_official 514:7668256dbe61 68 typedef enum {
mbed_official 514:7668256dbe61 69 MXC_E_AES_CTRL_KEY_SIZE_128 = 0,
mbed_official 514:7668256dbe61 70 MXC_E_AES_CTRL_KEY_SIZE_192 = 1,
mbed_official 514:7668256dbe61 71 MXC_E_AES_CTRL_KEY_SIZE_256 = 2
mbed_official 514:7668256dbe61 72 } mxc_aes_ctrl_key_size_t;
mbed_official 514:7668256dbe61 73
mbed_official 514:7668256dbe61 74 /* Offset Register Description
mbed_official 514:7668256dbe61 75 ====== =========================================================== */
mbed_official 514:7668256dbe61 76 typedef struct {
mbed_official 514:7668256dbe61 77 __IO uint32_t ctrl; /* 0x0000 AES Control and Status */
mbed_official 514:7668256dbe61 78 __I uint32_t rsv004; /* 0x0004 */
mbed_official 514:7668256dbe61 79 __IO uint32_t erase_all; /* 0x0008 Write to Trigger AES Memory Erase */
mbed_official 514:7668256dbe61 80 } mxc_aes_regs_t;
mbed_official 514:7668256dbe61 81
mbed_official 514:7668256dbe61 82 /* Offset Register Description
mbed_official 514:7668256dbe61 83 ====== =========================================================== */
mbed_official 514:7668256dbe61 84 typedef struct {
mbed_official 514:7668256dbe61 85 __IO uint32_t inp[4]; /* 0x0000 AES Input 0..3 */
mbed_official 514:7668256dbe61 86 __IO uint32_t key[8]; /* 0x0010 AES Key 0..7 */
mbed_official 514:7668256dbe61 87 __IO uint32_t out[4]; /* 0x0030 AES Output 0..3 */
mbed_official 514:7668256dbe61 88 __IO uint32_t expkey[8]; /* 0x0040 AES Expanded Key Data 0..7 */
mbed_official 514:7668256dbe61 89 } mxc_aes_mem_regs_t;
mbed_official 514:7668256dbe61 90
mbed_official 514:7668256dbe61 91 /*
mbed_official 514:7668256dbe61 92 Register offsets for module AES.
mbed_official 514:7668256dbe61 93 */
mbed_official 514:7668256dbe61 94 #define MXC_R_AES_OFFS_CTRL ((uint32_t)0x00000000UL)
mbed_official 514:7668256dbe61 95 #define MXC_R_AES_OFFS_ERASE_ALL ((uint32_t)0x00000008UL)
mbed_official 514:7668256dbe61 96 #define MXC_R_AES_MEM_OFFS_INP0 ((uint32_t)0x00000000UL)
mbed_official 514:7668256dbe61 97 #define MXC_R_AES_MEM_OFFS_INP1 ((uint32_t)0x00000004UL)
mbed_official 514:7668256dbe61 98 #define MXC_R_AES_MEM_OFFS_INP2 ((uint32_t)0x00000008UL)
mbed_official 514:7668256dbe61 99 #define MXC_R_AES_MEM_OFFS_INP3 ((uint32_t)0x0000000CUL)
mbed_official 514:7668256dbe61 100 #define MXC_R_AES_MEM_OFFS_KEY0 ((uint32_t)0x00000010UL)
mbed_official 514:7668256dbe61 101 #define MXC_R_AES_MEM_OFFS_KEY1 ((uint32_t)0x00000014UL)
mbed_official 514:7668256dbe61 102 #define MXC_R_AES_MEM_OFFS_KEY2 ((uint32_t)0x00000018UL)
mbed_official 514:7668256dbe61 103 #define MXC_R_AES_MEM_OFFS_KEY3 ((uint32_t)0x0000001CUL)
mbed_official 514:7668256dbe61 104 #define MXC_R_AES_MEM_OFFS_KEY4 ((uint32_t)0x00000020UL)
mbed_official 514:7668256dbe61 105 #define MXC_R_AES_MEM_OFFS_KEY5 ((uint32_t)0x00000024UL)
mbed_official 514:7668256dbe61 106 #define MXC_R_AES_MEM_OFFS_KEY6 ((uint32_t)0x00000028UL)
mbed_official 514:7668256dbe61 107 #define MXC_R_AES_MEM_OFFS_KEY7 ((uint32_t)0x0000002CUL)
mbed_official 514:7668256dbe61 108 #define MXC_R_AES_MEM_OFFS_OUT0 ((uint32_t)0x00000030UL)
mbed_official 514:7668256dbe61 109 #define MXC_R_AES_MEM_OFFS_OUT1 ((uint32_t)0x00000034UL)
mbed_official 514:7668256dbe61 110 #define MXC_R_AES_MEM_OFFS_OUT2 ((uint32_t)0x00000038UL)
mbed_official 514:7668256dbe61 111 #define MXC_R_AES_MEM_OFFS_OUT3 ((uint32_t)0x0000003CUL)
mbed_official 514:7668256dbe61 112 #define MXC_R_AES_MEM_OFFS_EXPKEY0 ((uint32_t)0x00000040UL)
mbed_official 514:7668256dbe61 113 #define MXC_R_AES_MEM_OFFS_EXPKEY1 ((uint32_t)0x00000044UL)
mbed_official 514:7668256dbe61 114 #define MXC_R_AES_MEM_OFFS_EXPKEY2 ((uint32_t)0x00000048UL)
mbed_official 514:7668256dbe61 115 #define MXC_R_AES_MEM_OFFS_EXPKEY3 ((uint32_t)0x0000004CUL)
mbed_official 514:7668256dbe61 116 #define MXC_R_AES_MEM_OFFS_EXPKEY4 ((uint32_t)0x00000050UL)
mbed_official 514:7668256dbe61 117 #define MXC_R_AES_MEM_OFFS_EXPKEY5 ((uint32_t)0x00000054UL)
mbed_official 514:7668256dbe61 118 #define MXC_R_AES_MEM_OFFS_EXPKEY6 ((uint32_t)0x00000058UL)
mbed_official 514:7668256dbe61 119 #define MXC_R_AES_MEM_OFFS_EXPKEY7 ((uint32_t)0x0000005CUL)
mbed_official 514:7668256dbe61 120
mbed_official 514:7668256dbe61 121 #define MXC_F_AES_CTRL_START_POS 0
mbed_official 514:7668256dbe61 122 #define MXC_F_AES_CTRL_START ((uint32_t)(0x00000001UL << MXC_F_AES_CTRL_START_POS))
mbed_official 514:7668256dbe61 123 #define MXC_F_AES_CTRL_CRYPT_MODE_POS 1
mbed_official 514:7668256dbe61 124 #define MXC_F_AES_CTRL_CRYPT_MODE ((uint32_t)(0x00000001UL << MXC_F_AES_CTRL_CRYPT_MODE_POS))
mbed_official 514:7668256dbe61 125 #define MXC_F_AES_CTRL_EXP_KEY_MODE_POS 2
mbed_official 514:7668256dbe61 126 #define MXC_F_AES_CTRL_EXP_KEY_MODE ((uint32_t)(0x00000001UL << MXC_F_AES_CTRL_EXP_KEY_MODE_POS))
mbed_official 514:7668256dbe61 127 #define MXC_F_AES_CTRL_KEY_SIZE_POS 3
mbed_official 514:7668256dbe61 128 #define MXC_F_AES_CTRL_KEY_SIZE ((uint32_t)(0x00000003UL << MXC_F_AES_CTRL_KEY_SIZE_POS))
mbed_official 514:7668256dbe61 129 #define MXC_F_AES_CTRL_INTEN_POS 5
mbed_official 514:7668256dbe61 130 #define MXC_F_AES_CTRL_INTEN ((uint32_t)(0x00000001UL << MXC_F_AES_CTRL_INTEN_POS))
mbed_official 514:7668256dbe61 131 #define MXC_F_AES_CTRL_INTFL_POS 6
mbed_official 514:7668256dbe61 132 #define MXC_F_AES_CTRL_INTFL ((uint32_t)(0x00000001UL << MXC_F_AES_CTRL_INTFL_POS))
mbed_official 514:7668256dbe61 133
mbed_official 514:7668256dbe61 134 #define MXC_V_AES_CTRL_ENCRYPT_MODE 0
mbed_official 514:7668256dbe61 135 #define MXC_V_AES_CTRL_DECRYPT_MODE 1
mbed_official 514:7668256dbe61 136 #define MXC_S_AES_CTRL_ENCRYPT_MODE ((uint32_t)(MXC_V_AES_CTRL_ENCRYPT_MODE << MXC_F_AES_CTRL_CRYPT_MODE_POS))
mbed_official 514:7668256dbe61 137 #define MXC_S_AES_CTRL_DECRYPT_MODE ((uint32_t)(MXC_V_AES_CTRL_DECRYPT_MODE << MXC_F_AES_CTRL_CRYPT_MODE_POS))
mbed_official 514:7668256dbe61 138
mbed_official 514:7668256dbe61 139 #define MXC_V_AES_CTRL_CALC_NEW_EXP_KEY 0
mbed_official 514:7668256dbe61 140 #define MXC_V_AES_CTRL_USE_LAST_EXP_KEY 1
mbed_official 514:7668256dbe61 141 #define MXC_S_AES_CTRL_CALC_NEW_EXP_KEY ((uint32_t)(MXC_V_AES_CTRL_CALC_NEW_EXP_KEY << MXC_F_AES_CTRL_EXP_KEY_MODE_POS))
mbed_official 514:7668256dbe61 142 #define MXC_S_AES_CTRL_USE_LAST_EXP_KEY ((uint32_t)(MXC_V_AES_CTRL_USE_LAST_EXP_KEY << MXC_F_AES_CTRL_EXP_KEY_MODE_POS))
mbed_official 514:7668256dbe61 143
mbed_official 514:7668256dbe61 144 #define MXC_V_AES_CTRL_KEY_SIZE_128 0
mbed_official 514:7668256dbe61 145 #define MXC_V_AES_CTRL_KEY_SIZE_192 1
mbed_official 514:7668256dbe61 146 #define MXC_V_AES_CTRL_KEY_SIZE_256 2
mbed_official 514:7668256dbe61 147 #define MXC_S_AES_CTRL_KEY_SIZE_128 ((uint32_t)(MXC_V_AES_CTRL_KEY_SIZE_128 << MXC_F_AES_CTRL_KEY_SIZE_POS))
mbed_official 514:7668256dbe61 148 #define MXC_S_AES_CTRL_KEY_SIZE_192 ((uint32_t)(MXC_V_AES_CTRL_KEY_SIZE_192 << MXC_F_AES_CTRL_KEY_SIZE_POS))
mbed_official 514:7668256dbe61 149 #define MXC_S_AES_CTRL_KEY_SIZE_256 ((uint32_t)(MXC_V_AES_CTRL_KEY_SIZE_256 << MXC_F_AES_CTRL_KEY_SIZE_POS))
mbed_official 514:7668256dbe61 150
mbed_official 514:7668256dbe61 151 #ifdef __cplusplus
mbed_official 514:7668256dbe61 152 }
mbed_official 514:7668256dbe61 153 #endif
mbed_official 514:7668256dbe61 154
mbed_official 514:7668256dbe61 155 /**
mbed_official 514:7668256dbe61 156 * @}
mbed_official 514:7668256dbe61 157 */
mbed_official 514:7668256dbe61 158
mbed_official 514:7668256dbe61 159 #endif /* _MXC_AES_REGS_H_ */