Amit Gandhi / mbed-dev

Fork of mbed-dev by mbed official

Committer:
AnnaBridge
Date:
Wed Nov 08 13:50:44 2017 +0000
Revision:
178:d650f5d4c87a
Parent:
168:e84263d55307
This updates the lib to the mbed lib v 155

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 168:e84263d55307 1 /* mbed Microcontroller Library
AnnaBridge 168:e84263d55307 2 * Copyright (c) 2006-2013 ARM Limited
AnnaBridge 168:e84263d55307 3 *
AnnaBridge 168:e84263d55307 4 * Licensed under the Apache License, Version 2.0 (the "License");
AnnaBridge 168:e84263d55307 5 * you may not use this file except in compliance with the License.
AnnaBridge 168:e84263d55307 6 * You may obtain a copy of the License at
AnnaBridge 168:e84263d55307 7 *
AnnaBridge 168:e84263d55307 8 * http://www.apache.org/licenses/LICENSE-2.0
AnnaBridge 168:e84263d55307 9 *
AnnaBridge 168:e84263d55307 10 * Unless required by applicable law or agreed to in writing, software
AnnaBridge 168:e84263d55307 11 * distributed under the License is distributed on an "AS IS" BASIS,
AnnaBridge 168:e84263d55307 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
AnnaBridge 168:e84263d55307 13 * See the License for the specific language governing permissions and
AnnaBridge 168:e84263d55307 14 * limitations under the License.
AnnaBridge 168:e84263d55307 15 */
AnnaBridge 168:e84263d55307 16 #ifndef MBED_OBJECTS_H
AnnaBridge 168:e84263d55307 17 #define MBED_OBJECTS_H
AnnaBridge 168:e84263d55307 18
AnnaBridge 168:e84263d55307 19 #include "cmsis.h"
AnnaBridge 168:e84263d55307 20 #include "PortNames.h"
AnnaBridge 168:e84263d55307 21 #include "PeripheralNames.h"
AnnaBridge 168:e84263d55307 22 #include "PinNames.h"
AnnaBridge 168:e84263d55307 23
AnnaBridge 168:e84263d55307 24 #ifdef __cplusplus
AnnaBridge 168:e84263d55307 25 extern "C" {
AnnaBridge 168:e84263d55307 26 #endif
AnnaBridge 168:e84263d55307 27
AnnaBridge 168:e84263d55307 28 #ifdef CONFIG_GPIO_EN
AnnaBridge 168:e84263d55307 29 struct gpio_irq_s {
AnnaBridge 168:e84263d55307 30 PinName pin;
AnnaBridge 168:e84263d55307 31 uint32_t event;
AnnaBridge 168:e84263d55307 32 HAL_GPIO_PIN hal_pin;
AnnaBridge 168:e84263d55307 33 uint8_t hal_port_num;
AnnaBridge 168:e84263d55307 34 uint8_t hal_pin_num;
AnnaBridge 168:e84263d55307 35 };
AnnaBridge 168:e84263d55307 36
AnnaBridge 168:e84263d55307 37 typedef struct gpio_irq_s gpio_irq_t;
AnnaBridge 168:e84263d55307 38
AnnaBridge 168:e84263d55307 39 struct gpio_s {
AnnaBridge 168:e84263d55307 40 PinName pin;
AnnaBridge 168:e84263d55307 41 PinMode mode;
AnnaBridge 168:e84263d55307 42 PinDirection direction;
AnnaBridge 168:e84263d55307 43 HAL_GPIO_PIN hal_pin;
AnnaBridge 168:e84263d55307 44 uint8_t hal_port_num;
AnnaBridge 168:e84263d55307 45 uint8_t hal_pin_num;
AnnaBridge 168:e84263d55307 46 };
AnnaBridge 168:e84263d55307 47
AnnaBridge 168:e84263d55307 48 typedef struct gpio_s gpio_t;
AnnaBridge 168:e84263d55307 49
AnnaBridge 168:e84263d55307 50 struct port_s {
AnnaBridge 168:e84263d55307 51 PortName port;
AnnaBridge 168:e84263d55307 52 uint32_t mask;
AnnaBridge 168:e84263d55307 53 PinDirection direction;
AnnaBridge 168:e84263d55307 54 uint8_t *pin_def;
AnnaBridge 168:e84263d55307 55 };
AnnaBridge 168:e84263d55307 56 #endif // end of "#ifdef CONFIG_GPIO_EN"
AnnaBridge 168:e84263d55307 57
AnnaBridge 168:e84263d55307 58 #ifdef CONFIG_UART_EN
AnnaBridge 168:e84263d55307 59 struct serial_s {
AnnaBridge 168:e84263d55307 60 int index;
AnnaBridge 168:e84263d55307 61 HAL_RUART_OP hal_uart_op;
AnnaBridge 168:e84263d55307 62 HAL_RUART_ADAPTER hal_uart_adp;
AnnaBridge 168:e84263d55307 63 #ifdef CONFIG_GDMA_EN
AnnaBridge 168:e84263d55307 64 UART_DMA_CONFIG uart_gdma_cfg;
AnnaBridge 168:e84263d55307 65 HAL_GDMA_ADAPTER uart_gdma_adp_tx;
AnnaBridge 168:e84263d55307 66 HAL_GDMA_ADAPTER uart_gdma_adp_rx;
AnnaBridge 168:e84263d55307 67 UART_DMA_MULTIBLK gdma_multiblk_list_tx;
AnnaBridge 168:e84263d55307 68 UART_DMA_MULTIBLK gdma_multiblk_list_rx;
AnnaBridge 168:e84263d55307 69 #endif
AnnaBridge 168:e84263d55307 70 uint32_t tx_len;
AnnaBridge 168:e84263d55307 71 uint32_t rx_len;
AnnaBridge 168:e84263d55307 72 };
AnnaBridge 168:e84263d55307 73 #endif // end of "#ifdef CONFIG_UART_EN"
AnnaBridge 168:e84263d55307 74
AnnaBridge 168:e84263d55307 75 struct log_uart_s {
AnnaBridge 168:e84263d55307 76 HAL_LOG_UART_ADAPTER log_hal_uart;
AnnaBridge 168:e84263d55307 77 };
AnnaBridge 168:e84263d55307 78
AnnaBridge 168:e84263d55307 79 #ifdef CONFIG_SPI_COM_EN
AnnaBridge 168:e84263d55307 80
AnnaBridge 168:e84263d55307 81 #endif
AnnaBridge 168:e84263d55307 82
AnnaBridge 168:e84263d55307 83 #ifdef CONFIG_PWM_EN
AnnaBridge 168:e84263d55307 84 struct pwmout_s {
AnnaBridge 168:e84263d55307 85 uint8_t pwm_idx;
AnnaBridge 168:e84263d55307 86 uint8_t pin_sel;
AnnaBridge 168:e84263d55307 87 uint32_t period;
AnnaBridge 168:e84263d55307 88 uint32_t pulse;
AnnaBridge 168:e84263d55307 89 HAL_PWM_ADAPTER pwm_hal_adp;
AnnaBridge 168:e84263d55307 90 };
AnnaBridge 168:e84263d55307 91 #endif
AnnaBridge 168:e84263d55307 92
AnnaBridge 168:e84263d55307 93 #ifdef CONFIG_I2C_EN
AnnaBridge 168:e84263d55307 94 struct i2c_s {
AnnaBridge 168:e84263d55307 95 SAL_I2C_MNGT_ADPT SalI2CMngtAdpt;
AnnaBridge 168:e84263d55307 96 SAL_I2C_HND_PRIV SalI2CHndPriv;
AnnaBridge 168:e84263d55307 97 HAL_I2C_INIT_DAT HalI2CInitData;
AnnaBridge 168:e84263d55307 98 HAL_I2C_OP HalI2COp;
AnnaBridge 168:e84263d55307 99 IRQ_HANDLE I2CIrqHandleDat;
AnnaBridge 168:e84263d55307 100 HAL_GDMA_ADAPTER HalI2CTxGdmaAdpt;
AnnaBridge 168:e84263d55307 101 HAL_GDMA_ADAPTER HalI2CRxGdmaAdpt;
AnnaBridge 168:e84263d55307 102 HAL_GDMA_OP HalI2CGdmaOp;
AnnaBridge 168:e84263d55307 103 IRQ_HANDLE I2CTxGdmaIrqHandleDat;
AnnaBridge 168:e84263d55307 104 IRQ_HANDLE I2CRxGdmaIrqHandleDat;
AnnaBridge 168:e84263d55307 105 SAL_I2C_USER_CB SalI2CUserCB;
AnnaBridge 168:e84263d55307 106 SAL_I2C_USERCB_ADPT SalI2CUserCBAdpt[SAL_USER_CB_NUM];
AnnaBridge 168:e84263d55307 107 SAL_I2C_DMA_USER_DEF SalI2CDmaUserDef;
AnnaBridge 168:e84263d55307 108 };
AnnaBridge 168:e84263d55307 109 #endif
AnnaBridge 168:e84263d55307 110
AnnaBridge 168:e84263d55307 111
AnnaBridge 168:e84263d55307 112 struct flash_s
AnnaBridge 168:e84263d55307 113 {
AnnaBridge 168:e84263d55307 114 SPIC_INIT_PARA SpicInitPara;
AnnaBridge 168:e84263d55307 115 u32 Length;
AnnaBridge 168:e84263d55307 116 };
AnnaBridge 168:e84263d55307 117
AnnaBridge 168:e84263d55307 118
AnnaBridge 168:e84263d55307 119 #ifdef CONFIG_ADC_EN
AnnaBridge 168:e84263d55307 120 struct analogin_s {
AnnaBridge 168:e84263d55307 121 SAL_ADC_MNGT_ADPT SalADCMngtAdpt;
AnnaBridge 168:e84263d55307 122 SAL_ADC_HND_PRIV SalADCHndPriv;
AnnaBridge 168:e84263d55307 123 HAL_ADC_INIT_DAT HalADCInitData;
AnnaBridge 168:e84263d55307 124 HAL_ADC_OP HalADCOp;
AnnaBridge 168:e84263d55307 125 IRQ_HANDLE ADCIrqHandleDat;
AnnaBridge 168:e84263d55307 126 HAL_GDMA_ADAPTER HalADCGdmaAdpt;
AnnaBridge 168:e84263d55307 127 HAL_GDMA_OP HalADCGdmaOp;
AnnaBridge 168:e84263d55307 128 IRQ_HANDLE ADCGdmaIrqHandleDat;
AnnaBridge 168:e84263d55307 129 SAL_ADC_USER_CB SalADCUserCB;
AnnaBridge 168:e84263d55307 130 SAL_ADC_USERCB_ADPT SalADCUserCBAdpt[SAL_ADC_USER_CB_NUM];
AnnaBridge 168:e84263d55307 131 };
AnnaBridge 168:e84263d55307 132 #endif
AnnaBridge 168:e84263d55307 133
AnnaBridge 168:e84263d55307 134 #if 0
AnnaBridge 168:e84263d55307 135 struct i2c_s {
AnnaBridge 168:e84263d55307 136 I2C_Type *i2c;
AnnaBridge 168:e84263d55307 137 };
AnnaBridge 168:e84263d55307 138
AnnaBridge 168:e84263d55307 139 struct spi_s {
AnnaBridge 168:e84263d55307 140 SPI_Type *spi;
AnnaBridge 168:e84263d55307 141 };
AnnaBridge 168:e84263d55307 142
AnnaBridge 168:e84263d55307 143 #endif
AnnaBridge 168:e84263d55307 144
AnnaBridge 168:e84263d55307 145 #ifdef CONFIG_NFC_EN
AnnaBridge 168:e84263d55307 146 struct nfctag_s {
AnnaBridge 168:e84263d55307 147 NFC_ADAPTER NFCAdapter;
AnnaBridge 168:e84263d55307 148 void *nfc_rd_cb; // read callback function
AnnaBridge 168:e84263d55307 149 void *rd_cb_arg;
AnnaBridge 168:e84263d55307 150 void *nfc_wr_cb; // write callback function
AnnaBridge 168:e84263d55307 151 void *wr_cb_arg;
AnnaBridge 168:e84263d55307 152 void *nfc_ev_cb; // event callback function
AnnaBridge 168:e84263d55307 153 void *ev_cb_arg;
AnnaBridge 168:e84263d55307 154 void *nfc_cache_rd_cb; // cache read callback function
AnnaBridge 168:e84263d55307 155 void *cache_read_cb_arg;
AnnaBridge 168:e84263d55307 156 unsigned int event_mask;
AnnaBridge 168:e84263d55307 157 int pwr_status;
AnnaBridge 168:e84263d55307 158 };
AnnaBridge 168:e84263d55307 159 #endif
AnnaBridge 168:e84263d55307 160
AnnaBridge 168:e84263d55307 161 #ifdef CONFIG_TIMER_EN
AnnaBridge 168:e84263d55307 162 struct gtimer_s {
AnnaBridge 168:e84263d55307 163 TIMER_ADAPTER hal_gtimer_adp;
AnnaBridge 168:e84263d55307 164 void *handler;
AnnaBridge 168:e84263d55307 165 u32 hid;
AnnaBridge 168:e84263d55307 166 u8 timer_id;
AnnaBridge 168:e84263d55307 167 u8 is_periodcal;
AnnaBridge 168:e84263d55307 168 };
AnnaBridge 168:e84263d55307 169 #endif
AnnaBridge 168:e84263d55307 170
AnnaBridge 168:e84263d55307 171 #ifdef CONFIG_I2S_EN
AnnaBridge 168:e84263d55307 172 struct i2s_s {
AnnaBridge 168:e84263d55307 173 HAL_I2S_ADAPTER I2SAdapter;
AnnaBridge 168:e84263d55307 174 HAL_I2S_INIT_DAT InitDat;
AnnaBridge 168:e84263d55307 175 u8 sampling_rate;
AnnaBridge 168:e84263d55307 176 u8 channel_num;
AnnaBridge 168:e84263d55307 177 u8 word_length;
AnnaBridge 168:e84263d55307 178 u8 direction;
AnnaBridge 168:e84263d55307 179 };
AnnaBridge 168:e84263d55307 180
AnnaBridge 168:e84263d55307 181 #endif
AnnaBridge 168:e84263d55307 182
AnnaBridge 168:e84263d55307 183 #ifdef CONFIG_DAC_EN
AnnaBridge 168:e84263d55307 184 /** \file objects.h
AnnaBridge 168:e84263d55307 185 * \brief A Documented file.
AnnaBridge 168:e84263d55307 186 *
AnnaBridge 168:e84263d55307 187 * A documented file.
AnnaBridge 168:e84263d55307 188 */
AnnaBridge 168:e84263d55307 189
AnnaBridge 168:e84263d55307 190 /** \struct dac_s objects.h "rtl8195a/objects.h"
AnnaBridge 168:e84263d55307 191 * \brief This is a dac_s structure.
AnnaBridge 168:e84263d55307 192 *
AnnaBridge 168:e84263d55307 193 * For analogout APIs, a pointer to dac_s is used as an input paras.
AnnaBridge 168:e84263d55307 194 * A DAC initial data structure is the major element of dac_s.
AnnaBridge 168:e84263d55307 195 */
AnnaBridge 168:e84263d55307 196 struct dac_s {
AnnaBridge 168:e84263d55307 197 HAL_DAC_INIT_DAT DACpara;
AnnaBridge 168:e84263d55307 198 };
AnnaBridge 168:e84263d55307 199 #endif
AnnaBridge 168:e84263d55307 200
AnnaBridge 168:e84263d55307 201 #ifdef CONFIG_ADC_EN //True random number generator uses ADC
AnnaBridge 168:e84263d55307 202
AnnaBridge 168:e84263d55307 203 struct trng_s{
AnnaBridge 168:e84263d55307 204 uint32_t pin;
AnnaBridge 168:e84263d55307 205 struct analogin_s tradcng;
AnnaBridge 168:e84263d55307 206 uint8_t inited;
AnnaBridge 168:e84263d55307 207 };
AnnaBridge 168:e84263d55307 208 #endif
AnnaBridge 168:e84263d55307 209
AnnaBridge 168:e84263d55307 210 #ifdef __cplusplus
AnnaBridge 168:e84263d55307 211 }
AnnaBridge 168:e84263d55307 212 #endif
AnnaBridge 168:e84263d55307 213
AnnaBridge 168:e84263d55307 214 #endif