// BeagleBone device definitions // Copyright (C)2018-2023, Philip Munts dba Munts Technologies. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright notice, // this list of conditions and the following disclaimer. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. using IO.Objects.SimpleIO.Device; namespace IO.Objects.SimpleIO.Platforms { /// This class defines identifiers for the devices provided by the /// BeagleBone hardware platform. public static class BeagleBone { /// ADC input designator (0, 0) for P9.39 (1.8V). /// Requires the BB-ADC device tree overlay. public static readonly Designator AIN0 = new Designator(0, 0); /// ADC input designator (0, 1) for P9.40 (1.8V). /// Requires the BB-ADC device tree overlay. public static readonly Designator AIN1 = new Designator(0, 1); /// ADC input designator (0, 2) for P9.37 (1.8V). /// Requires the BB-ADC device tree overlay. public static readonly Designator AIN2 = new Designator(0, 2); /// ADC input designator (0, 3) for P9.38 (1.8V). /// Requires the BB-ADC device tree overlay. public static readonly Designator AIN3 = new Designator(0, 3); /// ADC input designator (0, 4) for P9.33 (1.8V). /// Requires the BB-ADC device tree overlay. public static readonly Designator AIN4 = new Designator(0, 4); /// ADC input designator (0, 5) for P9.36 (1.8V). /// Requires the BB-ADC device tree overlay. public static readonly Designator AIN5 = new Designator(0, 5); /// ADC input designator (0, 6) for P9.35 (1.8V). /// Requires the BB-ADC device tree overlay. public static readonly Designator AIN6 = new Designator(0, 6); /// GPIO pin designator (0, 2) for P9.22. Conflicts with /// SPI0 SCK, UART 2RXD or EHRPWM0A. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO2 = new Designator(0, 2); /// GPIO pin designator (0, 3) for P9.21. Conflicts with /// SPI0 MISO or UART2 TXD. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO3 = new Designator(0, 3); /// GPIO pin designator (0, 4) for P9.18. Conflicts with /// SPI0 MOSI. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO4 = new Designator(0, 4); /// GPIO pin designator (0, 5) for P9.17. Conflicts with /// SPI0 SS0. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO5 = new Designator(0, 5); /// GPIO pin designator (0, 7) for P9.42. Conflicts with /// SPI1 SS1. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO7 = new Designator(0, 7); /// GPIO pin designator (0, 8) for P8.35. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO8 = new Designator(0, 8); /// GPIO pin designator (0, 9) for P8.33. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO9 = new Designator(0, 9); /// GPIO pin designator (0, 10) for P8.31. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO10 = new Designator(0, 10); /// GPIO pin designator (0, 11) for P8.32. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO11 = new Designator(0, 11); /// GPIO pin designator (0, 12) for P9.20. Conflicts with /// I2C2 SDA. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO12 = new Designator(0, 12); /// GPIO pin designator (0, 13) for P9.19. Conflicts with /// I2C2 SCL. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO13 = new Designator(0, 13); /// GPIO pin designator (0, 14) for P9.26. Conflicts with /// UART1 RXD. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO14 = new Designator(0, 14); /// GPIO pin designator (0, 15) for P9.24. Conflicts with /// UART1 TXD. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO15 = new Designator(0, 15); /// GPIO pin designator (0, 20) for P9.41. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO20 = new Designator(0, 20); /// GPIO pin designator (0, 22) for P8.19. Conflicts with /// EHRPWM2A. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO22 = new Designator(0, 22); /// GPIO pin designator (0, 23) for P8.13. Conflicts with /// EHRPWM2B. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO23 = new Designator(0, 23); /// GPIO pin designator (0, 26) for P8.14. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO26 = new Designator(0, 26); /// GPIO pin designator (0, 27) for P8.17. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO27 = new Designator(0, 27); /// GPIO pin designator (0, 30) for P9.11. Conflicts with /// UART4 RXD. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO30 = new Designator(0, 30); /// GPIO pin designator (0, 31) for P9.13. Conflicts with /// UART4 TXD. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO31 = new Designator(0, 31); /// GPIO pin designator (1, 0) for P8.25. Conflicts with /// MMC DAT0. /// Requires the BeagleBone White and the BB-NOEMMC /// device tree overlay. public static readonly Designator GPIO32 = new Designator(1, 0); /// GPIO pin designator (1, 1) for P8.24. Conflicts with /// MMC1 DAT1. /// Requires the BeagleBone White and the BB-NOEMMC /// device tree overlay. public static readonly Designator GPIO33 = new Designator(1, 1); /// GPIO pin designator (1, 2) for P8.5. Conflicts with /// MMC1 DAT2. /// Requires the BeagleBone White and the BB-NOEMMC /// device tree overlay. public static readonly Designator GPIO34 = new Designator(1, 2); /// GPIO pin designator (1, 3) for P8.6. Conflicts with /// MMC1 DAT3. /// Requires the BeagleBone White and the BB-NOEMMC /// device tree overlay. public static readonly Designator GPIO35 = new Designator(1, 3); /// GPIO pin designator (1, 4) for P8.23. Conflicts with /// MMC DAT4. /// Requires the BeagleBone White and the BB-NOEMMC /// device tree overlay. public static readonly Designator GPIO36 = new Designator(1, 4); /// GPIO pin designator (1, 5) for P8.22. Conflicts with /// MMC1 DAT5. /// Requires the BeagleBone White and the BB-NOEMMC /// device tree overlay. public static readonly Designator GPIO37 = new Designator(1, 5); /// GPIO pin designator (1, 6) for P8.3. Conflicts with /// MMC1 DAT6. /// Requires the BeagleBone White and the BB-NOEMMC /// device tree overlay. public static readonly Designator GPIO38 = new Designator(1, 6); /// GPIO pin designator (1, 7) for P8.4. Conflicts with /// MMC1 DAT7. /// Requires the BeagleBone White and the BB-NOEMMC /// device tree overlay. public static readonly Designator GPIO39 = new Designator(1, 7); /// GPIO pin designator (1, 12) for P8.12. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO44 = new Designator(1, 12); /// GPIO pin designator (1, 13) for P8.11. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO45 = new Designator(1, 13); /// GPIO pin designator (1, 14) for P8.16. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO46 = new Designator(1, 14); /// GPIO pin designator (1, 15) for P8.15. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO47 = new Designator(1, 15); /// GPIO pin designator (1, 16) for P9.15. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO48 = new Designator(1, 16); /// GPIO pin designator (1, 17) for P9.23. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO49 = new Designator(1, 17); /// GPIO pin designator (1, 18) for P9.14. Conflicts with /// EHRPWM1A. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO50 = new Designator(1, 18); /// GPIO pin designator (1, 19) for P9.16. Conflicts with /// EHRPWM1B. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO51 = new Designator(1, 19); /// GPIO pin designator (1, 28) for P9.12. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO60 = new Designator(1, 28); /// GPIO pin designator (1, 29) for P8.26. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO61 = new Designator(1, 29); /// GPIO pin designator (1, 30) for P8.21. Conflicts with /// MMC1 CLK. /// Requires the BeagleBone White and the BB-NOEMMC /// device tree overlay. public static readonly Designator GPIO62 = new Designator(1, 30); /// GPIO pin designator (1, 31) for P8.20. Conflicts with /// MMC1 CMD. /// Requires the BeagleBone White and the BB-NOEMMC /// device tree overlay. public static readonly Designator GPIO63 = new Designator(1, 31); /// GPIO pin designator (2, 1) for P8.18. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO65 = new Designator(2, 1); /// GPIO pin designator (2, 2) for P8.7. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO66 = new Designator(2, 2); /// GPIO pin designator (2, 3) for P8.8. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO67 = new Designator(2, 3); /// GPIO pin designator (2, 4) for P8.10. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO68 = new Designator(2, 4); /// GPIO pin designator (2, 5) for P8.9. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO69 = new Designator(2, 5); /// GPIO pin designator (2, 6) for P8.45. Conflicts with /// EHRPWM2A. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO70 = new Designator(2, 6); /// GPIO pin designator (2, 7) for P8.46. Conflicts with /// EHRPWM2B. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO71 = new Designator(2, 7); /// GPIO pin designator (2, 8) for P8.43. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO72 = new Designator(2, 8); /// GPIO pin designator (2, 9) for P8.44. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO73 = new Designator(2, 9); /// GPIO pin designator (2, 10) for P8.41. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO74 = new Designator(2, 10); /// GPIO pin designator (2, 11) for P8.42. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO75 = new Designator(2, 11); /// GPIO pin designator (2, 12) for P8.39. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO76 = new Designator(2, 12); /// GPIO pin designator (2, 13) for P8.40. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO77 = new Designator(2, 13); /// GPIO pin designator (2, 14) for P8.37. Conflicts with /// UART5 TXD. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO78 = new Designator(2, 14); /// GPIO pin designator (2, 15) for P8.38. Conflicts with /// UART5 RXD. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO79 = new Designator(2, 15); /// GPIO pin designator (2, 16) for P8.36. Conflicts with /// EHRPWM1A. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO80 = new Designator(2, 16); /// GPIO pin designator (2, 17) for P8.34. Conflicts with /// EHRPWM1B. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO81 = new Designator(2, 17); /// GPIO pin designator (2, 22) for P8.27. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO86 = new Designator(2, 22); /// GPIO pin designator (2, 23) for P8.29. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO87 = new Designator(2, 23); /// GPIO pin designator (2, 24) for P8.28. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO88 = new Designator(2, 24); /// GPIO pin designator (2, 25) for P8.30. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO89 = new Designator(2, 25); /// GPIO pin designator (3, 14) for P9.31. Conflicts with /// SPI1 SCLK or EHRPWM0A. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO110 = new Designator(3, 14); /// GPIO pin designator (3, 15) for P9.29. Conflicts with /// SPI1 MISO. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO111 = new Designator(3, 15); /// GPIO pin designator (3, 16) for P9.30. Conflicts with /// SPI1 MOSI. /// Requires the BB-GPIO device tree overlay. /// This pin is also SPI1 MOSI. public static readonly Designator GPIO112 = new Designator(3, 16); /// GPIO pin designator (3, 17) for P9.28. Conflicts with /// SPI1 SS0. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO113 = new Designator(3, 17); /// GPIO pin designator (3, 19) for P9.27. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO115 = new Designator(3, 19); /// GPIO pin designator (3, 21) for P9.25. /// Requires the BB-GPIO device tree overlay. public static readonly Designator GPIO117 = new Designator(3, 21); /// I2C bus designator for P9.19 and P9.20. Conflicts with /// GPIO13 or GPIO12. /// Requires the BB-GPIO device tree overlay. public static readonly Designator I2C2 = new Designator(0, 2); /// PWM output designator (1, 0) for P9.22 or P9.31. Conflicts /// with GPIO2 or GPIO110. /// Requires the BB-GPIO device tree overlay. public static readonly Designator EHRPWM0A = new Designator(1, 0); /// PWM output designator (1, 1) for P9.21 or P9.29. Conflicts /// with GPIO3 or GPIO111. /// Requires the BB-GPIO device tree overlay. public static readonly Designator EHRPWM0B = new Designator(1, 1); /// PWM output designator (3, 0) for P8.36 or P9.14. Conflicts /// with GPIO80 or GPIO50. /// Requires the BB-GPIO device tree overlay. public static readonly Designator EHRPWM1A = new Designator(3, 0); /// PWM output designator (3, 1) for P8.34 or P9.16. Conflicts /// with GPIO81 or GPIO51. /// Requires the BB-GPIO device tree overlay. public static readonly Designator EHRPWM1B = new Designator(3, 1); /// PWM output designator (6, 0) for P8.19 or P8.45. Conflicts /// with GPIO22 or GPIO70. /// Requires the BB-GPIO device tree overlay. public static readonly Designator EHRPWM2A = new Designator(6, 0); /// PWM output designator (6, 1) for P8.13 or P8.46. Conflicts /// with GPIO23 or GPIO71. /// Requires the BB-GPIO device tree overlay. public static readonly Designator EHRPWM2B = new Designator(6, 1); /// SPI slave designator (0, 0) for P9.17. Conflicts with /// GPIO5. /// Requires the BB-GPIO device tree overlay. public static readonly Designator SPI0_0 = new Designator(0, 0); /// SPI slave designator (1, 0) for P9.28. Conflicts with /// GPIO113. /// Requires the BB-GPIO device tree overlay. public static readonly Designator SPI1_0 = new Designator(1, 0); /// SPI slave designator (1, 1) for P9.42. Conflicts with /// GPIO7. /// Requires the BB-GPIO device tree overlay. public static readonly Designator SPI1_1 = new Designator(1, 1); } }