Private
Public Access
2
0

up: various fixes in pin naming on up1 and up2

fixes naming in up and up2 platform
- changed the name of the i2c function
- add a warning in the log if a name is not found

Signed-off-by: Nicola Lunghi <nicola.lunghi@emutex.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
This commit is contained in:
Nicola Lunghi
2017-09-08 18:12:41 +01:00
committed by Brendan Le Foll
parent 04a40ed63f
commit 64a0db6a50
4 changed files with 122 additions and 118 deletions

View File

@@ -43,45 +43,45 @@ model 2 and B+ numbering scheme.
Note that there is an enum to use wiringPi style numbers.
| MRAA Number | Physical Pin | Function | Sysfs GPIO | Notes |
|-------------|--------------|----------|------------|----------------------|
| MRAA Number | Physical Pin | Function | Sysfs GPIO | mraa device |
|-------------|--------------|-------------|------------|----------------------|
| 1 | P1-01 | 3V3 VCC | | |
| 2 | P1-02 | 5V VCC | | |
| 3 | P1-03 | I2C SDA1 | 2 | I2C1 (/dev/i2c-1) |
| 3 | P1-03 | I2C SDA | 2 | I2C0 |
| 4 | P1-04 | 5V VCC | | |
| 5 | P1-05 | I2C SCL1 | 3 | I2C1 (/dev/i2c-1) |
| 5 | P1-05 | I2C SCL | 3 | I2C0 |
| 6 | P1-06 | GND | | |
| 7 | P1-07 | GPIO(4) | 4 | ADC0 (iio:device0) |
| 8 | P1-08 | UART TX1 | 14 | UART1 (/dev/ttyS1) |
| 8 | P1-08 | UART TX | 14 | UART0 |
| 9 | P1-09 | GND | | |
| 10 | P1-10 | UART RX1 | 15 | UART1 (/dev/ttyS1) |
| 10 | P1-10 | UART RX | 15 | UART0 |
| 11 | P1-11 | GPIO(17) | 17 | |
| 12 | P1-12 | I2S CLK | 18 | I2S0 (PCM Audio) |
| 12 | P1-12 | I2S CLK | 18 | |
| 13 | P1-13 | GPIO(27) | 27 | |
| 14 | P1-14 | GND | | |
| 15 | P1-15 | GPIO(22) | 22 | |
| 16 | P1-16 | GPIO(23) | 23 | |
| 17 | P1-17 | 3V3 VCC | | |
| 18 | P1-18 | GPIO(24) | 24 | |
| 19 | P1-19 | SPI MOSI | 10 | SPI2 (/dev/spidev2.x)|
| 19 | P1-19 | SPI MOSI | 10 | SPI0,1 |
| 20 | P1-20 | GND | | |
| 21 | P1-21 | SPI MISO | 9 | SPI2 (/dev/spidev2.x)|
| 21 | P1-21 | SPI MISO | 9 | SPI0,1 |
| 22 | P1-22 | GPIO(25) | 25 | |
| 23 | P1-23 | SPI SCL | 11 | SPI2 (/dev/spidev2.x)|
| 24 | P1-24 | SPI CS0 | 8 | SPI2 (/dev/spidev2.0)|
| 23 | P1-23 | SPI SCL | 11 | SPI0,1 |
| 24 | P1-24 | SPI CS0 | 8 | SPI0 |
| 25 | P1-25 | GND | | |
| 26 | P1-26 | SPI CS1 | 7 | SPI2 (/dev/spidev2.1)|
| 27 | P1-27 | I2C SDA0 | 0 | I2C0 (/dev/i2c-0) |
| 28 | P1-28 | I2C SCL0 | 1 | I2C0 (/dev/i2c-0) |
| 26 | P1-26 | SPI CS1 | 7 | SPI1 |
| 27 | P1-27 | I2C SDA0 | 0 | I2C1 |
| 28 | P1-28 | I2C SCL0 | 1 | I2C1 |
| 29 | P1-29 | GPIO(5) | 5 | |
| 30 | P1-30 | GND | | |
| 31 | P1-31 | GPIO(6) | 6 | |
| 32 | P1-32 | PWM0 | 12 | PWM Chip 0 Channel 0 |
| 33 | P1-33 | PWM1 | 13 | PWM Chip 1 Channel 0 |
| 32 | P1-32 | PWM0 | 12 | PWM0 |
| 33 | P1-33 | PWM1 | 13 | PWM1 |
| 34 | P1-34 | GND | | |
| 35 | P1-35 | I2S FRM | 19 | I2S0 (PCM Audio) |
| 35 | P1-35 | I2S FRM | 19 | |
| 36 | P1-36 | GPIO(16) | 16 | |
| 37 | P1-37 | GPIO(26) | 26 | |
| 38 | P1-38 | I2S DIN | 20 | I2S0 (PCM Audio) |
| 38 | P1-38 | I2S DIN | 20 | |
| 39 | P1-39 | GND | | |
| 40 | P1-40 | I2S DOUT | 21 | I2S0 (PCM Audio) |
| 40 | P1-40 | I2S DOUT | 21 | |

View File

@@ -42,45 +42,45 @@ NOTE: the i2c device numbering depend on various factor and cannot be trusted:
the right way of determining i2c (and other devices) numbering is through PCI
physical device names. See the source code in src/x86/up2.c for details.
| MRAA no. | Function | Rpi GPIO | Sysfs GPIO | Notes |
|----------|--------------|------------|------------|--------------------------------|
| MRAA no. | Function | Rpi GPIO | Sysfs GPIO | mraa device |
|----------|--------------|------------|------------|-----------------|
| 1 | 3V3 VCC | | | |
| 2 | 5V VCC | | | |
| 3 | I2C1_SDA | 2 | 462 | I2C1 (/dev/i2c-1) |
| 3 | I2C_SDA | 2 | 462 | I2C0 |
| 4 | 5V VCC | | | |
| 5 | I2C1_SCL | 3 | 463 | I2C1 (/dev/i2c-1) |
| 5 | I2C_SCL | 3 | 463 | I2C0 |
| 6 | GND | | | |
| 7 | GPIO(4) | 4 | 433 | |
| 8 | UART1_TX | 14 | 477 | UART1 (/dev/ttyS1) |
| 8 | UART_TX | 14 | 477 | UART0 |
| 9 | GND | | | |
| 10 | UART1_RX | 15 | 476 | UART1 (/dev/ttyS1) |
| 11 | UART1_RTS | 17 | 478 | |
| 12 | I2S_CLK | 18 | 326 | I2S0 (PCM Audio) |
| 10 | UART_RX | 15 | 476 | UART0 |
| 11 | UART_RTS | 17 | 478 | |
| 12 | I2S_CLK | 18 | 326 | |
| 13 | GPIO(27) | 27 | 432 | |
| 14 | GND | | | |
| 15 | GPIO(22) | 22 | 431 | |
| 16 | PWM3 | 23 | 471 | PWM Chip 0 Channel 4 |
| 16 | PWM3 | 23 | 471 | PWM3 |
| 17 | 3V3 VCC | | | |
| 18 | GPIO(24) | 24 | 405 | |
| 19 | SPI0_MOSI | 10 | 422 | SPI2 (/dev/spidev1.x) |
| 19 | SPI0_MOSI | 10 | 422 | SPI0 |
| 20 | GND | | | |
| 21 | SPI0_MISO | 9 | 421 | SPI2 (/dev/spidev1.x) |
| 21 | SPI0_MISO | 9 | 421 | SPI0 |
| 22 | GPIO(25) | 25 | 402 | |
| 23 | SPI0_SCL | 11 | 418 | SPI2 (/dev/spidev1.x) |
| 24 | SPI0_CS0 | 8 | 419 | SPI2 (/dev/spidev1.0) |
| 23 | SPI0_SCL | 11 | 418 | SPI0 |
| 24 | SPI0_CS0 | 8 | 419 | SPI0 |
| 25 | GND | | | |
| 26 | SPI0_CS1 | 7 | 420 | SPI2 (/dev/spidev1.1) |
| 27 | I2C0_SDA | 0 | 464 | I2C0 (/dev/i2c-0) |
| 28 | I2C0_SCL | 1 | 465 | I2C0 (/dev/i2c-0) |
| 26 | SPI0_CS1 | 7 | 420 | SPI0 |
| 27 | ID_SD | 0 | 464 | I2C1 |
| 28 | ID_SC | 1 | 465 | I2C1 |
| 29 | GPIO(5) | 5 | 430 | |
| 30 | GND | | | |
| 31 | GPIO(6) | 6 | 404 | |
| 32 | PWM0 | 12 | 468 | PWM Chip 0 Channel 0 |
| 33 | PWM1 | 13 | 469 | PWM Chip 1 Channel 0 |
| 32 | PWM0 | 12 | 468 | PWM0 |
| 33 | PWM1 | 13 | 469 | PWM1 |
| 34 | GND | | | |
| 35 | I2S_FRM | 19 | 327 | I2S0 (PCM Audio) |
| 36 | UART1_CTS | 16 | 479 | |
| 35 | I2S_FRM | 19 | 327 | |
| 36 | UART_CTS | 16 | 479 | |
| 37 | GPIO(26) | 26 | 403 | |
| 38 | I2S_DIN | 20 | 328 | I2S0 (PCM Audio) |
| 38 | I2S_DIN | 20 | 328 | |
| 39 | GND | | | |
| 40 | I2S_DOUT | 21 | 329 | I2S0 (PCM Audio) |
| 40 | I2S_DOUT | 21 | 329 | |

View File

@@ -82,6 +82,9 @@ mraa_up_get_pin_index(mraa_board_t* board, char* name, int* pin_index)
return MRAA_SUCCESS;
}
}
syslog(LOG_CRIT, "up: Failed to find pin name %s", name);
return MRAA_ERROR_INVALID_RESOURCE;
}
@@ -137,14 +140,14 @@ mraa_up_board()
mraa_up_set_pininfo(b, 0, "INVALID", (mraa_pincapabilities_t){ 0, 0, 0, 0, 0, 0, 0, 0 }, -1);
mraa_up_set_pininfo(b, 1, "3.3v", (mraa_pincapabilities_t){ 0, 0, 0, 0, 0, 0, 0, 0 }, -1);
mraa_up_set_pininfo(b, 2, "5v", (mraa_pincapabilities_t){ 0, 0, 0, 0, 0, 0, 0, 0 }, -1);
mraa_up_set_pininfo(b, 3, "I2C1_SDA", (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 1, 0, 0 }, 2);
mraa_up_set_pininfo(b, 3, "I2C_SDA", (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 1, 0, 0 }, 2);
mraa_up_set_pininfo(b, 4, "5v", (mraa_pincapabilities_t){ 0, 0, 0, 0, 0, 0, 0, 0 }, -1);
mraa_up_set_pininfo(b, 5, "I2C1_SCL", (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 1, 0, 0 }, 3);
mraa_up_set_pininfo(b, 5, "I2C_SCL", (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 1, 0, 0 }, 3);
mraa_up_set_pininfo(b, 6, "GND", (mraa_pincapabilities_t){ 0, 0, 0, 0, 0, 0, 0, 0 }, -1);
mraa_up_set_pininfo(b, 7, "ADC0", (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 1, 0 }, 4);
mraa_up_set_pininfo(b, 8, "UART1_TX", (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 1 }, 14);
mraa_up_set_pininfo(b, 8, "UART_TX", (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 1 }, 14);
mraa_up_set_pininfo(b, 9, "GND", (mraa_pincapabilities_t){ 0, 0, 0, 0, 0, 0, 0, 0 }, -1);
mraa_up_set_pininfo(b, 10, "UART1_RX", (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 1 }, 15);
mraa_up_set_pininfo(b, 10, "UART_RX", (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 1 }, 15);
mraa_up_set_pininfo(b, 11, "GPIO17", (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 }, 17);
mraa_up_set_pininfo(b, 12, "I2S_CLK", (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 }, 18);
mraa_up_set_pininfo(b, 13, "GPIO27", (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 }, 27);
@@ -187,8 +190,8 @@ mraa_up_board()
if (i2c_bus_num != -1) {
int i = b->i2c_bus_count;
b->i2c_bus[i].bus_id = i2c_bus_num;
mraa_up_get_pin_index(b, "I2C1_SDA", (int*) &(b->i2c_bus[0].sda));
mraa_up_get_pin_index(b, "I2C1_SCL", (int*) &(b->i2c_bus[0].scl));
mraa_up_get_pin_index(b, "I2C_SDA", (int*) &(b->i2c_bus[0].sda));
mraa_up_get_pin_index(b, "I2C_SCL", (int*) &(b->i2c_bus[0].scl));
b->i2c_bus_count++;
}
@@ -198,8 +201,8 @@ mraa_up_board()
if (i2c_bus_num != -1) {
int i = b->i2c_bus_count;
b->i2c_bus[i].bus_id = i2c_bus_num;
mraa_up_get_pin_index(b, "I2C0_SDA", (int*) &(b->i2c_bus[1].sda));
mraa_up_get_pin_index(b, "I2C0_SCL", (int*) &(b->i2c_bus[1].scl));
mraa_up_get_pin_index(b, "ID_SD", (int*) &(b->i2c_bus[1].sda));
mraa_up_get_pin_index(b, "ID_SC", (int*) &(b->i2c_bus[1].scl));
b->i2c_bus_count++;
}
@@ -227,8 +230,8 @@ mraa_up_board()
// Configure UART #1 (default)
b->uart_dev_count = 1;
mraa_up_get_pin_index(b, "UART1_RX", &(b->uart_dev[0].rx));
mraa_up_get_pin_index(b, "UART1_TX", &(b->uart_dev[0].tx));
mraa_up_get_pin_index(b, "UART_RX", &(b->uart_dev[0].rx));
mraa_up_get_pin_index(b, "UART_TX", &(b->uart_dev[0].tx));
b->uart_dev[0].device_path = "/dev/ttyS1";
b->def_uart_dev = 0;

View File

@@ -97,6 +97,9 @@ mraa_up2_get_pin_index(mraa_board_t* board, char* name, int* pin_index)
return MRAA_SUCCESS;
}
}
syslog(LOG_CRIT, "up2: Failed to find pin name %s", name);
return MRAA_ERROR_INVALID_RESOURCE;
}
@@ -128,15 +131,15 @@ mraa_up2_board()
mraa_up2_set_pininfo(b, 0, "INVALID", (mraa_pincapabilities_t) {0, 0, 0, 0, 0, 0, 0, 0}, -1);
mraa_up2_set_pininfo(b, 1, "3.3v", (mraa_pincapabilities_t) {0, 0, 0, 0, 0, 0, 0, 0}, -1);
mraa_up2_set_pininfo(b, 2, "5v", (mraa_pincapabilities_t) {0, 0, 0, 0, 0, 0, 0, 0}, -1);
mraa_up2_set_pininfo(b, 3, "I2C1_SDA", (mraa_pincapabilities_t) {1, 1, 0, 0, 0, 1, 0, 0}, MRAA_UP2_NORTH_BASE + 28);
mraa_up2_set_pininfo(b, 3, "I2C_SDA", (mraa_pincapabilities_t) {1, 1, 0, 0, 0, 1, 0, 0}, MRAA_UP2_NORTH_BASE + 28);
mraa_up2_set_pininfo(b, 4, "5v", (mraa_pincapabilities_t) {0, 0, 0, 0, 0, 0, 0, 0}, -1);
mraa_up2_set_pininfo(b, 5, "I2C1_SCL", (mraa_pincapabilities_t) {1, 1, 0, 0, 0, 1, 0, 0}, MRAA_UP2_NORTH_BASE + 29);
mraa_up2_set_pininfo(b, 5, "I2C_SCL", (mraa_pincapabilities_t) {1, 1, 0, 0, 0, 1, 0, 0}, MRAA_UP2_NORTH_BASE + 29);
mraa_up2_set_pininfo(b, 6, "GND", (mraa_pincapabilities_t) {0, 0, 0, 0, 0, 0, 0, 0}, -1);
mraa_up2_set_pininfo(b, 7, "GPIO4", (mraa_pincapabilities_t) {1, 1, 0, 0, 0, 0, 0, 0}, MRAA_UP2_NORTHWEST_BASE + 76);
mraa_up2_set_pininfo(b, 8, "UART1_TX", (mraa_pincapabilities_t) {1, 1, 0, 0, 0, 0, 0, 1}, MRAA_UP2_NORTH_BASE + 43);
mraa_up2_set_pininfo(b, 9, "GND", (mraa_pincapabilities_t) {0, 0, 0, 0, 0, 0, 0, 0}, -1);
mraa_up2_set_pininfo(b, 10, "UART1_RX", (mraa_pincapabilities_t) {1, 1, 0, 0, 0, 0, 0, 1}, MRAA_UP2_NORTH_BASE + 42);
mraa_up2_set_pininfo(b, 11, "UART1_RTS", (mraa_pincapabilities_t) {1, 1, 0, 0, 0, 0, 0, 1}, MRAA_UP2_NORTH_BASE + 44);
mraa_up2_set_pininfo(b, 10, "UART_RX", (mraa_pincapabilities_t) {1, 1, 0, 0, 0, 0, 0, 1}, MRAA_UP2_NORTH_BASE + 42);
mraa_up2_set_pininfo(b, 11, "UART_RTS", (mraa_pincapabilities_t) {1, 1, 0, 0, 0, 0, 0, 1}, MRAA_UP2_NORTH_BASE + 44);
mraa_up2_set_pininfo(b, 12, "I2S_CLK", (mraa_pincapabilities_t) {1, 1, 0, 0, 0, 0, 0, 0}, MRAA_UP2_WEST_BASE + 16);
mraa_up2_set_pininfo(b, 13, "GPIO27", (mraa_pincapabilities_t) {1, 1, 0, 0, 0, 0, 0, 0}, MRAA_UP2_NORTHWEST_BASE + 75);
mraa_up2_set_pininfo(b, 14, "GND", (mraa_pincapabilities_t) {0, 0, 0, 0, 0, 0, 0, 0}, -1);
@@ -152,8 +155,8 @@ mraa_up2_board()
mraa_up2_set_pininfo(b, 24, "SPI0_CS0", (mraa_pincapabilities_t) {1, 1, 0, 0, 1, 0, 0, 0}, MRAA_UP2_NORTHWEST_BASE + 62);
mraa_up2_set_pininfo(b, 25, "GND", (mraa_pincapabilities_t) {0, 0, 0, 0, 0, 0, 0, 0}, -1);
mraa_up2_set_pininfo(b, 26, "SPI0_CS1", (mraa_pincapabilities_t) {1, 1, 0, 0, 1, 0, 0, 0}, MRAA_UP2_NORTHWEST_BASE + 63);
mraa_up2_set_pininfo(b, 27, "I2C0_SDA", (mraa_pincapabilities_t) {1, 1, 0, 0, 0, 1, 0, 0}, MRAA_UP2_NORTH_BASE + 30);
mraa_up2_set_pininfo(b, 28, "I2C0_SCL", (mraa_pincapabilities_t) {1, 1, 0, 0, 0, 1, 0, 0}, MRAA_UP2_NORTH_BASE + 31);
mraa_up2_set_pininfo(b, 27, "ID_SD", (mraa_pincapabilities_t) {1, 1, 0, 0, 0, 1, 0, 0}, MRAA_UP2_NORTH_BASE + 30);
mraa_up2_set_pininfo(b, 28, "ID_SC", (mraa_pincapabilities_t) {1, 1, 0, 0, 0, 1, 0, 0}, MRAA_UP2_NORTH_BASE + 31);
mraa_up2_set_pininfo(b, 29, "GPIO5", (mraa_pincapabilities_t) {1, 1, 0, 0, 0, 0, 0, 0}, MRAA_UP2_NORTHWEST_BASE + 73);
mraa_up2_set_pininfo(b, 30, "GND", (mraa_pincapabilities_t) {0, 0, 0, 0, 0, 0, 0, 0}, -1);
mraa_up2_set_pininfo(b, 31, "GPIO6", (mraa_pincapabilities_t) {1, 1, 0, 0, 0, 0, 0, 0}, MRAA_UP2_NORTHWEST_BASE + 47);
@@ -161,7 +164,7 @@ mraa_up2_board()
mraa_up2_set_pininfo(b, 33, "PWM1", (mraa_pincapabilities_t) {1, 1, 1, 0, 0, 0, 0, 0}, MRAA_UP2_NORTH_BASE + 35);
mraa_up2_set_pininfo(b, 34, "GND", (mraa_pincapabilities_t) {0, 0, 0, 0, 0, 0, 0, 0}, -1);
mraa_up2_set_pininfo(b, 35, "I2S_FRM", (mraa_pincapabilities_t) {1, 1, 0, 0, 0, 0, 0, 0}, MRAA_UP2_WEST_BASE + 17);
mraa_up2_set_pininfo(b, 36, "UART1_CTS", (mraa_pincapabilities_t) {1, 1, 0, 0, 0, 0, 0, 1}, MRAA_UP2_NORTH_BASE + 45);
mraa_up2_set_pininfo(b, 36, "UART_CTS", (mraa_pincapabilities_t) {1, 1, 0, 0, 0, 0, 0, 1}, MRAA_UP2_NORTH_BASE + 45);
mraa_up2_set_pininfo(b, 37, "GPIO26", (mraa_pincapabilities_t) {1, 1, 0, 0, 0, 0, 0, 0}, MRAA_UP2_NORTHWEST_BASE + 46);
mraa_up2_set_pininfo(b, 38, "I2S_DIN", (mraa_pincapabilities_t) {1, 1, 0, 0, 0, 0, 0, 0}, MRAA_UP2_WEST_BASE + 18);
mraa_up2_set_pininfo(b, 39, "GND", (mraa_pincapabilities_t) {0, 0, 0, 0, 0, 0, 0, 0}, -1);
@@ -177,8 +180,8 @@ mraa_up2_board()
if (i2c_bus_num != -1) {
int i = b->i2c_bus_count;
b->i2c_bus[i].bus_id = i2c_bus_num;
mraa_up2_get_pin_index(b, "I2C1_SDA", &(b->i2c_bus[i].sda));
mraa_up2_get_pin_index(b, "I2C1_SCL", &(b->i2c_bus[i].scl));
mraa_up2_get_pin_index(b, "I2C_SDA", &(b->i2c_bus[i].sda));
mraa_up2_get_pin_index(b, "I2C_SCL", &(b->i2c_bus[i].scl));
b->i2c_bus_count++;
}
@@ -188,8 +191,8 @@ mraa_up2_board()
if (i2c_bus_num != -1) {
int i = b->i2c_bus_count;
b->i2c_bus[i].bus_id = i2c_bus_num;
mraa_up2_get_pin_index(b, "I2C0_SDA", &(b->i2c_bus[i].sda));
mraa_up2_get_pin_index(b, "I2C0_SCL", &(b->i2c_bus[i].scl));
mraa_up2_get_pin_index(b, "ID_SD", &(b->i2c_bus[i].sda));
mraa_up2_get_pin_index(b, "ID_SC", &(b->i2c_bus[i].scl));
b->i2c_bus_count++;
}
@@ -233,18 +236,16 @@ mraa_up2_board()
mraa_up2_get_pin_index(b, "SPI0_CLK", &(b->spi_bus[1].sclk));
b->spi_bus_count++;
// FIXME: add spi2 when we change pinout
// Configure UART
b->uart_dev_count = 0;
b->def_uart_dev = 0;
b->uart_dev[0].device_path = "/dev/ttyS1";
// Configure UART #1 (default)
mraa_up2_get_pin_index(b, "UART1_RX", &(b->uart_dev[0].rx));
mraa_up2_get_pin_index(b, "UART1_TX", &(b->uart_dev[0].tx));
mraa_up2_get_pin_index(b, "UART1_CTS", &(b->uart_dev[0].cts));
mraa_up2_get_pin_index(b, "UART1_RTS", &(b->uart_dev[0].rts));
mraa_up2_get_pin_index(b, "UART_RX", &(b->uart_dev[0].rx));
mraa_up2_get_pin_index(b, "UART_TX", &(b->uart_dev[0].tx));
mraa_up2_get_pin_index(b, "UART_CTS", &(b->uart_dev[0].cts));
mraa_up2_get_pin_index(b, "UART_RTS", &(b->uart_dev[0].rts));
b->uart_dev_count++;
// Configure ADCs