]> Repositories - Adafruit_Blinka-hackapet.git/commitdiff
Merge pull request #395 from flyleaf91/master 5.11.0
authorMelissa LeBlanc-Williams <melissa@adafruit.com>
Fri, 15 Jan 2021 16:46:37 +0000 (09:46 -0700)
committerGitHub <noreply@github.com>
Fri, 15 Jan 2021 16:46:37 +0000 (09:46 -0700)
Add support for LubanCat i.MX6ULL board

12 files changed:
examples/analog_in.py [new file with mode: 0644]
src/adafruit_blinka/board/lubancat/__init__.py [new file with mode: 0644]
src/adafruit_blinka/board/lubancat/lubancat_imx6ull.py [new file with mode: 0644]
src/adafruit_blinka/microcontroller/nxp_imx6ull/__init__.py [new file with mode: 0644]
src/adafruit_blinka/microcontroller/nxp_imx6ull/pin.py [new file with mode: 0644]
src/analogio.py
src/board.py
src/busio.py
src/digitalio.py
src/microcontroller/__init__.py
src/microcontroller/pin.py
src/pulseio.py

diff --git a/examples/analog_in.py b/examples/analog_in.py
new file mode 100644 (file)
index 0000000..d72fbdc
--- /dev/null
@@ -0,0 +1,15 @@
+"""Analog in demo"""
+import time
+import board
+from analogio import AnalogIn
+
+analog_in = AnalogIn(board.A1)
+
+
+def get_voltage(pin):
+    return (pin.value * 3.3) / 4096
+
+
+while True:
+    print((get_voltage(analog_in),))
+    time.sleep(0.1)
diff --git a/src/adafruit_blinka/board/lubancat/__init__.py b/src/adafruit_blinka/board/lubancat/__init__.py
new file mode 100644 (file)
index 0000000..d56e3ea
--- /dev/null
@@ -0,0 +1 @@
+"""Boards definition from LubanCat"""
diff --git a/src/adafruit_blinka/board/lubancat/lubancat_imx6ull.py b/src/adafruit_blinka/board/lubancat/lubancat_imx6ull.py
new file mode 100644 (file)
index 0000000..26a3221
--- /dev/null
@@ -0,0 +1,51 @@
+"""Pin definitions for the LubanCat IMX6ULL."""
+
+from adafruit_blinka.microcontroller.nxp_imx6ull import pin
+
+# Pro board pin header CN4 named GPIO_PAx, pin header CN5 named GPIO_PBx
+# Mini board pin header CN3 named GPIO_PCx, pin header CN4 named GPIO_PDx
+
+# Board pin name [= alias] = RPI name [= alias] = pin name
+GPIO_PC3 = I2C2_SDA = D2 = SDA = pin.I2C2_SDA
+GPIO_PC5 = I2C2_SCL = D3 = SCL = pin.I2C2_SCL
+
+GPIO_PC7 = D4 = pin.GPIO27
+GPIO_PC8 = D14 = TXD = pin.UART3_TXD
+GPIO_PC10 = D15 = RXD = pin.UART3_RXD
+GPIO_PC11 = ADC_IN3 = A3 = D17 = pin.GPIO3
+GPIO_PC12 = D18 = pin.GPIO112
+GPIO_PC13 = ADC_IN2 = A2 = D27 = pin.GPIO2
+GPIO_PC15 = ADC_IN0 = A0 = D22 = pin.GPIO0
+GPIO_PC16 = D23 = pin.GPIO119
+GPIO_PC18 = D24 = pin.GPIO114
+
+GPIO_PC19 = ECSPI3_MOSI = D10 = MOSI = pin.ECSPI3_MOSI
+GPIO_PC21 = ECSPI3_MISO = D9 = MISO = pin.ECSPI3_MISO
+GPIO_PC22 = D25 = pin.GPIO27
+GPIO_PC23 = ECSPI3_SCLK = D11 = SCLK = SCK = pin.ECSPI3_SCLK
+GPIO_PC24 = ECSPI3_SS0 = D8 = SS0 = pin.ECSPI3_SS0
+GPIO_PC26 = ECSPI3_SS1 = D7 = SS1 = pin.ECSPI3_SS1
+
+GPIO_PC27 = I2C3_SDA = D0 = pin.I2C3_SDA
+GPIO_PC28 = I2C3_SCL = D1 = pin.I2C3_SCL
+
+GPIO_PC29 = D5 = pin.GPIO117
+GPIO_PC31 = D6 = pin.GPIO118
+
+GPIO_PC32 = LED_D6 = D12 = pin.GPIO115
+GPIO_PC33 = LED_D5 = D13 = pin.GPIO116
+
+# Board pwm channel = RPI PWM Channel = pin name
+PWM_C7 = PWM1 = pin.GPIO115
+PWM_C8 = PWM2 = pin.GPIO116
+
+GPIO_PC35 = D19 = pin.GPIO121
+GPIO_PC36 = D16 = pin.GPIO120
+GPIO_PC37 = D26 = pin.GPIO26
+GPIO_PC38 = D20 = pin.GPIO123
+GPIO_PC40 = D21 = pin.GPIO124
+
+# Mini header CN4
+GPIO_PD9 = ADC_IN1 = A1 = pin.GPIO1
+GPIO_PD4 = LED_D4 = PWM_C3 = pin.GPIO4
+GPIO_PD17 = BUTTON2 = pin.GPIO129
diff --git a/src/adafruit_blinka/microcontroller/nxp_imx6ull/__init__.py b/src/adafruit_blinka/microcontroller/nxp_imx6ull/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/src/adafruit_blinka/microcontroller/nxp_imx6ull/pin.py b/src/adafruit_blinka/microcontroller/nxp_imx6ull/pin.py
new file mode 100644 (file)
index 0000000..7ffa331
--- /dev/null
@@ -0,0 +1,67 @@
+"""NXP IMX6ULL pin names"""
+from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin
+
+# GPIO num = reconment function = Pin((chip, line))
+GPIO31 = I2C2_SDA = Pin((0, 31))  # GPIO1_IO31
+GPIO30 = I2C2_SCL = Pin((0, 30))  # GPIO1_IO30
+
+GPIO29 = I2C3_SDA = Pin((0, 29))  # GPIO1_IO29
+GPIO28 = I2C3_SCL = Pin((0, 28))  # GPIO1_IO28
+
+GPIO24 = UART3_TXD = Pin((0, 24))  # GPIO1_IO24
+GPIO25 = UART3_RXD = Pin((0, 25))  # GPIO1_IO25
+
+GPIO22 = ECSPI3_MOSI = Pin((0, 22))  # GPIO1_IO22
+GPIO23 = ECSPI3_MISO = Pin((0, 23))  # GPIO1_IO23
+GPIO21 = ECSPI3_SCLK = Pin((0, 21))  # GPIO1_IO21
+GPIO20 = ECSPI3_SS0 = Pin((0, 20))  # GPIO1_IO20
+GPIO18 = ECSPI3_SS1 = Pin((0, 18))  # GPIO1_IO18
+
+GPIO0 = ADC_IN0 = Pin((0, 0))  # GPIO1_IO0
+GPIO1 = ADC_IN1 = Pin((0, 1))  # GPIO1_IO2
+GPIO2 = ADC_IN2 = Pin((0, 2))  # GPIO1_IO2
+GPIO3 = ADC_IN3 = Pin((0, 3))  # GPIO1_IO3
+GPIO4 = PWM_C3 = Pin((0, 4))  # GPIO1_IO4
+GPIO26 = Pin((0, 26))  # GPIO1_IO26
+GPIO27 = Pin((0, 27))  # GPIO1_IO27
+
+GPIO113 = Pin((3, 17))  # GPIO4_IO17
+GPIO114 = Pin((3, 18))  # GPIO4_IO18
+GPIO115 = PWM_C7 = Pin((3, 19))  # GPIO4_IO19
+GPIO116 = PWM_C8 = Pin((3, 20))  # GPIO4_IO20
+GPIO117 = Pin((3, 21))  # GPIO4_IO21
+GPIO118 = Pin((3, 22))  # GPIO4_IO22
+GPIO119 = Pin((3, 23))  # GPIO4_IO23
+GPIO120 = Pin((3, 24))  # GPIO4_IO24
+GPIO121 = Pin((3, 25))  # GPIO4_IO25
+GPIO112 = Pin((3, 26))  # GPIO4_IO26
+GPIO123 = Pin((3, 27))  # GPIO4_IO27
+GPIO124 = Pin((3, 28))  # GPIO4_IO28
+
+GPIO129 = Pin((4, 1))  # GPIO5_IO1
+
+i2cPorts = (
+    (1, I2C2_SCL, I2C2_SDA),
+    (2, I2C3_SCL, I2C3_SDA),
+)
+
+# ordered as spiId, sckId, mosiId, misoId
+spiPorts = ((2, ECSPI3_SCLK, ECSPI3_MOSI, ECSPI3_MISO),)
+
+# UART3_TXD/RXD on /dev/ttymxc2
+uartPorts = ((2, UART3_TXD, UART3_RXD),)
+
+# SysFS pwm outputs, pwm channel and pin in first tuple
+pwmOuts = (
+    ((2, 0), PWM_C3),
+    ((6, 0), PWM_C7),
+    ((7, 0), PWM_C8),
+)
+
+# SysFS analog inputs, Ordered as analog analogInId, device, and channel
+analogIns = (
+    (ADC_IN0, 0, 0),
+    (ADC_IN1, 0, 1),
+    (ADC_IN2, 0, 2),
+    (ADC_IN3, 0, 3),
+)
index 97323e48dbab9b11cad8f930648c4cb5670bda0c..8ca58c1c71c0c323aa1c4d6913f6487e5c15be0a 100644 (file)
@@ -21,6 +21,8 @@ elif detector.board.greatfet_one:
     from adafruit_blinka.microcontroller.nxp_lpc4330.analogio import AnalogOut
 elif detector.chip.RK3308:
     from adafruit_blinka.microcontroller.generic_linux.sysfs_analogin import AnalogIn
+elif detector.chip.IMX6ULL:
+    from adafruit_blinka.microcontroller.generic_linux.sysfs_analogin import AnalogIn
 elif "sphinx" in sys.modules:
     pass
 else:
index 4b66d8d33e2f3734c001df53b1a25689f3523b41..9f68792e33f17f24ee615e7ee3a6f33d896dccb3 100755 (executable)
@@ -186,6 +186,9 @@ elif board_id == ap_board.UDOO_X86:
 elif board_id == ap_board.STM32MP157C_DK2:
     from adafruit_blinka.board.stm32.stm32mp157c_dk2 import *
 
+elif board_id == ap_board.LUBANCAT_IMX6ULL:
+    from adafruit_blinka.board.lubancat.lubancat_imx6ull import *
+
 elif "sphinx" in sys.modules:
     pass
 
index cc379362052d416d2fcbb2495a44904f64447d2f..8e61dc2c11ad96fa14c21f70ec20de2cc61eac3e 100755 (executable)
@@ -269,6 +269,9 @@ class SPI(Lockable):
         elif board_id == ap_board.ONION_OMEGA2:
             from adafruit_blinka.microcontroller.mips24kec.pin import Pin
             from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
+        elif detector.board.any_lubancat and detector.chip.id == ap_chip.IMX6ULL:
+            from adafruit_blinka.microcontroller.nxp_imx6ull.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
index 406e261d24940b5c4ef45edb3c3196d256a24f35..0f48807bff36d430718fdcd903dd50b26721be25 100755 (executable)
@@ -37,6 +37,8 @@ elif detector.chip.APQ8016:
     from adafruit_blinka.microcontroller.snapdragon.apq8016.pin import Pin
 elif detector.chip.IMX8MX:
     from adafruit_blinka.microcontroller.nxp_imx8m.pin import Pin
+elif detector.chip.IMX6ULL:
+    from adafruit_blinka.microcontroller.nxp_imx6ull.pin import Pin
 elif detector.chip.HFU540:
     from adafruit_blinka.microcontroller.hfu540.pin import Pin
 elif detector.chip.A64:
index a10bab699e7c46b806375c7aa2552cad1826121f..020b070d78fd6cec2d9017ea94fd5903dbeedc34 100755 (executable)
@@ -70,6 +70,8 @@ elif chip_id == ap_chip.H5:
     from adafruit_blinka.microcontroller.allwinner.h5.pin import *
 elif chip_id == ap_chip.IMX8MX:
     from adafruit_blinka.microcontroller.nxp_imx8m import *
+elif chip_id == ap_chip.IMX6ULL:
+    from adafruit_blinka.microcontroller.nxp_imx6ull import *
 elif chip_id == ap_chip.HFU540:
     from adafruit_blinka.microcontroller.hfu540.pin import *
 elif chip_id == ap_chip.BINHO:
index 3e5a6e21c3099fa5bff2eb81f3d69afcbaf685f0..73d9acb07b97b0d93df4a23876d6f78269d354bd 100755 (executable)
@@ -36,6 +36,8 @@ elif chip_id == ap_chip.APQ8016:
     from adafruit_blinka.microcontroller.snapdragon.apq8016.pin import *
 elif chip_id == ap_chip.IMX8MX:
     from adafruit_blinka.microcontroller.nxp_imx8m.pin import *
+elif chip_id == ap_chip.IMX6ULL:
+    from adafruit_blinka.microcontroller.nxp_imx6ull.pin import *
 elif chip_id == ap_chip.HFU540:
     from adafruit_blinka.microcontroller.hfu540.pin import *
 elif chip_id == ap_chip.FT232H:
index 848ff1400bb3a985814a1f5bbdea68e580813c18..dc20e3dc029ab97207794897584b41925fa1b4f6 100644 (file)
@@ -28,6 +28,8 @@ elif detector.board.binho_nova:
     from adafruit_blinka.microcontroller.nova.pwmout import PWMOut
 elif detector.board.greatfet_one:
     from adafruit_blinka.microcontroller.nxp_lpc4330.pwmout import PWMOut
+elif detector.board.any_lubancat:
+    from adafruit_blinka.microcontroller.generic_linux.sysfs_pwmout import PWMOut
 elif "sphinx" in sys.modules:
     pass
 else: