]> Repositories - Adafruit_Blinka-hackapet.git/blobdiff - src/adafruit_blinka/board/radxa_x4_u2if.py
add support for Radxa-X4 via U2IF
[Adafruit_Blinka-hackapet.git] / src / adafruit_blinka / board / radxa_x4_u2if.py
diff --git a/src/adafruit_blinka/board/radxa_x4_u2if.py b/src/adafruit_blinka/board/radxa_x4_u2if.py
new file mode 100644 (file)
index 0000000..9642406
--- /dev/null
@@ -0,0 +1,117 @@
+# SPDX-FileCopyrightText: 2025 Bernhard Bablok
+#
+# Copied and adapted from pico_u2if.py
+# Copyright: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+"""Pin definitions for the Raspberry Pi Pico running u2if firmware"""
+from adafruit_blinka.microcontroller.rp2040_u2if import pin
+
+# Pico names
+GP0 = pin.GP0
+GP1 = pin.GP1
+GP2 = pin.GP2
+GP3 = pin.GP3
+GP4 = pin.GP4
+GP5 = pin.GP5
+GP6 = pin.GP6
+GP7 = pin.GP7
+GP8 = pin.GP8
+GP9 = pin.GP9
+GP10 = pin.GP10
+GP11 = pin.GP11
+GP12 = pin.GP12
+GP13 = pin.GP13
+GP14 = pin.GP14
+GP15 = pin.GP15
+GP16 = pin.GP16
+GP17 = pin.GP17
+GP18 = pin.GP18
+GP19 = pin.GP19
+GP20 = pin.GP20
+GP21 = pin.GP21
+GP22 = pin.GP22
+GP23 = pin.GP23
+GP24 = pin.GP24
+GP25 = pin.GP25
+GP26 = pin.GP26
+GP27 = pin.GP27
+GP28 = pin.GP28
+GP29 = pin.GP29
+
+# Pi names left side (top down)
+GPIO2 = GP28
+GPIO3 = GP29
+
+GPIO4 = GP4
+GPIO17 = GP5
+GPIO27 = GP6
+GPIO22 = GP3
+
+GPIO10 = GP11
+GPIO9 = GP8
+GPIO11 = GP10
+
+GPIO0 = GP16
+GPIO5 = GP7
+GPIO6 = GP12
+GPIO13 = GP13
+GPIO19 = GP15
+GPIO26 = GP14
+
+# right side (top down)
+GPIO14 = GP20
+GPIO15 = GP21
+GPIO18 = GP23
+
+GPIO23 = GP22
+GPIO24 = GP27
+
+GPIO25 = GP24
+GPIO8 = GP9
+GPIO7 = GP18
+GPIO1 = GP17
+
+GPIO12 = GP19
+
+GPIO16 = GP26
+GPIO20 = GP2
+GPIO21 = GP25
+
+# specials (INT: internal connection to N100-chip, EXT: on GPIO-pins)
+UART_TX_INT = GP0
+UART_RX_INT = GP1
+UART_RX_EXT = GP20  # GPIO14
+UART_RX_EXT = GP21  # GPIO15
+
+ADC0 = GP26
+ADC1 = GP27
+ADC2 = GP28
+ADC3 = GP29
+
+PWM0 = GPIO12
+PWM1 = GPIO13
+
+# Pi defaults (I2C0 is also mapped to the ID-pins GPIO0/GPIO1 aka GP16/GP17)
+SDA = SDA0 = GP28  # GPIO2
+SCL = SCL0 = GP29  # GPIO3
+
+# other choices have more conflicts
+SDA1 = GP18
+SCL1 = GP19
+
+# Pico-SPI0 (Radxa-X4 does not map Pi-SPI1)
+SCLK0 = SCK0 = GP6
+MOSI0 = GP3
+MISO0 = GP4
+CE0 = GPIO8
+CE1 = GPIO7
+
+# Pi (SPI0) defaults (Radxa-X4 maps Pi-SPI0 to Pico-SPI1)
+SCLK = SCK = SCLK1 = SCK1 = GP10
+MOSI = MOSI1 = GP11
+MISO = MISO1 = GP8
+
+# access u2if via pin instance to open for specifc VID/PID
+# pylint:disable = protected-access
+pin.GP0._u2if_open_hid(0xCAFF, 0x4005)