From 0f312545e0e959b303564bf32639dd7d83947728 Mon Sep 17 00:00:00 2001 From: Brendan Le Foll Date: Mon, 28 Sep 2015 11:27:19 +0100 Subject: [PATCH] iio: Add initial module Signed-off-by: Brendan Le Foll --- api/mraa/iio.h | 74 +++++++++++++++++++++++++++++++++++++++++++ include/mraa_internal_types.h | 7 ++++ src/CMakeLists.txt | 1 + src/iio/iio.c | 53 +++++++++++++++++++++++++++++++ 4 files changed, 135 insertions(+) create mode 100644 api/mraa/iio.h create mode 100644 src/iio/iio.c diff --git a/api/mraa/iio.h b/api/mraa/iio.h new file mode 100644 index 0000000..c20cb8e --- /dev/null +++ b/api/mraa/iio.h @@ -0,0 +1,74 @@ +/* + * Author: Brendan Le Foll + * Copyright (c) 2015 Intel Corporation. + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +/** + * @file + * @brief iio + * + * An iio context represents an IIO device + * + * @snippet iio_driver.c Interesting + */ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include +#include + +#include "common.h" + +/** + * Opaque pointer definition to the internal struct _iio + */ +typedef struct _iio* mraa_iio_context; + +/** + * Initialise iio context + * + * @param bus iio device to use + * @return i2c context or NULL + */ +mraa_iio_context mraa_iio_init(int device); + +/** + */ +mraa_result_t mraa_iio_read(mraa_iio_context dev, uint32_t *data, int length); + +/** + * De-inits an mraa_iio_context device + * + * @param dev The iio context + * @return Result of operation + */ +mraa_result_t mraa_iio_stop(mraa_iio_context dev); + +#ifdef __cplusplus +} +#endif diff --git a/include/mraa_internal_types.h b/include/mraa_internal_types.h index 7212814..af7fd02 100644 --- a/include/mraa_internal_types.h +++ b/include/mraa_internal_types.h @@ -130,6 +130,13 @@ struct _uart { }; /** + * A structure reprensting an IIO device + */ +struct _iio { + int num; /**< IIO device number */ +}; + +/** * A bitfield representing the capabilities of a pin. */ typedef struct { diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e3c3e9c..819d2aa 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -16,6 +16,7 @@ set (mraa_LIB_SRCS_NOAUTO ${PROJECT_SOURCE_DIR}/src/spi/spi.c ${PROJECT_SOURCE_DIR}/src/aio/aio.c ${PROJECT_SOURCE_DIR}/src/uart/uart.c + ${PROJECT_SOURCE_DIR}/src/iio/iio.c ) set (mraa_LIB_X86_SRCS_NOAUTO diff --git a/src/iio/iio.c b/src/iio/iio.c new file mode 100644 index 0000000..d5d3c3b --- /dev/null +++ b/src/iio/iio.c @@ -0,0 +1,53 @@ +/* + * Author: Brendan Le Foll + * Copyright (c) 2015 Intel Corporation. + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "iio.h" +#include "mraa_internal.h" + +mraa_iio_context +mraa_iio_init(int device) +{ + mraa_iio_context dev = (mraa_iio_context) calloc(1, sizeof(struct _iio)); + if (dev == NULL) { + syslog(LOG_CRIT, "iio: Failed to allocate memory for context"); + return NULL; + } + + return dev; +} + + +mraa_result_t +mraa_iio_read(mraa_iio_context dev, uint32_t* data, int length) +{ + return 0; +} + +mraa_result_t +mraa_iio_stop(mraa_iio_context dev) +{ + free(dev); + return MRAA_SUCCESS; +} + -- 2.7.4