]> Repositories - Adafruit_Blinka-hackapet.git/blobdiff - src/adafruit_blinka/microcontroller/bcm283x/pin.py
Restructure and move pins to generic linux
[Adafruit_Blinka-hackapet.git] / src / adafruit_blinka / microcontroller / bcm283x / pin.py
index adbe183b7a32942cbd335763ca739d9b2f0cfd34..d741ada1854b07db851e5e8bab8799a8de08edad 100644 (file)
@@ -1,71 +1,11 @@
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
 """Broadcom BCM283x pin names"""
-import RPi.GPIO as GPIO
 
-GPIO.setmode(GPIO.BCM)  # Use BCM pins D4 = GPIO #4
-GPIO.setwarnings(False)  # shh!
+# Use RPi.GPIO pins for Raspberry Pi 1-3B+
+from adafruit_blinka.microcontroller.generic_linux.rpi_gpio_pin import Pin
 
-
-class Pin:
-    """Pins dont exist in CPython so...lets make our own!"""
-
-    IN = 0
-    OUT = 1
-    LOW = 0
-    HIGH = 1
-    PULL_NONE = 0
-    PULL_UP = 1
-    PULL_DOWN = 2
-
-    id = None
-    _value = LOW
-    _mode = IN
-
-    def __init__(self, bcm_number):
-        self.id = bcm_number
-
-    def __repr__(self):
-        return str(self.id)
-
-    def __eq__(self, other):
-        return self.id == other
-
-    def init(self, mode=IN, pull=None):
-        """Initialize the Pin"""
-        if mode is not None:
-            if mode == self.IN:
-                self._mode = self.IN
-                GPIO.setup(self.id, GPIO.IN)
-            elif mode == self.OUT:
-                self._mode = self.OUT
-                GPIO.setup(self.id, GPIO.OUT)
-            else:
-                raise RuntimeError("Invalid mode for pin: %s" % self.id)
-        if pull is not None:
-            if self._mode != self.IN:
-                raise RuntimeError("Cannot set pull resistor on output")
-            if pull == self.PULL_UP:
-                GPIO.setup(self.id, GPIO.IN, pull_up_down=GPIO.PUD_UP)
-            elif pull == self.PULL_DOWN:
-                GPIO.setup(self.id, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
-            else:
-                raise RuntimeError("Invalid pull for pin: %s" % self.id)
-
-    def value(self, val=None):
-        """Set or return the Pin Value"""
-        if val is not None:
-            if val == self.LOW:
-                self._value = val
-                GPIO.output(self.id, val)
-            elif val == self.HIGH:
-                self._value = val
-                GPIO.output(self.id, val)
-            else:
-                raise RuntimeError("Invalid value for pin")
-            return None
-        return GPIO.input(self.id)
-
-
-# Pi 1B rev1 only?
 D0 = Pin(0)
 D1 = Pin(1)
 
@@ -142,10 +82,6 @@ spiPorts = (
     (0, SCLK, MOSI, MISO),
     (1, SCLK_1, MOSI_1, MISO_1),
     (2, SCLK_2, MOSI_2, MISO_2),
-    (3, D3, D2, D1), #SPI3 on Pi4/CM4
-    (4, D7, D6, D5), #SPI4 on Pi4/CM4
-    (5, D15, D14, D13), #SPI5 on Pi4/CM4
-    
 )
 
 # ordered as uartId, txId, rxId
@@ -157,5 +93,4 @@ uartPorts = ((1, TXD, RXD),)
 i2cPorts = (
     (1, SCL, SDA),
     (0, D1, D0),  # both pi 1 and pi 2 i2c ports!
-    (10, D45, D44),  # internal i2c bus for the CM4
 )