--- /dev/null
+# SPDX-FileCopyrightText: 2023 mmontol
+#
+# SPDX-License-Identifier: MIT
+"""Pin definitions for the LubanCat-4."""
+
+from adafruit_blinka.microcontroller.rockchip.rk3588 import pin
+
+# lbancat4 board 40-Pin J9:
+# --------------------------
+# 3V3 | (1) (2) | 5V
+# GPIO3 | (3) (4) | 5V
+# GPIO5 | (5) (6) | GND
+# GPIO7 | (7) (8) | GPIO8
+# GND | (9) (10) | GPIO10
+# ....................... #
+# ....................... #
+# GPIO33| (33) (34) | GND
+# GPIO35| (35) (36) | GPIO36
+# GPIO37| (37) (38) | GPIO38
+# GND | (39) (40) | GPIO40
+# --------------------------
+
+# GPIO1 = +3.3V
+# GPIO2 = +5V
+GPIO3 = pin.GPIO1_B7
+# GPIO4 = +5V
+GPIO5 = pin.GPIO1_B6
+# GPIO6 = GND
+GPIO7 = pin.GPIO0_A0
+GPIO8 = pin.GPIO4_A3
+# GPIO9 = GND
+GPIO10 = pin.GPIO4_A4
+GPIO11 = pin.GPIO1_A1
+GPIO12 = pin.GPIO1_D6
+GPIO13 = pin.GPIO1_A7
+# GPIO14 = GND
+GPIO15 = pin.GPIO1_B0
+GPIO16 = pin.GPIO3_C1
+# GPIO17 = +3.3V
+GPIO18 = pin.GPIO3_D2
+GPIO19 = pin.GPIO1_B2
+# GPIO20 = GND
+GPIO21 = pin.GPIO1_B1
+GPIO22 = pin.GPIO3_D4
+GPIO23 = pin.GPIO1_B3
+GPIO24 = pin.GPIO1_B4
+# GPIO25 = GND
+GPIO26 = pin.GPIO1_B5
+GPIO27 = pin.GPIO4_B0
+GPIO28 = pin.GPIO4_B1
+GPIO29 = pin.GPIO3_A6
+# GPIO30 = GND
+GPIO31 = pin.GPIO3_B7
+GPIO32 = pin.GPIO1_D7
+GPIO33 = pin.GPIO3_D3
+# GPIO34 = GND
+GPIO35 = pin.GPIO3_D5
+GPIO36 = pin.GPIO4_A0
+GPIO37 = pin.GPIO3_C0
+GPIO38 = pin.GPIO4_A1
+# GPIO39 = GND
+GPIO40 = pin.GPIO4_A2
+
+# I2C
+I2C5_SCL = pin.I2C5_SCL_M3
+I2C5_SDA = pin.I2C5_SDA_M3
+I2C6_SCL = pin.I2C6_SCL_M3
+I2C6_SDA = pin.I2C6_SDA_M3
+
+# UART
+UART0_TX = pin.UART0_TX_M2
+UART0_RX = pin.UART0_RX_M2
+
+# Default SPI
+MOSI = pin.SPI0_MOSI_M2
+MISO = pin.SPI0_MISO_M2
+SCLK = pin.SPI0_CLK_M2
+CS0 = pin.SPI0_CS0_M2
+CS1 = pin.SPI0_CS1_M2
+
+# PWM
+PWM10 = pin.PWM10_M2
+PWM11 = pin.PWM11_IR_M3
+PWM14 = pin.PWM14_M2
+PWM15 = pin.PWM15_IR_M3
# UART
+UART0_TX_M2 = GPIO4_A3
+UART0_RX_M2 = GPIO4_A4
UART2_TX_M0 = GPIO0_B5
UART2_RX_M0 = GPIO0_B6
UART2_TX_M2 = GPIO3_B1
# ordered as uartId, txId, rxId
uartPorts = (
+ (0, UART0_TX_M2, UART0_RX_M2),
(2, UART2_TX_M0, UART2_RX_M0),
(2, UART2_TX_M2, UART2_RX_M2),
(3, UART3_TX_M1, UART3_RX_M1),
I2C1_SDA_M4 = GPIO1_B2
I2C3_SCL_M1 = GPIO3_B7
I2C3_SDA_M1 = GPIO3_C0
+I2C6_SCL_M3 = GPIO4_B1
+I2C6_SDA_M3 = GPIO4_B0
I2C7_SCL_M3 = GPIO4_B2
I2C7_SDA_M3 = GPIO4_B3
I2C8_SCL_M4 = GPIO3_C2
PWM6_M2 = GPIO4_C5
PWM7_IR_M3 = GPIO4_C6
PWM8_M0 = GPIO3_A7
+PWM10_M2 = GPIO3_D3
+PWM11_IR_M3 = GPIO3_D5
PWM12_M0 = GPIO3_B5
PWM13_M0 = GPIO3_B6
PWM13_M2 = GPIO1_B7
PWM14_M0 = GPIO3_C2
PWM14_M1 = GPIO4_B2
+PWM14_M2 = GPIO1_D6
PWM15_IR_M0 = GPIO3_C3
PWM15_IR_M1 = GPIO4_B3
PWM15_IR_M3 = GPIO1_D7
((0, 6), PWM6_M2),
((0, 7), PWM7_IR_M3),
((0, 8), PWM8_M0),
+ ((0, 10), PWM10_M2),
+ ((0, 11), PWM11_IR_M3),
((0, 12), PWM12_M0),
((0, 13), PWM13_M0),
((0, 13), PWM13_M2),
((0, 14), PWM14_M0),
((0, 14), PWM14_M1),
+ ((0, 14), PWM14_M2),
((0, 15), PWM15_IR_M0),
((0, 15), PWM15_IR_M1),
((0, 15), PWM15_IR_M3),
elif board_id == ap_board.LUBANCAT2:
from adafruit_blinka.board.lubancat.lubancat2 import *
+elif board_id == ap_board.LUBANCAT4:
+ from adafruit_blinka.board.lubancat.lubancat4 import *
+
elif board_id == ap_board.NANOPI_NEO_AIR:
from adafruit_blinka.board.nanopi.neoair import *