]> Repositories - Adafruit_Blinka-hackapet.git/commitdiff
Merge pull request #522 from AdamCummick/update-rpi-spi-pins
authorMelissa LeBlanc-Williams <melissa@adafruit.com>
Fri, 22 Oct 2021 21:27:08 +0000 (14:27 -0700)
committerGitHub <noreply@github.com>
Fri, 22 Oct 2021 21:27:08 +0000 (14:27 -0700)
Split RP4 board definitions

src/adafruit_blinka/board/raspberrypi/raspi_4b.py [new file with mode: 0644]
src/adafruit_blinka/microcontroller/bcm2711/__init__.py [new file with mode: 0644]
src/adafruit_blinka/microcontroller/bcm2711/pin.py [new file with mode: 0644]
src/adafruit_blinka/microcontroller/bcm283x/pin.py
src/board.py
src/microcontroller/__init__.py
src/microcontroller/pin.py

diff --git a/src/adafruit_blinka/board/raspberrypi/raspi_4b.py b/src/adafruit_blinka/board/raspberrypi/raspi_4b.py
new file mode 100644 (file)
index 0000000..9fbb6ca
--- /dev/null
@@ -0,0 +1,55 @@
+"""Pin definitions for Raspberry Pi 4 models using the BCM2711."""
+
+from adafruit_blinka.microcontroller.bcm2711 import pin
+
+D0 = pin.D0
+D1 = pin.D1
+
+D2 = pin.D2
+SDA = pin.SDA
+D3 = pin.D3
+SCL = pin.SCL
+
+D4 = pin.D4
+D5 = pin.D5
+D6 = pin.D6
+
+D7 = pin.D7
+CE1 = pin.D7
+D8 = pin.D8
+CE0 = pin.D8
+D9 = pin.D9
+MISO = pin.D9
+D10 = pin.D10
+MOSI = pin.D10
+D11 = pin.D11
+SCLK = pin.D11
+SCK = pin.D11
+
+D12 = pin.D12
+D13 = pin.D13
+
+D14 = pin.D14
+TXD = pin.D14
+D15 = pin.D15
+RXD = pin.D15
+# create alias for most of the examples
+TX = pin.D14
+RX = pin.D15
+
+D16 = pin.D16
+D17 = pin.D17
+D18 = pin.D18
+D19 = pin.D19
+MISO_1 = pin.D19
+D20 = pin.D20
+MOSI_1 = pin.D20
+D21 = pin.D21
+SCLK_1 = pin.D21
+SCK_1 = pin.D21
+D22 = pin.D22
+D23 = pin.D23
+D24 = pin.D24
+D25 = pin.D25
+D26 = pin.D26
+D27 = pin.D27
diff --git a/src/adafruit_blinka/microcontroller/bcm2711/__init__.py b/src/adafruit_blinka/microcontroller/bcm2711/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/src/adafruit_blinka/microcontroller/bcm2711/pin.py b/src/adafruit_blinka/microcontroller/bcm2711/pin.py
new file mode 100644 (file)
index 0000000..f56d585
--- /dev/null
@@ -0,0 +1,99 @@
+"""Broadcom BCM2711 pin names"""
+import RPi.GPIO as GPIO
+from adafruit_blinka.microcontroller.bcm283x.pin import Pin
+
+GPIO.setmode(GPIO.BCM)  # Use BCM pins D4 = GPIO #4
+GPIO.setwarnings(False)  # shh!
+
+D0 = Pin(0)
+D1 = Pin(1)
+
+D2 = Pin(2)
+SDA = Pin(2)
+D3 = Pin(3)
+SCL = Pin(3)
+
+D4 = Pin(4)
+D5 = Pin(5)
+D6 = Pin(6)
+
+D7 = Pin(7)
+CE1 = Pin(7)
+D8 = Pin(8)
+CE0 = Pin(8)
+D9 = Pin(9)
+MISO = Pin(9)
+D10 = Pin(10)
+MOSI = Pin(10)
+D11 = Pin(11)
+SCLK = Pin(11)  # Raspberry Pi naming
+SCK = Pin(11)  # CircuitPython naming
+
+D12 = Pin(12)
+D13 = Pin(13)
+
+D14 = Pin(14)
+TXD = Pin(14)
+D15 = Pin(15)
+RXD = Pin(15)
+
+D16 = Pin(16)
+D17 = Pin(17)
+D18 = Pin(18)
+D19 = Pin(19)
+MISO_1 = Pin(19)
+D20 = Pin(20)
+MOSI_1 = Pin(20)
+D21 = Pin(21)
+SCLK_1 = Pin(21)
+SCK_1 = Pin(21)
+D22 = Pin(22)
+D23 = Pin(23)
+D24 = Pin(24)
+D25 = Pin(25)
+D26 = Pin(26)
+D27 = Pin(27)
+D28 = Pin(28)
+D29 = Pin(29)
+D30 = Pin(30)
+D31 = Pin(31)
+D32 = Pin(32)
+D33 = Pin(33)
+D34 = Pin(34)
+D35 = Pin(35)
+D36 = Pin(36)
+D37 = Pin(37)
+D38 = Pin(38)
+D39 = Pin(39)
+D40 = Pin(40)
+MISO_2 = Pin(40)
+D41 = Pin(41)
+MOSI_2 = Pin(41)
+D42 = Pin(42)
+SCLK_2 = Pin(42)
+SCK_2 = Pin(43)
+D43 = Pin(43)
+D44 = Pin(44)
+D45 = Pin(45)
+
+# ordered as spiId, sckId, mosiId, misoId
+spiPorts = (
+    (0, SCLK, MOSI, MISO),
+    (6, SCLK_1, MOSI_1, MISO_1),
+    (2, SCLK_2, MOSI_2, MISO_2),
+    (3, D3, D2, D1),
+    (4, D7, D6, D5),
+    (5, D15, D14, D13),
+)
+
+# ordered as uartId, txId, rxId
+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!
+    (10, D45, D44),  # internal i2c bus for the CM4
+)
index 82b8b267bc3c343e1053f5a6df4f06eb781c8c93..5022366a7d4dd1b299b5b17301d5b73beb0d2178 100644 (file)
@@ -142,9 +142,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
@@ -156,5 +153,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
 )
index 304daf5561f6075c4e98deb12ce025fd3f370ea8..576a98dedf5f868681e9e6188bb3b147ac59ee47 100755 (executable)
@@ -54,6 +54,13 @@ elif board_id == ap_board.PYBOARD:
 elif board_id == ap_board.RASPBERRY_PI_PICO:
     from adafruit_blinka.board.raspberrypi.pico import *
 
+elif (
+    detector.board.RASPBERRY_PI_4B
+    or detector.board.RASPBERRY_PI_CM4
+    or detector.board.RASPBERRY_PI_400
+):
+    from adafruit_blinka.board.raspberrypi.raspi_4b import *
+
 elif detector.board.any_raspberry_pi_40_pin:
     from adafruit_blinka.board.raspberrypi.raspi_40pin import *
 
index 82bc1a95a2dd91b74cd9b3ceedae9c751a5bc6ed..03253b3b6fc820d48848b48a520cbb9af8b49aa0 100755 (executable)
@@ -57,7 +57,14 @@ elif chip_id == ap_chip.STM32F405:
 elif chip_id == ap_chip.RP2040:
     from adafruit_blinka.microcontroller.rp2040 import *
 elif chip_id == ap_chip.BCM2XXX:
-    from adafruit_blinka.microcontroller.bcm283x import *
+    if board_id in [
+        "RASPBERRY_PI_4B",
+        "RASPBERRY_PI_400",
+        "RASPBERRY_PI_CM4",
+    ]:
+        from adafruit_blinka.microcontroller.bcm2711.pin import *
+    else:
+        from adafruit_blinka.microcontroller.bcm283x.pin import *
 elif chip_id == ap_chip.DRA74X:
     from adafruit_blinka.microcontroller.dra74x.pin import *
 elif chip_id == ap_chip.AM33XX:
index c46a335b31762fbc4f5b0237ebae984f11344e4d..149c342243cbb2dbb592ae2e87db5151e9d61af8 100755 (executable)
@@ -1,7 +1,7 @@
 """Pins named after their chip name."""
 
 from adafruit_platformdetect.constants import chips as ap_chip
-from adafruit_blinka.agnostic import chip_id
+from adafruit_blinka.agnostic import board_id, chip_id
 
 # We intentionally are patching into this namespace so skip the wildcard check.
 # pylint: disable=unused-wildcard-import,wildcard-import,ungrouped-imports
@@ -13,7 +13,14 @@ elif chip_id == ap_chip.STM32F405:
 elif chip_id == ap_chip.RP2040:
     from adafruit_blinka.microcontroller.rp2040.pin import *
 elif chip_id == ap_chip.BCM2XXX:
-    from adafruit_blinka.microcontroller.bcm283x.pin import *
+    if board_id in [
+        "RASPBERRY_PI_4B",
+        "RASPBERRY_PI_400",
+        "RASPBERRY_PI_CM4",
+    ]:
+        from adafruit_blinka.microcontroller.bcm2711.pin import *
+    else:
+        from adafruit_blinka.microcontroller.bcm283x.pin import *
 elif chip_id == ap_chip.DRA74X:
     from adafruit_blinka.microcontroller.dra74x.pin import *
 elif chip_id == ap_chip.AM33XX: