mbed library sources. Supersedes mbed-src.

Fork of mbed-dev by mbed official

Committer:
mbed_official
Date:
Mon Nov 09 13:30:11 2015 +0000
Revision:
18:da299f395b9e
Synchronized with git revision f605825f66bb2e462ff7dbc5fb4ed2dbe979d1c3

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

Added support for SAML21

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 18:da299f395b9e 1 /* mbed Microcontroller Library
mbed_official 18:da299f395b9e 2 * Copyright (c) 2006-2013 ARM Limited
mbed_official 18:da299f395b9e 3 *
mbed_official 18:da299f395b9e 4 * Licensed under the Apache License, Version 2.0 (the "License");
mbed_official 18:da299f395b9e 5 * you may not use this file except in compliance with the License.
mbed_official 18:da299f395b9e 6 * You may obtain a copy of the License at
mbed_official 18:da299f395b9e 7 *
mbed_official 18:da299f395b9e 8 * http://www.apache.org/licenses/LICENSE-2.0
mbed_official 18:da299f395b9e 9 *
mbed_official 18:da299f395b9e 10 * Unless required by applicable law or agreed to in writing, software
mbed_official 18:da299f395b9e 11 * distributed under the License is distributed on an "AS IS" BASIS,
mbed_official 18:da299f395b9e 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
mbed_official 18:da299f395b9e 13 * See the License for the specific language governing permissions and
mbed_official 18:da299f395b9e 14 * limitations under the License.
mbed_official 18:da299f395b9e 15 */
mbed_official 18:da299f395b9e 16 #ifndef MBED_PERIPHERALNAMES_H
mbed_official 18:da299f395b9e 17 #define MBED_PERIPHERALNAMES_H
mbed_official 18:da299f395b9e 18
mbed_official 18:da299f395b9e 19 #include <compiler.h>
mbed_official 18:da299f395b9e 20 #include "cmsis.h"
mbed_official 18:da299f395b9e 21 #include "PinNames.h"
mbed_official 18:da299f395b9e 22
mbed_official 18:da299f395b9e 23 #ifdef __cplusplus
mbed_official 18:da299f395b9e 24 extern "C" {
mbed_official 18:da299f395b9e 25 #endif
mbed_official 18:da299f395b9e 26
mbed_official 18:da299f395b9e 27 #define _SERCOM_SPI_NAME(n, unused) \
mbed_official 18:da299f395b9e 28 SPI##n,
mbed_official 18:da299f395b9e 29
mbed_official 18:da299f395b9e 30 #define _SERCOM_PAD_NAME(n, pad) \
mbed_official 18:da299f395b9e 31 SERCOM##n##_PAD##pad = ((n & 0xF) | ((pad & 0xF) << 4)),
mbed_official 18:da299f395b9e 32
mbed_official 18:da299f395b9e 33 #define _SERCOM_I2C_NAME(n, unused) \
mbed_official 18:da299f395b9e 34 I2C##n,
mbed_official 18:da299f395b9e 35
mbed_official 18:da299f395b9e 36
mbed_official 18:da299f395b9e 37
mbed_official 18:da299f395b9e 38 typedef enum {
mbed_official 18:da299f395b9e 39 UART_0 = (int)0x42000000UL, // Base address of SERCOM0
mbed_official 18:da299f395b9e 40 UART_1 = (int)0x42000400UL, // Base address of SERCOM1
mbed_official 18:da299f395b9e 41 UART_2 = (int)0x42000800UL, // Base address of SERCOM2
mbed_official 18:da299f395b9e 42 UART_3 = (int)0x42000C00UL, // Base address of SERCOM3
mbed_official 18:da299f395b9e 43 UART_4 = (int)0x42001000UL, // Base address of SERCOM4
mbed_official 18:da299f395b9e 44 UART_5 = (int)0x43000400UL // Base address of SERCOM5
mbed_official 18:da299f395b9e 45 } UARTName;
mbed_official 18:da299f395b9e 46
mbed_official 18:da299f395b9e 47 typedef enum {
mbed_official 18:da299f395b9e 48 ADC_0 = 0x0ul,
mbed_official 18:da299f395b9e 49 ADC_1 = 0x1ul,
mbed_official 18:da299f395b9e 50 ADC_2 = 0x2ul,
mbed_official 18:da299f395b9e 51 ADC_3 = 0x3ul,
mbed_official 18:da299f395b9e 52 ADC_4 = 0x4ul,
mbed_official 18:da299f395b9e 53 ADC_5 = 0x5ul,
mbed_official 18:da299f395b9e 54 ADC_6 = 0x6ul,
mbed_official 18:da299f395b9e 55 ADC_7 = 0x7ul,
mbed_official 18:da299f395b9e 56 ADC_8 = 0x8ul,
mbed_official 18:da299f395b9e 57 ADC_9 = 0x9ul,
mbed_official 18:da299f395b9e 58 ADC_10 = 0xAul,
mbed_official 18:da299f395b9e 59 ADC_11 = 0xBul,
mbed_official 18:da299f395b9e 60 ADC_12 = 0xCul,
mbed_official 18:da299f395b9e 61 ADC_13 = 0xDul,
mbed_official 18:da299f395b9e 62 ADC_14 = 0xEul,
mbed_official 18:da299f395b9e 63 ADC_15 = 0xFul,
mbed_official 18:da299f395b9e 64 ADC_16 = 0x10ul,
mbed_official 18:da299f395b9e 65 ADC_17 = 0x11ul,
mbed_official 18:da299f395b9e 66 ADC_18 = 0x12ul,
mbed_official 18:da299f395b9e 67 ADC_19 = 0x13ul
mbed_official 18:da299f395b9e 68 } ADCName;
mbed_official 18:da299f395b9e 69
mbed_official 18:da299f395b9e 70 typedef enum {
mbed_official 18:da299f395b9e 71 DAC_0 = 0x42003000UL
mbed_official 18:da299f395b9e 72 } DACName;
mbed_official 18:da299f395b9e 73
mbed_official 18:da299f395b9e 74 typedef enum { // for each channel
mbed_official 18:da299f395b9e 75 EXTINT_0 = 0,
mbed_official 18:da299f395b9e 76 EXTINT_1,
mbed_official 18:da299f395b9e 77 EXTINT_2,
mbed_official 18:da299f395b9e 78 EXTINT_3,
mbed_official 18:da299f395b9e 79 EXTINT_4,
mbed_official 18:da299f395b9e 80 EXTINT_5,
mbed_official 18:da299f395b9e 81 EXTINT_6,
mbed_official 18:da299f395b9e 82 EXTINT_7,
mbed_official 18:da299f395b9e 83 EXTINT_8,
mbed_official 18:da299f395b9e 84 EXTINT_9,
mbed_official 18:da299f395b9e 85 EXTINT_10,
mbed_official 18:da299f395b9e 86 EXTINT_11,
mbed_official 18:da299f395b9e 87 EXTINT_12,
mbed_official 18:da299f395b9e 88 EXTINT_13,
mbed_official 18:da299f395b9e 89 EXTINT_14,
mbed_official 18:da299f395b9e 90 EXTINT_15
mbed_official 18:da299f395b9e 91 } EXTINTName;
mbed_official 18:da299f395b9e 92
mbed_official 18:da299f395b9e 93 typedef enum {
mbed_official 18:da299f395b9e 94 MREPEAT(SERCOM_INST_NUM, _SERCOM_SPI_NAME, ~)
mbed_official 18:da299f395b9e 95 } SPIName;
mbed_official 18:da299f395b9e 96
mbed_official 18:da299f395b9e 97 typedef enum {
mbed_official 18:da299f395b9e 98 MREPEAT(SERCOM_INST_NUM, _SERCOM_I2C_NAME, ~)
mbed_official 18:da299f395b9e 99 } I2CName;
mbed_official 18:da299f395b9e 100
mbed_official 18:da299f395b9e 101 typedef enum {
mbed_official 18:da299f395b9e 102 /* Pad 0 definitions */
mbed_official 18:da299f395b9e 103 MREPEAT(SERCOM_INST_NUM, _SERCOM_PAD_NAME, 0)
mbed_official 18:da299f395b9e 104
mbed_official 18:da299f395b9e 105 /* Pad 1 definitions */
mbed_official 18:da299f395b9e 106 MREPEAT(SERCOM_INST_NUM, _SERCOM_PAD_NAME, 1)
mbed_official 18:da299f395b9e 107
mbed_official 18:da299f395b9e 108 /* Pad 2 definitions */
mbed_official 18:da299f395b9e 109 MREPEAT(SERCOM_INST_NUM, _SERCOM_PAD_NAME, 2)
mbed_official 18:da299f395b9e 110
mbed_official 18:da299f395b9e 111 /* Pad 3 definitions */
mbed_official 18:da299f395b9e 112 MREPEAT(SERCOM_INST_NUM, _SERCOM_PAD_NAME, 3)
mbed_official 18:da299f395b9e 113 } SercomPadName;
mbed_official 18:da299f395b9e 114
mbed_official 18:da299f395b9e 115 typedef enum {
mbed_official 18:da299f395b9e 116 PWM_0 = (0x42001400UL), /**< \brief (TCC0) APB Base Address */
mbed_official 18:da299f395b9e 117 PWM_1 = (0x42001800UL), /**< \brief (TCC1) APB Base Address */
mbed_official 18:da299f395b9e 118 PWM_2 = (0x42001C00UL), /**< \brief (TCC2) APB Base Address */
mbed_official 18:da299f395b9e 119 } PWMName;
mbed_official 18:da299f395b9e 120
mbed_official 18:da299f395b9e 121 struct pwm_pin_channel {
mbed_official 18:da299f395b9e 122 PinName pin;
mbed_official 18:da299f395b9e 123 PWMName pwm;
mbed_official 18:da299f395b9e 124 uint8_t channel_index;
mbed_official 18:da299f395b9e 125 };
mbed_official 18:da299f395b9e 126
mbed_official 18:da299f395b9e 127 struct dac_pin_channel {
mbed_official 18:da299f395b9e 128 PinName pin;
mbed_official 18:da299f395b9e 129 DACName dac;
mbed_official 18:da299f395b9e 130 uint8_t channel_index;
mbed_official 18:da299f395b9e 131 };
mbed_official 18:da299f395b9e 132
mbed_official 18:da299f395b9e 133 #define STDIO_UART_TX USBTX
mbed_official 18:da299f395b9e 134 #define STDIO_UART_RX USBRX
mbed_official 18:da299f395b9e 135 #define STDIO_UART UART_3
mbed_official 18:da299f395b9e 136
mbed_official 18:da299f395b9e 137 // Default peripherals
mbed_official 18:da299f395b9e 138 #define MBED_SPI0 PA06, PA04, PA07, PA05
mbed_official 18:da299f395b9e 139
mbed_official 18:da299f395b9e 140 #define MBED_UART0 PB08, PB09
mbed_official 18:da299f395b9e 141 #define MBED_UARTUSB USBTX, USBRX
mbed_official 18:da299f395b9e 142
mbed_official 18:da299f395b9e 143 #define MBED_I2C0 PA08, PA09
mbed_official 18:da299f395b9e 144
mbed_official 18:da299f395b9e 145 #define MBED_ANALOGIN0 PB05
mbed_official 18:da299f395b9e 146 #define MBED_ANALOGIN1 PA03
mbed_official 18:da299f395b9e 147 #define MBED_ANALOGIN2 PA06
mbed_official 18:da299f395b9e 148 #define MBED_ANALOGIN3 PA07
mbed_official 18:da299f395b9e 149 #define MBED_ANALOGIN4 PB02
mbed_official 18:da299f395b9e 150 #define MBED_ANALOGIN5 PB03
mbed_official 18:da299f395b9e 151 #define MBED_ANALOGIN7 PA08
mbed_official 18:da299f395b9e 152 #define MBED_ANALOGIN8 PA09
mbed_official 18:da299f395b9e 153
mbed_official 18:da299f395b9e 154 #define MBED_PWMOUT0 PB12
mbed_official 18:da299f395b9e 155 #define MBED_PWMOUT1 PB13
mbed_official 18:da299f395b9e 156
mbed_official 18:da299f395b9e 157 #ifdef __cplusplus
mbed_official 18:da299f395b9e 158 }
mbed_official 18:da299f395b9e 159 #endif
mbed_official 18:da299f395b9e 160
mbed_official 18:da299f395b9e 161 #endif