]> Repositories - hackapet/Adafruit_Blinka.git/blobdiff - src/adafruit_blinka/microcontroller/bcm283x/pin.py
Split RP4 and CM4 SPI definitions
[hackapet/Adafruit_Blinka.git] / src / adafruit_blinka / microcontroller / bcm283x / pin.py
index 434a90b31c56f48fe63546a54d6b2159ce70d352..dd8abe60e943cf0f3f8dac1ef61f1f1303f81e69 100644 (file)
@@ -1,5 +1,6 @@
 """Broadcom BCM283x pin names"""
 import RPi.GPIO as GPIO
+from adafruit_blinka.agnostic import detector
 
 GPIO.setmode(GPIO.BCM)  # Use BCM pins D4 = GPIO #4
 GPIO.setwarnings(False)  # shh!
@@ -138,16 +139,30 @@ 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),
-)
+if detector.board.id in ["RASPBERRY_PI_4B", "RASPBERRY_PI_CM4"]:
+    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),
+    )
+else:
+    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),)
 
+# 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
 )