Fork of the official mbed C/C SDK provides the software platform and libraries to build your applications for RenBED.

Dependents:   1-RenBuggyTimed RenBED_RGB RenBED_RGB_PWM RenBED_RGB

Fork of mbed by mbed official

Committer:
elijahorr
Date:
Thu Apr 14 07:28:54 2016 +0000
Revision:
121:672067c3ada4
Parent:
111:4336505e4b1c
.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kojto 111:4336505e4b1c 1 /**
Kojto 111:4336505e4b1c 2 * \file
Kojto 111:4336505e4b1c 3 *
Kojto 111:4336505e4b1c 4 * \brief Component description for PORT
Kojto 111:4336505e4b1c 5 *
Kojto 111:4336505e4b1c 6 * Copyright (c) 2014-2015 Atmel Corporation. All rights reserved.
Kojto 111:4336505e4b1c 7 *
Kojto 111:4336505e4b1c 8 * \asf_license_start
Kojto 111:4336505e4b1c 9 *
Kojto 111:4336505e4b1c 10 * \page License
Kojto 111:4336505e4b1c 11 *
Kojto 111:4336505e4b1c 12 * Redistribution and use in source and binary forms, with or without
Kojto 111:4336505e4b1c 13 * modification, are permitted provided that the following conditions are met:
Kojto 111:4336505e4b1c 14 *
Kojto 111:4336505e4b1c 15 * 1. Redistributions of source code must retain the above copyright notice,
Kojto 111:4336505e4b1c 16 * this list of conditions and the following disclaimer.
Kojto 111:4336505e4b1c 17 *
Kojto 111:4336505e4b1c 18 * 2. Redistributions in binary form must reproduce the above copyright notice,
Kojto 111:4336505e4b1c 19 * this list of conditions and the following disclaimer in the documentation
Kojto 111:4336505e4b1c 20 * and/or other materials provided with the distribution.
Kojto 111:4336505e4b1c 21 *
Kojto 111:4336505e4b1c 22 * 3. The name of Atmel may not be used to endorse or promote products derived
Kojto 111:4336505e4b1c 23 * from this software without specific prior written permission.
Kojto 111:4336505e4b1c 24 *
Kojto 111:4336505e4b1c 25 * 4. This software may only be redistributed and used in connection with an
Kojto 111:4336505e4b1c 26 * Atmel microcontroller product.
Kojto 111:4336505e4b1c 27 *
Kojto 111:4336505e4b1c 28 * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
Kojto 111:4336505e4b1c 29 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
Kojto 111:4336505e4b1c 30 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
Kojto 111:4336505e4b1c 31 * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
Kojto 111:4336505e4b1c 32 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
Kojto 111:4336505e4b1c 33 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
Kojto 111:4336505e4b1c 34 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
Kojto 111:4336505e4b1c 35 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
Kojto 111:4336505e4b1c 36 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
Kojto 111:4336505e4b1c 37 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
Kojto 111:4336505e4b1c 38 * POSSIBILITY OF SUCH DAMAGE.
Kojto 111:4336505e4b1c 39 *
Kojto 111:4336505e4b1c 40 * \asf_license_stop
Kojto 111:4336505e4b1c 41 *
Kojto 111:4336505e4b1c 42 */
Kojto 111:4336505e4b1c 43 /*
Kojto 111:4336505e4b1c 44 * Support and FAQ: visit <a href="http://www.atmel.com/design-support/">Atmel Support</a>
Kojto 111:4336505e4b1c 45 */
Kojto 111:4336505e4b1c 46
Kojto 111:4336505e4b1c 47 #ifndef _SAMD21_PORT_COMPONENT_
Kojto 111:4336505e4b1c 48 #define _SAMD21_PORT_COMPONENT_
Kojto 111:4336505e4b1c 49
Kojto 111:4336505e4b1c 50 /* ========================================================================== */
Kojto 111:4336505e4b1c 51 /** SOFTWARE API DEFINITION FOR PORT */
Kojto 111:4336505e4b1c 52 /* ========================================================================== */
Kojto 111:4336505e4b1c 53 /** \addtogroup SAMD21_PORT Port Module */
Kojto 111:4336505e4b1c 54 /*@{*/
Kojto 111:4336505e4b1c 55
Kojto 111:4336505e4b1c 56 #define PORT_U2210
Kojto 111:4336505e4b1c 57 #define REV_PORT 0x100
Kojto 111:4336505e4b1c 58
Kojto 111:4336505e4b1c 59 /* -------- PORT_DIR : (PORT Offset: 0x00) (R/W 32) GROUP Data Direction -------- */
Kojto 111:4336505e4b1c 60 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
Kojto 111:4336505e4b1c 61 typedef union {
Kojto 111:4336505e4b1c 62 struct {
Kojto 111:4336505e4b1c 63 uint32_t DIR:32; /*!< bit: 0..31 Port Data Direction */
Kojto 111:4336505e4b1c 64 } bit; /*!< Structure used for bit access */
Kojto 111:4336505e4b1c 65 uint32_t reg; /*!< Type used for register access */
Kojto 111:4336505e4b1c 66 } PORT_DIR_Type;
Kojto 111:4336505e4b1c 67 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
Kojto 111:4336505e4b1c 68
Kojto 111:4336505e4b1c 69 #define PORT_DIR_OFFSET 0x00 /**< \brief (PORT_DIR offset) Data Direction */
Kojto 111:4336505e4b1c 70 #define PORT_DIR_RESETVALUE 0x00000000ul /**< \brief (PORT_DIR reset_value) Data Direction */
Kojto 111:4336505e4b1c 71
Kojto 111:4336505e4b1c 72 #define PORT_DIR_DIR_Pos 0 /**< \brief (PORT_DIR) Port Data Direction */
Kojto 111:4336505e4b1c 73 #define PORT_DIR_DIR_Msk (0xFFFFFFFFul << PORT_DIR_DIR_Pos)
Kojto 111:4336505e4b1c 74 #define PORT_DIR_DIR(value) ((PORT_DIR_DIR_Msk & ((value) << PORT_DIR_DIR_Pos)))
Kojto 111:4336505e4b1c 75 #define PORT_DIR_MASK 0xFFFFFFFFul /**< \brief (PORT_DIR) MASK Register */
Kojto 111:4336505e4b1c 76
Kojto 111:4336505e4b1c 77 /* -------- PORT_DIRCLR : (PORT Offset: 0x04) (R/W 32) GROUP Data Direction Clear -------- */
Kojto 111:4336505e4b1c 78 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
Kojto 111:4336505e4b1c 79 typedef union {
Kojto 111:4336505e4b1c 80 struct {
Kojto 111:4336505e4b1c 81 uint32_t DIRCLR:32; /*!< bit: 0..31 Port Data Direction Clear */
Kojto 111:4336505e4b1c 82 } bit; /*!< Structure used for bit access */
Kojto 111:4336505e4b1c 83 uint32_t reg; /*!< Type used for register access */
Kojto 111:4336505e4b1c 84 } PORT_DIRCLR_Type;
Kojto 111:4336505e4b1c 85 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
Kojto 111:4336505e4b1c 86
Kojto 111:4336505e4b1c 87 #define PORT_DIRCLR_OFFSET 0x04 /**< \brief (PORT_DIRCLR offset) Data Direction Clear */
Kojto 111:4336505e4b1c 88 #define PORT_DIRCLR_RESETVALUE 0x00000000ul /**< \brief (PORT_DIRCLR reset_value) Data Direction Clear */
Kojto 111:4336505e4b1c 89
Kojto 111:4336505e4b1c 90 #define PORT_DIRCLR_DIRCLR_Pos 0 /**< \brief (PORT_DIRCLR) Port Data Direction Clear */
Kojto 111:4336505e4b1c 91 #define PORT_DIRCLR_DIRCLR_Msk (0xFFFFFFFFul << PORT_DIRCLR_DIRCLR_Pos)
Kojto 111:4336505e4b1c 92 #define PORT_DIRCLR_DIRCLR(value) ((PORT_DIRCLR_DIRCLR_Msk & ((value) << PORT_DIRCLR_DIRCLR_Pos)))
Kojto 111:4336505e4b1c 93 #define PORT_DIRCLR_MASK 0xFFFFFFFFul /**< \brief (PORT_DIRCLR) MASK Register */
Kojto 111:4336505e4b1c 94
Kojto 111:4336505e4b1c 95 /* -------- PORT_DIRSET : (PORT Offset: 0x08) (R/W 32) GROUP Data Direction Set -------- */
Kojto 111:4336505e4b1c 96 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
Kojto 111:4336505e4b1c 97 typedef union {
Kojto 111:4336505e4b1c 98 struct {
Kojto 111:4336505e4b1c 99 uint32_t DIRSET:32; /*!< bit: 0..31 Port Data Direction Set */
Kojto 111:4336505e4b1c 100 } bit; /*!< Structure used for bit access */
Kojto 111:4336505e4b1c 101 uint32_t reg; /*!< Type used for register access */
Kojto 111:4336505e4b1c 102 } PORT_DIRSET_Type;
Kojto 111:4336505e4b1c 103 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
Kojto 111:4336505e4b1c 104
Kojto 111:4336505e4b1c 105 #define PORT_DIRSET_OFFSET 0x08 /**< \brief (PORT_DIRSET offset) Data Direction Set */
Kojto 111:4336505e4b1c 106 #define PORT_DIRSET_RESETVALUE 0x00000000ul /**< \brief (PORT_DIRSET reset_value) Data Direction Set */
Kojto 111:4336505e4b1c 107
Kojto 111:4336505e4b1c 108 #define PORT_DIRSET_DIRSET_Pos 0 /**< \brief (PORT_DIRSET) Port Data Direction Set */
Kojto 111:4336505e4b1c 109 #define PORT_DIRSET_DIRSET_Msk (0xFFFFFFFFul << PORT_DIRSET_DIRSET_Pos)
Kojto 111:4336505e4b1c 110 #define PORT_DIRSET_DIRSET(value) ((PORT_DIRSET_DIRSET_Msk & ((value) << PORT_DIRSET_DIRSET_Pos)))
Kojto 111:4336505e4b1c 111 #define PORT_DIRSET_MASK 0xFFFFFFFFul /**< \brief (PORT_DIRSET) MASK Register */
Kojto 111:4336505e4b1c 112
Kojto 111:4336505e4b1c 113 /* -------- PORT_DIRTGL : (PORT Offset: 0x0C) (R/W 32) GROUP Data Direction Toggle -------- */
Kojto 111:4336505e4b1c 114 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
Kojto 111:4336505e4b1c 115 typedef union {
Kojto 111:4336505e4b1c 116 struct {
Kojto 111:4336505e4b1c 117 uint32_t DIRTGL:32; /*!< bit: 0..31 Port Data Direction Toggle */
Kojto 111:4336505e4b1c 118 } bit; /*!< Structure used for bit access */
Kojto 111:4336505e4b1c 119 uint32_t reg; /*!< Type used for register access */
Kojto 111:4336505e4b1c 120 } PORT_DIRTGL_Type;
Kojto 111:4336505e4b1c 121 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
Kojto 111:4336505e4b1c 122
Kojto 111:4336505e4b1c 123 #define PORT_DIRTGL_OFFSET 0x0C /**< \brief (PORT_DIRTGL offset) Data Direction Toggle */
Kojto 111:4336505e4b1c 124 #define PORT_DIRTGL_RESETVALUE 0x00000000ul /**< \brief (PORT_DIRTGL reset_value) Data Direction Toggle */
Kojto 111:4336505e4b1c 125
Kojto 111:4336505e4b1c 126 #define PORT_DIRTGL_DIRTGL_Pos 0 /**< \brief (PORT_DIRTGL) Port Data Direction Toggle */
Kojto 111:4336505e4b1c 127 #define PORT_DIRTGL_DIRTGL_Msk (0xFFFFFFFFul << PORT_DIRTGL_DIRTGL_Pos)
Kojto 111:4336505e4b1c 128 #define PORT_DIRTGL_DIRTGL(value) ((PORT_DIRTGL_DIRTGL_Msk & ((value) << PORT_DIRTGL_DIRTGL_Pos)))
Kojto 111:4336505e4b1c 129 #define PORT_DIRTGL_MASK 0xFFFFFFFFul /**< \brief (PORT_DIRTGL) MASK Register */
Kojto 111:4336505e4b1c 130
Kojto 111:4336505e4b1c 131 /* -------- PORT_OUT : (PORT Offset: 0x10) (R/W 32) GROUP Data Output Value -------- */
Kojto 111:4336505e4b1c 132 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
Kojto 111:4336505e4b1c 133 typedef union {
Kojto 111:4336505e4b1c 134 struct {
Kojto 111:4336505e4b1c 135 uint32_t OUT:32; /*!< bit: 0..31 Port Data Output Value */
Kojto 111:4336505e4b1c 136 } bit; /*!< Structure used for bit access */
Kojto 111:4336505e4b1c 137 uint32_t reg; /*!< Type used for register access */
Kojto 111:4336505e4b1c 138 } PORT_OUT_Type;
Kojto 111:4336505e4b1c 139 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
Kojto 111:4336505e4b1c 140
Kojto 111:4336505e4b1c 141 #define PORT_OUT_OFFSET 0x10 /**< \brief (PORT_OUT offset) Data Output Value */
Kojto 111:4336505e4b1c 142 #define PORT_OUT_RESETVALUE 0x00000000ul /**< \brief (PORT_OUT reset_value) Data Output Value */
Kojto 111:4336505e4b1c 143
Kojto 111:4336505e4b1c 144 #define PORT_OUT_OUT_Pos 0 /**< \brief (PORT_OUT) Port Data Output Value */
Kojto 111:4336505e4b1c 145 #define PORT_OUT_OUT_Msk (0xFFFFFFFFul << PORT_OUT_OUT_Pos)
Kojto 111:4336505e4b1c 146 #define PORT_OUT_OUT(value) ((PORT_OUT_OUT_Msk & ((value) << PORT_OUT_OUT_Pos)))
Kojto 111:4336505e4b1c 147 #define PORT_OUT_MASK 0xFFFFFFFFul /**< \brief (PORT_OUT) MASK Register */
Kojto 111:4336505e4b1c 148
Kojto 111:4336505e4b1c 149 /* -------- PORT_OUTCLR : (PORT Offset: 0x14) (R/W 32) GROUP Data Output Value Clear -------- */
Kojto 111:4336505e4b1c 150 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
Kojto 111:4336505e4b1c 151 typedef union {
Kojto 111:4336505e4b1c 152 struct {
Kojto 111:4336505e4b1c 153 uint32_t OUTCLR:32; /*!< bit: 0..31 Port Data Output Value Clear */
Kojto 111:4336505e4b1c 154 } bit; /*!< Structure used for bit access */
Kojto 111:4336505e4b1c 155 uint32_t reg; /*!< Type used for register access */
Kojto 111:4336505e4b1c 156 } PORT_OUTCLR_Type;
Kojto 111:4336505e4b1c 157 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
Kojto 111:4336505e4b1c 158
Kojto 111:4336505e4b1c 159 #define PORT_OUTCLR_OFFSET 0x14 /**< \brief (PORT_OUTCLR offset) Data Output Value Clear */
Kojto 111:4336505e4b1c 160 #define PORT_OUTCLR_RESETVALUE 0x00000000ul /**< \brief (PORT_OUTCLR reset_value) Data Output Value Clear */
Kojto 111:4336505e4b1c 161
Kojto 111:4336505e4b1c 162 #define PORT_OUTCLR_OUTCLR_Pos 0 /**< \brief (PORT_OUTCLR) Port Data Output Value Clear */
Kojto 111:4336505e4b1c 163 #define PORT_OUTCLR_OUTCLR_Msk (0xFFFFFFFFul << PORT_OUTCLR_OUTCLR_Pos)
Kojto 111:4336505e4b1c 164 #define PORT_OUTCLR_OUTCLR(value) ((PORT_OUTCLR_OUTCLR_Msk & ((value) << PORT_OUTCLR_OUTCLR_Pos)))
Kojto 111:4336505e4b1c 165 #define PORT_OUTCLR_MASK 0xFFFFFFFFul /**< \brief (PORT_OUTCLR) MASK Register */
Kojto 111:4336505e4b1c 166
Kojto 111:4336505e4b1c 167 /* -------- PORT_OUTSET : (PORT Offset: 0x18) (R/W 32) GROUP Data Output Value Set -------- */
Kojto 111:4336505e4b1c 168 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
Kojto 111:4336505e4b1c 169 typedef union {
Kojto 111:4336505e4b1c 170 struct {
Kojto 111:4336505e4b1c 171 uint32_t OUTSET:32; /*!< bit: 0..31 Port Data Output Value Set */
Kojto 111:4336505e4b1c 172 } bit; /*!< Structure used for bit access */
Kojto 111:4336505e4b1c 173 uint32_t reg; /*!< Type used for register access */
Kojto 111:4336505e4b1c 174 } PORT_OUTSET_Type;
Kojto 111:4336505e4b1c 175 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
Kojto 111:4336505e4b1c 176
Kojto 111:4336505e4b1c 177 #define PORT_OUTSET_OFFSET 0x18 /**< \brief (PORT_OUTSET offset) Data Output Value Set */
Kojto 111:4336505e4b1c 178 #define PORT_OUTSET_RESETVALUE 0x00000000ul /**< \brief (PORT_OUTSET reset_value) Data Output Value Set */
Kojto 111:4336505e4b1c 179
Kojto 111:4336505e4b1c 180 #define PORT_OUTSET_OUTSET_Pos 0 /**< \brief (PORT_OUTSET) Port Data Output Value Set */
Kojto 111:4336505e4b1c 181 #define PORT_OUTSET_OUTSET_Msk (0xFFFFFFFFul << PORT_OUTSET_OUTSET_Pos)
Kojto 111:4336505e4b1c 182 #define PORT_OUTSET_OUTSET(value) ((PORT_OUTSET_OUTSET_Msk & ((value) << PORT_OUTSET_OUTSET_Pos)))
Kojto 111:4336505e4b1c 183 #define PORT_OUTSET_MASK 0xFFFFFFFFul /**< \brief (PORT_OUTSET) MASK Register */
Kojto 111:4336505e4b1c 184
Kojto 111:4336505e4b1c 185 /* -------- PORT_OUTTGL : (PORT Offset: 0x1C) (R/W 32) GROUP Data Output Value Toggle -------- */
Kojto 111:4336505e4b1c 186 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
Kojto 111:4336505e4b1c 187 typedef union {
Kojto 111:4336505e4b1c 188 struct {
Kojto 111:4336505e4b1c 189 uint32_t OUTTGL:32; /*!< bit: 0..31 Port Data Output Value Toggle */
Kojto 111:4336505e4b1c 190 } bit; /*!< Structure used for bit access */
Kojto 111:4336505e4b1c 191 uint32_t reg; /*!< Type used for register access */
Kojto 111:4336505e4b1c 192 } PORT_OUTTGL_Type;
Kojto 111:4336505e4b1c 193 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
Kojto 111:4336505e4b1c 194
Kojto 111:4336505e4b1c 195 #define PORT_OUTTGL_OFFSET 0x1C /**< \brief (PORT_OUTTGL offset) Data Output Value Toggle */
Kojto 111:4336505e4b1c 196 #define PORT_OUTTGL_RESETVALUE 0x00000000ul /**< \brief (PORT_OUTTGL reset_value) Data Output Value Toggle */
Kojto 111:4336505e4b1c 197
Kojto 111:4336505e4b1c 198 #define PORT_OUTTGL_OUTTGL_Pos 0 /**< \brief (PORT_OUTTGL) Port Data Output Value Toggle */
Kojto 111:4336505e4b1c 199 #define PORT_OUTTGL_OUTTGL_Msk (0xFFFFFFFFul << PORT_OUTTGL_OUTTGL_Pos)
Kojto 111:4336505e4b1c 200 #define PORT_OUTTGL_OUTTGL(value) ((PORT_OUTTGL_OUTTGL_Msk & ((value) << PORT_OUTTGL_OUTTGL_Pos)))
Kojto 111:4336505e4b1c 201 #define PORT_OUTTGL_MASK 0xFFFFFFFFul /**< \brief (PORT_OUTTGL) MASK Register */
Kojto 111:4336505e4b1c 202
Kojto 111:4336505e4b1c 203 /* -------- PORT_IN : (PORT Offset: 0x20) (R/ 32) GROUP Data Input Value -------- */
Kojto 111:4336505e4b1c 204 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
Kojto 111:4336505e4b1c 205 typedef union {
Kojto 111:4336505e4b1c 206 struct {
Kojto 111:4336505e4b1c 207 uint32_t IN:32; /*!< bit: 0..31 Port Data Input Value */
Kojto 111:4336505e4b1c 208 } bit; /*!< Structure used for bit access */
Kojto 111:4336505e4b1c 209 uint32_t reg; /*!< Type used for register access */
Kojto 111:4336505e4b1c 210 } PORT_IN_Type;
Kojto 111:4336505e4b1c 211 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
Kojto 111:4336505e4b1c 212
Kojto 111:4336505e4b1c 213 #define PORT_IN_OFFSET 0x20 /**< \brief (PORT_IN offset) Data Input Value */
Kojto 111:4336505e4b1c 214 #define PORT_IN_RESETVALUE 0x00000000ul /**< \brief (PORT_IN reset_value) Data Input Value */
Kojto 111:4336505e4b1c 215
Kojto 111:4336505e4b1c 216 #define PORT_IN_IN_Pos 0 /**< \brief (PORT_IN) Port Data Input Value */
Kojto 111:4336505e4b1c 217 #define PORT_IN_IN_Msk (0xFFFFFFFFul << PORT_IN_IN_Pos)
Kojto 111:4336505e4b1c 218 #define PORT_IN_IN(value) ((PORT_IN_IN_Msk & ((value) << PORT_IN_IN_Pos)))
Kojto 111:4336505e4b1c 219 #define PORT_IN_MASK 0xFFFFFFFFul /**< \brief (PORT_IN) MASK Register */
Kojto 111:4336505e4b1c 220
Kojto 111:4336505e4b1c 221 /* -------- PORT_CTRL : (PORT Offset: 0x24) (R/W 32) GROUP Control -------- */
Kojto 111:4336505e4b1c 222 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
Kojto 111:4336505e4b1c 223 typedef union {
Kojto 111:4336505e4b1c 224 struct {
Kojto 111:4336505e4b1c 225 uint32_t SAMPLING:32; /*!< bit: 0..31 Input Sampling Mode */
Kojto 111:4336505e4b1c 226 } bit; /*!< Structure used for bit access */
Kojto 111:4336505e4b1c 227 uint32_t reg; /*!< Type used for register access */
Kojto 111:4336505e4b1c 228 } PORT_CTRL_Type;
Kojto 111:4336505e4b1c 229 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
Kojto 111:4336505e4b1c 230
Kojto 111:4336505e4b1c 231 #define PORT_CTRL_OFFSET 0x24 /**< \brief (PORT_CTRL offset) Control */
Kojto 111:4336505e4b1c 232 #define PORT_CTRL_RESETVALUE 0x00000000ul /**< \brief (PORT_CTRL reset_value) Control */
Kojto 111:4336505e4b1c 233
Kojto 111:4336505e4b1c 234 #define PORT_CTRL_SAMPLING_Pos 0 /**< \brief (PORT_CTRL) Input Sampling Mode */
Kojto 111:4336505e4b1c 235 #define PORT_CTRL_SAMPLING_Msk (0xFFFFFFFFul << PORT_CTRL_SAMPLING_Pos)
Kojto 111:4336505e4b1c 236 #define PORT_CTRL_SAMPLING(value) ((PORT_CTRL_SAMPLING_Msk & ((value) << PORT_CTRL_SAMPLING_Pos)))
Kojto 111:4336505e4b1c 237 #define PORT_CTRL_MASK 0xFFFFFFFFul /**< \brief (PORT_CTRL) MASK Register */
Kojto 111:4336505e4b1c 238
Kojto 111:4336505e4b1c 239 /* -------- PORT_WRCONFIG : (PORT Offset: 0x28) ( /W 32) GROUP Write Configuration -------- */
Kojto 111:4336505e4b1c 240 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
Kojto 111:4336505e4b1c 241 typedef union {
Kojto 111:4336505e4b1c 242 struct {
Kojto 111:4336505e4b1c 243 uint32_t PINMASK:16; /*!< bit: 0..15 Pin Mask for Multiple Pin Configuration */
Kojto 111:4336505e4b1c 244 uint32_t PMUXEN:1; /*!< bit: 16 Peripheral Multiplexer Enable */
Kojto 111:4336505e4b1c 245 uint32_t INEN:1; /*!< bit: 17 Input Enable */
Kojto 111:4336505e4b1c 246 uint32_t PULLEN:1; /*!< bit: 18 Pull Enable */
Kojto 111:4336505e4b1c 247 uint32_t :3; /*!< bit: 19..21 Reserved */
Kojto 111:4336505e4b1c 248 uint32_t DRVSTR:1; /*!< bit: 22 Output Driver Strength Selection */
Kojto 111:4336505e4b1c 249 uint32_t :1; /*!< bit: 23 Reserved */
Kojto 111:4336505e4b1c 250 uint32_t PMUX:4; /*!< bit: 24..27 Peripheral Multiplexing */
Kojto 111:4336505e4b1c 251 uint32_t WRPMUX:1; /*!< bit: 28 Write PMUX */
Kojto 111:4336505e4b1c 252 uint32_t :1; /*!< bit: 29 Reserved */
Kojto 111:4336505e4b1c 253 uint32_t WRPINCFG:1; /*!< bit: 30 Write PINCFG */
Kojto 111:4336505e4b1c 254 uint32_t HWSEL:1; /*!< bit: 31 Half-Word Select */
Kojto 111:4336505e4b1c 255 } bit; /*!< Structure used for bit access */
Kojto 111:4336505e4b1c 256 uint32_t reg; /*!< Type used for register access */
Kojto 111:4336505e4b1c 257 } PORT_WRCONFIG_Type;
Kojto 111:4336505e4b1c 258 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
Kojto 111:4336505e4b1c 259
Kojto 111:4336505e4b1c 260 #define PORT_WRCONFIG_OFFSET 0x28 /**< \brief (PORT_WRCONFIG offset) Write Configuration */
Kojto 111:4336505e4b1c 261 #define PORT_WRCONFIG_RESETVALUE 0x00000000ul /**< \brief (PORT_WRCONFIG reset_value) Write Configuration */
Kojto 111:4336505e4b1c 262
Kojto 111:4336505e4b1c 263 #define PORT_WRCONFIG_PINMASK_Pos 0 /**< \brief (PORT_WRCONFIG) Pin Mask for Multiple Pin Configuration */
Kojto 111:4336505e4b1c 264 #define PORT_WRCONFIG_PINMASK_Msk (0xFFFFul << PORT_WRCONFIG_PINMASK_Pos)
Kojto 111:4336505e4b1c 265 #define PORT_WRCONFIG_PINMASK(value) ((PORT_WRCONFIG_PINMASK_Msk & ((value) << PORT_WRCONFIG_PINMASK_Pos)))
Kojto 111:4336505e4b1c 266 #define PORT_WRCONFIG_PMUXEN_Pos 16 /**< \brief (PORT_WRCONFIG) Peripheral Multiplexer Enable */
Kojto 111:4336505e4b1c 267 #define PORT_WRCONFIG_PMUXEN (0x1ul << PORT_WRCONFIG_PMUXEN_Pos)
Kojto 111:4336505e4b1c 268 #define PORT_WRCONFIG_INEN_Pos 17 /**< \brief (PORT_WRCONFIG) Input Enable */
Kojto 111:4336505e4b1c 269 #define PORT_WRCONFIG_INEN (0x1ul << PORT_WRCONFIG_INEN_Pos)
Kojto 111:4336505e4b1c 270 #define PORT_WRCONFIG_PULLEN_Pos 18 /**< \brief (PORT_WRCONFIG) Pull Enable */
Kojto 111:4336505e4b1c 271 #define PORT_WRCONFIG_PULLEN (0x1ul << PORT_WRCONFIG_PULLEN_Pos)
Kojto 111:4336505e4b1c 272 #define PORT_WRCONFIG_DRVSTR_Pos 22 /**< \brief (PORT_WRCONFIG) Output Driver Strength Selection */
Kojto 111:4336505e4b1c 273 #define PORT_WRCONFIG_DRVSTR (0x1ul << PORT_WRCONFIG_DRVSTR_Pos)
Kojto 111:4336505e4b1c 274 #define PORT_WRCONFIG_PMUX_Pos 24 /**< \brief (PORT_WRCONFIG) Peripheral Multiplexing */
Kojto 111:4336505e4b1c 275 #define PORT_WRCONFIG_PMUX_Msk (0xFul << PORT_WRCONFIG_PMUX_Pos)
Kojto 111:4336505e4b1c 276 #define PORT_WRCONFIG_PMUX(value) ((PORT_WRCONFIG_PMUX_Msk & ((value) << PORT_WRCONFIG_PMUX_Pos)))
Kojto 111:4336505e4b1c 277 #define PORT_WRCONFIG_WRPMUX_Pos 28 /**< \brief (PORT_WRCONFIG) Write PMUX */
Kojto 111:4336505e4b1c 278 #define PORT_WRCONFIG_WRPMUX (0x1ul << PORT_WRCONFIG_WRPMUX_Pos)
Kojto 111:4336505e4b1c 279 #define PORT_WRCONFIG_WRPINCFG_Pos 30 /**< \brief (PORT_WRCONFIG) Write PINCFG */
Kojto 111:4336505e4b1c 280 #define PORT_WRCONFIG_WRPINCFG (0x1ul << PORT_WRCONFIG_WRPINCFG_Pos)
Kojto 111:4336505e4b1c 281 #define PORT_WRCONFIG_HWSEL_Pos 31 /**< \brief (PORT_WRCONFIG) Half-Word Select */
Kojto 111:4336505e4b1c 282 #define PORT_WRCONFIG_HWSEL (0x1ul << PORT_WRCONFIG_HWSEL_Pos)
Kojto 111:4336505e4b1c 283 #define PORT_WRCONFIG_MASK 0xDF47FFFFul /**< \brief (PORT_WRCONFIG) MASK Register */
Kojto 111:4336505e4b1c 284
Kojto 111:4336505e4b1c 285 /* -------- PORT_PMUX : (PORT Offset: 0x30) (R/W 8) GROUP Peripheral Multiplexing n -------- */
Kojto 111:4336505e4b1c 286 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
Kojto 111:4336505e4b1c 287 typedef union {
Kojto 111:4336505e4b1c 288 struct {
Kojto 111:4336505e4b1c 289 uint8_t PMUXE:4; /*!< bit: 0.. 3 Peripheral Multiplexing Even */
Kojto 111:4336505e4b1c 290 uint8_t PMUXO:4; /*!< bit: 4.. 7 Peripheral Multiplexing Odd */
Kojto 111:4336505e4b1c 291 } bit; /*!< Structure used for bit access */
Kojto 111:4336505e4b1c 292 uint8_t reg; /*!< Type used for register access */
Kojto 111:4336505e4b1c 293 } PORT_PMUX_Type;
Kojto 111:4336505e4b1c 294 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
Kojto 111:4336505e4b1c 295
Kojto 111:4336505e4b1c 296 #define PORT_PMUX_OFFSET 0x30 /**< \brief (PORT_PMUX offset) Peripheral Multiplexing n */
Kojto 111:4336505e4b1c 297 #define PORT_PMUX_RESETVALUE 0x00ul /**< \brief (PORT_PMUX reset_value) Peripheral Multiplexing n */
Kojto 111:4336505e4b1c 298
Kojto 111:4336505e4b1c 299 #define PORT_PMUX_PMUXE_Pos 0 /**< \brief (PORT_PMUX) Peripheral Multiplexing Even */
Kojto 111:4336505e4b1c 300 #define PORT_PMUX_PMUXE_Msk (0xFul << PORT_PMUX_PMUXE_Pos)
Kojto 111:4336505e4b1c 301 #define PORT_PMUX_PMUXE(value) ((PORT_PMUX_PMUXE_Msk & ((value) << PORT_PMUX_PMUXE_Pos)))
Kojto 111:4336505e4b1c 302 #define PORT_PMUX_PMUXE_A_Val 0x0ul /**< \brief (PORT_PMUX) Peripheral function A selected */
Kojto 111:4336505e4b1c 303 #define PORT_PMUX_PMUXE_B_Val 0x1ul /**< \brief (PORT_PMUX) Peripheral function B selected */
Kojto 111:4336505e4b1c 304 #define PORT_PMUX_PMUXE_C_Val 0x2ul /**< \brief (PORT_PMUX) Peripheral function C selected */
Kojto 111:4336505e4b1c 305 #define PORT_PMUX_PMUXE_D_Val 0x3ul /**< \brief (PORT_PMUX) Peripheral function D selected */
Kojto 111:4336505e4b1c 306 #define PORT_PMUX_PMUXE_E_Val 0x4ul /**< \brief (PORT_PMUX) Peripheral function E selected */
Kojto 111:4336505e4b1c 307 #define PORT_PMUX_PMUXE_F_Val 0x5ul /**< \brief (PORT_PMUX) Peripheral function F selected */
Kojto 111:4336505e4b1c 308 #define PORT_PMUX_PMUXE_G_Val 0x6ul /**< \brief (PORT_PMUX) Peripheral function G selected */
Kojto 111:4336505e4b1c 309 #define PORT_PMUX_PMUXE_H_Val 0x7ul /**< \brief (PORT_PMUX) Peripheral function H selected */
Kojto 111:4336505e4b1c 310 #define PORT_PMUX_PMUXE_A (PORT_PMUX_PMUXE_A_Val << PORT_PMUX_PMUXE_Pos)
Kojto 111:4336505e4b1c 311 #define PORT_PMUX_PMUXE_B (PORT_PMUX_PMUXE_B_Val << PORT_PMUX_PMUXE_Pos)
Kojto 111:4336505e4b1c 312 #define PORT_PMUX_PMUXE_C (PORT_PMUX_PMUXE_C_Val << PORT_PMUX_PMUXE_Pos)
Kojto 111:4336505e4b1c 313 #define PORT_PMUX_PMUXE_D (PORT_PMUX_PMUXE_D_Val << PORT_PMUX_PMUXE_Pos)
Kojto 111:4336505e4b1c 314 #define PORT_PMUX_PMUXE_E (PORT_PMUX_PMUXE_E_Val << PORT_PMUX_PMUXE_Pos)
Kojto 111:4336505e4b1c 315 #define PORT_PMUX_PMUXE_F (PORT_PMUX_PMUXE_F_Val << PORT_PMUX_PMUXE_Pos)
Kojto 111:4336505e4b1c 316 #define PORT_PMUX_PMUXE_G (PORT_PMUX_PMUXE_G_Val << PORT_PMUX_PMUXE_Pos)
Kojto 111:4336505e4b1c 317 #define PORT_PMUX_PMUXE_H (PORT_PMUX_PMUXE_H_Val << PORT_PMUX_PMUXE_Pos)
Kojto 111:4336505e4b1c 318 #define PORT_PMUX_PMUXO_Pos 4 /**< \brief (PORT_PMUX) Peripheral Multiplexing Odd */
Kojto 111:4336505e4b1c 319 #define PORT_PMUX_PMUXO_Msk (0xFul << PORT_PMUX_PMUXO_Pos)
Kojto 111:4336505e4b1c 320 #define PORT_PMUX_PMUXO(value) ((PORT_PMUX_PMUXO_Msk & ((value) << PORT_PMUX_PMUXO_Pos)))
Kojto 111:4336505e4b1c 321 #define PORT_PMUX_PMUXO_A_Val 0x0ul /**< \brief (PORT_PMUX) Peripheral function A selected */
Kojto 111:4336505e4b1c 322 #define PORT_PMUX_PMUXO_B_Val 0x1ul /**< \brief (PORT_PMUX) Peripheral function B selected */
Kojto 111:4336505e4b1c 323 #define PORT_PMUX_PMUXO_C_Val 0x2ul /**< \brief (PORT_PMUX) Peripheral function C selected */
Kojto 111:4336505e4b1c 324 #define PORT_PMUX_PMUXO_D_Val 0x3ul /**< \brief (PORT_PMUX) Peripheral function D selected */
Kojto 111:4336505e4b1c 325 #define PORT_PMUX_PMUXO_E_Val 0x4ul /**< \brief (PORT_PMUX) Peripheral function E selected */
Kojto 111:4336505e4b1c 326 #define PORT_PMUX_PMUXO_F_Val 0x5ul /**< \brief (PORT_PMUX) Peripheral function F selected */
Kojto 111:4336505e4b1c 327 #define PORT_PMUX_PMUXO_G_Val 0x6ul /**< \brief (PORT_PMUX) Peripheral function G selected */
Kojto 111:4336505e4b1c 328 #define PORT_PMUX_PMUXO_H_Val 0x7ul /**< \brief (PORT_PMUX) Peripheral function H selected */
Kojto 111:4336505e4b1c 329 #define PORT_PMUX_PMUXO_A (PORT_PMUX_PMUXO_A_Val << PORT_PMUX_PMUXO_Pos)
Kojto 111:4336505e4b1c 330 #define PORT_PMUX_PMUXO_B (PORT_PMUX_PMUXO_B_Val << PORT_PMUX_PMUXO_Pos)
Kojto 111:4336505e4b1c 331 #define PORT_PMUX_PMUXO_C (PORT_PMUX_PMUXO_C_Val << PORT_PMUX_PMUXO_Pos)
Kojto 111:4336505e4b1c 332 #define PORT_PMUX_PMUXO_D (PORT_PMUX_PMUXO_D_Val << PORT_PMUX_PMUXO_Pos)
Kojto 111:4336505e4b1c 333 #define PORT_PMUX_PMUXO_E (PORT_PMUX_PMUXO_E_Val << PORT_PMUX_PMUXO_Pos)
Kojto 111:4336505e4b1c 334 #define PORT_PMUX_PMUXO_F (PORT_PMUX_PMUXO_F_Val << PORT_PMUX_PMUXO_Pos)
Kojto 111:4336505e4b1c 335 #define PORT_PMUX_PMUXO_G (PORT_PMUX_PMUXO_G_Val << PORT_PMUX_PMUXO_Pos)
Kojto 111:4336505e4b1c 336 #define PORT_PMUX_PMUXO_H (PORT_PMUX_PMUXO_H_Val << PORT_PMUX_PMUXO_Pos)
Kojto 111:4336505e4b1c 337 #define PORT_PMUX_MASK 0xFFul /**< \brief (PORT_PMUX) MASK Register */
Kojto 111:4336505e4b1c 338
Kojto 111:4336505e4b1c 339 /* -------- PORT_PINCFG : (PORT Offset: 0x40) (R/W 8) GROUP Pin Configuration n -------- */
Kojto 111:4336505e4b1c 340 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
Kojto 111:4336505e4b1c 341 typedef union {
Kojto 111:4336505e4b1c 342 struct {
Kojto 111:4336505e4b1c 343 uint8_t PMUXEN:1; /*!< bit: 0 Peripheral Multiplexer Enable */
Kojto 111:4336505e4b1c 344 uint8_t INEN:1; /*!< bit: 1 Input Enable */
Kojto 111:4336505e4b1c 345 uint8_t PULLEN:1; /*!< bit: 2 Pull Enable */
Kojto 111:4336505e4b1c 346 uint8_t :3; /*!< bit: 3.. 5 Reserved */
Kojto 111:4336505e4b1c 347 uint8_t DRVSTR:1; /*!< bit: 6 Output Driver Strength Selection */
Kojto 111:4336505e4b1c 348 uint8_t :1; /*!< bit: 7 Reserved */
Kojto 111:4336505e4b1c 349 } bit; /*!< Structure used for bit access */
Kojto 111:4336505e4b1c 350 uint8_t reg; /*!< Type used for register access */
Kojto 111:4336505e4b1c 351 } PORT_PINCFG_Type;
Kojto 111:4336505e4b1c 352 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
Kojto 111:4336505e4b1c 353
Kojto 111:4336505e4b1c 354 #define PORT_PINCFG_OFFSET 0x40 /**< \brief (PORT_PINCFG offset) Pin Configuration n */
Kojto 111:4336505e4b1c 355 #define PORT_PINCFG_RESETVALUE 0x00ul /**< \brief (PORT_PINCFG reset_value) Pin Configuration n */
Kojto 111:4336505e4b1c 356
Kojto 111:4336505e4b1c 357 #define PORT_PINCFG_PMUXEN_Pos 0 /**< \brief (PORT_PINCFG) Peripheral Multiplexer Enable */
Kojto 111:4336505e4b1c 358 #define PORT_PINCFG_PMUXEN (0x1ul << PORT_PINCFG_PMUXEN_Pos)
Kojto 111:4336505e4b1c 359 #define PORT_PINCFG_INEN_Pos 1 /**< \brief (PORT_PINCFG) Input Enable */
Kojto 111:4336505e4b1c 360 #define PORT_PINCFG_INEN (0x1ul << PORT_PINCFG_INEN_Pos)
Kojto 111:4336505e4b1c 361 #define PORT_PINCFG_PULLEN_Pos 2 /**< \brief (PORT_PINCFG) Pull Enable */
Kojto 111:4336505e4b1c 362 #define PORT_PINCFG_PULLEN (0x1ul << PORT_PINCFG_PULLEN_Pos)
Kojto 111:4336505e4b1c 363 #define PORT_PINCFG_DRVSTR_Pos 6 /**< \brief (PORT_PINCFG) Output Driver Strength Selection */
Kojto 111:4336505e4b1c 364 #define PORT_PINCFG_DRVSTR (0x1ul << PORT_PINCFG_DRVSTR_Pos)
Kojto 111:4336505e4b1c 365 #define PORT_PINCFG_MASK 0x47ul /**< \brief (PORT_PINCFG) MASK Register */
Kojto 111:4336505e4b1c 366
Kojto 111:4336505e4b1c 367 /** \brief PortGroup hardware registers */
Kojto 111:4336505e4b1c 368 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
Kojto 111:4336505e4b1c 369 typedef struct {
Kojto 111:4336505e4b1c 370 __IO PORT_DIR_Type DIR; /**< \brief Offset: 0x00 (R/W 32) Data Direction */
Kojto 111:4336505e4b1c 371 __IO PORT_DIRCLR_Type DIRCLR; /**< \brief Offset: 0x04 (R/W 32) Data Direction Clear */
Kojto 111:4336505e4b1c 372 __IO PORT_DIRSET_Type DIRSET; /**< \brief Offset: 0x08 (R/W 32) Data Direction Set */
Kojto 111:4336505e4b1c 373 __IO PORT_DIRTGL_Type DIRTGL; /**< \brief Offset: 0x0C (R/W 32) Data Direction Toggle */
Kojto 111:4336505e4b1c 374 __IO PORT_OUT_Type OUT; /**< \brief Offset: 0x10 (R/W 32) Data Output Value */
Kojto 111:4336505e4b1c 375 __IO PORT_OUTCLR_Type OUTCLR; /**< \brief Offset: 0x14 (R/W 32) Data Output Value Clear */
Kojto 111:4336505e4b1c 376 __IO PORT_OUTSET_Type OUTSET; /**< \brief Offset: 0x18 (R/W 32) Data Output Value Set */
Kojto 111:4336505e4b1c 377 __IO PORT_OUTTGL_Type OUTTGL; /**< \brief Offset: 0x1C (R/W 32) Data Output Value Toggle */
Kojto 111:4336505e4b1c 378 __I PORT_IN_Type IN; /**< \brief Offset: 0x20 (R/ 32) Data Input Value */
Kojto 111:4336505e4b1c 379 __IO PORT_CTRL_Type CTRL; /**< \brief Offset: 0x24 (R/W 32) Control */
Kojto 111:4336505e4b1c 380 __O PORT_WRCONFIG_Type WRCONFIG; /**< \brief Offset: 0x28 ( /W 32) Write Configuration */
Kojto 111:4336505e4b1c 381 RoReg8 Reserved1[0x4];
Kojto 111:4336505e4b1c 382 __IO PORT_PMUX_Type PMUX[16]; /**< \brief Offset: 0x30 (R/W 8) Peripheral Multiplexing n */
Kojto 111:4336505e4b1c 383 __IO PORT_PINCFG_Type PINCFG[32]; /**< \brief Offset: 0x40 (R/W 8) Pin Configuration n */
Kojto 111:4336505e4b1c 384 RoReg8 Reserved2[0x20];
Kojto 111:4336505e4b1c 385 } PortGroup;
Kojto 111:4336505e4b1c 386 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
Kojto 111:4336505e4b1c 387
Kojto 111:4336505e4b1c 388 /** \brief PORT hardware registers */
Kojto 111:4336505e4b1c 389 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
Kojto 111:4336505e4b1c 390 typedef struct {
Kojto 111:4336505e4b1c 391 PortGroup Group[2]; /**< \brief Offset: 0x00 PortGroup groups [GROUPS] */
Kojto 111:4336505e4b1c 392 } Port;
Kojto 111:4336505e4b1c 393 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
Kojto 111:4336505e4b1c 394 #define SECTION_PORT_IOBUS
Kojto 111:4336505e4b1c 395
Kojto 111:4336505e4b1c 396 /*@}*/
Kojto 111:4336505e4b1c 397
Kojto 111:4336505e4b1c 398 #endif /* _SAMD21_PORT_COMPONENT_ */