Private
Public Access
2
0

aio: add init hooks, and fp hook

Signed-off-by: Thomas Ingleby <thomas.c.ingleby@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
This commit is contained in:
Thomas Ingleby
2014-07-28 14:12:28 +01:00
committed by Brendan Le Foll
parent 0920c22673
commit 92cbb6097c
2 changed files with 19 additions and 0 deletions

View File

@@ -50,5 +50,9 @@ typedef struct {
mraa_result_t (*i2c_init_pre) (unsigned int bus);
mraa_result_t (*i2c_init_post) (mraa_i2c_context dev);
mraa_result_t (*aio_get_valid_fp) (mraa_aio_context dev);
mraa_result_t (*aio_init_pre) (unsigned int aio);
mraa_result_t (*aio_init_post) (mraa_aio_context dev);
mraa_result_t (*pwm_period_replace) (mraa_pwm_context dev, int period);
} mraa_adv_func_t;

View File

@@ -39,6 +39,8 @@ static int sup_bits;
static mraa_result_t aio_get_valid_fp(mraa_aio_context dev)
{
if (advance_func->aio_get_valid_fp != NULL)
return advance_func->aio_get_valid_fp(dev);
char file_path[64]= "";
//Open file Analog device input channel raw voltage file for reading.
@@ -63,6 +65,12 @@ static mraa_result_t aio_get_valid_fp(mraa_aio_context dev)
*/
mraa_aio_context mraa_aio_init(unsigned int aio_channel)
{
if (advance_func->aio_init_pre != NULL) {
mraa_result_t pre_ret = (advance_func->aio_init_pre(aio_channel));
if(pre_ret != MRAA_SUCCESS)
return NULL;
}
int checked_pin = mraa_setup_aio(aio_channel);
if (checked_pin < 0) {
switch(checked_pin) {
@@ -98,6 +106,13 @@ mraa_aio_context mraa_aio_init(unsigned int aio_channel)
raw_bits = mraa_adc_raw_bits();
sup_bits = mraa_adc_supported_bits();
if (advance_func->aio_init_post != NULL) {
mraa_result_t ret = advance_func->aio_init_post(dev);
if (ret != MRAA_SUCCESS) {
free(dev);
return NULL;
}
}
return dev;
}