#include #include #include #include "OrangePi.h" #include #ifdef CONFIG_ORANGEPI_PC2 int physToWpi[64] = { -1, // 0 -1, -1, // 1, 2 0, -1, //3, 4 1, -1, //5, 6 2, 3, //7, 8 -1, 4, //9,10 5, 6, //11,12 7, -1, //13,14 8, 9, //15,16 -1, 10, //17,18 11, -1, //19,20 12, 13, //21,22 14, 15, //23, 24 -1, 16, // 25, 26 17, 18, //27, 28 19, -1, //29, 30 20, 21, //31, 32 22, -1, //33, 34 23, 24, //35, 36 25, 26, //37, 38 -1, 27, //39, 40 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, //41-> 55 -1, -1, -1, -1, -1, -1, -1, -1 // 56-> 63 }; char *physNames[64] = { NULL, " 3.3V", "5V ", " SDA.0", "5V ", " SCL.0", "GND ", " PWM.1", "PC05 ", " GND", "PC06 ", " RXD.2", "PD14 ", " TXD.2", "GND ", " CTS.2", "PC04 ", " 3.3V", "PC07 ", " MOSI.1", "GND ", " MISO.1", "RTS.2 ", " SCLK.1", "CE.1 ", " GND", "PA21 ", " SDA.1", "SCL.1 ", " PA07", "GND ", " PA08", "RTS.1 ", " PA09", "GND ", " PA10", "CTS.1 ", " PD11", "TXD.1 ", " GND", "RXD.1 ", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, }; #endif /* PC2 */ #ifdef CONFIG_ORANGEPI_PRIME int physToWpi[64] = { -1, // 0 -1, -1, // 1, 2 0, -1, //3, 4 1, -1, //5, 6 2, 3, //7, 8 -1, 4, //9,10 5, 6, //11,12 7, -1, //13,14 8, 9, //15,16 -1, 10, //17,18 11, -1, //19,20 12, 13, //21,22 14, 15, //23, 24 -1, 16, // 25, 26 17, 18, //27, 28 19, -1, //29, 30 20, 21, //31, 32 22, -1, //33, 34 23, 24, //35, 36 25, 26, //37, 38 -1, 27, //39, 40 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, //41-> 55 -1, -1, -1, -1, -1, -1, -1, -1 // 56-> 63 }; char *physNames[64] = { NULL, " 3.3V", "5V ", " SDA.0", "5V ", " SCL.0", "GND ", " PWM.1", "PC05 ", " GND", "PC06 ", " RXD.2", "PD14 ", " TXD.2", "GND ", " CTS.2", "PC04 ", " 3.3V", "PC07 ", " MOSI.1", "GND ", " MISO.1", "RTS.2 ", " SCLK.1", "CE.1 ", " GND", "PC08 ", " SDA.1", "SCL.1 ", " PA07", "GND ", " PA08", "PC09 ", " PA09", "GND ", " PA10", "PC10 ", " PD11", "PC11 ", " GND", "PC12 ", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, }; #endif /* PRIME */ #ifdef CONFIG_ORANGEPI_ZEROPLUS int physToWpi [64] = //return wiringPI pin { -1, // 0 -1, -1, // 1, 2 0, -1, //3, 4 1, -1, //5, 6 2, 3, //7, 8 -1, 4, //9,10 5, 6, //11,12 7, -1, //13,14 8, 9, //15,16 -1, 10, //17,18 11, -1, //19,20 12, 13, //21,22 14, 15, //23, 24 -1, 16, // 25, 26 -1, -1, //27, 28 -1, -1, //29, 30 -1, -1, //31, 32 -1, -1, //33, 34 -1, -1, //35, 36 -1, -1, //37, 38 -1, -1, //39, 40 -1, -1, //41, 42 // Padding: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // ... 56 -1, -1, -1, -1, -1, -1, -1, // ... 63 }; char *physNames[64] = { NULL, " 3.3V", "5V ", " SDA.0", "5V ", " SCL.0", "GND ", " PA6", "TXD.1 ", " GND", "RXD.1 ", " RXD.2", "PA07 ", " TXD.2", "GND ", " CTS.2", "SDA.1 ", " 3.3V", "SCL.1 ", " MOSI.1", "GND ", " MISO.1", "RTS.2 ", " SCLK.1", "CE.1 ", " GND", "PA10 ", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, }; #endif /* ZEROPLUS */ #ifdef CONFIG_ORANGEPI_2G_IOT char *physNames[64] = { NULL, " 3.3V", "5V ", " SDA.0", "5V ", " SCL.0", "GND ", " GPIO.7", "TXD.2 ", " GND", "RXD.2 ", " RXD.1", "GPIO.1 ", " TXD.1", "GND ", " CTS.1", "GPIO.4 ", " 3.3V", "GPIO.5 ", " SDI.2", "GND ", " SDIO.2", "RTS1 ", " SCLK.2", "CE.0 ", " GND", "CE.1 ", " SDA.1", "SCL.1 ", " GPIO.21", "GND ", " GPIO.22", "RTS.2 ", " GPIO.23", "GND ", " GPIO.24", "CTS.2 ", " GPIO.25", "SCL.2 ", " GND", "SDA.2 ", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, }; int physToWpi[64] = { -1, // 0 -1, -1, // 1, 2 8, -1, // 3, 4 9, -1, // 5, 6 7, 15, // 7, 8 -1, 16, // 9, 10 0, 1, //11, 12 2, -1, //13, 14 3, 4, //15, 16 -1, 5, //17, 18 12, -1, //19, 20 13, 6, //21, 22 14, 10, //23, 24 -1, 11, //25, 26 30, 31, //27, 28 21, -1, //29, 30 22, 26, //31, 32 23, -1, //33, 34 24, 27, //35, 36 25, 28, //37, 38 -1, 29, //39, 40 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, //41-> 55 -1, -1, -1, -1, -1, -1, -1, -1 // 56-> 63 }; #endif #ifdef CONFIG_ORANGEPI_WIN char *physNames [64] = { NULL, " 3.3V", "5V ", " SDA.1", "5V ", " SCL.1", "GND ", " PL10", "PL02 ", " GND", "PL03 ", " RXD.3", "PD04 ", " TXD.3", "GND ", " CTS.3", "PL09 ", " 3.3V", "PC04 ", " MOSI.1", "GND ", " MISO.1", "RTS.3 ", " SCLK.1", "CE.1 ", " GND", "PD06 ", " SDA.2", "SCL.2 ", " PB04", "GND ", " PB05", "RTS.2 ", " PB06", "GND ", " PB07", "CTS.2 ", " PD05", "TXD.2 ", " GND", "RXD.2 ", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, }; int physToWpi [64] = { -1, // 0 -1, -1, // 1, 2 0, -1, // 3, 4 1, -1, // 5, 6 2, 3, // 7, 8 -1, 4, // 9, 10 5, 6, //11, 12 7, -1, //13, 14 8, 9, //15, 16 -1, 10, //17, 18 11, -1, //19, 20 12, 13, //21, 22 14, 15, //23, 24 -1, 16, //25, 26 17, 18, //27, 28 19, -1, //29, 30 20, 21, //31, 32 22, -1, //33, 34 23, 24, //35, 36 25, 26, //37, 38 -1, 27, //39, 40 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, //41-> 55 -1, -1, -1, -1, -1, -1, -1, -1 // 56-> 63 }; #endif #ifdef CONFIG_ORANGEPI_H3 int physToWpi[64] = { -1, //0 -1, -1, // 1, 2 0, -1, // 3, 4 1, -1, // 5, 6 2, 3, // 7, 8 -1, 4, // 9, 10 5, 6, //11, 12 7, -1, //13, 14 8, 9, //15, 16 -1, 10, //17, 18 11, -1, //19, 20 12, 13, //21, 22 14, 15, //23, 24 -1, 16, //25, 26 17, 18, //27, 28 19, -1, //29, 30 20, 21, //31, 32 22, -1, //33, 34 23, 24, //35, 36 25, 26, //37, 38 -1, 27, //39, 40 28, 29, //41, 42 // Padding: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // ... 56 -1, -1, -1, -1, -1, -1, -1, // ... 63 }; char *physNames[64] = { NULL, " 3.3V", "5V ", " SDA.0", "5V ", " SCL.0", "GND ", " PA6", "TXD.3 ", " GND", "RXD.3 ", " RXD.2", "PD14 ", " TXD.2", "GND ", " CTS.2", "PC04 ", " 3.3V", "PC07 ", " MOSI.0", "GND ", " MISO.0", "RTS.2 ", " SCLK.0", "CE.0 ", " GND", "PA21 ", " SDA.1", "SCL.1 ", " PA07", "GND ", " PA08", "RTS.1 ", " PA09", "GND ", " PA10", "CTS.1 ", " PA20", "TXD.1 ", " GND", "RXD.1 ", " PA04", "PA05 ", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, }; #endif /* H3 */ #if CONFIG_ORANGEPI_ZEROPLUS2_H3 || CONFIG_ORANGEPI_ZEROPLUS2_H5 int physToWpi [64] = //return wiringPI pin { -1, // 0 -1, -1, // 1, 2 0, -1, //3, 4 1, -1, //5, 6 2, 3, //7, 8 -1, 4, //9,10 5, 6, //11,12 7, -1, //13,14 8, 9, //15,16 -1, 10, //17,18 11, -1, //19,20 12, 13, //21,22 14, 15, //23, 24 -1, 16, // 25, 26 -1, -1, //27, 28 -1, -1, //29, 30 -1, -1, //31, 32 -1, -1, //33, 34 -1, -1, //35, 36 -1, -1, //37, 38 -1, -1, //39, 40 -1, -1, //41, 42 // Padding: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // ... 56 -1, -1, -1, -1, -1, -1, -1, // ... 63 }; char *physNames[64] = { NULL, " 3.3V", "5V ", " SDA.0", "5V ", " SCL.0", "GND ", " PA6", "TXD.2 ", " GND", "RXD.2 ", " S-SCL", "PD11 ", " S-SDA", "GND ", " CTS.2", "SDA.1 ", " 3.3V", "SCL.1 ", " MOSI.1", "GND ", " MISO.1", "RTS.2 ", " SCLK.1", "CE.1 ", " GND", "PD14 ", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, }; #endif /* ZERO_PLUS2 */ #ifdef CONFIG_ORANGEPI_ZERO int physToWpi [64] = { -1, // 0 -1, -1, // 1, 2 0, -1, // 3, 4 1, -1, // 5, 6 2, 3, // 7, 8 -1, 4, // 9, 10 5, 6, //11, 12 7, -1, //13, 14 8, 9, //15, 16 -1, 10, //17, 18 11, -1, //19, 20 12, 13, //21, 22 14, 15, //23, 24 -1, 16, //25, 26 -1, -1, //27, 28 -1, -1, //29, 30 -1, -1, //31, 32 -1, -1, //33, 34 -1, -1, //35, 36 -1, -1, //37, 38 -1, -1, //39, 40 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, //41-> 55 -1, -1, -1, -1, -1, -1, -1, -1 // 56-> 63 }; char *physNames[64] = { NULL, " 3.3V", "5V ", " SDA.0", "5V ", " SCL.0", "GND ", " PA6", "TXD.1 ", " GND", "RXD.1 ", " RXD.2", "PA07 ", " TXD.2", "GND ", " CTS.2", "SDA.1 ", " 3.3V", "SCK.1 ", " MOSI.1", "GND ", " MISO.1", "RTS.2 ", " SCLK.1", "CE.1 ", " GND", "PA10 ", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, }; #endif #ifdef CONFIG_ORANGEPI_LITE2 int physToWpi [64] = { -1, // 0 -1, -1, // 1, 2 0, -1, 1, -1, 2, 3, //7, 8 -1, 4, 5, 6, //11, 12 7, -1, 8, 9, //15, 16 -1, 10, 11, -1, //19, 20 12, 13, 14, 15, //23, 24 -1, 16, // 25, 26 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // ... 56 -1, -1, -1, -1, -1, -1, -1, // ... 63 }; char *physNames [64] = { NULL, " 3.3V", "5V ", " SDA.1", "5V ", " SCL.1", "GND ", " PH4", "PD21 ", " GND", "PD22 ", " RXD.3", "PC9 ", " TXD.3", "GND ", " CTS.3", "PC8 ", " 3.3V", "PC7 ", " MOSI.0", "GND ", " MISO.0", "RTS.3 ", " SCLK.0", "CE.0 ", " GND", "PH3 ", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, }; #endif #ifdef CONFIG_ORANGEPI_3 int physToWpi [64] = { -1, // 0 -1, -1, // 1, 2 0, -1, 1, -1, 2, 3, //7, 8 -1, 4, 5, 6, //11, 12 7, -1, 8, 9, //15, 16 -1, 10, 11, -1, //19, 20 12, 13, 14, 15, //23, 24 -1, 16, // 25, 26 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // ... 56 -1, -1, -1, -1, -1, -1, -1, // ... 63 }; char *physNames [64] = { NULL, " 3.3V", "5V ", " SDA.0", "5V ", " SCL.0", "GND ", " PWM.0", "PL02 ", " GND", "PL03 ", " RXD.3", "PD18 ", " TXD.3", "GND ", " PL10", "PD15 ", " 3.3V", "PD16 ", " MOSI.1", "GND ", " MISO.1", "PD21 ", " SCLK.1", "CE.1 ", " GND", "PL08 ", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, }; #endif #ifdef CONFIG_ORANGEPI_ZERO2 int physToWpi[64] = { -1, //0 -1, -1, //1, 2 3, -1, //3, 4 5, -1, //5, 6 7, 8, //7, 8 -1, 10, //9,10 11, 12, //11,12 13, -1, //13,14 15, 16, //15,16 -1, 18, //17,18 19, -1, //19,20 21, 22, //21,22 23, 24, //23, 24 -1, 26, //25, 26 27, 28, //27, 28 29, -1, //29, 30 31, 32, //31, 32 33, -1, //33, 34 35, 36, //35, 36 37, 38, //37, 38 -1, 40, //39, 40 // Padding: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // ... 56 -1, -1, -1, -1, -1, -1, -1, // ... 63 }; int pinToGpioOrangePi [64] = { -1, // 0 -1 , -1 , // 3.3V 5V 266 , -1 , // PI10 266 5V 271 , -1 , // PI15 271 GND 268 , 267 , // PI12 268 PI11 267 -1 , 261 , // GND PI5 261 260 , 262 , // PI4 260 PI6 262 263 , -1 , // PI7 263 GND 272 , 270 , // PI16 272 PI14 270 -1 , 256 , // 3.3V PI0 256 258 , -1 , // PI2 258 GND 232 , 225 , // PH8 232 PH1 225 224 , 231 , // PH0 224 PH7 231 -1 , 234 , // GND PH10 234 229 , 233 , // PH5 229 PH9 233 259 , -1 , // PI3 259 GND 265 , 257 , // PI9 265 PI1 257 269 , -1 , // PI13 269 GND 228 , 264 , // PH4 228 PI8 264 226 , 230 , // PH2 226 PH6 230 -1 , 227 , // GND PH3 227 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,-1, // 63 }; char *physNames[64] = { NULL, " 3.3V", "5V ", " PI10", "5V ", " PI15", "GND ", " PI12", "PI11 ", " GND", "PI5 ", " PI4", "PI6 ", " PI7", "GND ", " PI16", "PI14 ", " 3.3V", "PI0 ", " PI2", "GND ", " PH8", "PH1 ", " PH0", "PH7 ", " GND", "PH10 ", " PH5", "PH9 ", " PI3", "GND ", " PI9", "PI1 ", " PI13", "GND ", " PH4", "PI8 ", " PH2", "PH6 ", " GND", "PH3 ", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, }; #endif // 蓝莓 #ifdef CONFIG_BLUEBERRY int physToWpi[64] = { -1, //0 -1, -1, //1, 2 3, -1, //3, 4 5, -1, //5, 6 7, 8, //7, 8 -1, 10, //9,10 11, 12, //11,12 13, -1, //13,14 15, 16, //15,16 -1, 18, //17,18 19, -1, //19,20 21, 22, //21,22 23, 24, //23, 24 -1, 26, //25, 26 27, 28, //27, 28 29, -1, //29, 30 31, 32, //31, 32 33, -1, //33, 34 35, 36, //35, 36 37, 38, //37, 38 -1, 40, //39, 40 // Padding: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // ... 56 -1, -1, -1, -1, -1, -1, -1, // ... 63 }; int pinToGpioOrangePi [64] = { -1, // 0 -1 , -1 , // 3.3V 5V 266 , -1 , // PI10 266 5V 271 , -1 , // PI15 271 GND 268 , 267 , // PI12 268 PI11 267 -1 , 261 , // GND PI5 261 260 , 262 , // PI4 260 PI6 262 263 , -1 , // PI7 263 GND 272 , 270 , // PI16 272 PI14 270 -1 , 256 , // 3.3V PI0 256 258 , -1 , // PI2 258 GND 232 , 225 , // PH8 232 PH1 225 224 , 231 , // PH0 224 PH7 231 -1 , 234 , // GND PH10 234 229 , 233 , // PH5 229 PH9 233 259 , -1 , // PI3 259 GND 265 , 257 , // PI9 265 PI1 257 269 , -1 , // PI13 269 GND 228 , 264 , // PH4 228 PI8 264 226 , 230 , // PH2 226 PH6 230 -1 , 227 , // GND PH3 227 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,-1, // 63 }; char *physNames[64] = { NULL, "3.3V ", "5V ", "PI10 TWI2-SDA", "5V ", "PI15 ", "GND ", "PI12 ", "PI11 ", "GND ", "PI5 TX2 ", "PI4 I2S0-DOUT", "PI6 RX2 ", "PI7 TWI1-SCK ", "GND ", "PI16 ", "PI14 RX4/PWM4", "3.3V ", "PI0 I2S0-MCLK", "PI2 I2S0-LRCK", "GND ", "PH8 SPI1-MISO", "PH1 RX0 ", "PH0 TX0 ", "PH7 SPI1-MOSI", "GND ", "PH10 ", "PH5 SPI1-CS0 ", "PH9 SPI1-CS1 ", "PI3 I2S0-DIN ", "GND ", "PI9 TWI2-SCK ", "PI1 I2S0-BCLK", "PI13 TX4/PWM3", "GND ", "PH4 ", "PI8 TWI1-SDA ", "PH2 TX5 ", "PH6 SPI1-CLK ", "GND ", "PH3 RX5 ", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, }; #endif #ifdef CONFIG_ORANGEPI_RK3399 int pinToGpioOrangePi [64] = { 43, 44, // 0, 1 64, 148, // 2, 3 147, 80, // 4 5 65, 81, // 6, 7 82, 66, // 8, 9 67, 39, //10,11 40, 83, //12,13 41, 42, //14,15 133, 154, //16,17 50, 68, //18,19 69, 76, //20,21 70, 71, //22,23 73, 72, //24,25 74, 75, //26,27 -1, -1, //28,29 -1, -1, //30,31 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // ... 47 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,// ... 63 }; int physToWpi[64] = { -1, // 0 -1, -1, // 1, 2 0, -1, //3, 4 1, -1, //5, 6 2, 3, //7, 8 -1, 4, //9,10 5, 6, //11,12 7, -1, //13,14 8, 9, //15,16 -1, 10, //17,18 11, -1, //19,20 12, 13, //21,22 14, 15, //23, 24 -1, 16, // 25, 26 17, 18, //27, 28 19, -1, //29, 30 20, 21, //31, 32 22, -1, //33, 34 23, 24, //35, 36 25, 26, //37, 38 -1, 27, //39, 40 // Padding: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // ... 56 -1, -1, -1, -1, -1, -1, -1, // ... 63 }; char *physNames[64] = { NULL, " 3.3V", "5V ", " SDA.0", "5V ", " SCL.0", "GND ", " GPIO4", "Tx ", " GND", "Rx ", " GPIO17", "GPIO18 ", " GPIO27", "GND ", " GPIO22", "GPIO23 ", " 3.3V", "GPIO24 ", " MOSI", "GND ", " MISO", "GPIO25 ", " SCLK", "CS0 ", " GND", "CS1 ", " DNP1", "DNP2 ", " GPIO5", "GND ", " GPIO6", "GPIO12 ", " GPIO13", "GND ", " GPIO19", "GPIO16 ", " GPIO26", "GPIO20 ", " GND", "GPIO21 ", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, }; #endif #ifdef CONFIG_ORANGEPI_800 int pinToGpioOrangePi [64] = { 43, 44, //0,1 150, 39, //2,3 40, 148, //4,5 152, 147, //6,7 149, 64, //8,9 65, 74, //10,11 73, 153, //12,13 75, 76, //14,15 154, -1, //16,17 -1, -1, //18,19 -1, -1, //20,21 -1, -1, //22,23 -1, -1, //24,25 -1, -1, //26,27 -1, -1, //28,29 -1, -1, //30,31 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // ... 47 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,// ... 63 }; int physToWpi[64] = { -1, //0 -1, -1, //1,2 0, -1, //3,4 1, -1, //5,6 2, 3, //7,8 -1, 4, //9,10 5, 6, //11,12 7, -1, //13,14 8, 9, //15,16 -1, 10, //17,18 11, -1, //19,20 12, 13, //21,22 14, 15, //23,24 -1, 16, //25,26 -1, -1, //27,28 -1, -1, //29,30 -1, -1, //31,32 -1, -1, //33,34 -1, -1, //35,36 -1, -1, //37,38 -1, -1, //39,40 // Padding: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // ... 56 -1, -1, -1, -1, -1, -1, -1, // ... 63 }; char *physNames[64] = { NULL, " 3.3V", "5V ", " SDA.4", "5V ", " SCL.4", "GND ", " PWM1", "RXD.4 ", " GND", "TXD.4 ", " TXD.2", "GPIO4_D0", " RXD.2", "GND ", "GPIO4_C5", "SDA.2 ", " 3.3V", "SCL.2 ", "SPI2_TXD", "GND ", "SPI2_RXD", "GPIO4_D1", "SPI2_CLK", "SPI2_CS ", " GND", "GPIO4_D2", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, }; #endif #ifdef CONFIG_ORANGEPI_4 int pinToGpioOrangePi [64] = { 64, 65, // 0, 1 150, 145, // 2, 3 144, 33, // 4 5 50, 35, // 6, 7 92, 54, // 8, 9 55, 40, //10,11 39, 56, //12,13 41, 42, //14,15 149, 64, //16,17 65, -1, //18,19 -1, -1, //20,21 -1, -1, //22,23 -1, -1, //24,25 -1, -1, //26,27 -1, -1, //28,29 -1, -1, //30,31 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // ... 47 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,// ... 63 }; int physToWpi[64] = { -1, // 0 -1, -1, // 1, 2 0, -1, //3, 4 1, -1, //5, 6 2, 3, //7, 8 -1, 4, //9,10 5, 6, //11,12 7, -1, //13,14 8, 9, //15,16 -1, 10, //17,18 11, -1, //19,20 12, 13, //21,22 14, 15, //23, 24 -1, 16, // 25, 26 17, 18, //27, 28 -1, -1, //29, 30 -1, -1, //31, 32 -1, -1, //33, 34 -1, -1, //35, 36 -1, -1, //37, 38 -1, -1, //39, 40 // Padding: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // ... 56 -1, -1, -1, -1, -1, -1, -1, // ... 63 }; char *physNames[64] = { NULL, " 3.3V", "5V ", "I2C2_SDA", "5V ", "I2C2_SCL", "GND ", " PWM1", "I2C3_SCL", " GND", "I2C3_SDA", "GPIO1_A1", "GPIO1_C2", "GPIO1_A3", "GND ", "GPIO2_D4", "GPIO1_C6", " 3.3V", "GPIO1_C7", "SPI1_TXD", "GND ", "SPI1_RXD", "GPIO1_D0", "SPI1_CLK", "SPI1_CS ", " GND", "GPIO4_C5", "I2C2_SDA", "I2C2_SCL", " I2S0_RX", "GND ", " I2S0_TX", "I2S_CLK ", "I2S0_SCK", "GND ", "I2S0_SI0", "I2S0_SO0", "I2S0_SI1", "I2S0_SI2", " GND", "I2S0_SI3", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, }; #endif #ifdef CONFIG_ORANGEPI_4_LTS int pinToGpioOrangePi [64] = { 52, 53, // 0, 1 150, 145, // 2, 3 144, 33, // 4 5 50, 35, // 6, 7 92, 54, // 8, 9 55, 40, //10,11 39, 56, //12,13 41, 42, //14,15 149, 64, //16,17 65, -1, //18,19 -1, -1, //20,21 -1, -1, //22,23 -1, -1, //24,25 -1, -1, //26,27 -1, -1, //28,29 -1, -1, //30,31 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // ... 47 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,// ... 63 }; int physToWpi[64] = { -1, // 0 -1, -1, // 1, 2 0, -1, //3, 4 1, -1, //5, 6 2, 3, //7, 8 -1, 4, //9,10 5, 6, //11,12 7, -1, //13,14 8, 9, //15,16 -1, 10, //17,18 11, -1, //19,20 12, 13, //21,22 14, 15, //23, 24 -1, 16, // 25, 26 -1, -1, //27, 28 -1, -1, //29, 30 -1, -1, //31, 32 -1, -1, //33, 34 -1, -1, //35, 36 -1, -1, //37, 38 -1, -1, //39, 40 // Padding: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // ... 56 -1, -1, -1, -1, -1, -1, -1, // ... 63 }; char *physNames[64] = { NULL, " 3.3V", "5V ", "I2C8_SDA", "5V ", "I2C8_SCL", "GND ", " PWM1", "I2C3_SCL", " GND", "I2C3_SDA", "GPIO1_A1", "GPIO1_C2", "GPIO1_A3", "GND ", "GPIO2_D4", "GPIO1_C6", " 3.3V", "GPIO1_C7", "SPI1_TXD", "GND ", "SPI1_RXD", "GPIO1_D0", "SPI1_CLK", "SPI1_CS ", " GND", "GPIO4_C5", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, }; #endif #ifdef CONFIG_ORANGEPI_R1PLUS int physToWpi[64] = { -1, //0 -1, -1, //1, 2 0, 1, //3, 4 2, 3, //5, 6 -1, -1, //7, 8 -1, 4, //9, 10 5, 6, //11, 12 7, -1, //13, 14 -1, -1, //15,16 -1, -1, //17,18 -1, -1, //19,20 -1, -1, //21,22 -1, -1, //23,24 -1, -1, //25,26 -1, -1, //27,28 -1, -1, //29,30 -1, -1, //31,32 -1, -1, //33,34 -1, -1, //35,36 -1, -1, //37,38 -1, -1, //39,40 // Padding: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // ... 56 -1, -1, -1, -1, -1, -1, -1, // ... 63 }; char *physNames[64] = { NULL, "5V ", "GND ", "SDA.0 ", "SCK.0 ", "TXD.1 ", "RXD.1 ", " ", " ", " ", "GPIO3_C0", "CTS.1 ", "RTS.1 ", "GPIO2_A2", " ", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,NULL,NULL,NULL,NULL, }; #endif /* * ReadAll */ void OrangePiReadAll(void) { int pin; int tmp = wiringPiDebug; wiringPiDebug = FALSE; #ifdef CONFIG_ORANGEPI_PC2 printf (" +------+-----+----------+------+---+ OPi PC2 +---+------+----------+-----+------+\n"); #elif CONFIG_ORANGEPI_PRIME printf (" +------+-----+----------+------+---+ PRIME +---+------+----------+-----+------+\n"); #elif CONFIG_ORANGEPI_ZEROPLUS printf (" +------+-----+----------+------+---+ ZEROPLUS +---+------+----------+-----+------+\n"); #elif CONFIG_ORANGEPI_ZEROPLUS2_H5 printf (" +------+-----+----------+------+---+ZEROPLUS 2+---+------+----------+-----+------+\n"); #elif CONFIG_ORANGEPI_2G_IOT printf (" +------+-----+----------+------+---+ 2G-IOT +---+------+----------+-----+------+\n"); #elif CONFIG_ORANGEPI_H3 printf (" +------+-----+----------+------+---+OrangePiH3+---+------+----------+-----+------+\n"); #elif CONFIG_ORANGEPI_ZEROPLUS2_H3 printf (" +------+-----+----------+------+---+ZEROPLUS 2+---+------+----------+-----+------+\n"); #elif CONFIG_ORANGEPI_ZERO printf (" +------+-----+----------+------+---+ OPi H2 +---+------+----------+-----+------+\n"); #elif CONFIG_ORANGEPI_WIN printf (" +------+-----+----------+------+---+ OPi Win +---+------+----------+-----+------+\n"); #elif CONFIG_ORANGEPI_LITE2 printf (" +------+-----+----------+------+---+ OPi H6 +---+------+----------+-----+------+\n"); #elif CONFIG_ORANGEPI_3 printf (" +------+-----+----------+------+---+ OPi 3 +---+------+----------+-----+------+\n"); #elif CONFIG_ORANGEPI_ZERO2 printf (" +------+-----+----------+------+---+ H616 +---+------+----------+-----+------+\n"); #elif CONFIG_BLUEBERRY printf (" ----------------------------------------- BLUEBERRY ----------------------------------------\n"); #elif CONFIG_ORANGEPI_RK3399 printf (" +------+-----+----------+------+---+OPi RK3399+---+------+----------+-----+------+\n"); #elif CONFIG_ORANGEPI_4 printf (" +------+-----+----------+------+---+OrangePi 4+---+---+--+----------+-----+------+\n"); #elif CONFIG_ORANGEPI_4_LTS printf (" +------+-----+----------+------+---+OPi 4 LTS +---+---+--+----------+-----+------+\n"); #elif CONFIG_ORANGEPI_800 printf (" +------+-----+----------+------+---+ 800 +---+---+--+----------+-----+------+\n"); #elif CONFIG_ORANGEPI_R1PLUS printf (" +------+-----+----------+------+---+ R1 Plus +---+---+--+----------+-----+------+\n"); #endif printf (" | GPIO | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | GPIO |\n"); printf (" +------+-----+---------------+------+---+----++----+---+------+---------------+-----+------+\n"); #if defined CONFIG_ORANGEPI_H3 || defined CONFIG_ORANGEPI_RK3399 || CONFIG_ORANGEPI_4 || CONFIG_ORANGEPI_PC2 || CONFIG_ORANGEPI_PRIME || CONFIG_ORANGEPI_WIN for (pin = 1 ; pin <= 40; pin += 2) #elif CONFIG_ORANGEPI_LITE2 || CONFIG_ORANGEPI_ZEROPLUS2_H3 || CONFIG_ORANGEPI_3 || CONFIG_ORANGEPI_ZERO || CONFIG_ORANGEPI_ZEROPLUS || CONFIG_ORANGEPI_R1 || CONFIG_ORANGEPI_ZEROPLUS2_H5 || CONFIG_ORANGEPI_800 || CONFIG_ORANGEPI_4_LTS for (pin = 1 ; pin <= 26; pin += 2) #elif CONFIG_ORANGEPI_R1PLUS for (pin = 1 ; pin <= 13; pin += 2) #elif CONFIG_ORANGEPI_ZERO2 for (pin = 1 ; pin <= 40; pin += 2) #elif CONFIG_BLUEBERRY for (pin = 1 ; pin <= 40; pin += 2) #endif readallPhys(pin); printf (" +------+-----+---------------+------+---+----++----+---+------+---------------+-----+------+\n"); printf (" | GPIO | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | GPIO |\n"); #ifdef CONFIG_ORANGEPI_PC2 printf (" +------+-----+----------+------+---+ OPi PC2 +---+------+----------+-----+------+\n"); #elif CONFIG_ORANGEPI_PRIME printf (" +------+-----+----------+------+---+ PRIME +---+------+----------+-----+------+\n"); #elif CONFIG_ORANGEPI_ZEROPLUS printf (" +------+-----+----------+------+---+ ZEROPLUS +---+------+----------+-----+------+\n"); #elif CONFIG_ORANGEPI_ZEROPLUS2_H5 printf (" +------+-----+----------+------+---+ZEROPLUS 2+---+------+----------+-----+------+\n"); #elif CONFIG_ORANGEPI_2G_IOT printf (" +------+-----+----------+------+---+ 2G-IOT +---+------+----------+-----+------+\n"); #elif CONFIG_ORANGEPI_H3 printf (" +------+-----+----------+------+---+OrangePiH3+---+------+----------+-----+------+\n"); #elif CONFIG_ORANGEPI_ZEROPLUS2_H3 printf (" +------+-----+----------+------+---+ZEROPLUS 2+---+------+----------+-----+------+\n"); #elif CONFIG_ORANGEPI_ZERO printf (" +------+-----+----------+------+---+ OPi H2 +---+------+----------+-----+------+\n"); #elif CONFIG_ORANGEPI_WIN printf (" +------+-----+----------+------+---+ OPi Win +---+------+----------+-----+------+\n"); #elif CONFIG_ORANGEPI_LITE2 printf (" +------+-----+----------+------+---+ OPi H6 +---+------+----------+-----+------+\n"); #elif CONFIG_ORANGEPI_3 printf (" +------+-----+----------+------+---+ OPi 3 +---+------+----------+-----+------+\n"); #elif CONFIG_ORANGEPI_ZERO2 printf (" +------+-----+----------+------+---+ H616 +---+------+----------+-----+------+\n"); #elif CONFIG_ORANGEPI_RK3399 printf (" +------+-----+----------+------+---+OPi RK3399+---+------+----------+-----+------+\n"); #elif CONFIG_ORANGEPI_4 printf (" +------+-----+----------+------+---+OrangePi 4+---+---+--+----------+-----+------+\n"); #elif CONFIG_ORANGEPI_4_LTS printf (" +------+-----+----------+------+---+OPi 4 LTS +---+---+--+----------+-----+------+\n"); #elif CONFIG_ORANGEPI_800 printf (" +------+-----+----------+------+---+ 800 +---+---+--+----------+-----+------+\n"); #elif CONFIG_ORANGEPI_R1PLUS printf (" +------+-----+----------+------+---+ R1 Plus +---+---+--+----------+-----+------+\n"); #elif CONFIG_BLUEBERRY printf (" ----------------------------------------- BLUEBERRY ----------------------------------------\n"); #endif wiringPiDebug = tmp; }