From: kent Date: Thu, 13 Aug 2020 01:03:00 +0000 (-0700) Subject: Udoo x64 with Pentium N3710 (Braswell core) SOC X-Git-Tag: 5.3.0^2~1^2~2 X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/commitdiff_plain/e2bf5f8c786162c4cff812cb3df607693862e9ec Udoo x64 with Pentium N3710 (Braswell core) SOC created pin, board files and added to board, digitoaio, pin and init. --- diff --git a/src/adafruit_blinka/board/udoo_x86ultra.py b/src/adafruit_blinka/board/udoo_x86ultra.py new file mode 100644 index 0000000..078a0d1 --- /dev/null +++ b/src/adafruit_blinka/board/udoo_x86ultra.py @@ -0,0 +1,64 @@ +"""Pin definitions for Udoo x86 Ultra +(should work for Ultra and Ultra II)""" + +from adafruit_blinka.microcontroller.pentium.n3710 import pin + +""" 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 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 +""" + +# 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 +D27 = pin.GPIO_490 + +D38 = pin.I2C5_SCL +D39 = pin.I2C5_SDA + +# Connector CN12 SDIO SD/MMC interfaces +D40 = GPIO_358 +D41 = GPIO_243 +D42 = GPIO_249 +D43 = GPIO_246 +D44 = GPIO_253 +D45 = GPIO_250 +D46 = GPIO_247 + +# aliases +UART1_RX = D19 +UART1_TX = D18 + +UART2_RX = D23 +UART2_TX = D22 + +I2C0_SCL = D34 # labeled on diagram as I2C1 +I2C0_SDA = D35 # actually port 0 + +I2C1_SCL = D38 # Labeled on diagram as I2C2 hardware manual port 5 +I2C1_SCL = D39 # i2c detect lists it as i2c1 + 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..e01e4d4 --- /dev/null +++ b/src/adafruit_blinka/microcontroller/pentium/n3710/pin.py @@ -0,0 +1,89 @@ +"""Pentium N3710 (Braswell core SOC) pin names""" +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)) + +sdmmc2_D3 = GPIO_243 # SDIO_D3 on diagram +sdmmc2_D1 = GPIO_246 +sdmmc2_CLK = GPIO_247 +sdmmc2_D2 = GPIO_249 +sdmmc2_CMD = GPIO_250 +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_GP@ = TS_RST = GPIO_492 + + +# not general gpio on chip 0 +# uarts + +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 +I2C0_SDA = Pin((0,61)) +I2C0_SCL = Pin((0,65)) + +I2C1_SDA = TS_I2C_SDA = Pin((0,45)) # listed as port 5 on hardware manual +I2C1_SCL = TS_I2C_SCL = Pin((0,48)) + + +GPIO_469 = I2C5_SDA #I2C2 on diagram +GPIO_472 = I2C5_SCL +GPIO_475 = I2C0_SDA #I2C1 on diagram +GPIO_479 = I2C0_SCL + +i2cPorts = ( + (0, I2C0_SCL, I2C0_SDA), + (1, I2C1_SCL, I2C1_SDA), +) + +# ordered as uartId, txId, rxId +uartPorts = ( + (1, UART1_TXD, UART1_RXD), + (2, UART2_TXD, UART2_RXD), diff --git a/src/board.py b/src/board.py index 03aeee9..9aa520e 100755 --- a/src/board.py +++ b/src/board.py @@ -158,6 +158,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..9ed8ac3 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..3c0b37a 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..4494de5 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)