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();
|
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.
|
* Get name of pin, board must be initialised.
|
||||||
*
|
*
|
||||||
* @param pin number
|
* @param pin number
|
||||||
*
|
|
||||||
* @return char* of pin name
|
* @return char* of pin name
|
||||||
*/
|
*/
|
||||||
char* mraa_get_pin_name(int pin);
|
char* mraa_get_pin_name(int pin);
|
||||||
|
|||||||
@@ -32,9 +32,17 @@ int
|
|||||||
main(int argc, char** argv)
|
main(int argc, char** argv)
|
||||||
{
|
{
|
||||||
char* board_name = mraa_get_platform_name();
|
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);
|
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();
|
mraa_deinit();
|
||||||
|
|
||||||
return MRAA_SUCCESS;
|
return MRAA_SUCCESS;
|
||||||
|
|||||||
23
src/mraa.c
23
src/mraa.c
@@ -312,6 +312,29 @@ mraa_get_platform_name()
|
|||||||
return (char*) plat->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
|
unsigned int
|
||||||
mraa_get_pin_count()
|
mraa_get_pin_count()
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user