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:
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
23
src/mraa.c
23
src/mraa.c
@@ -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()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user