From: Melissa LeBlanc-Williams Date: Thu, 15 Aug 2019 16:43:46 +0000 (-0700) Subject: Merge pull request #148 from swarren/jetson-spi X-Git-Tag: 2.3.1 X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/commitdiff_plain/83696cab4ac53af47b125771905ef3e60df7f5d1?hp=12a576f51bb0faae7cc7a3e6bd3a4eb7bf07a3fd Merge pull request #148 from swarren/jetson-spi Jetson SPI support and Jetson.GPIO requirement --- diff --git a/requirements.txt b/requirements.txt index daaff66..b44ee71 100755 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,6 @@ Adafruit-PlatformDetect Adafruit-PureIO +Jetson.GPIO; platform_machine=='aarch64' RPi.GPIO; platform_machine=='armv7l' or platform_machine=='armv6l' rpi_ws281x>=4.0.0; platform_machine=='armv7l' or platform_machine=='armv6l' spidev; sys_platform == 'linux' diff --git a/setup.py b/setup.py index cb3549c..57a5c39 100755 --- a/setup.py +++ b/setup.py @@ -37,6 +37,7 @@ setup( install_requires=[ "Adafruit-PlatformDetect", "Adafruit-PureIO", + "Jetson.GPIO; platform_machine=='aarch64'", "RPi.GPIO; platform_machine=='armv7l' or platform_machine=='armv6l'", "rpi_ws281x>=4.0.0; platform_machine=='armv7l' or platform_machine=='armv6l'", "spidev; sys_platform=='linux'", diff --git a/src/adafruit_blinka/board/jetson_nano.py b/src/adafruit_blinka/board/jetson_nano.py index 4da8cf5..8b9b77c 100644 --- a/src/adafruit_blinka/board/jetson_nano.py +++ b/src/adafruit_blinka/board/jetson_nano.py @@ -29,3 +29,17 @@ D24 = pin.B07 D25 = pin.B05 D26 = pin.B04 D27 = pin.B06 + +CE1 = D7 +CE0 = D8 +MISO = D9 +MOSI = D10 +SCLK = D11 +SCK = D11 + +CE1_1 = D23 +CE0_1 = D24 +MISO_1 = D25 +MOSI_1 = D26 +SCLK_1 = D27 +SCK_1 = D27 diff --git a/src/adafruit_blinka/board/jetson_tx1.py b/src/adafruit_blinka/board/jetson_tx1.py index 05fc390..cfa70dc 100644 --- a/src/adafruit_blinka/board/jetson_tx1.py +++ b/src/adafruit_blinka/board/jetson_tx1.py @@ -29,3 +29,10 @@ D24 = pin.X00 D25 = pin.P16 D26 = pin.X03 D27 = pin.E06 + +CE1 = D7 +CE0 = D8 +MISO = D9 +MOSI = D10 +SCLK = D11 +SCK = D11 diff --git a/src/adafruit_blinka/board/jetson_tx2.py b/src/adafruit_blinka/board/jetson_tx2.py index 906fa56..47c1624 100644 --- a/src/adafruit_blinka/board/jetson_tx2.py +++ b/src/adafruit_blinka/board/jetson_tx2.py @@ -10,6 +10,7 @@ SCL_1 = pin.SCL_1 D4 = pin.J04 D5 = pin.J06 D6 = pin.AA02 +D7 = pin.N03 D8 = pin.N06 D9 = pin.N04 D10 = pin.N05 @@ -28,3 +29,10 @@ D24 = pin.Y01 D25 = pin.P16 D26 = pin.I04 D27 = pin.J05 + +CE1 = D7 +CE0 = D8 +MISO = D9 +MOSI = D10 +SCLK = D11 +SCK = D11 diff --git a/src/adafruit_blinka/board/jetson_xavier.py b/src/adafruit_blinka/board/jetson_xavier.py index 24e229f..2910582 100644 --- a/src/adafruit_blinka/board/jetson_xavier.py +++ b/src/adafruit_blinka/board/jetson_xavier.py @@ -29,3 +29,10 @@ D24 = pin.H00 D25 = pin.Q01 D26 = pin.AA01 D27 = pin.R00 + +CE1 = D7 +CE0 = D8 +MISO = D9 +MOSI = D10 +SCLK = D11 +SCK = D11 diff --git a/src/adafruit_blinka/microcontroller/generic_linux/spi.py b/src/adafruit_blinka/microcontroller/generic_linux/spi.py index 71f74c8..58a465d 100755 --- a/src/adafruit_blinka/microcontroller/generic_linux/spi.py +++ b/src/adafruit_blinka/microcontroller/generic_linux/spi.py @@ -36,7 +36,8 @@ class SPI: # Linux SPI driver for AM33XX chip in BeagleBone and PocketBeagle # does not support setting SPI_NO_CS mode bit (issue #104) if not self.chip.AM33XX and not self.chip.IMX8MX and not self.chip.SAMA5 \ - and not self.chip.APQ8016: + and not self.chip.APQ8016 and not self.chip.T210 and not self.chip.T186 \ + and not self.chip.T194: try: self._spi.no_cs = True # this doesn't work but try anyways except AttributeError: diff --git a/src/adafruit_blinka/microcontroller/tegra/t186/pin.py b/src/adafruit_blinka/microcontroller/tegra/t186/pin.py index 25ec2e0..f033b5c 100644 --- a/src/adafruit_blinka/microcontroller/tegra/t186/pin.py +++ b/src/adafruit_blinka/microcontroller/tegra/t186/pin.py @@ -1,7 +1,5 @@ import sys import atexit -sys.path.append("/opt/nvidia/jetson-gpio/lib/python") -sys.path.append("/opt/nvidia/jetson-gpio/lib/python/Jetson/GPIO") import Jetson.GPIO as GPIO GPIO.setmode(GPIO.TEGRA_SOC) GPIO.setwarnings(False) # shh! @@ -98,3 +96,6 @@ J05 = Pin('GPIO_AUD0') i2cPorts = ( (1, SCL, SDA), (0, SCL_1, SDA_1), ) + +# ordered as spiId, sckId, mosiId, misoId +spiPorts = ((3, N03, N05, N04), ) diff --git a/src/adafruit_blinka/microcontroller/tegra/t194/pin.py b/src/adafruit_blinka/microcontroller/tegra/t194/pin.py index 2598c51..971474e 100644 --- a/src/adafruit_blinka/microcontroller/tegra/t194/pin.py +++ b/src/adafruit_blinka/microcontroller/tegra/t194/pin.py @@ -1,7 +1,5 @@ import sys import atexit -sys.path.append("/opt/nvidia/jetson-gpio/lib/python") -sys.path.append("/opt/nvidia/jetson-gpio/lib/python/Jetson/GPIO") import Jetson.GPIO as GPIO GPIO.setmode(GPIO.TEGRA_SOC) GPIO.setwarnings(False) # shh! @@ -99,3 +97,6 @@ R00 = Pin('SOC_GPIO44') i2cPorts = ( (8, SCL, SDA), (1, SCL_1, SDA_1), ) + +# ordered as spiId, sckId, mosiId, misoId +spiPorts = ((0, Z03, Z05, Z04), ) diff --git a/src/adafruit_blinka/microcontroller/tegra/t210/pin.py b/src/adafruit_blinka/microcontroller/tegra/t210/pin.py index c6d4b6e..50e2daa 100644 --- a/src/adafruit_blinka/microcontroller/tegra/t210/pin.py +++ b/src/adafruit_blinka/microcontroller/tegra/t210/pin.py @@ -1,7 +1,5 @@ import sys import atexit -sys.path.append("/opt/nvidia/jetson-gpio/lib/python") -sys.path.append("/opt/nvidia/jetson-gpio/lib/python/Jetson/GPIO") import Jetson.GPIO as GPIO GPIO.setmode(GPIO.TEGRA_SOC) GPIO.setwarnings(False) # shh! @@ -119,3 +117,6 @@ E06 = Pin('GPIO_PE6') i2cPorts = ( (0, SCL, SDA), (1, SCL_1, SDA_1), ) + +# ordered as spiId, sckId, mosiId, misoId +spiPorts = ((0, C02, C00, C01), (1, B06, B04, B05)) diff --git a/src/busio.py b/src/busio.py index f5991f9..0f4b15b 100755 --- a/src/busio.py +++ b/src/busio.py @@ -111,6 +111,18 @@ class SPI(Lockable): 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 + elif board_id == ap_board.JETSON_NANO: + from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI + from adafruit_blinka.microcontroller.tegra.t210.pin import Pin + elif board_id == ap_board.JETSON_TX1: + from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI + from adafruit_blinka.microcontroller.tegra.t210.pin import Pin + elif board_id == ap_board.JETSON_TX2: + from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI + from adafruit_blinka.microcontroller.tegra.t186.pin import Pin + elif board_id == ap_board.JETSON_XAVIER: + from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI + from adafruit_blinka.microcontroller.tegra.t194.pin import Pin else: from machine import SPI as _SPI from machine import Pin