From: Melissa LeBlanc-Williams Date: Fri, 22 May 2020 15:08:41 +0000 (-0700) Subject: Merge pull request #294 from hhk7734/odroid-xu4 X-Git-Tag: 4.10.0 X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/commitdiff_plain/5346e2eeeeb549add7b051f9d3dd8b11dfc29713?hp=b64fb9de3dc4ee8acd64d47f0e747a3301bb09a3 Merge pull request #294 from hhk7734/odroid-xu4 ODROID-XU4: add support for Hardkernel Odroid XU4 --- diff --git a/src/adafruit_blinka/board/hardkernel/odroidxu4.py b/src/adafruit_blinka/board/hardkernel/odroidxu4.py new file mode 100644 index 0000000..b052f7e --- /dev/null +++ b/src/adafruit_blinka/board/hardkernel/odroidxu4.py @@ -0,0 +1,40 @@ +"""Pin definitions for the Odroid XU4.""" + +from adafruit_blinka.microcontroller.samsung.exynos5422 import pin + +SDA = SDA1 = pin.I2C1_SDA +SCL = SCL1 = pin.I2C1_SCL +SDA5 = pin.I2C5_SDA +SCL5 = pin.I2C5_SCL + +SCLK = pin.SPI1_SCLK +MOSI = pin.SPI1_MOSI +MISO = pin.SPI1_MISO +SPI_CS0 = pin.SPI1_CS0 + +"""physical pin number(XU4 Shifter Shield)""" + +D3 = pin.GPIOB3_2 +D5 = pin.GPIOB3_3 +D7 = pin.GPIOX1_2 +D8 = pin.GPIOA0_1 +D10 = pin.GPIOA0_0 +D11 = pin.GPIOA0_3 +D12 = pin.GPIOA0_2 +D13 = pin.GPIOX1_5 +D15 = pin.GPIOX1_6 +D16 = pin.GPIOX1_3 +D18 = pin.GPIOX1_7 +D19 = pin.GPIOA2_7 +D21 = pin.GPIOA2_6 +D22 = pin.GPIOX2_0 +D23 = pin.GPIOA2_4 +D24 = pin.GPIOA2_5 +D26 = pin.GPIOX2_1 +D27 = pin.GPIOA2_2 +D28 = pin.GPIOA2_4 +D29 = pin.GPIOX2_4 +D31 = pin.GPIOX2_6 +D32 = pin.GPIOX2_5 +D33 = pin.GPIOX2_7 +D36 = pin.GPIOX3_1 diff --git a/src/adafruit_blinka/microcontroller/samsung/__init__.py b/src/adafruit_blinka/microcontroller/samsung/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/adafruit_blinka/microcontroller/samsung/exynos5422/__init__.py b/src/adafruit_blinka/microcontroller/samsung/exynos5422/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/adafruit_blinka/microcontroller/samsung/exynos5422/pin.py b/src/adafruit_blinka/microcontroller/samsung/exynos5422/pin.py new file mode 100644 index 0000000..c06eb31 --- /dev/null +++ b/src/adafruit_blinka/microcontroller/samsung/exynos5422/pin.py @@ -0,0 +1,85 @@ +""" +Samsum Exynos5422 +Ref: + Linux kernel 4.14.y (hardkernel) +""" +from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin + +GPIOA0_0 = GPIO171 = Pin((26, 0)) +GPIOA0_1 = GPIO172 = Pin((26, 1)) +GPIOA0_2 = GPIO173 = Pin((26, 2)) +GPIOA0_3 = GPIO174 = Pin((26, 3)) +GPIOA0_4 = GPIO175 = Pin((26, 4)) +GPIOA0_5 = GPIO176 = Pin((26, 5)) +GPIOA0_6 = GPIO177 = Pin((26, 6)) +GPIOA0_6 = GPIO178 = Pin((26, 7)) + +GPIOA2_0 = GPIO185 = Pin((28, 0)) +GPIOA2_1 = GPIO186 = Pin((28, 1)) +GPIOA2_2 = GPIO187 = Pin((28, 2)) +GPIOA2_3 = GPIO188 = Pin((28, 3)) +GPIOA2_4 = GPIO189 = Pin((28, 4)) +GPIOA2_5 = GPIO190 = Pin((28, 5)) +GPIOA2_6 = GPIO191 = Pin((28, 6)) +GPIOA2_7 = GPIO192 = Pin((28, 7)) + +GPIOB3_0 = GPIO207 = Pin((32, 0)) +GPIOB3_1 = GPIO208 = Pin((32, 1)) +GPIOB3_2 = GPIO209 = Pin((32, 2)) +GPIOB3_3 = GPIO210 = Pin((32, 3)) +GPIOB3_4 = GPIO211 = Pin((32, 4)) +GPIOB3_5 = GPIO212 = Pin((32, 5)) +GPIOB3_6 = GPIO213 = Pin((32, 6)) +GPIOB3_7 = GPIO214 = Pin((32, 7)) + +GPIOX1_0 = GPIO16 = Pin((2, 0)) +GPIOX1_1 = GPIO17 = Pin((2, 1)) +GPIOX1_2 = GPIO18 = Pin((2, 2)) +GPIOX1_3 = GPIO19 = Pin((2, 3)) +GPIOX1_4 = GPIO20 = Pin((2, 4)) +GPIOX1_5 = GPIO21 = Pin((2, 5)) +GPIOX1_6 = GPIO22 = Pin((2, 6)) +GPIOX1_7 = GPIO23 = Pin((2, 7)) + +GPIOX2_0 = GPIO24 = Pin((3, 0)) +GPIOX2_1 = GPIO25 = Pin((3, 1)) +GPIOX2_2 = GPIO26 = Pin((3, 2)) +GPIOX2_3 = GPIO27 = Pin((3, 3)) +GPIOX2_4 = GPIO28 = Pin((3, 4)) +GPIOX2_5 = GPIO29 = Pin((3, 5)) +GPIOX2_6 = GPIO30 = Pin((3, 6)) +GPIOX2_7 = GPIO31 = Pin((3, 7)) + +GPIOX3_0 = GPIO32 = Pin((4, 0)) +GPIOX3_1 = GPIO33 = Pin((4, 1)) +GPIOX3_2 = GPIO34 = Pin((4, 2)) +GPIOX3_3 = GPIO35 = Pin((4, 3)) +GPIOX3_4 = GPIO36 = Pin((4, 4)) +GPIOX3_5 = GPIO37 = Pin((4, 5)) +GPIOX3_6 = GPIO38 = Pin((4, 6)) +GPIOX3_7 = GPIO39 = Pin((4, 7)) + +I2C1_SDA = GPIOB3_2 +I2C1_SCL = GPIOB3_3 +I2C5_SDA = GPIOA2_2 +I2C5_SCL = GPIOA2_3 + +UART0_TX = GPIOA0_1 +UART0_RX = GPIOA0_0 + +SPI1_SCLK = GPIOA2_4 +SPI1_MISO = GPIOA2_6 +SPI1_MOSI = GPIOA2_7 +SPI1_CS0 = GPIOA2_5 + +# ordered as i2cId, sclId, sdaId +i2cPorts = ( + (1, I2C1_SCL, I2C1_SDA), + (5, I2C5_SCL, I2C5_SDA), +) + +# ordered as spiId, sckId, mosiId, misoId +spiPorts = ((1, SPI1_SCLK, SPI1_MOSI, SPI1_MISO),) + +# ordered as uartId, txId, rxId +uartPorts = ((0, UART0_TX, UART0_RX),) diff --git a/src/board.py b/src/board.py index e9b7da1..4bf275e 100755 --- a/src/board.py +++ b/src/board.py @@ -125,6 +125,9 @@ elif board_id == ap_board.ODROID_C4: elif board_id == ap_board.ODROID_N2: from adafruit_blinka.board.hardkernel.odroidn2 import * +elif board_id == ap_board.ODROID_XU4: + from adafruit_blinka.board.hardkernel.odroidxu4 import * + elif board_id == ap_board.DRAGONBOARD_410C: from adafruit_blinka.board.dragonboard_410c import * diff --git a/src/busio.py b/src/busio.py index 4786ee4..d14dcc5 100755 --- a/src/busio.py +++ b/src/busio.py @@ -192,6 +192,9 @@ class SPI(Lockable): 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.ODROID_XU4: + from adafruit_blinka.microcontroller.samsung.exynos5422.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 diff --git a/src/digitalio.py b/src/digitalio.py index 6a37260..8634e41 100755 --- a/src/digitalio.py +++ b/src/digitalio.py @@ -31,6 +31,8 @@ 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.EXYNOS5422: + from adafruit_blinka.microcontroller.samsung.exynos5422.pin import Pin elif detector.chip.APQ8016: from adafruit_blinka.microcontroller.snapdragon.apq8016.pin import Pin elif detector.chip.IMX8MX: diff --git a/src/microcontroller/__init__.py b/src/microcontroller/__init__.py index 5064b7a..027a557 100755 --- a/src/microcontroller/__init__.py +++ b/src/microcontroller/__init__.py @@ -56,6 +56,8 @@ 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.EXYNOS5422: + from adafruit_blinka.microcontroller.samsung.exynos5422.pin import * elif chip_id == ap_chip.APQ8016: from adafruit_blinka.microcontroller.snapdragon.apq8016.pin import * elif chip_id == ap_chip.A64: diff --git a/src/microcontroller/pin.py b/src/microcontroller/pin.py index 458f20c..09edd3c 100755 --- a/src/microcontroller/pin.py +++ b/src/microcontroller/pin.py @@ -30,6 +30,8 @@ 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.EXYNOS5422: + from adafruit_blinka.microcontroller.samsung.exynos5422.pin import * elif chip_id == ap_chip.APQ8016: from adafruit_blinka.microcontroller.snapdragon.apq8016.pin import * elif chip_id == ap_chip.IMX8MX: