From: Scott Main Date: Tue, 8 Dec 2020 00:40:10 +0000 (-0800) Subject: Merge pull request #2 from adafruit/master X-Git-Tag: 5.9.1^2~2^2 X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/commitdiff_plain/bb0f4840e3448a5020a83efedf4453c17b792799?hp=b5919dcf36e13972ed212a79d55286f69d56f5e3 Merge pull request #2 from adafruit/master Sync to Blinka master --- diff --git a/README.rst b/README.rst index 24db28b..40df1a9 100755 --- a/README.rst +++ b/README.rst @@ -6,7 +6,7 @@ Introduction :alt: Documentation Status .. image:: https://img.shields.io/discord/327254708534116352.svg - :target: https://discord.gg/nBQh6qu + :target: https://adafru.it/discord :alt: Discord .. image:: https://travis-ci.com/adafruit/Adafruit_Blinka.svg?branch=master @@ -26,8 +26,10 @@ on hosts running micropython. Working code exists to emulate the CircuitPython p * **digitalio** - digital input/output pins, using pin identities from board+microcontroller packages * **bitbangio** - software-driven interfaces for I2C, SPI * **busio** - hardware-driven interfaces for I2C, SPI, UART -* **time** * - substitute functions monkey-patched to time module +* **pulseio** - contains classes that provide access to basic pulse IO (PWM) +For details, see the `Blinka API reference +`_. Dependencies ============= @@ -97,7 +99,7 @@ install dependencies (feel free to reuse the virtual environment from above): python3 -m venv .env source .env/bin/activate - pip install Sphinx sphinx-rtd-theme + pip install Sphinx sphinx-rtd-theme Adafruit-PlatformDetect Now, once you have the virtual environment activated: diff --git a/docs/api.rst b/docs/api.rst index 66bca16..61e9bbe 100755 --- a/docs/api.rst +++ b/docs/api.rst @@ -24,3 +24,14 @@ .. automodule:: digitalio :members: + +.. automodule:: analogio + :members: + +.. automodule:: pulseio + :members: + +.. automodule:: neopixel_write + :members: + + diff --git a/docs/conf.py b/docs/conf.py index cadf23f..c51cebd 100755 --- a/docs/conf.py +++ b/docs/conf.py @@ -19,7 +19,14 @@ extensions = [ # Uncomment the below if you use native CircuitPython modules such as # digitalio, micropython and busio. List the modules you use. Without it, the # autodoc module docs will fail to generate with a warning. -autodoc_mock_imports = ["machine", "Adafruit_GPIO"] +autodoc_mock_imports = [ + "machine", + "Adafruit_GPIO", + "RPi", + "RPi.GPIO", + "hid", + "sysv_ipc", +] intersphinx_mapping = { "python": ("https://docs.python.org/3.4", None), diff --git a/src/adafruit_blinka/board/coral_edge_tpu.py b/src/adafruit_blinka/board/coral_dev_board.py similarity index 88% rename from src/adafruit_blinka/board/coral_edge_tpu.py rename to src/adafruit_blinka/board/coral_dev_board.py index 667e245..69cd3db 100644 --- a/src/adafruit_blinka/board/coral_edge_tpu.py +++ b/src/adafruit_blinka/board/coral_dev_board.py @@ -1,4 +1,4 @@ -"""Pin definitions for the Coral Edge TPU Dev board.""" +"""Pin definitions for the Coral Dev Board.""" from adafruit_blinka.microcontroller.nxp_imx8m import pin diff --git a/src/adafruit_blinka/board/coral_dev_board_mini.py b/src/adafruit_blinka/board/coral_dev_board_mini.py new file mode 100644 index 0000000..35354d4 --- /dev/null +++ b/src/adafruit_blinka/board/coral_dev_board_mini.py @@ -0,0 +1,34 @@ +"""Pin definitions for the Coral Dev Board Mini.""" + +from adafruit_blinka.microcontroller.mt8167 import pin + +GPIO_P7 = pin.GPIO22 +GPIO_P11 = pin.GPIO9 +GPIO_P12 = pin.GPIO36 +GPIO_P13 = pin.GPIO10 +GPIO_P16 = pin.GPIO0 +GPIO_P18 = pin.GPIO1 +GPIO_P22 = pin.GPIO7 +GPIO_P26 = pin.GPIO8 +GPIO_P35 = pin.GPIO37 +GPIO_P36 = pin.GPIO13 +GPIO_P37 = pin.GPIO45 +GPIO_P38 = pin.GPIO38 +GPIO_P40 = pin.GPIO39 + +SDA1 = pin.I2C1_SDA +SCL1 = pin.I2C1_SCL + +SDA2 = pin.I2C2_SDA +SCL2 = pin.I2C2_SCL + +PWM0 = pin.PWM0 +PWM1 = pin.PWM1 +PWM2 = pin.PWM2 + +MOSI = pin.SPI_MO +MISO = pin.SPI_MI +SCLK = pin.SPI_CLK +SCK = SCLK +CS0 = pin.SPI_CSB +CS = CS0 diff --git a/src/adafruit_blinka/microcontroller/mt8167/__init__.py b/src/adafruit_blinka/microcontroller/mt8167/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/adafruit_blinka/microcontroller/mt8167/pin.py b/src/adafruit_blinka/microcontroller/mt8167/pin.py new file mode 100644 index 0000000..2d15877 --- /dev/null +++ b/src/adafruit_blinka/microcontroller/mt8167/pin.py @@ -0,0 +1,64 @@ +"""MediaTek MT8167 pin names""" +from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin + +# All pins +GPIO52 = Pin(52) # SDA1 (pin 3) +GPIO53 = Pin(53) # SCL1 (pin 5) +GPIO22 = Pin(22) # EINT22 (pin 7) +GPIO63 = Pin(63) # UTXD0 (pin 8) +GPIO62 = Pin(62) # URXD0 (pin 10) +GPIO9 = Pin(9) # EINT9 (pin 11) +GPIO36 = Pin(36) # MRG_CLK (pin 12) +GPIO10 = Pin(10) # EINT10 (pin 13) +GPIO11 = Pin(11) # EINT11 (pin 15) +GPIO0 = Pin(0) # EINT0 (pin 16) +GPIO1 = Pin(1) # EINT1 (pin 18) +GPIO4 = Pin(4) # EINT4 (pin 19) +GPIO3 = Pin(3) # EINT3 (pin 21) +GPIO7 = Pin(7) # EINT7 (pin 22) +GPIO6 = Pin(6) # EINT6 (pin 23) +GPIO5 = Pin(5) # EINT5 (pin 24) +GPIO8 = Pin(8) # EINT8 (pin 26) +GPIO60 = Pin(60) # SDA2 (pin 27) +GPIO61 = Pin(61) # SCL2 (pin 28) +GPIO65 = Pin(65) # UTXD1 (pin 29) +GPIO64 = Pin(64) # URXD1 (pin 31) +GPIO12 = Pin(12) # EINT12 (pin 32) +GPIO25 = Pin(25) # EINT25 (pin 33) +GPIO37 = Pin(37) # MRG_SYNC (pin 35) +GPIO13 = Pin(13) # EINT13 (pin 36) +GPIO45 = Pin(45) # JTCLK (pin 37) +GPIO38 = Pin(38) # MRG_DI (pin 38) +GPIO39 = Pin(39) # MRG_DO (pin 40) + +# Aliases +PWM0 = GPIO25 # EINT12 (pin 32) +PWM1 = GPIO11 # EINT25 (pin 33) +PWM2 = GPIO12 # EINT11 (pin 15) + +I2C1_SDA = GPIO52 # SDA1 (pin 3) +I2C1_SCL = GPIO53 # SCL1 (pin 5) + +I2C2_SDA = GPIO60 # SDA2 (pin 27) +I2C2_SCL = GPIO61 # SCL2 (pin 28) + +SPI_MO = GPIO4 # EINT4 (pin 19) +SPI_MI = GPIO3 # EINT3 (pin 21) +SPI_CLK = GPIO6 # EINT6 (pin 23) +SPI_CSB = GPIO5 # EINT5 (pin 24) + +# SysFS pwm outputs, pwm channel and pin in first tuple +pwmOuts = ( + ((0, 0), PWM0), + ((0, 1), PWM1), + ((0, 2), PWM2), +) + +# ordered as i2cId, sclId, sdaId +i2cPorts = ( + (3, I2C1_SCL, I2C1_SDA), + (0, I2C2_SCL, I2C2_SDA), +) + +# ordered as spiId, sckId, mosiId, misoId +spiPorts = ((0, SPI_CLK, SPI_MO, SPI_MI),) diff --git a/src/analogio.py b/src/analogio.py index f126ef3..97323e4 100644 --- a/src/analogio.py +++ b/src/analogio.py @@ -1,10 +1,14 @@ """ `analogio` - Analog input and output control -================================================= +============================================ See `CircuitPython:analogio` in CircuitPython for more details. +Not supported by all boards. + * Author(s): Carter Nelson, Melissa LeBlanc-Williams """ +import sys + from adafruit_blinka.agnostic import detector # pylint: disable=ungrouped-imports,wrong-import-position,unused-import @@ -17,5 +21,7 @@ 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 "sphinx" in sys.modules: + pass else: raise NotImplementedError("analogio not supported for this board.") diff --git a/src/board.py b/src/board.py index a805d87..63c41e1 100755 --- a/src/board.py +++ b/src/board.py @@ -121,7 +121,10 @@ elif board_id == ap_board.CLARA_AGX_XAVIER: from adafruit_blinka.board.nvidia.clara_agx_xavier import * elif board_id == ap_board.CORAL_EDGE_TPU_DEV: - from adafruit_blinka.board.coral_edge_tpu import * + from adafruit_blinka.board.coral_dev_board import * + +elif board_id == ap_board.CORAL_EDGE_TPU_DEV_MINI: + from adafruit_blinka.board.coral_dev_board_mini import * elif board_id == ap_board.ODROID_C2: from adafruit_blinka.board.hardkernel.odroidc2 import * diff --git a/src/busio.py b/src/busio.py index 21e0446..35e7c88 100755 --- a/src/busio.py +++ b/src/busio.py @@ -210,6 +210,9 @@ class SPI(Lockable): elif board_id == ap_board.CORAL_EDGE_TPU_DEV: from adafruit_blinka.microcontroller.nxp_imx8m.pin import Pin from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI + elif board_id == ap_board.CORAL_EDGE_TPU_DEV_MINI: + from adafruit_blinka.microcontroller.mt8167.pin import Pin + from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI elif board_id == ap_board.ODROID_C2: from adafruit_blinka.microcontroller.amlogic.s905.pin import Pin from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI diff --git a/src/digitalio.py b/src/digitalio.py index 080abbf..0ed3ab4 100755 --- a/src/digitalio.py +++ b/src/digitalio.py @@ -1,6 +1,6 @@ """ -`digitalio` - Digital input and output control -================================================= +`digitalio` - Digital input and output control (GPIO) +===================================================== See `CircuitPython:digitalio` in CircuitPython for more details. @@ -61,6 +61,8 @@ elif detector.chip.PENTIUM_N3710: from adafruit_blinka.microcontroller.pentium.n3710.pin import Pin elif detector.chip.STM32MP157: from adafruit_blinka.microcontroller.stm32.stm32mp157.pin import Pin +elif detector.chip.MT8167: + from adafruit_blinka.microcontroller.mt8167.pin import Pin from adafruit_blinka import Enum, ContextManaged diff --git a/src/microcontroller/__init__.py b/src/microcontroller/__init__.py index afca22a..8f352e5 100755 --- a/src/microcontroller/__init__.py +++ b/src/microcontroller/__init__.py @@ -82,5 +82,7 @@ elif chip_id == ap_chip.PENTIUM_N3710: from adafruit_blinka.microcontroller.pentium.n3710.pin import * elif chip_id == ap_chip.STM32MP157: from adafruit_blinka.microcontroller.stm32.stm32mp157.pin import * +elif chip_id == ap_chip.MT8167: + from adafruit_blinka.microcontroller.mt8167.pin import * else: raise NotImplementedError("Microcontroller not supported:", chip_id) diff --git a/src/microcontroller/pin.py b/src/microcontroller/pin.py index fe89bd9..3e5a6e2 100755 --- a/src/microcontroller/pin.py +++ b/src/microcontroller/pin.py @@ -60,5 +60,7 @@ elif chip_id == ap_chip.PENTIUM_N3710: from adafruit_blinka.microcontroller.pentium.n3710.pin import * elif chip_id == ap_chip.STM32MP157: from adafruit_blinka.microcontroller.stm32.stm32mp157.pin import * +elif chip_id == ap_chip.MT8167: + from adafruit_blinka.microcontroller.mt8167.pin import * else: raise NotImplementedError("Microcontroller not supported: ", chip_id) diff --git a/src/neopixel_write.py b/src/neopixel_write.py index 5626bc6..2c85f01 100644 --- a/src/neopixel_write.py +++ b/src/neopixel_write.py @@ -1,8 +1,9 @@ """ `neopixel_write` - NeoPixel precision timed writing support -================================================= +=========================================================== See `CircuitPython:neopixel_write` in CircuitPython for more details. +Currently supported on Raspberry Pi only. * Author(s): ladyada """ diff --git a/src/pulseio.py b/src/pulseio.py index 7c53457..848ff14 100644 --- a/src/pulseio.py +++ b/src/pulseio.py @@ -1,10 +1,14 @@ """ -`pulseio` - Pulse Width Modulation Input and Output control -================================================= +`pulseio` - Pulse Width Modulation input and output control +=========================================================== See `CircuitPython:pulseio` in CircuitPython for more details. +Not supported by all boards. + * Author(s): Melissa LeBlanc-Williams """ +import sys + from adafruit_blinka.agnostic import detector # pylint: disable=unused-import @@ -12,15 +16,19 @@ from adafruit_blinka.agnostic import detector if detector.board.any_raspberry_pi: from adafruit_blinka.microcontroller.bcm283x.pulseio.PulseIn import PulseIn from adafruit_blinka.microcontroller.bcm283x.pulseio.PWMOut import PWMOut -if detector.board.any_coral_board: +elif detector.board.any_coral_board: from adafruit_blinka.microcontroller.generic_linux.sysfs_pwmout import PWMOut -if detector.board.any_giant_board: +elif detector.board.any_giant_board: from adafruit_blinka.microcontroller.generic_linux.sysfs_pwmout import PWMOut -if detector.board.any_beaglebone: +elif detector.board.any_beaglebone: from adafruit_blinka.microcontroller.am335x.sysfs_pwmout import PWMOut -if detector.board.any_rock_pi_board: +elif detector.board.any_rock_pi_board: from adafruit_blinka.microcontroller.generic_linux.sysfs_pwmout import PWMOut -if detector.board.binho_nova: +elif detector.board.binho_nova: from adafruit_blinka.microcontroller.nova.pwmout import PWMOut -if detector.board.greatfet_one: +elif detector.board.greatfet_one: from adafruit_blinka.microcontroller.nxp_lpc4330.pwmout import PWMOut +elif "sphinx" in sys.modules: + pass +else: + raise NotImplementedError("pulseio not supported for this board.")