--- /dev/null
+"""Pin definitions for the Odroid C4."""
+
+from adafruit_blinka.microcontroller.amlogic.s905x3 import pin
+
+GPIOX_0 = pin.GPIO476
+GPIOX_1 = pin.GPIO477
+GPIOX_2 = pin.GPIO478
+GPIOX_3 = pin.GPIO479
+GPIOX_4 = pin.GPIO480
+GPIOX_5 = pin.GPIO481
+GPIOX_6 = pin.GPIO482
+GPIOX_7 = pin.GPIO483
+GPIOX_8 = pin.GPIO484
+GPIOX_9 = pin.GPIO485
+GPIOX_10 = pin.GPIO486
+GPIOX_11 = pin.GPIO487
+GPIOX_12 = pin.GPIO488
+GPIOX_13 = pin.GPIO489
+GPIOX_14 = pin.GPIO490
+GPIOX_15 = pin.GPIO491
+GPIOX_16 = pin.GPIO492
+GPIOX_17 = pin.GPIO493
+GPIOX_18 = pin.GPIO494
+GPIOX_19 = pin.GPIO495
+
+GPIODV_24 = pin.GPIO493
+GPIODV_25 = pin.GPIO494
+GPIODV_26 = pin.GPIO474
+GPIODV_27 = pin.GPIO475
+
+GPIOA_4 = pin.GPIO464
+GPIOA_12 = pin.GPIO472
+GPIOA_13 = pin.GPIO473
+GPIOA_14 = pin.GPIO474
+GPIOA_15 = pin.GPIO475
+
+GPIOA0_0 = pin.GPIO496
+GPIOA0_1 = pin.GPIO497
+GPIOA0_2 = pin.GPIO498
+GPIOA0_3 = pin.GPIO499
+GPIOA0_4 = pin.GPIO500
+GPIOA0_5 = pin.GPIO501
+GPIOA0_6 = pin.GPIO502
+GPIOA0_7 = pin.GPIO503
+GPIOA0_8 = pin.GPIO504
+GPIOA0_9 = pin.GPIO505
+GPIOA0_10 = pin.GPIO506
+GPIOA0_11 = pin.GPIO507
+GPIOA0_12 = pin.GPIO508
+GPIOA0_13 = pin.GPIO509
+GPIOA0_14 = pin.GPIO510
+GPIOA0_15 = pin.GPIO511
+
+GPIOH_0 = pin.GPIO17
+GPIOH_1 = pin.GPIO18
+GPIOH_2 = pin.GPIO19
+GPIOH_3 = pin.GPIO20
+GPIOH_4 = pin.GPIO21
+GPIOH_5 = pin.GPIO22
+GPIOH_6 = pin.GPIO23
+GPIOH_7 = pin.GPIO24
+GPIOH_8 = pin.GPIO25
+
+SDA = pin.I2C2_SDA
+SCL = pin.I2C2_SCL
+
+SCLK = pin.SPI0_SCLK
+MOSI = pin.SPI0_MOSI
+MISO = pin.SPI0_MISO
+SPI_CS0 = pin.SPI0_CS0
+
+"""J2: physical pin number"""
+
+D3 = GPIOX_17
+D5 = GPIOX_18
+D7 = GPIOX_5
+D8 = GPIOX_12
+D10 = GPIOX_13
+D11 = GPIOX_3
+D12 = GPIOX_16
+D13 = GPIOX_4
+D15 = GPIOX_7
+D16 = GPIOX_0
+D18 = GPIOX_1
+D19 = GPIOX_8
+D21 = GPIOX_9
+D22 = GPIOX_2
+D23 = GPIOX_11
+D24 = GPIOX_10
+D26 = GPIOH_6
+D27 = GPIOA_14
+D28 = GPIOA_15
+D29 = GPIOX_14
+D31 = GPIOX_15
+D32 = GPIOH_7
+D33 = GPIOX_6
+D35 = GPIOX_19
+D36 = GPIOH_5
--- /dev/null
+from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin
+
+GPIO496 = Pin((0, 0))
+GPIO497 = Pin((0, 1))
+GPIO498 = Pin((0, 2))
+GPIO499 = Pin((0, 3))
+GPIO500 = Pin((0, 4))
+GPIO501 = Pin((0, 5))
+GPIO502 = Pin((0, 6))
+GPIO503 = Pin((0, 7))
+GPIO504 = Pin((0, 8))
+GPIO505 = Pin((0, 9))
+GPIO506 = Pin((0, 10))
+GPIO507 = Pin((0, 11))
+GPIO508 = Pin((0, 12))
+GPIO509 = Pin((0, 13))
+GPIO510 = Pin((0, 14))
+GPIO511 = Pin((0, 15))
+
+GPIO17 = Pin((1, 17))
+GPIO18 = Pin((1, 18))
+GPIO19 = Pin((1, 19))
+GPIO20 = Pin((1, 20))
+GPIO21 = Pin((1, 21))
+GPIO22 = Pin((1, 22))
+GPIO23 = Pin((1, 23))
+GPIO24 = Pin((1, 24))
+GPIO25 = Pin((1, 25))
+
+GPIO460 = Pin((1, 50))
+GPIO461 = Pin((1, 51))
+GPIO462 = Pin((1, 52))
+GPIO463 = Pin((1, 53))
+GPIO464 = Pin((1, 54))
+GPIO465 = Pin((1, 55))
+GPIO466 = Pin((1, 56))
+GPIO467 = Pin((1, 57))
+GPIO468 = Pin((1, 58))
+GPIO469 = Pin((1, 59))
+GPIO470 = Pin((1, 60))
+GPIO472 = Pin((1, 62))
+GPIO471 = Pin((1, 61))
+GPIO472 = Pin((1, 62))
+GPIO473 = Pin((1, 63))
+GPIO474 = Pin((1, 64))
+GPIO475 = Pin((1, 65))
+GPIO476 = Pin((1, 66))
+GPIO477 = Pin((1, 67))
+GPIO478 = Pin((1, 68))
+GPIO479 = Pin((1, 69))
+GPIO480 = Pin((1, 70))
+GPIO481 = Pin((1, 71))
+GPIO482 = Pin((1, 72))
+GPIO483 = Pin((1, 73))
+GPIO484 = Pin((1, 74))
+GPIO485 = Pin((1, 75))
+GPIO486 = Pin((1, 76))
+GPIO487 = Pin((1, 77))
+GPIO488 = Pin((1, 78))
+GPIO489 = Pin((1, 79))
+GPIO490 = Pin((1, 80))
+GPIO491 = Pin((1, 81))
+GPIO492 = Pin((1, 82))
+GPIO493 = Pin((1, 83))
+GPIO494 = Pin((1, 84))
+GPIO495 = Pin((1, 85))
+
+I2C2_SDA = GPIO493
+I2C2_SCL = GPIO494
+I2C3_SDA = GPIO474
+I2C3_SCL = GPIO475
+
+UART1_TX = GPIO488
+UART1_RX = GPIO489
+
+SPI0_SCLK = GPIO487
+SPI0_MISO = GPIO485
+SPI0_MOSI = GPIO484
+SPI0_CS0 = GPIO488
+
+i2cPorts = ( (2, I2C2_SCL, I2C2_SDA), (3, I2C3_SCL, I2C3_SDA), )
+# ordered as spiId, sckId, mosiId, misoId
+spiPorts = ( (0, SPI0_SCLK, SPI0_MOSI, SPI0_MISO), )
+# ordered as uartId, txId, rxId
+uartPorts = ( (1, UART1_TX, UART1_RX), )
elif board_id == ap_board.ODROID_C2:
from adafruit_blinka.board.hardkernel.odroidc2 import *
+elif board_id == ap_board.ODROID_C4:
+ from adafruit_blinka.board.hardkernel.odroidc4 import *
+
elif board_id == ap_board.ODROID_N2:
from adafruit_blinka.board.hardkernel.odroidn2 import *
elif board_id == ap_board.ODROID_C2:
from adafruit_blinka.microcontroller.amlogic.s905.pin import Pin
from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
+ elif board_id == ap_board.ODROID_C4:
+ from adafruit_blinka.microcontroller.amlogic.s905x3.pin import Pin
+ from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
elif board_id == ap_board.DRAGONBOARD_410C:
from adafruit_blinka.microcontroller.snapdragon.apq8016.pin import Pin
from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
from adafruit_blinka.microcontroller.tegra.t194.pin import Pin
elif detector.chip.S905:
from adafruit_blinka.microcontroller.amlogic.s905.pin import Pin
+elif detector.chip.S905X3:
+ from adafruit_blinka.microcontroller.amlogic.s905x3.pin import Pin
elif detector.chip.S922X:
from adafruit_blinka.microcontroller.amlogic.s922x.pin import Pin
elif detector.chip.APQ8016:
from adafruit_blinka.microcontroller.tegra.t194 import *
elif chip_id == ap_chip.S905:
from adafruit_blinka.microcontroller.amlogic.s905.pin import *
+elif chip_id == ap_chip.S905X3:
+ from adafruit_blinka.microcontroller.amlogic.s905x3.pin import *
elif chip_id == ap_chip.S922X:
from adafruit_blinka.microcontroller.amlogic.s922x.pin import *
elif chip_id == ap_chip.APQ8016:
from adafruit_blinka.microcontroller.tegra.t194.pin import *
elif chip_id == ap_chip.S905:
from adafruit_blinka.microcontroller.amlogic.s905.pin import *
+elif chip_id == ap_chip.S905X3:
+ from adafruit_blinka.microcontroller.amlogic.s905x3.pin import *
elif chip_id == ap_chip.S922X:
from adafruit_blinka.microcontroller.amlogic.s922x.pin import *
elif chip_id == ap_chip.APQ8016: