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:
507:d4fc7603a669
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 507:d4fc7603a669 1 /*******************************************************************************
mbed_official 507:d4fc7603a669 2 * Copyright (C) 2015 Maxim Integrated Products, Inc., All Rights Reserved.
mbed_official 507:d4fc7603a669 3 *
mbed_official 507:d4fc7603a669 4 * Permission is hereby granted, free of charge, to any person obtaining a
mbed_official 507:d4fc7603a669 5 * copy of this software and associated documentation files (the "Software"),
mbed_official 507:d4fc7603a669 6 * to deal in the Software without restriction, including without limitation
mbed_official 507:d4fc7603a669 7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
mbed_official 507:d4fc7603a669 8 * and/or sell copies of the Software, and to permit persons to whom the
mbed_official 507:d4fc7603a669 9 * Software is furnished to do so, subject to the following conditions:
mbed_official 507:d4fc7603a669 10 *
mbed_official 507:d4fc7603a669 11 * The above copyright notice and this permission notice shall be included
mbed_official 507:d4fc7603a669 12 * in all copies or substantial portions of the Software.
mbed_official 507:d4fc7603a669 13 *
mbed_official 507:d4fc7603a669 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
mbed_official 507:d4fc7603a669 15 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
mbed_official 507:d4fc7603a669 16 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
mbed_official 507:d4fc7603a669 17 * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
mbed_official 507:d4fc7603a669 18 * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
mbed_official 507:d4fc7603a669 19 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
mbed_official 507:d4fc7603a669 20 * OTHER DEALINGS IN THE SOFTWARE.
mbed_official 507:d4fc7603a669 21 *
mbed_official 507:d4fc7603a669 22 * Except as contained in this notice, the name of Maxim Integrated
mbed_official 507:d4fc7603a669 23 * Products, Inc. shall not be used except as stated in the Maxim Integrated
mbed_official 507:d4fc7603a669 24 * Products, Inc. Branding Policy.
mbed_official 507:d4fc7603a669 25 *
mbed_official 507:d4fc7603a669 26 * The mere transfer of this software does not imply any licenses
mbed_official 507:d4fc7603a669 27 * of trade secrets, proprietary technology, copyrights, patents,
mbed_official 507:d4fc7603a669 28 * trademarks, maskwork rights, or any other form of intellectual
mbed_official 507:d4fc7603a669 29 * property whatsoever. Maxim Integrated Products, Inc. retains all
mbed_official 507:d4fc7603a669 30 * ownership rights.
mbed_official 507:d4fc7603a669 31 *******************************************************************************
mbed_official 507:d4fc7603a669 32 */
mbed_official 507:d4fc7603a669 33
mbed_official 507:d4fc7603a669 34 #ifndef _MXC_WDT_REGS_H_
mbed_official 507:d4fc7603a669 35 #define _MXC_WDT_REGS_H_
mbed_official 507:d4fc7603a669 36
mbed_official 507:d4fc7603a669 37 #ifdef __cplusplus
mbed_official 507:d4fc7603a669 38 extern "C" {
mbed_official 507:d4fc7603a669 39 #endif
mbed_official 507:d4fc7603a669 40
mbed_official 507:d4fc7603a669 41 #include <stdint.h>
mbed_official 507:d4fc7603a669 42
mbed_official 507:d4fc7603a669 43 /**
mbed_official 507:d4fc7603a669 44 * @file wdt_regs.h
mbed_official 507:d4fc7603a669 45 * @addtogroup wdt WDT
mbed_official 507:d4fc7603a669 46 * @{
mbed_official 507:d4fc7603a669 47 */
mbed_official 507:d4fc7603a669 48
mbed_official 507:d4fc7603a669 49 /**
mbed_official 507:d4fc7603a669 50 * @brief Defines watchdog timer periods
mbed_official 507:d4fc7603a669 51 */
mbed_official 507:d4fc7603a669 52 typedef enum {
mbed_official 507:d4fc7603a669 53 /** 2^31 cycle period */
mbed_official 507:d4fc7603a669 54 MXC_E_WDT_PERIOD_2_31_CLKS = 0,
mbed_official 507:d4fc7603a669 55 /** 2^30 cycle period */
mbed_official 507:d4fc7603a669 56 MXC_E_WDT_PERIOD_2_30_CLKS,
mbed_official 507:d4fc7603a669 57 /** 2^29 cycle period */
mbed_official 507:d4fc7603a669 58 MXC_E_WDT_PERIOD_2_29_CLKS,
mbed_official 507:d4fc7603a669 59 /** 2^28 cycle period */
mbed_official 507:d4fc7603a669 60 MXC_E_WDT_PERIOD_2_28_CLKS,
mbed_official 507:d4fc7603a669 61 /** 2^27 cycle period */
mbed_official 507:d4fc7603a669 62 MXC_E_WDT_PERIOD_2_27_CLKS,
mbed_official 507:d4fc7603a669 63 /** 2^26 cycle period */
mbed_official 507:d4fc7603a669 64 MXC_E_WDT_PERIOD_2_26_CLKS,
mbed_official 507:d4fc7603a669 65 /** 2^25 cycle period */
mbed_official 507:d4fc7603a669 66 MXC_E_WDT_PERIOD_2_25_CLKS,
mbed_official 507:d4fc7603a669 67 /** 2^24 cycle period */
mbed_official 507:d4fc7603a669 68 MXC_E_WDT_PERIOD_2_24_CLKS,
mbed_official 507:d4fc7603a669 69 /** 2^23 cycle period */
mbed_official 507:d4fc7603a669 70 MXC_E_WDT_PERIOD_2_23_CLKS,
mbed_official 507:d4fc7603a669 71 /** 2^22 cycle period */
mbed_official 507:d4fc7603a669 72 MXC_E_WDT_PERIOD_2_22_CLKS,
mbed_official 507:d4fc7603a669 73 /** 2^21 cycle period */
mbed_official 507:d4fc7603a669 74 MXC_E_WDT_PERIOD_2_21_CLKS,
mbed_official 507:d4fc7603a669 75 /** 2^20 cycle period */
mbed_official 507:d4fc7603a669 76 MXC_E_WDT_PERIOD_2_20_CLKS,
mbed_official 507:d4fc7603a669 77 /** 2^19 cycle period */
mbed_official 507:d4fc7603a669 78 MXC_E_WDT_PERIOD_2_19_CLKS,
mbed_official 507:d4fc7603a669 79 /** 2^18 cycle period */
mbed_official 507:d4fc7603a669 80 MXC_E_WDT_PERIOD_2_18_CLKS,
mbed_official 507:d4fc7603a669 81 /** 2^17 cycle period */
mbed_official 507:d4fc7603a669 82 MXC_E_WDT_PERIOD_2_17_CLKS,
mbed_official 507:d4fc7603a669 83 /** 2^16 cycle period */
mbed_official 507:d4fc7603a669 84 MXC_E_WDT_PERIOD_2_16_CLKS,
mbed_official 507:d4fc7603a669 85 } mxc_wdt_period_t;
mbed_official 507:d4fc7603a669 86
mbed_official 507:d4fc7603a669 87 /* Offset Register Description
mbed_official 507:d4fc7603a669 88 ====== ================================================ */
mbed_official 507:d4fc7603a669 89 typedef struct {
mbed_official 507:d4fc7603a669 90 __IO uint32_t ctrl; /* 0x0000 Watchdog Timer Control Register */
mbed_official 507:d4fc7603a669 91 __IO uint32_t clear; /* 0x0004 Watchdog Clear Register (Feed Dog) */
mbed_official 507:d4fc7603a669 92 __IO uint32_t int_rst_fl; /* 0x0008 Watchdog Interrupt/Reset Flags */
mbed_official 507:d4fc7603a669 93 __IO uint32_t int_rst_en; /* 0x000C Interrupt/Reset Enable/Disable Controls */
mbed_official 507:d4fc7603a669 94 __I uint32_t rsv0010; /* 0x0010 */
mbed_official 507:d4fc7603a669 95 __IO uint32_t lock_ctrl; /* 0x0014 Lock Register Setting for WDT CTRL */
mbed_official 507:d4fc7603a669 96 } mxc_wdt_regs_t;
mbed_official 507:d4fc7603a669 97
mbed_official 507:d4fc7603a669 98 /*
mbed_official 507:d4fc7603a669 99 Register offsets for module WDT.
mbed_official 507:d4fc7603a669 100 */
mbed_official 507:d4fc7603a669 101 #define MXC_R_WDT_OFFS_CTRL ((uint32_t)0x00000000UL)
mbed_official 507:d4fc7603a669 102 #define MXC_R_WDT_OFFS_CLEAR ((uint32_t)0x00000004UL)
mbed_official 507:d4fc7603a669 103 #define MXC_R_WDT_OFFS_INT_RST_FL ((uint32_t)0x00000008UL)
mbed_official 507:d4fc7603a669 104 #define MXC_R_WDT_OFFS_INT_RST_EN ((uint32_t)0x0000000CUL)
mbed_official 507:d4fc7603a669 105 #define MXC_R_WDT_OFFS_LOCK_CTRL ((uint32_t)0x00000014UL)
mbed_official 507:d4fc7603a669 106
mbed_official 507:d4fc7603a669 107 #define MXC_V_WDT_WDLOCK_LOCK_KEY ((uint8_t)0x24)
mbed_official 507:d4fc7603a669 108 #define MXC_V_WDT_WDLOCK_UNLOCK_KEY ((uint8_t)0x42)
mbed_official 507:d4fc7603a669 109
mbed_official 507:d4fc7603a669 110
mbed_official 507:d4fc7603a669 111 /*
mbed_official 507:d4fc7603a669 112 Field positions and masks for module WDT.
mbed_official 507:d4fc7603a669 113 */
mbed_official 507:d4fc7603a669 114 #define MXC_F_WDT_CTRL_INT_PERIOD_POS 0
mbed_official 507:d4fc7603a669 115 #define MXC_F_WDT_CTRL_INT_PERIOD ((uint32_t)(0x0000000FUL << MXC_F_WDT_CTRL_INT_PERIOD_POS))
mbed_official 507:d4fc7603a669 116 #define MXC_F_WDT_CTRL_RST_PERIOD_POS 4
mbed_official 507:d4fc7603a669 117 #define MXC_F_WDT_CTRL_RST_PERIOD ((uint32_t)(0x0000000FUL << MXC_F_WDT_CTRL_RST_PERIOD_POS))
mbed_official 507:d4fc7603a669 118 #define MXC_F_WDT_CTRL_EN_TIMER_POS 8
mbed_official 507:d4fc7603a669 119 #define MXC_F_WDT_CTRL_EN_TIMER ((uint32_t)(0x00000001UL << MXC_F_WDT_CTRL_EN_TIMER_POS))
mbed_official 507:d4fc7603a669 120 #define MXC_F_WDT_CTRL_EN_CLOCK_POS 9
mbed_official 507:d4fc7603a669 121 #define MXC_F_WDT_CTRL_EN_CLOCK ((uint32_t)(0x00000001UL << MXC_F_WDT_CTRL_EN_CLOCK_POS))
mbed_official 507:d4fc7603a669 122 #define MXC_F_WDT_CTRL_WAIT_PERIOD_POS 12
mbed_official 507:d4fc7603a669 123 #define MXC_F_WDT_CTRL_WAIT_PERIOD ((uint32_t)(0x0000000FUL << MXC_F_WDT_CTRL_WAIT_PERIOD_POS))
mbed_official 507:d4fc7603a669 124
mbed_official 507:d4fc7603a669 125 #define MXC_F_WDT_FLAGS_TIMEOUT_POS 0
mbed_official 507:d4fc7603a669 126 #define MXC_F_WDT_FLAGS_TIMEOUT ((uint32_t)(0x00000001UL << MXC_F_WDT_FLAGS_TIMEOUT_POS))
mbed_official 507:d4fc7603a669 127 #define MXC_F_WDT_FLAGS_PRE_WIN_POS 1
mbed_official 507:d4fc7603a669 128 #define MXC_F_WDT_FLAGS_PRE_WIN ((uint32_t)(0x00000001UL << MXC_F_WDT_FLAGS_PRE_WIN_POS))
mbed_official 507:d4fc7603a669 129 #define MXC_F_WDT_FLAGS_RESET_OUT_POS 2
mbed_official 507:d4fc7603a669 130 #define MXC_F_WDT_FLAGS_RESET_OUT ((uint32_t)(0x00000001UL << MXC_F_WDT_FLAGS_RESET_OUT_POS))
mbed_official 507:d4fc7603a669 131
mbed_official 507:d4fc7603a669 132 #define MXC_F_WDT_ENABLE_TIMEOUT_POS 0
mbed_official 507:d4fc7603a669 133 #define MXC_F_WDT_ENABLE_TIMEOUT ((uint32_t)(0x00000001UL << MXC_F_WDT_ENABLE_TIMEOUT_POS))
mbed_official 507:d4fc7603a669 134 #define MXC_F_WDT_ENABLE_PRE_WIN_POS 1
mbed_official 507:d4fc7603a669 135 #define MXC_F_WDT_ENABLE_PRE_WIN ((uint32_t)(0x00000001UL << MXC_F_WDT_ENABLE_PRE_WIN_POS))
mbed_official 507:d4fc7603a669 136 #define MXC_F_WDT_ENABLE_RESET_OUT_POS 2
mbed_official 507:d4fc7603a669 137 #define MXC_F_WDT_ENABLE_RESET_OUT ((uint32_t)(0x00000001UL << MXC_F_WDT_ENABLE_RESET_OUT_POS))
mbed_official 507:d4fc7603a669 138
mbed_official 507:d4fc7603a669 139 #define MXC_F_WDT_LOCK_CTRL_WDLOCK_POS 0
mbed_official 507:d4fc7603a669 140 #define MXC_F_WDT_LOCK_CTRL_WDLOCK ((uint32_t)(0x000000FFUL << MXC_F_WDT_LOCK_CTRL_WDLOCK_POS))
mbed_official 507:d4fc7603a669 141
mbed_official 507:d4fc7603a669 142 #ifdef __cplusplus
mbed_official 507:d4fc7603a669 143 }
mbed_official 507:d4fc7603a669 144 #endif
mbed_official 507:d4fc7603a669 145
mbed_official 507:d4fc7603a669 146 /**
mbed_official 507:d4fc7603a669 147 * @}
mbed_official 507:d4fc7603a669 148 */
mbed_official 507:d4fc7603a669 149
mbed_official 507:d4fc7603a669 150 #endif /* _MXC_WDT_REGS_H_ */