]> Repositories - Adafruit_Blinka-hackapet.git/commitdiff
support spacemit k1, bananapif3
authorAugust <2819763+Dangku@users.noreply.github.com>
Tue, 3 Sep 2024 11:31:44 +0000 (19:31 +0800)
committerAugust <2819763+Dangku@users.noreply.github.com>
Tue, 3 Sep 2024 11:31:44 +0000 (19:31 +0800)
src/adafruit_blinka/board/bananapi/bpif3.py [new file with mode: 0644]
src/adafruit_blinka/microcontroller/rockchip/rk3566/.pin.py.swp [new file with mode: 0644]
src/adafruit_blinka/microcontroller/spacemit/__init__.py [new file with mode: 0644]
src/adafruit_blinka/microcontroller/spacemit/k1/__init__.py [new file with mode: 0644]
src/adafruit_blinka/microcontroller/spacemit/k1/pin.py [new file with mode: 0644]
src/board.py
src/digitalio.py
src/microcontroller/__init__.py
src/microcontroller/pin.py

diff --git a/src/adafruit_blinka/board/bananapi/bpif3.py b/src/adafruit_blinka/board/bananapi/bpif3.py
new file mode 100644 (file)
index 0000000..49d7158
--- /dev/null
@@ -0,0 +1,56 @@
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+"""Pin definitions for the Banana Pi F3."""
+
+from adafruit_blinka.microcontroller.spacemit.k1 import pin
+
+# I2C
+I2C4_SCL = pin.I2C4_SCL
+I2C4_SDA = pin.I2C4_SDA
+
+# Default I2C
+SCL = I2C4_SCL
+SDA = I2C4_SDA
+
+# UART
+UART0_TX = pin.UART0_TX
+UART0_RX = pin.UART0_RX
+
+# Default UART
+TX = UART0_TX
+RX = UART0_RX
+TXD = UART0_TX
+RXD = UART0_RX
+
+# SPI
+SPI3_MOSI = pin.SPI3_MOSI
+SPI3_MISO = pin.SPI3_MISO
+SPI3_SCLK = pin.SPI3_SCLK
+SPI3_CS0 = pin.SPI3_CS0
+
+# Default SPI
+MOSI = SPI3_MOSI
+MISO = SPI3_MISO
+SCLK = SPI3_SCLK
+CS = SPI3_CS0
+
+# Pinout reference:
+# https://wiki.banana-pi.org/Banana_Pi_BPI-M4_Berry#BPI-M4_Berry_40-pin_header
+D3 = pin.GPIO_52
+D5 = pin.GPIO_51
+D7 = pin.GPIO_70
+D8 = pin.GPIO_47
+D10 = pin.GPIO_48
+D11 = pin.GPIO_71
+D12 = pin.GPIO_74
+D13 = pin.GPIO_72
+D15 = pin.GPIO_73
+D16 = pin.GPIO_91
+D18 = pin.GPIO_92
+D19 = pin.GPIO_77
+D21 = pin.GPIO_78
+D22 = pin.GPIO_49
+D23 = pin.GPIO_75
+D24 = pin.GPIO_76
+D26 = pin.GPIO_50
diff --git a/src/adafruit_blinka/microcontroller/rockchip/rk3566/.pin.py.swp b/src/adafruit_blinka/microcontroller/rockchip/rk3566/.pin.py.swp
new file mode 100644 (file)
index 0000000..7ed8195
Binary files /dev/null and b/src/adafruit_blinka/microcontroller/rockchip/rk3566/.pin.py.swp differ
diff --git a/src/adafruit_blinka/microcontroller/spacemit/__init__.py b/src/adafruit_blinka/microcontroller/spacemit/__init__.py
new file mode 100644 (file)
index 0000000..f0ee20a
--- /dev/null
@@ -0,0 +1,4 @@
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+"""Definition of all Spacemit chips"""
diff --git a/src/adafruit_blinka/microcontroller/spacemit/k1/__init__.py b/src/adafruit_blinka/microcontroller/spacemit/k1/__init__.py
new file mode 100644 (file)
index 0000000..79c338c
--- /dev/null
@@ -0,0 +1,4 @@
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+"""Definition for the Spacemit K1 chip"""
diff --git a/src/adafruit_blinka/microcontroller/spacemit/k1/pin.py b/src/adafruit_blinka/microcontroller/spacemit/k1/pin.py
new file mode 100644 (file)
index 0000000..ad70499
--- /dev/null
@@ -0,0 +1,180 @@
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+"""Spacemit K1 Pin Names"""
+from adafruit_blinka.agnostic import detector
+from adafruit_blinka.microcontroller.alias import get_pwm_chipid
+from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin
+    
+__chip_num = 0
+
+GPIO_0 = Pin((__chip_num, 0))
+GPIO_1 = Pin((__chip_num, 1))
+GPIO_2 = Pin((__chip_num, 2))
+GPIO_3 = Pin((__chip_num, 3))
+GPIO_4 = Pin((__chip_num, 4))
+GPIO_5 = Pin((__chip_num, 5))
+GPIO_6 = Pin((__chip_num, 6))
+GPIO_7 = Pin((__chip_num, 7))
+GPIO_8 = Pin((__chip_num, 8))
+GPIO_9 = Pin((__chip_num, 9))
+GPIO_10 = Pin((__chip_num, 10))
+GPIO_11 = Pin((__chip_num, 11))
+GPIO_12 = Pin((__chip_num, 12))
+GPIO_13 = Pin((__chip_num, 13))
+GPIO_14 = Pin((__chip_num, 14))
+GPIO_15 = Pin((__chip_num, 15))
+GPIO_16 = Pin((__chip_num, 16))
+GPIO_17 = Pin((__chip_num, 17))
+GPIO_18 = Pin((__chip_num, 18))
+GPIO_19 = Pin((__chip_num, 19))
+GPIO_20 = Pin((__chip_num, 20))
+GPIO_21 = Pin((__chip_num, 21))
+GPIO_22 = Pin((__chip_num, 22))
+GPIO_23 = Pin((__chip_num, 23))
+GPIO_24 = Pin((__chip_num, 24))
+GPIO_25 = Pin((__chip_num, 25))
+GPIO_26 = Pin((__chip_num, 26))
+GPIO_27 = Pin((__chip_num, 27))
+GPIO_28 = Pin((__chip_num, 28))
+GPIO_29 = Pin((__chip_num, 29))
+GPIO_30 = Pin((__chip_num, 30))
+GPIO_31 = Pin((__chip_num, 31))
+GPIO_32 = Pin((__chip_num, 32))
+GPIO_33 = Pin((__chip_num, 33))
+GPIO_34 = Pin((__chip_num, 34))
+GPIO_35 = Pin((__chip_num, 35))
+GPIO_36 = Pin((__chip_num, 36))
+GPIO_37 = Pin((__chip_num, 37))
+GPIO_38 = Pin((__chip_num, 38))
+GPIO_39 = Pin((__chip_num, 39))
+GPIO_40 = Pin((__chip_num, 40))
+GPIO_41 = Pin((__chip_num, 41))
+GPIO_42 = Pin((__chip_num, 42))
+GPIO_43 = Pin((__chip_num, 43))
+GPIO_44 = Pin((__chip_num, 44))
+GPIO_45 = Pin((__chip_num, 45))
+GPIO_46 = Pin((__chip_num, 46))
+GPIO_47 = Pin((__chip_num, 47))
+GPIO_48 = Pin((__chip_num, 48))
+GPIO_49 = Pin((__chip_num, 49))
+GPIO_50 = Pin((__chip_num, 50))
+GPIO_51 = Pin((__chip_num, 51))
+GPIO_52 = Pin((__chip_num, 52))
+GPIO_53 = Pin((__chip_num, 53))
+GPIO_54 = Pin((__chip_num, 54))
+GPIO_55 = Pin((__chip_num, 55))
+GPIO_56 = Pin((__chip_num, 56))
+GPIO_57 = Pin((__chip_num, 57))
+GPIO_58 = Pin((__chip_num, 58))
+GPIO_59 = Pin((__chip_num, 59))
+GPIO_60 = Pin((__chip_num, 60))
+GPIO_61 = Pin((__chip_num, 61))
+GPIO_62 = Pin((__chip_num, 62))
+GPIO_63 = Pin((__chip_num, 63))
+GPIO_64 = Pin((__chip_num, 64))
+GPIO_65 = Pin((__chip_num, 65))
+GPIO_66 = Pin((__chip_num, 66))
+GPIO_67 = Pin((__chip_num, 67))
+GPIO_68 = Pin((__chip_num, 68))
+GPIO_69 = Pin((__chip_num, 69))
+GPIO_70 = Pin((__chip_num, 70))
+GPIO_71 = Pin((__chip_num, 71))
+GPIO_72 = Pin((__chip_num, 72))
+GPIO_73 = Pin((__chip_num, 73))
+GPIO_74 = Pin((__chip_num, 74))
+GPIO_75 = Pin((__chip_num, 75))
+GPIO_76 = Pin((__chip_num, 76))
+GPIO_77 = Pin((__chip_num, 77))
+GPIO_78 = Pin((__chip_num, 78))
+GPIO_79 = Pin((__chip_num, 79))
+GPIO_80 = Pin((__chip_num, 80))
+GPIO_81 = Pin((__chip_num, 81))
+GPIO_82 = Pin((__chip_num, 82))
+GPIO_83 = Pin((__chip_num, 83))
+GPIO_84 = Pin((__chip_num, 84))
+GPIO_85 = Pin((__chip_num, 85))
+GPIO_86 = Pin((__chip_num, 86))
+GPIO_87 = Pin((__chip_num, 87))
+GPIO_88 = Pin((__chip_num, 88))
+GPIO_89 = Pin((__chip_num, 89))
+GPIO_90 = Pin((__chip_num, 90))
+GPIO_91 = Pin((__chip_num, 91))
+GPIO_92 = Pin((__chip_num, 92))
+GPIO_93 = Pin((__chip_num, 93))
+GPIO_94 = Pin((__chip_num, 94))
+GPIO_95 = Pin((__chip_num, 95))
+GPIO_96 = Pin((__chip_num, 96))
+GPIO_97 = Pin((__chip_num, 97))
+GPIO_98 = Pin((__chip_num, 98))
+GPIO_99 = Pin((__chip_num, 99))
+GPIO_100 = Pin((__chip_num, 100))
+GPIO_101 = Pin((__chip_num, 101))
+GPIO_102 = Pin((__chip_num, 102))
+GPIO_103 = Pin((__chip_num, 103))
+GPIO_104 = Pin((__chip_num, 104))
+GPIO_105 = Pin((__chip_num, 105))
+GPIO_106 = Pin((__chip_num, 106))
+GPIO_107 = Pin((__chip_num, 107))
+GPIO_108 = Pin((__chip_num, 108))
+GPIO_109 = Pin((__chip_num, 109))
+GPIO_110 = Pin((__chip_num, 110))
+GPIO_111 = Pin((__chip_num, 111))
+GPIO_112 = Pin((__chip_num, 112))
+GPIO_113 = Pin((__chip_num, 113))
+GPIO_114 = Pin((__chip_num, 114))
+GPIO_115 = Pin((__chip_num, 115))
+GPIO_116 = Pin((__chip_num, 116))
+GPIO_117 = Pin((__chip_num, 117))
+GPIO_118 = Pin((__chip_num, 118))
+GPIO_119 = Pin((__chip_num, 119))
+GPIO_120 = Pin((__chip_num, 120))
+GPIO_121 = Pin((__chip_num, 121))
+GPIO_122 = Pin((__chip_num, 122))
+GPIO_123 = Pin((__chip_num, 123))
+GPIO_124 = Pin((__chip_num, 124))
+GPIO_125 = Pin((__chip_num, 125))
+GPIO_126 = Pin((__chip_num, 126))
+GPIO_127 = Pin((__chip_num, 127))
+
+# I2C
+I2C4_SCL = GPIO_51
+I2C4_SDA = GPIO_52
+
+i2cPorts = (
+    (4, I2C4_SCL, I2C4_SDA),
+)
+
+# SPI
+SPI3_MISO = GPIO_78
+SPI3_MOSI = GPIO_77
+SPI3_SCLK = GPIO_75
+SPI3_CS0 = GPIO_76
+
+# ordered as spiId, sckId, mosiId, misoId
+spiPorts = (
+    (3, SPI3_SCLK, SPI3_MOSI, SPI3_MISO),
+)
+
+# UART
+UART0_TX = GPIO_47
+UART0_RX = GPIO_48
+
+# ordered as uartId, txId, rxId
+uartPorts = (
+    (0, UART0_TX, UART0_RX),
+)
+
+# SysFS pwm outputs, pwm channel and pin in first tuple
+pwmOuts = []
+
+board = detector.board.id
+if board in ("BANANA_PI_F3"):
+    alias = get_pwm_chipid("d401bc00.pwm")
+    if alias is not None:
+        globals()["PWM" + alias] = GPIO_92
+        pwmOuts.append(((int(alias[-1]), 0), GPIO_92))
+    alias = get_pwm_chipid("d4020400.pwm")
+    if alias is not None:
+        globals()["PWM" + alias] = GPIO_74
+        pwmOuts.append(((int(alias[-1]), 0), GPIO_74))
index 14f600a073887a5c5746c0a22e240dff74d1ba8f..88ae1da94cba4c960d65632609f45552ff07d6cd 100644 (file)
@@ -161,6 +161,9 @@ elif board_id == ap_board.BANANA_PI_M4_ZERO:
 elif board_id == ap_board.BANANA_PI_M5:
     from adafruit_blinka.board.bananapi.bpim5 import *
 
 elif board_id == ap_board.BANANA_PI_M5:
     from adafruit_blinka.board.bananapi.bpim5 import *
 
+elif board_id == ap_board.BANANA_PI_F3:
+    from adafruit_blinka.board.bananapi.bpif3 import *
+
 elif board_id == ap_board.LEMAKER_BANANA_PRO:
     from adafruit_blinka.board.lemaker.bananapro import *
 
 elif board_id == ap_board.LEMAKER_BANANA_PRO:
     from adafruit_blinka.board.lemaker.bananapro import *
 
index 6f92fc53d2228431c0d476e8693f08963f2e4fe3..6f04984c0f7861b79f70bf4ea308efc3bbbea58a 100644 (file)
@@ -119,6 +119,8 @@ elif detector.chip.D1_RISCV:
     from adafruit_blinka.microcontroller.allwinner.D1.pin import Pin
 elif detector.chip.TH1520:
     from adafruit_blinka.microcontroller.thead.th1520.pin import Pin
     from adafruit_blinka.microcontroller.allwinner.D1.pin import Pin
 elif detector.chip.TH1520:
     from adafruit_blinka.microcontroller.thead.th1520.pin import Pin
+elif detector.chip.K1:
+    from adafruit_blinka.microcontroller.spacemit.k1.pin import Pin
 # Special Case Boards
 elif detector.board.ftdi_ft232h:
     from adafruit_blinka.microcontroller.ftdi_mpsse.ft232h.pin import Pin
 # Special Case Boards
 elif detector.board.ftdi_ft232h:
     from adafruit_blinka.microcontroller.ftdi_mpsse.ft232h.pin import Pin
index ea0b5e288f1e6d851f4f8f46a668143e5aa97d3d..2792e7bd1a726c02ec4214d60c20d96301714415 100644 (file)
@@ -157,6 +157,8 @@ elif chip_id == ap_chip.RV1106:
     from adafruit_blinka.microcontroller.rockchip.rv1106 import *
 elif chip_id == ap_chip.TH1520:
     from adafruit_blinka.microcontroller.thead.th1520 import *
     from adafruit_blinka.microcontroller.rockchip.rv1106 import *
 elif chip_id == ap_chip.TH1520:
     from adafruit_blinka.microcontroller.thead.th1520 import *
+elif chip_id == ap_chip.K1:
+    from adafruit_blinka.microcontroller.spacemit.k1 import *
 elif chip_id == ap_chip.GENERIC_X86:
     print("WARNING: GENERIC_X86 is not fully supported. Some features may not work.")
 elif chip_id == ap_chip.OS_AGNOSTIC:
 elif chip_id == ap_chip.GENERIC_X86:
     print("WARNING: GENERIC_X86 is not fully supported. Some features may not work.")
 elif chip_id == ap_chip.OS_AGNOSTIC:
index bdc5a8d7e1d311e2892a8ec2f337732e1fd035c0..3d4a560d56bd13570d4cb961c7d1fd227313b5ce 100644 (file)
@@ -147,6 +147,8 @@ elif chip_id == ap_chip.CV1800B:
     from adafruit_blinka.microcontroller.cv1800b.pin import *
 elif chip_id == ap_chip.TH1520:
     from adafruit_blinka.microcontroller.thead.th1520.pin import *
     from adafruit_blinka.microcontroller.cv1800b.pin import *
 elif chip_id == ap_chip.TH1520:
     from adafruit_blinka.microcontroller.thead.th1520.pin import *
+elif chip_id == ap_chip.K1:
+    from adafruit_blinka.microcontroller.spacemit.k1.pin import *
 elif chip_id == ap_chip.RV1103:
     from adafruit_blinka.microcontroller.rockchip.rv1103.pin import *
 elif chip_id == ap_chip.RV1106:
 elif chip_id == ap_chip.RV1103:
     from adafruit_blinka.microcontroller.rockchip.rv1103.pin import *
 elif chip_id == ap_chip.RV1106: