mbed library sources. Supersedes mbed-src.

Dependents:   Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more

Revision:
188:bcfe06ba3d64
Child:
189:f392fc9709a3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/TARGET_Cypress/TARGET_PSOC6/objects.h	Thu Nov 08 11:46:34 2018 +0000
@@ -0,0 +1,227 @@
+/*
+ * mbed Microcontroller Library
+ * Copyright (c) 2017-2018 Future Electronics
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef MBED_OBJECTS_H
+#define MBED_OBJECTS_H
+
+#include "cmsis.h"
+#include "PeripheralNames.h"
+#include "PinNames.h"
+#include "PortNames.h"
+
+#include "gpio_irq_api.h"
+#include "gpio_object.h"
+#include "drivers/peripheral/sysclk/cy_sysclk.h"
+#include "drivers/peripheral/syspm/cy_syspm.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if DEVICE_INTERRUPTIN
+struct gpio_irq_s {
+    GPIO_PRT_Type*      port;
+    uint32_t            port_id;
+    uint32_t            pin;
+    gpio_irq_event      mode;
+    gpio_irq_handler    handler;
+    uint32_t            id_arg;
+#if defined (TARGET_MCU_PSOC6_M0)
+    cy_en_intr_t        cm0p_irq_src;
+#endif
+};
+#endif // DEVICE_INTERRUPTIN
+
+struct port_s {
+    GPIO_PRT_Type   *port;
+
+    uint32_t        port_id;
+    uint32_t        mask;
+    PinDirection    direction;
+    PinMode         mode;
+//     __IO uint32_t *reg_in;
+//     __IO uint32_t *reg_out;
+};
+
+// struct analogin_s {
+//     ADCName adc;
+//     PinName pin;
+//     uint32_t channel;
+// };
+
+#if DEVICE_SERIAL
+#include "cy_scb_uart.h"
+
+struct serial_s {
+    CySCB_Type                  *base;
+    uint32_t                    serial_id;
+    PinName                     pin_rx;
+    PinName                     pin_tx;
+    PinName                     pin_cts;
+    PinName                     pin_rts;
+    en_clk_dst_t                clock;
+    cy_en_divider_types_t       div_type;
+    uint8_t                     div_num;
+    uint8_t                     data_width;
+    cy_en_scb_uart_stop_bits_t  stop_bits;
+    cy_en_scb_uart_parity_t     parity;
+#if DEVICE_SERIAL_ASYNCH
+    uint32_t                    rx_events;
+    bool                        rx_pending;
+    uint32_t                    tx_events;
+    bool                        tx_pending;
+    cy_israddress               async_handler;
+#endif // DEVICE_SERIAL_ASYNCH
+#if DEVICE_SLEEP && DEVICE_LOWPOWERTIMER
+    cy_stc_syspm_callback_params_t pm_callback_params;
+    cy_stc_syspm_callback_t     pm_callback_handler;
+#endif
+};
+#endif // DEVICE_SERIAL
+
+#if DEVICE_SPI
+#include "cy_scb_spi.h"
+
+struct spi_s {
+    CySCB_Type                          *base;
+    uint32_t                            spi_id;
+    PinName                             pin_miso;
+    PinName                             pin_mosi;
+    PinName                             pin_sclk;
+    PinName                             pin_ssel;
+    en_clk_dst_t                        clock;
+    uint32_t                            div_num;
+    cy_en_divider_types_t               div_type;
+    uint32_t                            clk_frequency;
+    cy_en_scb_spi_mode_t                ms_mode;
+    cy_en_scb_spi_sclk_mode_t           clk_mode;
+    uint8_t                             data_bits;
+    cy_stc_scb_spi_context_t            context;
+#if DEVICE_SPI_ASYNCH
+    IRQn_Type                           irqn;
+#if defined (TARGET_MCU_PSOC6_M0)
+    cy_en_intr_t                        cm0p_irq_src;
+#endif
+    uint16_t                            pending;
+    uint16_t                            events;
+    uint32_t                            handler;
+    void                                *rx_buffer;
+    uint32_t                            rx_buffer_size;
+    void                                *tx_buffer;
+    uint32_t                            tx_buffer_size;
+#endif // DEVICE_SPI_ASYNCH
+#if DEVICE_SLEEP && DEVICE_LOWPOWERTIMER
+    cy_stc_syspm_callback_params_t      pm_callback_params;
+    cy_stc_syspm_callback_t             pm_callback_handler;
+#endif
+};
+#endif // DEVICE_SPI
+
+#if DEVICE_I2C
+#include "cy_scb_i2c.h"
+
+struct i2c_s {
+    CySCB_Type                          *base;
+    uint32_t                            i2c_id;
+    PinName                             pin_sda;
+    PinName                             pin_scl;
+    en_clk_dst_t                        clock;
+    uint32_t                            divider;
+    uint32_t                            actual_speed;
+    cy_en_scb_i2c_mode_t                mode;
+    uint32_t                            timeout;
+#if DEVICE_I2C_SLAVE
+    uint16_t ADDRESS;
+    uint16_t is_setAddress;
+#endif
+    cy_stc_scb_i2c_context_t            context;
+#if DEVICE_I2C_ASYNCH
+    cy_stc_scb_i2c_master_xfer_config_t rx_config;
+    cy_stc_scb_i2c_master_xfer_config_t tx_config;
+    IRQn_Type                           irqn;
+#if defined (TARGET_MCU_PSOC6_M0)
+    cy_en_intr_t                        cm0p_irq_src;
+#endif
+    uint16_t                            pending;
+    uint16_t                            events;
+    uint32_t                            handler;
+#endif // DEVICE_I2C_ASYNCH
+#if DEVICE_SLEEP && DEVICE_LOWPOWERTIMER
+    cy_stc_syspm_callback_params_t      pm_callback_params;
+    cy_stc_syspm_callback_t             pm_callback_handler;
+#endif
+};
+#endif // DEVICE_I2C
+
+#if DEVICE_PWMOUT
+#include "cy_tcpwm.h"
+
+struct pwmout_s {
+    TCPWM_Type *base;
+    PinName pin;
+    uint32_t counter_id;
+    uint32_t clock;
+    uint32_t period;
+    uint32_t pulse_width;
+    uint32_t prescaler;
+#if DEVICE_SLEEP && DEVICE_LOWPOWERTIMER
+    cy_stc_syspm_callback_params_t      pm_callback_params;
+    cy_stc_syspm_callback_t             pm_callback_handler;
+#endif
+};
+#endif // DEVICE_PWMOUT
+
+#ifdef DEVICE_ANALOGIN
+#include "cy_sar.h"
+
+struct analogin_s {
+    SAR_Type *base;
+    PinName pin;
+    uint32_t channel_mask;
+    uint32_t clock;
+};
+#endif // DEVICE_ANALOGIN
+
+#ifdef DEVICE_ANALOGOUT
+#include "cy_ctdac.h"
+
+struct dac_s {
+    CTDAC_Type *base;
+    PinName pin;
+    uint32_t clock;
+};
+#endif // DEVICE_ANALOGOUT
+
+#ifdef DEVICE_FLASH
+struct flash_s {
+    /*  nothing to be stored for now */
+    void *dummy;
+};
+#endif // DEVICE_FLASH
+
+#if DEVICE_TRNG
+struct trng_s {
+    /*  nothing to be stored for now */
+    void *dummy;
+};
+#endif // DEVICE_TRNG
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif