--- /dev/null
+"""Pin definitions for the Clockwork Pi (CPI3) board."""
+
+from adafruit_blinka.microcontroller.allwinner.a33 import pin
+
+# Clockwork Pi GPIO port (DEBUG section in datasheet)
+
+# Type         Pin # (ext.)    Pin # (Package)         Function 1      Function 2      Pin # (sysfs)   Color
+# 3V0  1                                                                                       blue
+# GPIO         2               PB0                     UART0/2_TX      PB-EINT0        32              green
+# GPIO         3               PB1                     UART0/2_RX      PB-EINT1        33              yellow
+# GND  4                                                                                       white
+# GPIO         5               PH5                     I2C1-SDA                        229             red
+# GPIO         6               PH4                     I2C1-SCL                        228             brown
+# GND  7                                                                                       black
+# GPIO         8               PH6                     UART3-TX        SPI0-CS         230             blue
+# GPIO 9               PH7                     UART3-RX        SPI0-CLK        231             green
+# GPIO         10              PH9                     UART3-CTS       SPI0-MISO       233             yellow
+# GPIO         11              PH8                     UART3-RTS       SPI0-MOSI       232             white
+# GND  12                                                                                      red
+# 5V0  13                                                                                      brown
+# 5V0  14                                                                                      black
+
+PB0 = pin.PB0
+PB1 = pin.PB1
+TX = PB0
+RX = PB1
+
+SCL = pin.PH4
+SDA = pin.PH5
+
+SCLK = pin.PH7
+MOSI = pin.PH8
+MISO = pin.PH9
 
--- /dev/null
+"""Definition for the AllWinner A33 chip"""
 
--- /dev/null
+from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin
+
+PB0 = Pin(32) # PB0/UART2_TX/UART0_TX/PB_EINT0
+UART2_TX = PB0
+PB1 = Pin(33) # PB1/UART2_RX/UART0_RX/PB_EINT1
+UART2_RX = PB1
+
+PC0 = Pin(64) # PC0/ND_WE/SPI0_MOSI
+PC1 = Pin(65) # PC1/ND_ALE/SPI0_MISO
+PC2 = Pin(66) # PC2/ND_CLE/SPI0_CLK
+
+PH4 = Pin(228) # PH4/TWI1_SCK
+TWI1_SCL = PH4
+PH5 = Pin(229) # PH5/TWI1_SDA
+TWI1_SDA = PH5
+
+
+PH6 = Pin(230) # PH6/SPI0_CS/UART3_TX
+UART3_TX = PH6
+SPI0_CS = PH6
+
+PH7 = Pin(231) # PH7/SPI0_CLK/UART3_RX
+UART3_RX = PH7
+SPI0_SCLK = PH7
+
+PH8 = Pin(232) # PH8/SPI0_MOSI/UART3_RTS
+UART3_RTS = PH8
+SPI0_MOSI = PH8
+
+PH9 = Pin(233) # PH9/SPI0_MISO/UART3_CTS
+UART3_CTS = PH9
+SPI0_MISO = PH9
+
+
+# ordered as i2cId, sclId, sdaId
+i2cPorts = (
+    (0, TWI1_SCL, TWI1_SDA),
+)
+
+# ordered as spiId, sckId, mosiId, misoId
+spiPorts = (
+    (0, SPI0_SCLK, SPI0_MOSI, SPI0_MISO),
+)
+
+# ordered as uartId, txId, rxId
+uartPorts = (
+    (2, UART2_TX, UART2_RX),
+    (3, UART3_TX, UART3_RX),
+)
 
 elif board_id == ap_board.PINE64:
     from adafruit_blinka.board.pine64 import *
 
+elif board_id == ap_board.CLOCKWORK_CPI3:
+    from adafruit_blinka.board.clockworkcpi3 import *
+
 elif "sphinx" in sys.modules:
     pass
 
 
         elif board_id == ap_board.PINE64 or board_id == ap_board.PINEBOOK or board_id == ap_board.PINEPHONE:
             from adafruit_blinka.microcontroller.allwinner.a64.pin import Pin
             from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
-
+        elif board_id == ap_board.CLOCKWORK_CPI3:
+            from adafruit_blinka.microcontroller.allwinner.a33.pin import Pin
+            from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
         else:
             from machine import SPI as _SPI
             from machine import Pin
 
     from adafruit_blinka.microcontroller.hfu540.pin import Pin
 elif detector.chip.A64:
     from adafruit_blinka.microcontroller.allwinner.a64.pin import Pin
+elif detector.chip.A33:
+    from adafruit_blinka.microcontroller.allwinner.a33.pin import Pin
 elif detector.board.ftdi_ft232h:
     from adafruit_blinka.microcontroller.ft232h.pin import Pin
 elif detector.board.binho_nova:
 
     from adafruit_blinka.microcontroller.snapdragon.apq8016.pin import *
 elif chip_id == ap_chip.A64:
     from adafruit_blinka.microcontroller.allwinner.a64.pin import *
+elif chip_id == ap_chip.A33:
+    from adafruit_blinka.microcontroller.allwinner.a33.pin import *
 elif chip_id == ap_chip.IMX8MX:
     from adafruit_blinka.microcontroller.nxp_imx8m import *
 elif chip_id == ap_chip.HFU540:
 
     from adafruit_blinka.microcontroller.mcp2221.pin import *
 elif chip_id == ap_chip.A64:
     from adafruit_blinka.microcontroller.allwinner.a64.pin import *
+elif chip_id == ap_chip.A33:
+    from adafruit_blinka.microcontroller.allwinner.a33.pin import *
 elif chip_id == ap_chip.MIPS24KC:
     from adafruit_blinka.microcontroller.atheros.ar9331.pin import *
 else: