Private
Public Access
2
0

mraa.c: Add new API to support I2C bus number query

Add two new API to get the usable I2C bus count and related I2C adapter number

Signed-off-by: Yong Li <yong.b.li@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
This commit is contained in:
Yong Li
2015-08-25 15:04:38 +08:00
committed by Brendan Le Foll
parent af533deffe
commit 02399b61f9
3 changed files with 47 additions and 1 deletions

View File

@@ -152,11 +152,26 @@ mraa_platform_t mraa_get_platform_type();
*/
unsigned int mraa_get_pin_count();
/**
* Get platform usable I2C bus count, board must be initialised.
*
* @return number f usable I2C bus count on the current platform. Function will
* return -1 on failure
*/
int mraa_get_i2c_bus_count();
/**
* Get I2C adapter number in sysfs.
*
* @param i2c_bus the logical I2C bus number
* @return I2C adapter number in sysfs. Function will return -1 on failure
*/
int mraa_get_i2c_bus_id(unsigned int i2c_bus);
/**
* Get name of pin, board must be initialised.
*
* @param pin number
*
* @return char* of pin name
*/
char* mraa_get_pin_name(int pin);

View File

@@ -32,9 +32,17 @@ int
main(int argc, char** argv)
{
char* board_name = mraa_get_platform_name();
int i2c_bus, i, i2c_adapter;
fprintf(stdout, "hello mraa\n Version: %s\n Running on %s\n", mraa_get_version(), board_name);
i2c_bus = mraa_get_i2c_bus_count();
for (i = 0; i < i2c_bus; i++) {
i2c_adapter = mraa_get_i2c_bus_id(i);
fprintf(stdout, "I2C[%d] adapter=%d\n", i, i2c_adapter);
}
mraa_deinit();
return MRAA_SUCCESS;

View File

@@ -312,6 +312,29 @@ mraa_get_platform_name()
return (char*) plat->platform_name;
}
int
mraa_get_i2c_bus_count()
{
if (plat == NULL) {
return -1;
}
return plat->i2c_bus_count;
}
int
mraa_get_i2c_bus_id(unsigned i2c_bus)
{
if (plat == NULL) {
return -1;
}
if (i2c_bus >= plat->i2c_bus_count) {
return -1;
}
return plat->i2c_bus[i2c_bus].bus_id;
}
unsigned int
mraa_get_pin_count()
{