]> Repositories - Adafruit_Blinka-hackapet.git/commitdiff
Amlogic: meson-g12: integrate gpio-line for G12A, G12B, and SM1
authorHyeonki Hong <hhk7734@gmail.com>
Tue, 21 Apr 2020 03:24:03 +0000 (12:24 +0900)
committerHyeonki Hong <hhk7734@gmail.com>
Tue, 21 Apr 2020 03:24:03 +0000 (12:24 +0900)
Tested on ODROID-N2 and C4 in kernels 4.9 and 5.4.

src/adafruit_blinka/microcontroller/amlogic/meson_g12_common/__init__.py [new file with mode: 0644]
src/adafruit_blinka/microcontroller/amlogic/meson_g12_common/pin.py [new file with mode: 0644]
src/adafruit_blinka/microcontroller/amlogic/s905x3/pin.py
src/adafruit_blinka/microcontroller/amlogic/s922x/pin.py

diff --git a/src/adafruit_blinka/microcontroller/amlogic/meson_g12_common/__init__.py b/src/adafruit_blinka/microcontroller/amlogic/meson_g12_common/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/src/adafruit_blinka/microcontroller/amlogic/meson_g12_common/pin.py b/src/adafruit_blinka/microcontroller/amlogic/meson_g12_common/pin.py
new file mode 100644 (file)
index 0000000..a6a9be1
--- /dev/null
@@ -0,0 +1,89 @@
+from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin
+import gpiod
+
+# G12A, G12B, and SM1
+# Ref:
+# Linux kernel 4.9.y (hardkernel)
+#     linux/include/dt-bindings/gpio/meson-g12a-gpio.h
+# Linux kernel 5.4.y (mainline)
+#     linux/include/dt-bindings/gpio/meson-g12a-gpio.h
+
+chip0 = gpiod.Chip("0")
+chip1 = gpiod.Chip("1")
+
+if chip0.num_lines() < 20:
+    aobus = 0
+    periphs = 1
+    periphs_offset = chip1.num_lines() - 85
+else:
+    aobus = 1
+    periphs = 0
+    periphs_offset = chip0.num_lines() - 85
+
+chip0.close()
+chip1.close()
+
+GPIOAO_0 = GPIO496 = Pin((aobus, 0))
+GPIOAO_1 = GPIO497 = Pin((aobus, 1))
+GPIOAO_2 = GPIO498 = Pin((aobus, 2))
+GPIOAO_3 = GPIO499 = Pin((aobus, 3))
+GPIOAO_4 = GPIO500 = Pin((aobus, 4))
+GPIOAO_5 = GPIO501 = Pin((aobus, 5))
+GPIOAO_6 = GPIO502 = Pin((aobus, 6))
+GPIOAO_7 = GPIO503 = Pin((aobus, 7))
+GPIOAO_8 = GPIO504 = Pin((aobus, 8))
+GPIOAO_9 = GPIO505 = Pin((aobus, 9))
+GPIOAO_10 = GPIO506 = Pin((aobus, 10))
+GPIOAO_11 = GPIO507 = Pin((aobus, 11))
+GPIOE_0 = GPIO508 = Pin((aobus, 12))
+GPIOE_1 = GPIO509 = Pin((aobus, 13))
+GPIOE_2 = GPIO510 = Pin((aobus, 14))
+GPIO_TEST_N = GPIO511 = Pin((aobus, 15))
+
+GPIOH_0 = GPIO427 = Pin((periphs, 16 + periphs_offset))
+GPIOH_1 = GPIO428 = Pin((periphs, 17 + periphs_offset))
+GPIOH_2 = GPIO429 = Pin((periphs, 18 + periphs_offset))
+GPIOH_3 = GPIO430 = Pin((periphs, 19 + periphs_offset))
+GPIOH_4 = GPIO431 = Pin((periphs, 20 + periphs_offset))
+GPIOH_5 = GPIO432 = Pin((periphs, 21 + periphs_offset))
+GPIOH_6 = GPIO433 = Pin((periphs, 22 + periphs_offset))
+GPIOH_7 = GPIO434 = Pin((periphs, 23 + periphs_offset))
+GPIOH_8 = GPIO435 = Pin((periphs, 24 + periphs_offset))
+
+GPIOA_0 = GPIO460 = Pin((periphs, 49 + periphs_offset))
+GPIOA_1 = GPIO461 = Pin((periphs, 50 + periphs_offset))
+GPIOA_2 = GPIO462 = Pin((periphs, 51 + periphs_offset))
+GPIOA_3 = GPIO463 = Pin((periphs, 52 + periphs_offset))
+GPIOA_4 = GPIO464 = Pin((periphs, 53 + periphs_offset))
+GPIOA_5 = GPIO465 = Pin((periphs, 54 + periphs_offset))
+GPIOA_6 = GPIO466 = Pin((periphs, 55 + periphs_offset))
+GPIOA_7 = GPIO467 = Pin((periphs, 56 + periphs_offset))
+GPIOA_8 = GPIO468 = Pin((periphs, 57 + periphs_offset))
+GPIOA_9 = GPIO469 = Pin((periphs, 58 + periphs_offset))
+GPIOA_10 = GPIO470 = Pin((periphs, 59 + periphs_offset))
+GPIOA_11 = GPIO471 = Pin((periphs, 60 + periphs_offset))
+GPIOA_12 = GPIO472 = Pin((periphs, 61 + periphs_offset))
+GPIOA_13 = GPIO473 = Pin((periphs, 62 + periphs_offset))
+GPIOA_14 = GPIO474 = Pin((periphs, 63 + periphs_offset))
+GPIOA_15 = GPIO475 = Pin((periphs, 64 + periphs_offset))
+
+GPIOX_0 = GPIO476 = Pin((periphs, 65 + periphs_offset))
+GPIOX_1 = GPIO477 = Pin((periphs, 66 + periphs_offset))
+GPIOX_2 = GPIO478 = Pin((periphs, 67 + periphs_offset))
+GPIOX_3 = GPIO479 = Pin((periphs, 68 + periphs_offset))
+GPIOX_4 = GPIO480 = Pin((periphs, 69 + periphs_offset))
+GPIOX_5 = GPIO481 = Pin((periphs, 70 + periphs_offset))
+GPIOX_6 = GPIO482 = Pin((periphs, 71 + periphs_offset))
+GPIOX_7 = GPIO483 = Pin((periphs, 72 + periphs_offset))
+GPIOX_8 = GPIO484 = Pin((periphs, 73 + periphs_offset))
+GPIOX_9 = GPIO485 = Pin((periphs, 74 + periphs_offset))
+GPIOX_10 = GPIO486 = Pin((periphs, 75 + periphs_offset))
+GPIOX_11 = GPIO487 = Pin((periphs, 76 + periphs_offset))
+GPIOX_12 = GPIO488 = Pin((periphs, 77 + periphs_offset))
+GPIOX_13 = GPIO489 = Pin((periphs, 78 + periphs_offset))
+GPIOX_14 = GPIO490 = Pin((periphs, 79 + periphs_offset))
+GPIOX_15 = GPIO491 = Pin((periphs, 80 + periphs_offset))
+GPIOX_16 = GPIO492 = Pin((periphs, 81 + periphs_offset))
+GPIOX_17 = GPIO493 = Pin((periphs, 82 + periphs_offset))
+GPIOX_18 = GPIO494 = Pin((periphs, 83 + periphs_offset))
+GPIOX_19 = GPIO495 = Pin((periphs, 84 + periphs_offset))
index 712d704adf3f8992fe96576b0a8cd226323b80a8..b8f93e5ab9e18be7159a057f00db9d757c2378f0 100644 (file)
@@ -1,74 +1,5 @@
-from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin
+from adafruit_blinka.microcontroller.amlogic.meson_g12_common.pin import *
 
-# Ref:
-# Linux kernel 4.9.y (hardkernel)
-#     linux/include/dt-bindings/gpio/meson-g12a-gpio.h
-#     linux/arch/arm64/boot/dts/amlogic/meson64_odroidc4.dts
-
-GPIOAO_0 = GPIO496 = Pin((0, 0))
-GPIOAO_1 = GPIO497 = Pin((0, 1))
-GPIOAO_2 = GPIO498 = Pin((0, 2))
-GPIOAO_3 = GPIO499 = Pin((0, 3))
-GPIOAO_4 = GPIO500 = Pin((0, 4))
-GPIOAO_5 = GPIO501 = Pin((0, 5))
-GPIOAO_6 = GPIO502 = Pin((0, 6))
-GPIOAO_7 = GPIO503 = Pin((0, 7))
-GPIOAO_8 = GPIO504 = Pin((0, 8))
-GPIOAO_9 = GPIO505 = Pin((0, 9))
-GPIOAO_10 = GPIO506 = Pin((0, 10))
-GPIOAO_11 = GPIO507 = Pin((0, 11))
-GPIOE_0 = GPIO508 = Pin((0, 12))
-GPIOE_1 = GPIO509 = Pin((0, 13))
-GPIOE_2 = GPIO510 = Pin((0, 14))
-GPIO_TEST_N = GPIO511 = Pin((0, 15))
-
-GPIOH_0 = GPIO427 = Pin((1, 17))
-GPIOH_1 = GPIO428 = Pin((1, 18))
-GPIOH_2 = GPIO429 = Pin((1, 19))
-GPIOH_3 = GPIO430 = Pin((1, 20))
-GPIOH_4 = GPIO431 = Pin((1, 21))
-GPIOH_5 = GPIO432 = Pin((1, 22))
-GPIOH_6 = GPIO433 = Pin((1, 23))
-GPIOH_7 = GPIO434 = Pin((1, 24))
-GPIOH_8 = GPIO435 = Pin((1, 25))
-
-GPIOA_0 = GPIO460 = Pin((1, 50))
-GPIOA_1 = GPIO461 = Pin((1, 51))
-GPIOA_2 = GPIO462 = Pin((1, 52))
-GPIOA_3 = GPIO463 = Pin((1, 53))
-GPIOA_4 = GPIO464 = Pin((1, 54))
-GPIOA_5 = GPIO465 = Pin((1, 55))
-GPIOA_6 = GPIO466 = Pin((1, 56))
-GPIOA_7 = GPIO467 = Pin((1, 57))
-GPIOA_8 = GPIO468 = Pin((1, 58))
-GPIOA_9 = GPIO469 = Pin((1, 59))
-GPIOA_10 = GPIO470 = Pin((1, 60))
-GPIOA_11 = GPIO471 = Pin((1, 61))
-GPIOA_12 = GPIO472 = Pin((1, 62))
-GPIOA_13 = GPIO473 = Pin((1, 63))
-GPIOA_14 = GPIO474 = Pin((1, 64))
-GPIOA_15 = GPIO475 = Pin((1, 65))
-
-GPIOX_0 = GPIO476 = Pin((1, 66))
-GPIOX_1 = GPIO477 = Pin((1, 67))
-GPIOX_2 = GPIO478 = Pin((1, 68))
-GPIOX_3 = GPIO479 = Pin((1, 69))
-GPIOX_4 = GPIO480 = Pin((1, 70))
-GPIOX_5 = GPIO481 = Pin((1, 71))
-GPIOX_6 = GPIO482 = Pin((1, 72))
-GPIOX_7 = GPIO483 = Pin((1, 73))
-GPIOX_8 = GPIO484 = Pin((1, 74))
-GPIOX_9 = GPIO485 = Pin((1, 75))
-GPIOX_10 = GPIO486 = Pin((1, 76))
-GPIOX_11 = GPIO487 = Pin((1, 77))
-GPIOX_12 = GPIO488 = Pin((1, 78))
-GPIOX_13 = GPIO489 = Pin((1, 79))
-GPIOX_14 = GPIO490 = Pin((1, 80))
-GPIOX_15 = GPIO491 = Pin((1, 81))
-GPIOX_16 = GPIO492 = Pin((1, 82))
-GPIOX_17 = GPIO493 = Pin((1, 83))
-GPIOX_18 = GPIO494 = Pin((1, 84))
-GPIOX_19 = GPIO495 = Pin((1, 85))
 
 I2C1_SDA = GPIOX_17
 I2C1_SCL = GPIOX_18
index fcde5cc32f1b128f4ce181dcc9691a824f8ec999..d544e8044683e2791570bfc8b44e7b44b1e9d4d5 100644 (file)
@@ -1,59 +1,5 @@
-from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin
+from adafruit_blinka.microcontroller.amlogic.meson_g12_common.pin import *
 
-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))
-
-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
@@ -67,8 +13,8 @@ SPI0_SCLK = GPIO487
 SPI0_MISO = GPIO485
 SPI0_MOSI = GPIO484
 
-i2cPorts = ( (2, I2C2_SCL, I2C2_SDA), (3, I2C3_SCL, I2C3_SDA), )
+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), )
+spiPorts = ((0, SPI0_SCLK, SPI0_MOSI, SPI0_MISO), )
 # ordered as uartId, txId, rxId
-uartPorts = ( (1, UART1_TX, UART1_RX), )
+uartPorts = ((1, UART1_TX, UART1_RX), )