// 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);
}
}