This is the final version of Mini Gateway for Automation and Security desgined for Renesas GR Peach Design Contest

Dependencies:   GR-PEACH_video GraphicsFramework HTTPServer R_BSP mbed-rpc mbed-rtos Socket lwip-eth lwip-sys lwip FATFileSystem

Fork of mbed-os-example-mbed5-blinky by mbed-os-examples

Committer:
vipinranka
Date:
Wed Jan 11 11:41:30 2017 +0000
Revision:
12:9a20164dcc47
This is the final version MGAS Project for Renesas GR Peach Design Contest

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vipinranka 12:9a20164dcc47 1 /*******************************************************************************
vipinranka 12:9a20164dcc47 2 * Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved.
vipinranka 12:9a20164dcc47 3 *
vipinranka 12:9a20164dcc47 4 * Permission is hereby granted, free of charge, to any person obtaining a
vipinranka 12:9a20164dcc47 5 * copy of this software and associated documentation files (the "Software"),
vipinranka 12:9a20164dcc47 6 * to deal in the Software without restriction, including without limitation
vipinranka 12:9a20164dcc47 7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
vipinranka 12:9a20164dcc47 8 * and/or sell copies of the Software, and to permit persons to whom the
vipinranka 12:9a20164dcc47 9 * Software is furnished to do so, subject to the following conditions:
vipinranka 12:9a20164dcc47 10 *
vipinranka 12:9a20164dcc47 11 * The above copyright notice and this permission notice shall be included
vipinranka 12:9a20164dcc47 12 * in all copies or substantial portions of the Software.
vipinranka 12:9a20164dcc47 13 *
vipinranka 12:9a20164dcc47 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
vipinranka 12:9a20164dcc47 15 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
vipinranka 12:9a20164dcc47 16 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
vipinranka 12:9a20164dcc47 17 * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
vipinranka 12:9a20164dcc47 18 * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
vipinranka 12:9a20164dcc47 19 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
vipinranka 12:9a20164dcc47 20 * OTHER DEALINGS IN THE SOFTWARE.
vipinranka 12:9a20164dcc47 21 *
vipinranka 12:9a20164dcc47 22 * Except as contained in this notice, the name of Maxim Integrated
vipinranka 12:9a20164dcc47 23 * Products, Inc. shall not be used except as stated in the Maxim Integrated
vipinranka 12:9a20164dcc47 24 * Products, Inc. Branding Policy.
vipinranka 12:9a20164dcc47 25 *
vipinranka 12:9a20164dcc47 26 * The mere transfer of this software does not imply any licenses
vipinranka 12:9a20164dcc47 27 * of trade secrets, proprietary technology, copyrights, patents,
vipinranka 12:9a20164dcc47 28 * trademarks, maskwork rights, or any other form of intellectual
vipinranka 12:9a20164dcc47 29 * property whatsoever. Maxim Integrated Products, Inc. retains all
vipinranka 12:9a20164dcc47 30 * ownership rights.
vipinranka 12:9a20164dcc47 31 *******************************************************************************
vipinranka 12:9a20164dcc47 32 */
vipinranka 12:9a20164dcc47 33
vipinranka 12:9a20164dcc47 34 #ifndef MBED_OBJECTS_H
vipinranka 12:9a20164dcc47 35 #define MBED_OBJECTS_H
vipinranka 12:9a20164dcc47 36
vipinranka 12:9a20164dcc47 37 #include "cmsis.h"
vipinranka 12:9a20164dcc47 38 #include "PortNames.h"
vipinranka 12:9a20164dcc47 39 #include "PeripheralNames.h"
vipinranka 12:9a20164dcc47 40 #include "PinNames.h"
vipinranka 12:9a20164dcc47 41 #include "gpio_object.h"
vipinranka 12:9a20164dcc47 42 #include "gpio_regs.h"
vipinranka 12:9a20164dcc47 43 #include "uart_regs.h"
vipinranka 12:9a20164dcc47 44 #include "i2cm_regs.h"
vipinranka 12:9a20164dcc47 45 #include "spi_regs.h"
vipinranka 12:9a20164dcc47 46 #include "pt_regs.h"
vipinranka 12:9a20164dcc47 47 #include "adc_regs.h"
vipinranka 12:9a20164dcc47 48
vipinranka 12:9a20164dcc47 49 #ifdef __cplusplus
vipinranka 12:9a20164dcc47 50 extern "C" {
vipinranka 12:9a20164dcc47 51 #endif
vipinranka 12:9a20164dcc47 52
vipinranka 12:9a20164dcc47 53 struct port_s {
vipinranka 12:9a20164dcc47 54 PortName port;
vipinranka 12:9a20164dcc47 55 uint32_t mask;
vipinranka 12:9a20164dcc47 56 __IO uint32_t *reg_out;
vipinranka 12:9a20164dcc47 57 __I uint32_t *reg_in;
vipinranka 12:9a20164dcc47 58 };
vipinranka 12:9a20164dcc47 59
vipinranka 12:9a20164dcc47 60 struct gpio_irq_s {
vipinranka 12:9a20164dcc47 61 uint8_t port;
vipinranka 12:9a20164dcc47 62 uint8_t pin;
vipinranka 12:9a20164dcc47 63 uint8_t rise_en;
vipinranka 12:9a20164dcc47 64 uint8_t fall_en;
vipinranka 12:9a20164dcc47 65 uint32_t id;
vipinranka 12:9a20164dcc47 66 };
vipinranka 12:9a20164dcc47 67
vipinranka 12:9a20164dcc47 68 struct serial_s {
vipinranka 12:9a20164dcc47 69 int index;
vipinranka 12:9a20164dcc47 70 mxc_uart_regs_t *uart;
vipinranka 12:9a20164dcc47 71 mxc_uart_fifo_regs_t *fifo;
vipinranka 12:9a20164dcc47 72 };
vipinranka 12:9a20164dcc47 73
vipinranka 12:9a20164dcc47 74 struct i2c_s {
vipinranka 12:9a20164dcc47 75 int index;
vipinranka 12:9a20164dcc47 76 mxc_i2cm_regs_t *i2c;
vipinranka 12:9a20164dcc47 77 mxc_i2cm_fifo_regs_t *fifos;
vipinranka 12:9a20164dcc47 78 int start_pending;
vipinranka 12:9a20164dcc47 79 int stop_pending;
vipinranka 12:9a20164dcc47 80 };
vipinranka 12:9a20164dcc47 81
vipinranka 12:9a20164dcc47 82 struct spi_s {
vipinranka 12:9a20164dcc47 83 int index;
vipinranka 12:9a20164dcc47 84 mxc_spi_regs_t *spi;
vipinranka 12:9a20164dcc47 85 mxc_spi_fifo_regs_t *fifo;
vipinranka 12:9a20164dcc47 86 int bits;
vipinranka 12:9a20164dcc47 87 int ssel;
vipinranka 12:9a20164dcc47 88 uint32_t width; // SPI data width (number of data lines to use)
vipinranka 12:9a20164dcc47 89 PinName sclk; // PinName saved to use in Quad SPI pin mapping table
vipinranka 12:9a20164dcc47 90 #if DEVICE_SPI_ASYNCH
vipinranka 12:9a20164dcc47 91 // Async transaction state
vipinranka 12:9a20164dcc47 92 const uint8_t *tx_data; // TX buffer
vipinranka 12:9a20164dcc47 93 uint8_t *rx_data; // RX buffer
vipinranka 12:9a20164dcc47 94 unsigned len; // Number of bytes to send
vipinranka 12:9a20164dcc47 95 unsigned read_num; // Number of bytes read
vipinranka 12:9a20164dcc47 96 unsigned write_num; // Number of bytes written
vipinranka 12:9a20164dcc47 97 void (*callback)(); // Callback for asynchronous request
vipinranka 12:9a20164dcc47 98 unsigned head_rem; // Remaining count for current header
vipinranka 12:9a20164dcc47 99 uint32_t event; // Callback response events
vipinranka 12:9a20164dcc47 100 #endif
vipinranka 12:9a20164dcc47 101 };
vipinranka 12:9a20164dcc47 102
vipinranka 12:9a20164dcc47 103 struct pwmout_s {
vipinranka 12:9a20164dcc47 104 mxc_pt_regs_t *pwm;
vipinranka 12:9a20164dcc47 105 int period;
vipinranka 12:9a20164dcc47 106 int pulse_width;
vipinranka 12:9a20164dcc47 107 };
vipinranka 12:9a20164dcc47 108
vipinranka 12:9a20164dcc47 109 struct analogin_s {
vipinranka 12:9a20164dcc47 110 mxc_adc_regs_t *adc;
vipinranka 12:9a20164dcc47 111 PinName adc_pin;
vipinranka 12:9a20164dcc47 112 };
vipinranka 12:9a20164dcc47 113
vipinranka 12:9a20164dcc47 114 typedef struct {
vipinranka 12:9a20164dcc47 115 volatile uint32_t *reg_req;
vipinranka 12:9a20164dcc47 116 volatile uint32_t *reg_ack;
vipinranka 12:9a20164dcc47 117 uint32_t req_val;
vipinranka 12:9a20164dcc47 118 uint32_t ack_mask;
vipinranka 12:9a20164dcc47 119 } pin_function_t;
vipinranka 12:9a20164dcc47 120
vipinranka 12:9a20164dcc47 121 #ifdef __cplusplus
vipinranka 12:9a20164dcc47 122 }
vipinranka 12:9a20164dcc47 123 #endif
vipinranka 12:9a20164dcc47 124
vipinranka 12:9a20164dcc47 125 #endif