SDMP_IOT / Mbed OS AdiSense1000_SmartBabySeat

Fork of Babyseat_NewFirmware_copy_sean by Ross O'Halloran

Committer:
kevin1990
Date:
Fri Dec 15 22:41:56 2017 +0000
Revision:
18:fa3a317ebeaa
Parent:
7:4dbae381f693
v1.0_RC3 Release

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kevin1990 7:4dbae381f693 1 /*!
kevin1990 7:4dbae381f693 2 ******************************************************************************
kevin1990 7:4dbae381f693 3 * @file: adi_sense_spi.h
kevin1990 7:4dbae381f693 4 * @brief: ADI Sense OS-dependent wrapper layer for SPI interface
kevin1990 7:4dbae381f693 5 *-----------------------------------------------------------------------------
kevin1990 7:4dbae381f693 6 */
kevin1990 7:4dbae381f693 7
kevin1990 7:4dbae381f693 8 /*
kevin1990 7:4dbae381f693 9 Copyright (c) 2017 Emutex Ltd. / Analog Devices, Inc.
kevin1990 7:4dbae381f693 10
kevin1990 7:4dbae381f693 11 All rights reserved.
kevin1990 7:4dbae381f693 12
kevin1990 7:4dbae381f693 13 Redistribution and use in source and binary forms, with or without modification,
kevin1990 7:4dbae381f693 14 are permitted provided that the following conditions are met:
kevin1990 7:4dbae381f693 15 - Redistributions of source code must retain the above copyright notice,
kevin1990 7:4dbae381f693 16 this list of conditions and the following disclaimer.
kevin1990 7:4dbae381f693 17 - Redistributions in binary form must reproduce the above copyright notice,
kevin1990 7:4dbae381f693 18 this list of conditions and the following disclaimer in the documentation
kevin1990 7:4dbae381f693 19 and/or other materials provided with the distribution.
kevin1990 7:4dbae381f693 20 - Modified versions of the software must be conspicuously marked as such.
kevin1990 7:4dbae381f693 21 - This software is licensed solely and exclusively for use with processors
kevin1990 7:4dbae381f693 22 manufactured by or for Analog Devices, Inc.
kevin1990 7:4dbae381f693 23 - This software may not be combined or merged with other code in any manner
kevin1990 7:4dbae381f693 24 that would cause the software to become subject to terms and conditions
kevin1990 7:4dbae381f693 25 which differ from those listed here.
kevin1990 7:4dbae381f693 26 - Neither the name of Analog Devices, Inc. nor the names of its
kevin1990 7:4dbae381f693 27 contributors may be used to endorse or promote products derived
kevin1990 7:4dbae381f693 28 from this software without specific prior written permission.
kevin1990 7:4dbae381f693 29 - The use of this software may or may not infringe the patent rights of one
kevin1990 7:4dbae381f693 30 or more patent holders. This license does not release you from the
kevin1990 7:4dbae381f693 31 requirement that you obtain separate licenses from these patent holders
kevin1990 7:4dbae381f693 32 to use this software.
kevin1990 7:4dbae381f693 33
kevin1990 7:4dbae381f693 34 THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES, INC. AND CONTRIBUTORS "AS IS" AND ANY
kevin1990 7:4dbae381f693 35 EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT,
kevin1990 7:4dbae381f693 36 TITLE, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
kevin1990 7:4dbae381f693 37 NO EVENT SHALL ANALOG DEVICES, INC. OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
kevin1990 7:4dbae381f693 38 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, PUNITIVE OR CONSEQUENTIAL DAMAGES
kevin1990 7:4dbae381f693 39 (INCLUDING, BUT NOT LIMITED TO, DAMAGES ARISING OUT OF CLAIMS OF INTELLECTUAL
kevin1990 7:4dbae381f693 40 PROPERTY RIGHTS INFRINGEMENT; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
kevin1990 7:4dbae381f693 41 OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
kevin1990 7:4dbae381f693 42 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
kevin1990 7:4dbae381f693 43 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
kevin1990 7:4dbae381f693 44 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
kevin1990 7:4dbae381f693 45 */
kevin1990 7:4dbae381f693 46
kevin1990 7:4dbae381f693 47 #ifndef __ADI_SENSE_SPI_H__
kevin1990 7:4dbae381f693 48 #define __ADI_SENSE_SPI_H__
kevin1990 7:4dbae381f693 49
kevin1990 7:4dbae381f693 50 #include "inc/adi_sense_types.h"
kevin1990 7:4dbae381f693 51 #include "inc/adi_sense_platform.h"
kevin1990 7:4dbae381f693 52
kevin1990 7:4dbae381f693 53 /*! @ingroup ADI_Sense_Host */
kevin1990 7:4dbae381f693 54
kevin1990 7:4dbae381f693 55 /*! @addtogroup ADI_Sense_Spi ADI Sense Host SPI interface functions
kevin1990 7:4dbae381f693 56 * @{
kevin1990 7:4dbae381f693 57 */
kevin1990 7:4dbae381f693 58
kevin1990 7:4dbae381f693 59 /*! A handle used in all API functions to identify the SPI interface context */
kevin1990 7:4dbae381f693 60 typedef void * ADI_SENSE_SPI_HANDLE;
kevin1990 7:4dbae381f693 61
kevin1990 7:4dbae381f693 62 #ifdef __cplusplus
kevin1990 7:4dbae381f693 63 extern "C"
kevin1990 7:4dbae381f693 64 {
kevin1990 7:4dbae381f693 65 #endif
kevin1990 7:4dbae381f693 66
kevin1990 7:4dbae381f693 67 /*!
kevin1990 7:4dbae381f693 68 * @brief Open the SPI interface and allocate resources
kevin1990 7:4dbae381f693 69 *
kevin1990 7:4dbae381f693 70 * @param[in] pConfig Pointer to platform-specific SPI interface details
kevin1990 7:4dbae381f693 71 * @param[out] phDevice Pointer to return a SPI interface context handle
kevin1990 7:4dbae381f693 72 *
kevin1990 7:4dbae381f693 73 * @return Status
kevin1990 7:4dbae381f693 74 * - #ADI_SENSE_SUCCESS Call completed successfully
kevin1990 7:4dbae381f693 75 * - #ADI_SENSE_NO_MEM Failed to allocate memory for interface context
kevin1990 7:4dbae381f693 76 */
kevin1990 7:4dbae381f693 77 ADI_SENSE_RESULT adi_sense_SpiOpen(
kevin1990 7:4dbae381f693 78 ADI_SENSE_PLATFORM_SPI_CONFIG * pConfig,
kevin1990 7:4dbae381f693 79 ADI_SENSE_SPI_HANDLE * phDevice);
kevin1990 7:4dbae381f693 80
kevin1990 7:4dbae381f693 81 /*!
kevin1990 7:4dbae381f693 82 * @brief Close SPI interface and free resources
kevin1990 7:4dbae381f693 83 *
kevin1990 7:4dbae381f693 84 * @param[in] hDevice SPI interface context handle (@ref adi_sense_SpiOpen)
kevin1990 7:4dbae381f693 85 */
kevin1990 7:4dbae381f693 86 void adi_sense_SpiClose(
kevin1990 7:4dbae381f693 87 ADI_SENSE_SPI_HANDLE hDevice);
kevin1990 7:4dbae381f693 88
kevin1990 7:4dbae381f693 89 /*!
kevin1990 7:4dbae381f693 90 * @brief Transfer data to slave device
kevin1990 7:4dbae381f693 91 *
kevin1990 7:4dbae381f693 92 * @param[in] hDevice SPI interface context handle (@ref adi_sense_SpiOpen)
kevin1990 7:4dbae381f693 93 * @param[in] pTxData Transmit data buffer, or NULL for read-only transfers
kevin1990 7:4dbae381f693 94 * @param[in] pRxData Receive data buffer, or NULL for write-only transfers
kevin1990 7:4dbae381f693 95 * @param[in] nLength Number of bytes to transfer
kevin1990 7:4dbae381f693 96 * @param[in] bCsHold Leave the chip-select asserted when the transfer is done
kevin1990 7:4dbae381f693 97 *
kevin1990 7:4dbae381f693 98 * @return Status
kevin1990 7:4dbae381f693 99 * - #ADI_SENSE_SUCCESS Call completed successfully
kevin1990 7:4dbae381f693 100 * - #ADI_SENSE_FAILURE Failed to complete SPI transfer
kevin1990 7:4dbae381f693 101 */
kevin1990 7:4dbae381f693 102 ADI_SENSE_RESULT adi_sense_SpiTransfer(
kevin1990 7:4dbae381f693 103 ADI_SENSE_SPI_HANDLE hDevice,
kevin1990 7:4dbae381f693 104 void * pTxData,
kevin1990 7:4dbae381f693 105 void * pRxData,
kevin1990 7:4dbae381f693 106 unsigned nLength,
kevin1990 7:4dbae381f693 107 bool bCsHold);
kevin1990 7:4dbae381f693 108
kevin1990 7:4dbae381f693 109 #ifdef __cplusplus
kevin1990 7:4dbae381f693 110 }
kevin1990 7:4dbae381f693 111 #endif
kevin1990 7:4dbae381f693 112
kevin1990 7:4dbae381f693 113 /*!
kevin1990 7:4dbae381f693 114 * @}
kevin1990 7:4dbae381f693 115 */
kevin1990 7:4dbae381f693 116
kevin1990 7:4dbae381f693 117 #endif /* __ADI_SENSE_SPI_H__ */
kevin1990 7:4dbae381f693 118