From: Melissa LeBlanc-Williams Date: Mon, 17 Aug 2020 21:38:03 +0000 (-0700) Subject: Merge pull request #330 from zzts/master X-Git-Tag: 5.3.0 X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/commitdiff_plain/ad7c0ada0067ee960ede0cb407ca75a76815a9d0?hp=e30741d3693ac0c8101342fd639e92cd264de52a Merge pull request #330 from zzts/master Udoo x86 Ultra GPIO and i2c added --- diff --git a/src/adafruit_blinka/board/udoo_x86ultra.py b/src/adafruit_blinka/board/udoo_x86ultra.py new file mode 100644 index 0000000..744d774 --- /dev/null +++ b/src/adafruit_blinka/board/udoo_x86ultra.py @@ -0,0 +1,70 @@ +"""Pin definitions for Udoo x86 Ultra +(should work for Ultra and Ultra II) + +There are 2 naming systems. A Digital Pin system which includes +the arduino chip (Leonardo or 101). The Braswell #s start at 16 and +is documented in the diagram and text for linux version later than 4.15 in: +https://www.udoo.org/docs-x86II/Introduction/Introduction.html +The other is based on the hardware manual: +https://udoo.org/download/files/UDOO_X86/Doc/UDOO_X86II_MANUAL.pdf + +This will use the D system based on the diagram in the user guide + +i2c use i2c(board.I2C0_SCL, board_I2C0_SDA) or i2c(board.I2C1_SCL, board_I2C1_SDA) +for the i2c(board.SCL, board.SCL) in the examples + +UART use pyserial not busio +""" + +from adafruit_blinka.microcontroller.pentium.n3710 import pin + +# Connector CN15 +D16 = pin.UART1_RTS +D17 = pin.UART1_CTS +D18 = pin.UART1_TXD +D19 = pin.UART1_RXD +D20 = pin.UART2_RTS +D21 = pin.UART2_CTS +D22 = pin.UART2_TXD +D23 = pin.UART2_RXD + +# Connector CN13 LPC interface +D24 = pin.GPIO_275 +D25 = pin.GPIO_280 +D26 = pin.GPIO_273 +D27 = pin.GPIO_278 +D28 = pin.GPIO_276 +D29 = pin.GPIO_279 +D30 = pin.GPIO_307 + +# Connector CN14 +D34 = pin.I2C0_SCL +D35 = pin.I2C0_SDA + +D36 = pin.GPIO_492 +D37 = pin.GPIO_490 + +D38 = pin.I2C1_SCL +D39 = pin.I2C1_SDA + +# Connector CN12 SDIO SD/MMC interfaces +D40 = pin.GPIO_358 +D41 = pin.GPIO_243 +D42 = pin.GPIO_249 +D43 = pin.GPIO_246 +D44 = pin.GPIO_253 +D45 = pin.GPIO_250 +D46 = pin.GPIO_247 + +# aliases +UART1_RX = D19 +UART1_TX = D18 + +UART2_RX = D23 +UART2_TX = D22 + +I2C0_SCL = D34 # labeled on diagram as I2C1, hardware manual port 0 +I2C0_SDA = D35 # i2cdetect-l lists it as i2c-0 + +I2C1_SCL = D38 # Labeled on diagram as I2C2, hardware manual port 5 +I2C1_SCL = D39 # i2cdetect lists it as i2c-1 diff --git a/src/adafruit_blinka/microcontroller/pentium/__init__.py b/src/adafruit_blinka/microcontroller/pentium/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/adafruit_blinka/microcontroller/pentium/n3710/.gitignore b/src/adafruit_blinka/microcontroller/pentium/n3710/.gitignore new file mode 100644 index 0000000..0e7f550 --- /dev/null +++ b/src/adafruit_blinka/microcontroller/pentium/n3710/.gitignore @@ -0,0 +1 @@ +pins diff --git a/src/adafruit_blinka/microcontroller/pentium/n3710/__init__.py b/src/adafruit_blinka/microcontroller/pentium/n3710/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/adafruit_blinka/microcontroller/pentium/n3710/pin.py b/src/adafruit_blinka/microcontroller/pentium/n3710/pin.py new file mode 100644 index 0000000..3093a20 --- /dev/null +++ b/src/adafruit_blinka/microcontroller/pentium/n3710/pin.py @@ -0,0 +1,86 @@ +"""Pentium N3710 (Braswell core SOC) pin names + i2c and GPIO can be accessed through Blinka. + For i2c use IC20_SCL, IC20-SDA and IC21-SCL, IC21-SDA in the i2c() calls. + For UART use pyserial""" +from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin + +# gpiochip3 +GPIO_243 = Pin((3, 15)) +GPIO_246 = Pin((3, 18)) +GPIO_247 = Pin((3, 19)) +GPIO_249 = Pin((3, 21)) +GPIO_250 = Pin((3, 22)) +GPIO_253 = Pin((3, 25)) +GPIO_273 = Pin((3, 45)) +GPIO_275 = Pin((3, 47)) +GPIO_276 = Pin((3, 48)) +GPIO_278 = Pin((3, 50)) +GPIO_279 = Pin((3, 51)) +GPIO_280 = Pin((3, 52)) +GPIO_307 = Pin((3, 79)) + +SDIO_D3 = SDMMC2_D3 = GPIO_243 +SDIO_DI = SDMMC2_D1 = GPIO_246 +SDIO_CLK = SDMMC2_CLK = GPIO_247 +SDIO_D2 = SDMMC2_D2 = GPIO_249 +SDIO_CMD = SDMMC2_CMD = GPIO_250 +SDIO_D0 = SDMMC2_D0 = GPIO_253 + +MF_LPC_AD2 = GPIO_273 +MF_LPC_AD0 = GPIO_275 +LPC_FRAMEB = GPIO_276 +MF_LPC_AD3 = GPIO_278 +MF_LPC_CLKOUT0 = GPIO_279 +MF_LPC_AD1 = GPIO_280 +ILB_SERIRQ = GPIO_307 + +# ggpiochip1 +GPIO_358 = Pin((1, 17)) +GPIO_SUS3 = SDIO_WAKE = GPIO_358 + + +# gpiochip0 +GPIO_490 = Pin((0, 76)) +GPIO_492 = Pin((0, 78)) + +SATA_GP1 = TS_INT = GPIO_490 +SATA_GP2 = TS_RST = GPIO_492 + + +# not general gpio on chip 0 +# use pyserial not blinka. These are only included for completeness + +UART1_RXD = Pin((0, 16)) +UART1_TXD = Pin((0, 20)) +UART1_RTS = Pin((0, 15)) +UART1_CTS = Pin((0, 18)) + +UART2_RXD = Pin((0, 17)) +UART2_TXD = Pin((0, 21)) +UART2_RTS = Pin((0, 19)) +UART2_CTS = Pin((0, 22)) + +GPIO_429 = UART1_RTS +GPIO_430 = UART1_RXD +GPIO_431 = UART2_RXD +GPIO_432 = UART1_CTS +GPIO_434 = UART1_TXD +GPIO_435 = UART2_TXD +GPIO_436 = UART2_CTS + +# i2c use these addresses when accessing i2c from Blinka. You can also access +# the i2c useing smbus +I2C0_SDA = Pin((0, 61)) # IC21 on diagram, port 0 in hardware manual +I2C0_SCL = Pin((0, 65)) + +I2C1_SDA = TS_I2C_SDA = Pin((0, 45)) # I2C2 on diagram, port 5 in hardware manual +I2C1_SCL = TS_I2C_SCL = Pin((0, 48)) + + +GPIO_469 = I2C1_SDA # I2C2 on diagram +GPIO_472 = I2C1_SCL +GPIO_475 = I2C0_SDA # I2C1 on diagram +GPIO_479 = I2C0_SCL + +# ordered as i2cId, sclId, sdaId +i2cPorts = ((0, I2C0_SCL, I2C0_SDA), (1, I2C1_SCL, I2C1_SDA)) diff --git a/src/board.py b/src/board.py index 03aeee9..e1ddaf4 100755 --- a/src/board.py +++ b/src/board.py @@ -159,6 +159,9 @@ elif board_id == ap_board.ONION_OMEGA2: elif board_id == ap_board.ROCK_PI_S: from adafruit_blinka.board.radxa.rockpis import * +elif board_id == ap_board.UDOO_X86: + from adafruit_blinka.board.udoo_x86ultra import * + elif "sphinx" in sys.modules: pass diff --git a/src/digitalio.py b/src/digitalio.py index 4b0036b..b1f1cc7 100755 --- a/src/digitalio.py +++ b/src/digitalio.py @@ -57,6 +57,9 @@ elif detector.chip.STM32: from machine import Pin elif detector.board.microchip_mcp2221: from adafruit_blinka.microcontroller.mcp2221.pin import Pin +elif detector.chip.PENTIUM_N3710: + from adafruit_blinka.microcontroller.pentium.n3710.pin import Pin + from adafruit_blinka import Enum, ContextManaged diff --git a/src/microcontroller/__init__.py b/src/microcontroller/__init__.py index 027a557..9f7d8f2 100755 --- a/src/microcontroller/__init__.py +++ b/src/microcontroller/__init__.py @@ -78,5 +78,7 @@ elif chip_id == ap_chip.MIPS24KC: from adafruit_blinka.microcontroller.atheros.ar9331.pin import * elif chip_id == ap_chip.MIPS24KEC: from adafruit_blinka.microcontroller.mips24kec.pin import * +elif chip_id == ap_chip.PENTIUM_N3710: + from adafruit_blinka.microcontroller.pentium.n3710.pin import * else: raise NotImplementedError("Microcontroller not supported:", chip_id) diff --git a/src/microcontroller/pin.py b/src/microcontroller/pin.py index 09edd3c..7c2d746 100755 --- a/src/microcontroller/pin.py +++ b/src/microcontroller/pin.py @@ -56,5 +56,7 @@ elif chip_id == ap_chip.MIPS24KC: from adafruit_blinka.microcontroller.atheros.ar9331.pin import * elif chip_id == ap_chip.MIPS24KEC: from adafruit_blinka.microcontroller.mips24kec.pin import * +elif chip_id == ap_chip.PENTIUM_N3710: + from adafruit_blinka.microcontroller.pentium.n3710.pin import * else: raise NotImplementedError("Microcontroller not supported: ", chip_id)