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:
committed by
Brendan Le Foll
parent
0920c22673
commit
92cbb6097c
@@ -50,5 +50,9 @@ typedef struct {
|
|||||||
mraa_result_t (*i2c_init_pre) (unsigned int bus);
|
mraa_result_t (*i2c_init_pre) (unsigned int bus);
|
||||||
mraa_result_t (*i2c_init_post) (mraa_i2c_context dev);
|
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_result_t (*pwm_period_replace) (mraa_pwm_context dev, int period);
|
||||||
} mraa_adv_func_t;
|
} mraa_adv_func_t;
|
||||||
|
|||||||
@@ -39,6 +39,8 @@ static int sup_bits;
|
|||||||
|
|
||||||
static mraa_result_t aio_get_valid_fp(mraa_aio_context dev)
|
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]= "";
|
char file_path[64]= "";
|
||||||
|
|
||||||
//Open file Analog device input channel raw voltage file for reading.
|
//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)
|
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);
|
int checked_pin = mraa_setup_aio(aio_channel);
|
||||||
if (checked_pin < 0) {
|
if (checked_pin < 0) {
|
||||||
switch(checked_pin) {
|
switch(checked_pin) {
|
||||||
@@ -98,6 +106,13 @@ mraa_aio_context mraa_aio_init(unsigned int aio_channel)
|
|||||||
raw_bits = mraa_adc_raw_bits();
|
raw_bits = mraa_adc_raw_bits();
|
||||||
sup_bits = mraa_adc_supported_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;
|
return dev;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user