mbed library sources. Supersedes mbed-src.

Fork of mbed-dev by mbed official

Committer:
fwndz
Date:
Thu Dec 22 05:12:40 2016 +0000
Revision:
153:9398a535854b
Parent:
149:156823d33999
device target maximize

Who changed what in which revision?

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