5.2.1 - Updated I2C files

Dependents:   mbed-TFT-example-NCS36510 mbed-Accelerometer-example-NCS36510 mbed-Accelerometer-example-NCS36510

Committer:
group-onsemi
Date:
Wed Jan 25 20:34:15 2017 +0000
Revision:
0:098463de4c5d
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
group-onsemi 0:098463de4c5d 1 /* mbed Microcontroller Library
group-onsemi 0:098463de4c5d 2 *******************************************************************************
group-onsemi 0:098463de4c5d 3 * Copyright (c) 2016, STMicroelectronics
group-onsemi 0:098463de4c5d 4 * All rights reserved.
group-onsemi 0:098463de4c5d 5 *
group-onsemi 0:098463de4c5d 6 * Redistribution and use in source and binary forms, with or without
group-onsemi 0:098463de4c5d 7 * modification, are permitted provided that the following conditions are met:
group-onsemi 0:098463de4c5d 8 *
group-onsemi 0:098463de4c5d 9 * 1. Redistributions of source code must retain the above copyright notice,
group-onsemi 0:098463de4c5d 10 * this list of conditions and the following disclaimer.
group-onsemi 0:098463de4c5d 11 * 2. Redistributions in binary form must reproduce the above copyright notice,
group-onsemi 0:098463de4c5d 12 * this list of conditions and the following disclaimer in the documentation
group-onsemi 0:098463de4c5d 13 * and/or other materials provided with the distribution.
group-onsemi 0:098463de4c5d 14 * 3. Neither the name of STMicroelectronics nor the names of its contributors
group-onsemi 0:098463de4c5d 15 * may be used to endorse or promote products derived from this software
group-onsemi 0:098463de4c5d 16 * without specific prior written permission.
group-onsemi 0:098463de4c5d 17 *
group-onsemi 0:098463de4c5d 18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
group-onsemi 0:098463de4c5d 19 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
group-onsemi 0:098463de4c5d 20 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
group-onsemi 0:098463de4c5d 21 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
group-onsemi 0:098463de4c5d 22 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
group-onsemi 0:098463de4c5d 23 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
group-onsemi 0:098463de4c5d 24 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
group-onsemi 0:098463de4c5d 25 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
group-onsemi 0:098463de4c5d 26 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
group-onsemi 0:098463de4c5d 27 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
group-onsemi 0:098463de4c5d 28 *******************************************************************************
group-onsemi 0:098463de4c5d 29 */
group-onsemi 0:098463de4c5d 30 #ifndef MBED_COMMON_OBJECTS_H
group-onsemi 0:098463de4c5d 31 #define MBED_COMMON_OBJECTS_H
group-onsemi 0:098463de4c5d 32
group-onsemi 0:098463de4c5d 33 #include "cmsis.h"
group-onsemi 0:098463de4c5d 34 #include "PortNames.h"
group-onsemi 0:098463de4c5d 35 #include "PeripheralNames.h"
group-onsemi 0:098463de4c5d 36 #include "PinNames.h"
group-onsemi 0:098463de4c5d 37
group-onsemi 0:098463de4c5d 38 #ifdef __cplusplus
group-onsemi 0:098463de4c5d 39 extern "C" {
group-onsemi 0:098463de4c5d 40 #endif
group-onsemi 0:098463de4c5d 41
group-onsemi 0:098463de4c5d 42 struct pwmout_s {
group-onsemi 0:098463de4c5d 43 PWMName pwm;
group-onsemi 0:098463de4c5d 44 PinName pin;
group-onsemi 0:098463de4c5d 45 uint32_t prescaler;
group-onsemi 0:098463de4c5d 46 uint32_t period;
group-onsemi 0:098463de4c5d 47 uint32_t pulse;
group-onsemi 0:098463de4c5d 48 uint8_t channel;
group-onsemi 0:098463de4c5d 49 uint8_t inverted;
group-onsemi 0:098463de4c5d 50 };
group-onsemi 0:098463de4c5d 51
group-onsemi 0:098463de4c5d 52 struct spi_s {
group-onsemi 0:098463de4c5d 53 SPI_HandleTypeDef handle;
group-onsemi 0:098463de4c5d 54 IRQn_Type spiIRQ;
group-onsemi 0:098463de4c5d 55 SPIName spi;
group-onsemi 0:098463de4c5d 56 PinName pin_miso;
group-onsemi 0:098463de4c5d 57 PinName pin_mosi;
group-onsemi 0:098463de4c5d 58 PinName pin_sclk;
group-onsemi 0:098463de4c5d 59 PinName pin_ssel;
group-onsemi 0:098463de4c5d 60 #ifdef DEVICE_SPI_ASYNCH
group-onsemi 0:098463de4c5d 61 uint32_t event;
group-onsemi 0:098463de4c5d 62 uint8_t transfer_type;
group-onsemi 0:098463de4c5d 63 #endif
group-onsemi 0:098463de4c5d 64 };
group-onsemi 0:098463de4c5d 65
group-onsemi 0:098463de4c5d 66 struct serial_s {
group-onsemi 0:098463de4c5d 67 UARTName uart;
group-onsemi 0:098463de4c5d 68 int index; // Used by irq
group-onsemi 0:098463de4c5d 69 uint32_t baudrate;
group-onsemi 0:098463de4c5d 70 uint32_t databits;
group-onsemi 0:098463de4c5d 71 uint32_t stopbits;
group-onsemi 0:098463de4c5d 72 uint32_t parity;
group-onsemi 0:098463de4c5d 73 PinName pin_tx;
group-onsemi 0:098463de4c5d 74 PinName pin_rx;
group-onsemi 0:098463de4c5d 75 #if DEVICE_SERIAL_ASYNCH
group-onsemi 0:098463de4c5d 76 uint32_t events;
group-onsemi 0:098463de4c5d 77 #endif
group-onsemi 0:098463de4c5d 78 #if DEVICE_SERIAL_FC
group-onsemi 0:098463de4c5d 79 uint32_t hw_flow_ctl;
group-onsemi 0:098463de4c5d 80 PinName pin_rts;
group-onsemi 0:098463de4c5d 81 PinName pin_cts;
group-onsemi 0:098463de4c5d 82 #endif
group-onsemi 0:098463de4c5d 83 };
group-onsemi 0:098463de4c5d 84
group-onsemi 0:098463de4c5d 85 struct i2c_s {
group-onsemi 0:098463de4c5d 86 /* The 1st 2 members I2CName i2c
group-onsemi 0:098463de4c5d 87 * and I2C_HandleTypeDef handle should
group-onsemi 0:098463de4c5d 88 * be kept as the first members of this struct
group-onsemi 0:098463de4c5d 89 * to ensure i2c_get_obj to work as expected
group-onsemi 0:098463de4c5d 90 */
group-onsemi 0:098463de4c5d 91 I2CName i2c;
group-onsemi 0:098463de4c5d 92 I2C_HandleTypeDef handle;
group-onsemi 0:098463de4c5d 93 uint8_t index;
group-onsemi 0:098463de4c5d 94 int hz;
group-onsemi 0:098463de4c5d 95 PinName sda;
group-onsemi 0:098463de4c5d 96 PinName scl;
group-onsemi 0:098463de4c5d 97 IRQn_Type event_i2cIRQ;
group-onsemi 0:098463de4c5d 98 IRQn_Type error_i2cIRQ;
group-onsemi 0:098463de4c5d 99 uint32_t XferOperation;
group-onsemi 0:098463de4c5d 100 volatile uint8_t event;
group-onsemi 0:098463de4c5d 101 volatile int pending_start;
group-onsemi 0:098463de4c5d 102 #if DEVICE_I2CSLAVE
group-onsemi 0:098463de4c5d 103 uint8_t slave;
group-onsemi 0:098463de4c5d 104 volatile uint8_t pending_slave_tx_master_rx;
group-onsemi 0:098463de4c5d 105 volatile uint8_t pending_slave_rx_maxter_tx;
group-onsemi 0:098463de4c5d 106 #endif
group-onsemi 0:098463de4c5d 107 #if DEVICE_I2C_ASYNCH
group-onsemi 0:098463de4c5d 108 uint32_t address;
group-onsemi 0:098463de4c5d 109 uint8_t stop;
group-onsemi 0:098463de4c5d 110 uint8_t available_events;
group-onsemi 0:098463de4c5d 111 #endif
group-onsemi 0:098463de4c5d 112 };
group-onsemi 0:098463de4c5d 113
group-onsemi 0:098463de4c5d 114 #include "gpio_object.h"
group-onsemi 0:098463de4c5d 115
group-onsemi 0:098463de4c5d 116 #ifdef __cplusplus
group-onsemi 0:098463de4c5d 117 }
group-onsemi 0:098463de4c5d 118 #endif
group-onsemi 0:098463de4c5d 119
group-onsemi 0:098463de4c5d 120 /* STM32F3 HAL doesn't provide this API called in rtc_api.c */
group-onsemi 0:098463de4c5d 121 #define __HAL_RCC_RTC_CLKPRESCALER(__RTCCLKSource__)
group-onsemi 0:098463de4c5d 122
group-onsemi 0:098463de4c5d 123 #endif
group-onsemi 0:098463de4c5d 124