X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/blobdiff_plain/a25d8090c86c767b4729eeb021465b6f9210528e..21e2f930ada6afd0a031ffe93393f3a4820346d0:/src/adafruit_blinka/microcontroller/bcm283x/pin.py diff --git a/src/adafruit_blinka/microcontroller/bcm283x/pin.py b/src/adafruit_blinka/microcontroller/bcm283x/pin.py index 10835dc..d741ada 100644 --- a/src/adafruit_blinka/microcontroller/bcm283x/pin.py +++ b/src/adafruit_blinka/microcontroller/bcm283x/pin.py @@ -1,64 +1,11 @@ -import RPi.GPIO as GPIO -GPIO.setmode(GPIO.BCM) # Use BCM pins D4 = GPIO #4 -GPIO.setwarnings(False) # shh! +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT +"""Broadcom BCM283x pin names""" -# Pins dont exist in CPython so...lets make our own! -class Pin: - 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 +# Use RPi.GPIO pins for Raspberry Pi 1-3B+ +from adafruit_blinka.microcontroller.generic_linux.rpi_gpio_pin import Pin - def __repr__(self): - return str(self.id) - - def __eq__(self, other): - return self.id == other - - def init(self, mode=IN, pull=None): - if mode != 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 != 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): - if val != 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") - else: - return GPIO.input(self.id) - -# Pi 1B rev1 only? D0 = Pin(0) D1 = Pin(1) @@ -80,7 +27,7 @@ MISO = Pin(9) D10 = Pin(10) MOSI = Pin(10) D11 = Pin(11) -SCLK = Pin(11) # Raspberry Pi naming +SCLK = Pin(11) # Raspberry Pi naming SCK = Pin(11) # CircuitPython naming D12 = Pin(12) @@ -131,14 +78,19 @@ D44 = Pin(44) D45 = Pin(45) # ordered as spiId, sckId, mosiId, misoId -spiPorts = ((0, SCLK, MOSI, MISO), (1, SCLK_1, MOSI_1, MISO_1), (2, SCLK_2, MOSI_2, MISO_2)) +spiPorts = ( + (0, SCLK, MOSI, MISO), + (1, SCLK_1, MOSI_1, MISO_1), + (2, SCLK_2, MOSI_2, MISO_2), +) # ordered as uartId, txId, rxId -uartPorts = ( - (1, TXD, RXD), -) +uartPorts = ((1, TXD, RXD),) +# These are the known hardware I2C ports / pins. +# For software I2C ports created with the i2c-gpio overlay, see: +# https://github.com/adafruit/Adafruit_Python_Extended_Bus i2cPorts = ( - (1, SCL, SDA), (0, D1, D0), # both pi 1 and pi 2 i2c ports! + (1, SCL, SDA), + (0, D1, D0), # both pi 1 and pi 2 i2c ports! ) -