initial commit, reads dev id

Committer:
phonemacro
Date:
Fri Aug 17 05:35:58 2018 +0000
Revision:
5:1f7b8cb07e26
Updated driver for MAX86140/MAX86141 driver functions

Who changed what in which revision?

UserRevisionLine numberNew contents of line
phonemacro 5:1f7b8cb07e26 1 /*******************************************************************************
phonemacro 5:1f7b8cb07e26 2 * Author: Ismail Kose, Ismail.Kose@maximintegrated.com
phonemacro 5:1f7b8cb07e26 3 * Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved.
phonemacro 5:1f7b8cb07e26 4 *
phonemacro 5:1f7b8cb07e26 5 * Permission is hereby granted, free of charge, to any person obtaining a
phonemacro 5:1f7b8cb07e26 6 * copy of this software and associated documentation files (the "Software"),
phonemacro 5:1f7b8cb07e26 7 * to deal in the Software without restriction, including without limitation
phonemacro 5:1f7b8cb07e26 8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
phonemacro 5:1f7b8cb07e26 9 * and/or sell copies of the Software, and to permit persons to whom the
phonemacro 5:1f7b8cb07e26 10 * Software is furnished to do so, subject to the following conditions:
phonemacro 5:1f7b8cb07e26 11 *
phonemacro 5:1f7b8cb07e26 12 * The above copyright notice and this permission notice shall be included
phonemacro 5:1f7b8cb07e26 13 * in all copies or substantial portions of the Software.
phonemacro 5:1f7b8cb07e26 14 *
phonemacro 5:1f7b8cb07e26 15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
phonemacro 5:1f7b8cb07e26 16 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
phonemacro 5:1f7b8cb07e26 17 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
phonemacro 5:1f7b8cb07e26 18 * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
phonemacro 5:1f7b8cb07e26 19 * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
phonemacro 5:1f7b8cb07e26 20 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
phonemacro 5:1f7b8cb07e26 21 * OTHER DEALINGS IN THE SOFTWARE.
phonemacro 5:1f7b8cb07e26 22 *
phonemacro 5:1f7b8cb07e26 23 * Except as contained in this notice, the name of Maxim Integrated
phonemacro 5:1f7b8cb07e26 24 * Products, Inc. shall not be used except as stated in the Maxim Integrated
phonemacro 5:1f7b8cb07e26 25 * Products, Inc. Branding Policy.
phonemacro 5:1f7b8cb07e26 26 *
phonemacro 5:1f7b8cb07e26 27 * The mere transfer of this software does not imply any licenses
phonemacro 5:1f7b8cb07e26 28 * of trade secrets, proprietary technology, copyrights, patents,
phonemacro 5:1f7b8cb07e26 29 * trademarks, maskwork rights, or any other form of intellectual
phonemacro 5:1f7b8cb07e26 30 * property whatsoever. Maxim Integrated Products, Inc. retains all
phonemacro 5:1f7b8cb07e26 31 * ownership rights.
phonemacro 5:1f7b8cb07e26 32 *******************************************************************************
phonemacro 5:1f7b8cb07e26 33 */
phonemacro 5:1f7b8cb07e26 34
phonemacro 5:1f7b8cb07e26 35 #ifndef _QUEUE_H_
phonemacro 5:1f7b8cb07e26 36 #define _QUEUE_H_
phonemacro 5:1f7b8cb07e26 37 #include <stdio.h>
phonemacro 5:1f7b8cb07e26 38 #include <stdint.h>
phonemacro 5:1f7b8cb07e26 39 #include <string.h>
phonemacro 5:1f7b8cb07e26 40 #include <stdlib.h>
phonemacro 5:1f7b8cb07e26 41
phonemacro 5:1f7b8cb07e26 42 struct queue_t {
phonemacro 5:1f7b8cb07e26 43 void *wr; // write pointer
phonemacro 5:1f7b8cb07e26 44 void *rd; // read pointer
phonemacro 5:1f7b8cb07e26 45 void *base; // buffer base pointer
phonemacro 5:1f7b8cb07e26 46 int num_item; // number of data item
phonemacro 5:1f7b8cb07e26 47 int ovf_item; // Number of overflowed data
phonemacro 5:1f7b8cb07e26 48 int buffer_size; // buffer size in bytes
phonemacro 5:1f7b8cb07e26 49 int item_size; // data size
phonemacro 5:1f7b8cb07e26 50 };
phonemacro 5:1f7b8cb07e26 51
phonemacro 5:1f7b8cb07e26 52 /**
phonemacro 5:1f7b8cb07e26 53 * @brief Queue initialization.
phonemacro 5:1f7b8cb07e26 54 * @param[in] *q Points to the queue handle
phonemacro 5:1f7b8cb07e26 55 * @param[in] *buf Points to external queue buffer
phonemacro 5:1f7b8cb07e26 56 * @param[in] item_size Data size
phonemacro 5:1f7b8cb07e26 57 * @param[in] buffer_size Total buffer size in bytes
phonemacro 5:1f7b8cb07e26 58 * @param[out] *pDst points to output matrix structure
phonemacro 5:1f7b8cb07e26 59 * @return The function returns 0: success
phonemacro 5:1f7b8cb07e26 60 * -1: Invalid Pointer
phonemacro 5:1f7b8cb07e26 61 * -2: Queue buffer is full, no more space
phonemacro 5:1f7b8cb07e26 62 **/
phonemacro 5:1f7b8cb07e26 63 int queue_init(struct queue_t *q, void *buf, int item_size, int buffer_size);
phonemacro 5:1f7b8cb07e26 64
phonemacro 5:1f7b8cb07e26 65
phonemacro 5:1f7b8cb07e26 66
phonemacro 5:1f7b8cb07e26 67
phonemacro 5:1f7b8cb07e26 68 /**
phonemacro 5:1f7b8cb07e26 69 * @brief Data reset.
phonemacro 5:1f7b8cb07e26 70 * @param[in] *q Points to the queue handle
phonemacro 5:1f7b8cb07e26 71 * @param[in] *data Points to any type of data to put FIFO
phonemacro 5:1f7b8cb07e26 72 * @param[out] *pDst Points to output matrix structure
phonemacro 5:1f7b8cb07e26 73 * @return The function returns 0: success
phonemacro 5:1f7b8cb07e26 74 * -1: Invalid Pointer
phonemacro 5:1f7b8cb07e26 75 * -2: Queue buffer is full, no more space
phonemacro 5:1f7b8cb07e26 76 **/
phonemacro 5:1f7b8cb07e26 77 int queue_reset(struct queue_t *q);
phonemacro 5:1f7b8cb07e26 78
phonemacro 5:1f7b8cb07e26 79
phonemacro 5:1f7b8cb07e26 80 /**
phonemacro 5:1f7b8cb07e26 81 * @brief Data enqueue.
phonemacro 5:1f7b8cb07e26 82 * @param[in] *q points to the queue handle
phonemacro 5:1f7b8cb07e26 83 * @param[in] *data points to any type of data to put FIFO
phonemacro 5:1f7b8cb07e26 84 * @return The function returns 0: success
phonemacro 5:1f7b8cb07e26 85 * -1: Invalid Pointer
phonemacro 5:1f7b8cb07e26 86 * -2: Queue buffer is full, no more space
phonemacro 5:1f7b8cb07e26 87 **/
phonemacro 5:1f7b8cb07e26 88 int enqueue(struct queue_t *q, void *data);
phonemacro 5:1f7b8cb07e26 89
phonemacro 5:1f7b8cb07e26 90
phonemacro 5:1f7b8cb07e26 91 /**
phonemacro 5:1f7b8cb07e26 92 * @brief Data dequeue.
phonemacro 5:1f7b8cb07e26 93 * @param[in] *q points to the queue handle
phonemacro 5:1f7b8cb07e26 94 * @param[in] *data points to any type of data to put FIFO
phonemacro 5:1f7b8cb07e26 95 * @param[out] *data pop data from Queue
phonemacro 5:1f7b8cb07e26 96 * @return The function returns 0: success
phonemacro 5:1f7b8cb07e26 97 * -1: Invalid Pointer
phonemacro 5:1f7b8cb07e26 98 * -2: Queue buffer is empty
phonemacro 5:1f7b8cb07e26 99 **/
phonemacro 5:1f7b8cb07e26 100 int dequeue(struct queue_t *q, void *data);
phonemacro 5:1f7b8cb07e26 101
phonemacro 5:1f7b8cb07e26 102
phonemacro 5:1f7b8cb07e26 103
phonemacro 5:1f7b8cb07e26 104 /**
phonemacro 5:1f7b8cb07e26 105 * @brief Queue Destroy
phonemacro 5:1f7b8cb07e26 106 * @param[in] *q points to the queue handle
phonemacro 5:1f7b8cb07e26 107 **/
phonemacro 5:1f7b8cb07e26 108 void queue_destroy(struct queue_t *q);
phonemacro 5:1f7b8cb07e26 109 #endif //_QUEUE_H_
phonemacro 5:1f7b8cb07e26 110