diff --git a/include/x86/intel_minnow_byt_compatible.h b/include/x86/intel_minnow_byt_compatible.h index 5e4453c..4316df5 100644 --- a/include/x86/intel_minnow_byt_compatible.h +++ b/include/x86/intel_minnow_byt_compatible.h @@ -32,6 +32,7 @@ extern "C" { // +1 as pins are "1 indexed" #define MRAA_INTEL_MINNOW_MAX_PINCOUNT (26 + 1) +#define MRAA_INTEL_MINNOW_TURBOT_PINCOUNT (27 + 1) mraa_board_t* mraa_intel_minnowboard_byt_compatible(mraa_boolean_t); diff --git a/src/x86/intel_minnow_byt_compatible.c b/src/x86/intel_minnow_byt_compatible.c index 6d62516..a53cca8 100644 --- a/src/x86/intel_minnow_byt_compatible.c +++ b/src/x86/intel_minnow_byt_compatible.c @@ -89,7 +89,7 @@ mraa_intel_minnowboard_byt_compatible(mraa_boolean_t turbot) mraa_board_t* b = (mraa_board_t*) calloc(1, sizeof(mraa_board_t)); struct utsname running_uname; - int uname_major, uname_minor, max_pins[27]; + int uname_major, uname_minor, max_pins[28]; if (b == NULL) { return NULL; @@ -98,13 +98,13 @@ mraa_intel_minnowboard_byt_compatible(mraa_boolean_t turbot) b->platform_name = PLATFORM_NAME; if (turbot) { b->platform_version = "Turbot"; + b->gpio_count = b->phy_pin_count = MRAA_INTEL_MINNOW_TURBOT_PINCOUNT; } else { b->platform_version = "Ax"; + b->gpio_count = b->phy_pin_count = MRAA_INTEL_MINNOW_MAX_PINCOUNT; } - b->phy_pin_count = MRAA_INTEL_MINNOW_MAX_PINCOUNT; - b->gpio_count = MRAA_INTEL_MINNOW_MAX_PINCOUNT; - b->pins = (mraa_pininfo_t*) calloc(MRAA_INTEL_MINNOW_MAX_PINCOUNT, sizeof(mraa_pininfo_t)); + b->pins = (mraa_pininfo_t*) calloc(b->phy_pin_count, sizeof(mraa_pininfo_t)); if (b->pins == NULL) { goto error; } @@ -160,7 +160,12 @@ mraa_intel_minnowboard_byt_compatible(mraa_boolean_t turbot) mraa_set_pininfo(b, 24, "PWM1", (mraa_pincapabilities_t){ 1, 0, 1, 0, 0, 0, 0, 0 }, 249); // Assume BIOS configured for PWM mraa_set_pininfo(b, 25, "S5_4", (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 }, 84); - mraa_set_pininfo(b, 26, "IBL8254", (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 }, 208); + if (turbot) { + mraa_set_pininfo(b, 26, "I2S_MCLK", (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 }, 253); + mraa_set_pininfo(b, 27, "S5_22", (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 }, 104); + } else { + mraa_set_pininfo(b, 26, "IBL8254", (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 }, 208); + } // Set number of i2c adaptors usable from userspace b->i2c_bus_count = 1;