// I/O Resources available from a PocketBeagle Remote I/O Server
// Copyright (C)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.
namespace IO.Objects.RemoteIO.Platforms
{
///
/// I/O resources (channel numbers) available on a BeagleBone Remote I/O
/// Protocol Server
///
public static class PocketBeagle
{
///
/// Analog input channel number for the remote PocketBeagle 1.8V analog
/// input AIN0 at pin P1.19.
///
public const int AIN0 = 0;
///
/// Analog input channel number for the remote PocketBeagle 1.8V analog
/// input AIN1 at pin P1.21.
///
public const int AIN1 = 1;
///
/// Analog input channel number for the remote PocketBeagle 1.8V analog
/// input AIN2 at pin P1.23.
///
public const int AIN2 = 2;
///
/// Analog input channel number for the remote PocketBeagle 1.8V analog
/// input AIN3 at pin P1.24.
///
public const int AIN3 = 3;
///
/// Analog input channel number for the remote PocketBeagle 1.8V analog
/// input AIN4 at pin P1.25.
///
public const int AIN4 = 4;
///
/// Analog input channel number for the remote PocketBeagle 3.6V analog
/// input AIN5 at pin P2.35.
///
///
/// Conflicts with GPIO86.
///
public const int AIN5 = 5;
///
/// Analog input channel number for the remote PocketBeagle 3.6V analog
/// input AIN6 at pin P1.2.
///
///
/// Conflicts with GPIO87.
///
public const int AIN6 = 6;
///
/// Analog input channel number for the remote PocketBeagle 1.8V analog
/// input AIN7 at pin P2.36.
///
public const int AIN7 = 7;
///
/// GPIO channel number for the remote PocketBeagle user LED.
///
///
/// This GPIO channel cannot be configured as an input.
///
public const int USERLED = 0;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO2 at pin P1.8.
///
///
/// Conflicts with SPI0 SCLK.
///
public const int GPIO2 = 2;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO3 at pin P1.10.
///
///
/// Conflicts with SPI0 MISO.
///
public const int GPIO3 = 3;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO4 at pin P1.12.
///
///
/// Conflicts with SPI0 MOSI.
///
public const int GPIO4 = 4;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO5 at pin P1.6.
///
///
/// Conflicts with SPI0 CS0.
///
public const int GPIO5 = 5;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO7 at pin P2.29.
///
///
/// Conflicts with SPI1 SCLK.
///
public const int GPIO7 = 7;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO12 at pin P1.26.
///
///
/// Conflicts with I2C2 SDA.
///
public const int GPIO12 = 12;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO13 at pin P1.28.
///
///
/// Conflicts with I2C2 SCL.
///
public const int GPIO13 = 13;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO14 at pin P2.11.
///
///
/// Conflicts with I2C1 SDA.
///
public const int GPIO14 = 14;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO15 at pin P2.9.
///
///
/// Conflicts with I2C1 SCL.
///
public const int GPIO15 = 15;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO19 at pin P2.31.
///
///
/// Conflicts with SPI1 CS1.
///
public const int GPIO19 = 19;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO20 at pin P1.20.
///
public const int GPIO20 = 20;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO23 at pin P2.3.
///
public const int GPIO23 = 23;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO26 at pin P1.34.
///
public const int GPIO26 = 26;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO27 at pin P2.19.
///
public const int GPIO27 = 27;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO30 at pin P2.5.
///
///
/// Conflicts with RXD4.
///
public const int GPIO30 = 30;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO31 at pin P2.7.
///
///
/// Conflicts with TXD4.
///
public const int GPIO31 = 31;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO40 at pin P2.27.
///
///
/// Conflicts with SPI1 MISO.
///
public const int GPIO40 = 40;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO41 at pin P2.25.
///
///
/// Conflicts with SPI1 MOSI.
///
public const int GPIO41 = 41;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO42 at pin P1.32.
///
///
/// Conflicts with RXD0.
///
public const int GPIO42 = 42;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO43 at pin P1.30.
///
///
/// Conflicts with TXD0.
///
public const int GPIO43 = 43;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO44 at pin P2.24.
///
public const int GPIO44 = 44;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO45 at pin P2.33.
///
public const int GPIO45 = 45;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO46 at pin P2.22.
///
public const int GPIO46 = 46;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO47 at pin P2.18.
///
public const int GPIO47 = 47;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO50 at pin P2.1.
///
///
/// Conflicts with PWM2:0.
///
public const int GPIO50 = 50;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO52 at pin P2.10.
///
public const int GPIO52 = 52;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO57 at pin P2.6.
///
public const int GPIO57 = 57;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO58 at pin P2.4.
///
public const int GPIO58 = 58;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO59 at pin P2.2.
///
public const int GPIO59 = 59;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO60 at pin P2.8.
///
public const int GPIO60 = 60;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO64 at pin P2.20.
///
public const int GPIO64 = 64;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO65 at pin P2.17.
///
public const int GPIO65 = 65;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO86 at pin P2.35.
///
///
/// Conflicts with AIN5.
///
public const int GPIO86 = 86;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO87 at pin P1.2.
///
///
/// Conflicts with AIN6.
///
public const int GPIO87 = 87;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO88 at pin P1.35.
///
public const int GPIO88 = 88;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO89 at pin P1.4.
///
public const int GPIO89 = 89;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO110 at pin P1.36.
///
///
/// Conflicts with PWM0:0.
///
public const int GPIO110 = 110;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO111 at pin P1.33.
///
public const int GPIO111 = 111;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO112 at pin P2.32.
///
public const int GPIO112 = 112;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO113 at pin P2.30.
///
public const int GPIO113 = 113;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO114 at pin P1.31.
///
public const int GPIO114 = 114;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO115 at pin P2.34.
///
public const int GPIO115 = 115;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO116 at pin P2.28.
///
public const int GPIO116 = 116;
///
/// GPIO channel number for the remote PocketBeagle GPIO pin
/// GPIO117 at pin P1.29.
///
public const int GPIO117 = 117;
///
/// I2C bus channel number for the remote BeagleBone
/// I2C bus I2C at pins P2.9 and
/// P2.11.
///
///
/// Conflicts with GPIO14 and GPIO15.
///
public const int I2C1 = 1;
///
/// I2C bus channel number for the remote BeagleBone
/// I2C bus I2C at pins P1.26 and
/// P1.28.
///
///
/// Conflicts with GPIO12 and GPIO13.
///
public const int I2C2 = 2;
///
/// PWM output channel number for the remote PocketBeagle PWM output
/// PWM0_0 at pin P1.36
///
///
/// Conflicts with GPIO110.
///
public const int PWM0_0 = 0;
///
/// PWM output channel number for the remote PocketBeagle PWM output
/// PWM2_0 at pin P2.1
///
///
/// Conflicts with GPIO50.
///
public const int PWM2_0 = 1;
///
/// SPI slave channel number for the remote PocketBeagle SPI slave select
/// SPI0_0 at pin P1.6
///
///
/// Conflicts with GPIO5.
///
public const int SPI0_0 = 0;
///
/// SPI slave channel number for the remote PocketBeagle SPI slave select
/// SPI1_1 at pin P2.31
///
///
/// Conflicts with GPIO19.
///
public const int SPI1_1 = 1;
}
}