namespace Unosquare.WiringPi { using RaspberryIO.Abstractions; using System; public partial class GpioPin { internal static readonly Lazy Pin00 = new Lazy(() => new GpioPin(BcmPin.Gpio00) { Capabilities = PinCapability.GP | PinCapability.I2CSDA, Name = $"BCM 0 {(SystemInfo.GetBoardRevision() == BoardRevision.Rev1 ? "(SDA)" : "(ID_SD)")}", }); internal static readonly Lazy Pin01 = new Lazy(() => new GpioPin(BcmPin.Gpio01) { Capabilities = PinCapability.GP | PinCapability.I2CSCL, Name = $"BCM 1 {(SystemInfo.GetBoardRevision() == BoardRevision.Rev1 ? "(SCL)" : "(ID_SC)")}", }); internal static readonly Lazy Pin02 = new Lazy(() => new GpioPin(BcmPin.Gpio02) { Capabilities = PinCapability.GP | PinCapability.I2CSDA, Name = "BCM 2 (SDA)", }); internal static readonly Lazy Pin03 = new Lazy(() => new GpioPin(BcmPin.Gpio03) { Capabilities = PinCapability.GP | PinCapability.I2CSCL, Name = "BCM 3 (SCL)", }); internal static readonly Lazy Pin04 = new Lazy(() => new GpioPin(BcmPin.Gpio04) { Capabilities = PinCapability.GP | PinCapability.GPCLK, Name = "BCM 4 (GPCLK0)", }); internal static readonly Lazy Pin05 = new Lazy(() => new GpioPin(BcmPin.Gpio05) { Capabilities = PinCapability.GP, Name = "BCM 5", }); internal static readonly Lazy Pin06 = new Lazy(() => new GpioPin(BcmPin.Gpio06) { Capabilities = PinCapability.GP, Name = "BCM 6", }); internal static readonly Lazy Pin07 = new Lazy(() => new GpioPin(BcmPin.Gpio07) { Capabilities = PinCapability.GP | PinCapability.SPICS, Name = "BCM 7 (CE1)", }); internal static readonly Lazy Pin08 = new Lazy(() => new GpioPin(BcmPin.Gpio08) { Capabilities = PinCapability.GP | PinCapability.SPICS, Name = "BCM 8 (CE0)", }); internal static readonly Lazy Pin09 = new Lazy(() => new GpioPin(BcmPin.Gpio09) { Capabilities = PinCapability.GP | PinCapability.SPIMISO, Name = "BCM 9 (MISO)", }); internal static readonly Lazy Pin10 = new Lazy(() => new GpioPin(BcmPin.Gpio10) { Capabilities = PinCapability.GP | PinCapability.SPIMOSI, Name = "BCM 10 (MOSI)", }); internal static readonly Lazy Pin11 = new Lazy(() => new GpioPin(BcmPin.Gpio11) { Capabilities = PinCapability.GP | PinCapability.SPICLK, Name = "BCM 11 (SCLCK)", }); internal static readonly Lazy Pin12 = new Lazy(() => new GpioPin(BcmPin.Gpio12) { Capabilities = PinCapability.GP | PinCapability.PWM, Name = "BCM 12 (PWM0)", }); internal static readonly Lazy Pin13 = new Lazy(() => new GpioPin(BcmPin.Gpio13) { Capabilities = PinCapability.GP | PinCapability.PWM, Name = "BCM 13 (PWM1)", }); internal static readonly Lazy Pin14 = new Lazy(() => new GpioPin(BcmPin.Gpio14) { Capabilities = PinCapability.UARTTXD, Name = "BCM 14 (TXD)", }); internal static readonly Lazy Pin15 = new Lazy(() => new GpioPin(BcmPin.Gpio15) { Capabilities = PinCapability.UARTRXD, Name = "BCM 15 (RXD)", }); internal static readonly Lazy Pin16 = new Lazy(() => new GpioPin(BcmPin.Gpio16) { Capabilities = PinCapability.GP, Name = "BCM 16", }); internal static readonly Lazy Pin17 = new Lazy(() => new GpioPin(BcmPin.Gpio17) { Capabilities = PinCapability.GP | PinCapability.UARTRTS, Name = "BCM 17", }); internal static readonly Lazy Pin18 = new Lazy(() => new GpioPin(BcmPin.Gpio18) { Capabilities = PinCapability.GP | PinCapability.PWM, Name = "BCM 18 (PWM0)", }); internal static readonly Lazy Pin19 = new Lazy(() => new GpioPin(BcmPin.Gpio19) { Capabilities = PinCapability.GP | PinCapability.PWM | PinCapability.SPIMISO, Name = "BCM 19 (MISO)", }); internal static readonly Lazy Pin20 = new Lazy(() => new GpioPin(BcmPin.Gpio20) { Capabilities = PinCapability.GP | PinCapability.SPIMOSI, Name = "BCM 20 (MOSI)", }); internal static readonly Lazy Pin21 = new Lazy(() => new GpioPin(BcmPin.Gpio21) { Capabilities = PinCapability.GP | PinCapability.SPICLK, Name = $"BCM 21{(SystemInfo.GetBoardRevision() == BoardRevision.Rev1 ? string.Empty : " (SCLK)")}", }); internal static readonly Lazy Pin22 = new Lazy(() => new GpioPin(BcmPin.Gpio22) { Capabilities = PinCapability.GP, Name = "BCM 22", }); internal static readonly Lazy Pin23 = new Lazy(() => new GpioPin(BcmPin.Gpio23) { Capabilities = PinCapability.GP, Name = "BCM 23", }); internal static readonly Lazy Pin24 = new Lazy(() => new GpioPin(BcmPin.Gpio24) { Capabilities = PinCapability.GP, Name = "BCM 24", }); internal static readonly Lazy Pin25 = new Lazy(() => new GpioPin(BcmPin.Gpio25) { Capabilities = PinCapability.GP, Name = "BCM 25", }); internal static readonly Lazy Pin26 = new Lazy(() => new GpioPin(BcmPin.Gpio26) { Capabilities = PinCapability.GP, Name = "BCM 26", }); internal static readonly Lazy Pin27 = new Lazy(() => new GpioPin(BcmPin.Gpio27) { Capabilities = PinCapability.GP, Name = "BCM 27", }); internal static readonly Lazy Pin28 = new Lazy(() => new GpioPin(BcmPin.Gpio28) { Capabilities = PinCapability.GP | PinCapability.I2CSDA, Name = "BCM 28 (SDA)", }); internal static readonly Lazy Pin29 = new Lazy(() => new GpioPin(BcmPin.Gpio29) { Capabilities = PinCapability.GP | PinCapability.I2CSCL, Name = "BCM 29 (SCL)", }); internal static readonly Lazy Pin30 = new Lazy(() => new GpioPin(BcmPin.Gpio30) { Capabilities = PinCapability.GP, Name = "BCM 30", }); internal static readonly Lazy Pin31 = new Lazy(() => new GpioPin(BcmPin.Gpio31) { Capabilities = PinCapability.GP, Name = "BCM 31", }); } }