mbed library sources

Fork of mbed-src by mbed official

Committer:
mbed_official
Date:
Mon Jul 20 09:00:09 2015 +0100
Revision:
593:78ee8643776a
Parent:
556:a217bc785985
Child:
627:4fa1328d9c60
Synchronized with git revision a68b724d07788e6389ea4d52c622aad767953758

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

[Silicon Labs] Bring EFM32 HAL up to date

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 525:c320967f86b9 1 /* mbed Microcontroller Library
mbed_official 525:c320967f86b9 2 * Copyright (c) 2006-2013 ARM Limited
mbed_official 525:c320967f86b9 3 *
mbed_official 525:c320967f86b9 4 * Licensed under the Apache License, Version 2.0 (the "License");
mbed_official 525:c320967f86b9 5 * you may not use this file except in compliance with the License.
mbed_official 525:c320967f86b9 6 * You may obtain a copy of the License at
mbed_official 525:c320967f86b9 7 *
mbed_official 525:c320967f86b9 8 * http://www.apache.org/licenses/LICENSE-2.0
mbed_official 525:c320967f86b9 9 *
mbed_official 525:c320967f86b9 10 * Unless required by applicable law or agreed to in writing, software
mbed_official 525:c320967f86b9 11 * distributed under the License is distributed on an "AS IS" BASIS,
mbed_official 525:c320967f86b9 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
mbed_official 525:c320967f86b9 13 * See the License for the specific language governing permissions and
mbed_official 525:c320967f86b9 14 * limitations under the License.
mbed_official 525:c320967f86b9 15 */
mbed_official 525:c320967f86b9 16 #ifndef MBED_OBJECTS_H
mbed_official 525:c320967f86b9 17 #define MBED_OBJECTS_H
mbed_official 525:c320967f86b9 18
mbed_official 525:c320967f86b9 19 #include "PinNames.h"
mbed_official 525:c320967f86b9 20 #include "PeripheralNames.h"
mbed_official 525:c320967f86b9 21 #include "PortNames.h"
mbed_official 525:c320967f86b9 22 #include "em_i2c.h"
mbed_official 525:c320967f86b9 23 #include "em_dma.h"
mbed_official 525:c320967f86b9 24 #include "em_cmu.h"
mbed_official 525:c320967f86b9 25 #include "dma_api_HAL.h"
mbed_official 525:c320967f86b9 26
mbed_official 525:c320967f86b9 27 #ifdef __cplusplus
mbed_official 525:c320967f86b9 28 extern "C" {
mbed_official 525:c320967f86b9 29 #endif
mbed_official 525:c320967f86b9 30
mbed_official 593:78ee8643776a 31 typedef struct {
mbed_official 593:78ee8643776a 32 PinName pin:8;
mbed_official 593:78ee8643776a 33 PinMode mode:6;
mbed_official 593:78ee8643776a 34 PinDirection dir:2;
mbed_official 593:78ee8643776a 35 } gpio_t;
mbed_official 593:78ee8643776a 36
mbed_official 525:c320967f86b9 37 #if DEVICE_ANALOGIN
mbed_official 525:c320967f86b9 38 struct analogin_s {
mbed_official 525:c320967f86b9 39 ADC_TypeDef *adc;
mbed_official 525:c320967f86b9 40 uint32_t channel;
mbed_official 525:c320967f86b9 41 };
mbed_official 525:c320967f86b9 42 #endif
mbed_official 525:c320967f86b9 43
mbed_official 525:c320967f86b9 44 #if DEVICE_ANALOGOUT
mbed_official 525:c320967f86b9 45 struct dac_s {
mbed_official 525:c320967f86b9 46 DAC_TypeDef *dac;
mbed_official 525:c320967f86b9 47 uint32_t channel;
mbed_official 525:c320967f86b9 48 };
mbed_official 525:c320967f86b9 49 #endif
mbed_official 525:c320967f86b9 50
mbed_official 525:c320967f86b9 51 #if DEVICE_I2C
mbed_official 525:c320967f86b9 52 struct i2c_s {
mbed_official 525:c320967f86b9 53 I2C_TypeDef *i2c;
mbed_official 525:c320967f86b9 54 int loc;
mbed_official 525:c320967f86b9 55 uint8_t index;
mbed_official 525:c320967f86b9 56 PinName sda;
mbed_official 525:c320967f86b9 57 PinName scl;
mbed_official 525:c320967f86b9 58 uint32_t clock;
mbed_official 525:c320967f86b9 59 #if DEVICE_I2C_ASYNCH
mbed_official 525:c320967f86b9 60 uint32_t events;
mbed_official 525:c320967f86b9 61 I2C_TransferSeq_TypeDef xfer;
mbed_official 525:c320967f86b9 62 #endif
mbed_official 525:c320967f86b9 63 };
mbed_official 525:c320967f86b9 64 #endif
mbed_official 525:c320967f86b9 65
mbed_official 525:c320967f86b9 66 #if DEVICE_PORTOUT
mbed_official 525:c320967f86b9 67 struct port_s {
mbed_official 525:c320967f86b9 68 PortName port;
mbed_official 525:c320967f86b9 69 uint32_t mask;
mbed_official 525:c320967f86b9 70 PinDirection dir;
mbed_official 525:c320967f86b9 71 };
mbed_official 525:c320967f86b9 72 #endif
mbed_official 525:c320967f86b9 73
mbed_official 525:c320967f86b9 74 #if DEVICE_PWMOUT
mbed_official 525:c320967f86b9 75 struct pwmout_s {
mbed_official 525:c320967f86b9 76 //The period of the pulse in clock cycles
mbed_official 556:a217bc785985 77 uint16_t period_cycles;
mbed_official 525:c320967f86b9 78 //The width of the pulse in clock cycles
mbed_official 556:a217bc785985 79 uint16_t width_cycles;
mbed_official 525:c320967f86b9 80 //Channel on TIMER
mbed_official 525:c320967f86b9 81 uint32_t channel;
mbed_official 525:c320967f86b9 82 PinName pin;
mbed_official 525:c320967f86b9 83 };
mbed_official 525:c320967f86b9 84 #endif
mbed_official 525:c320967f86b9 85
mbed_official 525:c320967f86b9 86 #if DEVICE_INTERRUPTIN
mbed_official 525:c320967f86b9 87 struct gpio_irq_s {
mbed_official 593:78ee8643776a 88 PinName pin:8; // Pin number 4 least significant bits, port number 4 most significant bits
mbed_official 593:78ee8643776a 89 uint32_t risingEdge:1;
mbed_official 593:78ee8643776a 90 uint32_t fallingEdge:1;
mbed_official 525:c320967f86b9 91 };
mbed_official 525:c320967f86b9 92 #endif
mbed_official 525:c320967f86b9 93
mbed_official 525:c320967f86b9 94 #if DEVICE_SERIAL
mbed_official 525:c320967f86b9 95 #define SERIAL_NUM_UARTS (7)
mbed_official 525:c320967f86b9 96
mbed_official 525:c320967f86b9 97 struct serial_s {
mbed_official 525:c320967f86b9 98 union {
mbed_official 525:c320967f86b9 99 USART_TypeDef *uart;
mbed_official 525:c320967f86b9 100 LEUART_TypeDef *leuart;
mbed_official 525:c320967f86b9 101 } periph;
mbed_official 525:c320967f86b9 102 uint32_t location;
mbed_official 525:c320967f86b9 103 PinName rx_pin;
mbed_official 525:c320967f86b9 104 PinName tx_pin;
mbed_official 525:c320967f86b9 105 #if DEVICE_SERIAL_ASYNCH
mbed_official 525:c320967f86b9 106 uint32_t events;
mbed_official 525:c320967f86b9 107 DMA_OPTIONS_t dmaOptionsTX;
mbed_official 525:c320967f86b9 108 DMA_OPTIONS_t dmaOptionsRX;
mbed_official 525:c320967f86b9 109 #endif
mbed_official 525:c320967f86b9 110 };
mbed_official 525:c320967f86b9 111 #endif
mbed_official 525:c320967f86b9 112
mbed_official 525:c320967f86b9 113 #if DEVICE_SPI
mbed_official 525:c320967f86b9 114 struct spi_s {
mbed_official 525:c320967f86b9 115 USART_TypeDef *spi;
mbed_official 525:c320967f86b9 116 int location;
mbed_official 525:c320967f86b9 117 uint8_t bits;
mbed_official 525:c320967f86b9 118 uint8_t master;
mbed_official 525:c320967f86b9 119 #if DEVICE_SPI_ASYNCH
mbed_official 525:c320967f86b9 120 uint32_t event;
mbed_official 525:c320967f86b9 121 DMA_OPTIONS_t dmaOptionsTX;
mbed_official 525:c320967f86b9 122 DMA_OPTIONS_t dmaOptionsRX;
mbed_official 525:c320967f86b9 123 #endif
mbed_official 525:c320967f86b9 124 };
mbed_official 525:c320967f86b9 125 #endif
mbed_official 525:c320967f86b9 126
mbed_official 525:c320967f86b9 127 #if DEVICE_RTC
mbed_official 525:c320967f86b9 128 struct lp_timer_s {
mbed_official 525:c320967f86b9 129 uint32_t start;
mbed_official 525:c320967f86b9 130 uint32_t stop;
mbed_official 525:c320967f86b9 131 };
mbed_official 525:c320967f86b9 132 #endif
mbed_official 525:c320967f86b9 133
mbed_official 525:c320967f86b9 134 #if DEVICE_SLEEP
mbed_official 525:c320967f86b9 135 #define NUM_SLEEP_MODES 5
mbed_official 525:c320967f86b9 136 typedef enum {
mbed_official 548:1abac31e188e 137 EM0 = 0,
mbed_official 548:1abac31e188e 138 EM1 = 1,
mbed_official 548:1abac31e188e 139 EM2 = 2,
mbed_official 548:1abac31e188e 140 EM3 = 3,
mbed_official 548:1abac31e188e 141 EM4 = 4
mbed_official 525:c320967f86b9 142 } sleepstate_enum;
mbed_official 525:c320967f86b9 143 #endif
mbed_official 525:c320967f86b9 144
mbed_official 525:c320967f86b9 145
mbed_official 525:c320967f86b9 146 #ifdef __cplusplus
mbed_official 525:c320967f86b9 147 }
mbed_official 525:c320967f86b9 148 #endif
mbed_official 525:c320967f86b9 149
mbed_official 525:c320967f86b9 150 #endif