+# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
+#
+# SPDX-License-Identifier: Unlicense
name: Build CI
on: [pull_request, push]
# (e.g. - apt-get: gettext, etc; pip: circuitpython-build-tools, requirements.txt; etc.)
run: |
source actions-ci/install.sh
- - name: Pip install pylint, black, & Sphinx
+ - name: Pip install Sphinx, pre-commit
run: |
- pip install --force-reinstall pylint==2.7.1 black Sphinx sphinx-rtd-theme
+ pip install --force-reinstall Sphinx sphinx-rtd-theme pre-commit
- name: Library version
run: git describe --dirty --always --tags
- - name: Check formatting
+ - name: Pre-commit hooks
run: |
- black --check --target-version=py37 .
- - name: PyLint
- run: |
- pylint $( find src -name '*.py' )
- ([[ ! -d "examples" ]] || pylint --disable=missing-docstring,invalid-name,bad-whitespace $( find . -path "./examples/*.py" ))
+ pre-commit run --all-files
- name: Build docs
working-directory: docs
run: sphinx-build -E -W -b html . _build/html
+# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
+#
+# SPDX-License-Identifier: Unlicense
name: Release Actions
on:
+# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
+#
+# SPDX-License-Identifier: Unlicense
+
*.mpy
.idea
__pycache__
+# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
+#
+# SPDX-License-Identifier: Unlicense
[submodule "test/libraries/bme280"]
path = test/libraries/bme280
url = https://github.com/adafruit/Adafruit_CircuitPython_BME280.git
--- /dev/null
+# SPDX-FileCopyrightText: 2022 Adafruit
+#
+# SPDX-License-Identifier: Unlicense
+
+repos:
+- repo: https://github.com/python/black
+ rev: 20.8b1
+ hooks:
+ - id: black
+- repo: https://github.com/fsfe/reuse-tool
+ rev: v0.12.1
+ hooks:
+ - id: reuse
+- repo: https://github.com/pre-commit/pre-commit-hooks
+ rev: v2.3.0
+ hooks:
+ - id: check-yaml
+ - id: end-of-file-fixer
+ - id: trailing-whitespace
+- repo: https://github.com/pycqa/pylint
+ rev: v2.11.1
+ hooks:
+ - id: pylint
+ name: pylint (library code)
+ types: [python]
+ files: "^src/"
+ args:
+ - --disable=consider-using-f-string,duplicate-code
+ - id: pylint
+ name: pylint (example code)
+ description: Run pylint rules on "examples/*.py" files
+ types: [python]
+ files: "^examples/"
+ args:
+ - --disable=missing-docstring,invalid-name,consider-using-f-string,duplicate-code
+ - id: pylint
+ name: pylint (test code)
+ description: Run pylint rules on "tests/*.py" files
+ types: [python]
+ files: "^tests/"
+ args:
+ - --disable=missing-docstring,consider-using-f-string,duplicate-code
+# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
+#
+# SPDX-License-Identifier: Unlicense
[MASTER]
# A comma-separated list of package or module names from where C extensions may
--- /dev/null
+
+# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
+#
+# SPDX-License-Identifier: Unlicense
+# Read the Docs configuration file
+# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
+
+# Required
+version: 2
+
+python:
+ version: "3.7"
+ install:
+ - requirements: docs/requirements.txt
+ - requirements: requirements.txt
+++ /dev/null
-python:
- version: 3
-requirements_file: requirements.txt
+<!--
+SPDX-FileCopyrightText: 2014 Coraline Ada Ehmke
+SPDX-FileCopyrightText: 2019 Kattni Rembor for Adafruit Industries
+SPDX-License-Identifier: CC-BY-4.0
+-->
+
# Contributor Covenant Code of Conduct
## Our Pledge
The MIT License (MIT)
-Copyright (c) 2017 cefn for adafruit industries
+Copyright (c) 2018 Adafruit Industries
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
--- /dev/null
+Creative Commons Attribution 4.0 International Creative Commons Corporation
+("Creative Commons") is not a law firm and does not provide legal services
+or legal advice. Distribution of Creative Commons public licenses does not
+create a lawyer-client or other relationship. Creative Commons makes its licenses
+and related information available on an "as-is" basis. Creative Commons gives
+no warranties regarding its licenses, any material licensed under their terms
+and conditions, or any related information. Creative Commons disclaims all
+liability for damages resulting from their use to the fullest extent possible.
+
+Using Creative Commons Public Licenses
+
+Creative Commons public licenses provide a standard set of terms and conditions
+that creators and other rights holders may use to share original works of
+authorship and other material subject to copyright and certain other rights
+specified in the public license below. The following considerations are for
+informational purposes only, are not exhaustive, and do not form part of our
+licenses.
+
+Considerations for licensors: Our public licenses are intended for use by
+those authorized to give the public permission to use material in ways otherwise
+restricted by copyright and certain other rights. Our licenses are irrevocable.
+Licensors should read and understand the terms and conditions of the license
+they choose before applying it. Licensors should also secure all rights necessary
+before applying our licenses so that the public can reuse the material as
+expected. Licensors should clearly mark any material not subject to the license.
+This includes other CC-licensed material, or material used under an exception
+or limitation to copyright. More considerations for licensors : wiki.creativecommons.org/Considerations_for_licensors
+
+Considerations for the public: By using one of our public licenses, a licensor
+grants the public permission to use the licensed material under specified
+terms and conditions. If the licensor's permission is not necessary for any
+reason–for example, because of any applicable exception or limitation to copyright–then
+that use is not regulated by the license. Our licenses grant only permissions
+under copyright and certain other rights that a licensor has authority to
+grant. Use of the licensed material may still be restricted for other reasons,
+including because others have copyright or other rights in the material. A
+licensor may make special requests, such as asking that all changes be marked
+or described. Although not required by our licenses, you are encouraged to
+respect those requests where reasonable. More considerations for the public
+: wiki.creativecommons.org/Considerations_for_licensees Creative Commons Attribution
+4.0 International Public License
+
+By exercising the Licensed Rights (defined below), You accept and agree to
+be bound by the terms and conditions of this Creative Commons Attribution
+4.0 International Public License ("Public License"). To the extent this Public
+License may be interpreted as a contract, You are granted the Licensed Rights
+in consideration of Your acceptance of these terms and conditions, and the
+Licensor grants You such rights in consideration of benefits the Licensor
+receives from making the Licensed Material available under these terms and
+conditions.
+
+Section 1 – Definitions.
+
+a. Adapted Material means material subject to Copyright and Similar Rights
+that is derived from or based upon the Licensed Material and in which the
+Licensed Material is translated, altered, arranged, transformed, or otherwise
+modified in a manner requiring permission under the Copyright and Similar
+Rights held by the Licensor. For purposes of this Public License, where the
+Licensed Material is a musical work, performance, or sound recording, Adapted
+Material is always produced where the Licensed Material is synched in timed
+relation with a moving image.
+
+b. Adapter's License means the license You apply to Your Copyright and Similar
+Rights in Your contributions to Adapted Material in accordance with the terms
+and conditions of this Public License.
+
+c. Copyright and Similar Rights means copyright and/or similar rights closely
+related to copyright including, without limitation, performance, broadcast,
+sound recording, and Sui Generis Database Rights, without regard to how the
+rights are labeled or categorized. For purposes of this Public License, the
+rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights.
+
+d. Effective Technological Measures means those measures that, in the absence
+of proper authority, may not be circumvented under laws fulfilling obligations
+under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996,
+and/or similar international agreements.
+
+e. Exceptions and Limitations means fair use, fair dealing, and/or any other
+exception or limitation to Copyright and Similar Rights that applies to Your
+use of the Licensed Material.
+
+f. Licensed Material means the artistic or literary work, database, or other
+material to which the Licensor applied this Public License.
+
+g. Licensed Rights means the rights granted to You subject to the terms and
+conditions of this Public License, which are limited to all Copyright and
+Similar Rights that apply to Your use of the Licensed Material and that the
+Licensor has authority to license.
+
+h. Licensor means the individual(s) or entity(ies) granting rights under this
+Public License.
+
+i. Share means to provide material to the public by any means or process that
+requires permission under the Licensed Rights, such as reproduction, public
+display, public performance, distribution, dissemination, communication, or
+importation, and to make material available to the public including in ways
+that members of the public may access the material from a place and at a time
+individually chosen by them.
+
+j. Sui Generis Database Rights means rights other than copyright resulting
+from Directive 96/9/EC of the European Parliament and of the Council of 11
+March 1996 on the legal protection of databases, as amended and/or succeeded,
+as well as other essentially equivalent rights anywhere in the world.
+
+k. You means the individual or entity exercising the Licensed Rights under
+this Public License. Your has a corresponding meaning.
+
+Section 2 – Scope.
+
+ a. License grant.
+
+1. Subject to the terms and conditions of this Public License, the Licensor
+hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive,
+irrevocable license to exercise the Licensed Rights in the Licensed Material
+to:
+
+ A. reproduce and Share the Licensed Material, in whole or in part; and
+
+ B. produce, reproduce, and Share Adapted Material.
+
+2. Exceptions and Limitations. For the avoidance of doubt, where Exceptions
+and Limitations apply to Your use, this Public License does not apply, and
+You do not need to comply with its terms and conditions.
+
+ 3. Term. The term of this Public License is specified in Section 6(a).
+
+4. Media and formats; technical modifications allowed. The Licensor authorizes
+You to exercise the Licensed Rights in all media and formats whether now known
+or hereafter created, and to make technical modifications necessary to do
+so. The Licensor waives and/or agrees not to assert any right or authority
+to forbid You from making technical modifications necessary to exercise the
+Licensed Rights, including technical modifications necessary to circumvent
+Effective Technological Measures. For purposes of this Public License, simply
+making modifications authorized by this Section 2(a)(4) never produces Adapted
+Material.
+
+ 5. Downstream recipients.
+
+A. Offer from the Licensor – Licensed Material. Every recipient of the Licensed
+Material automatically receives an offer from the Licensor to exercise the
+Licensed Rights under the terms and conditions of this Public License.
+
+B. No downstream restrictions. You may not offer or impose any additional
+or different terms or conditions on, or apply any Effective Technological
+Measures to, the Licensed Material if doing so restricts exercise of the Licensed
+Rights by any recipient of the Licensed Material.
+
+6. No endorsement. Nothing in this Public License constitutes or may be construed
+as permission to assert or imply that You are, or that Your use of the Licensed
+Material is, connected with, or sponsored, endorsed, or granted official status
+by, the Licensor or others designated to receive attribution as provided in
+Section 3(a)(1)(A)(i).
+
+ b. Other rights.
+
+1. Moral rights, such as the right of integrity, are not licensed under this
+Public License, nor are publicity, privacy, and/or other similar personality
+rights; however, to the extent possible, the Licensor waives and/or agrees
+not to assert any such rights held by the Licensor to the limited extent necessary
+to allow You to exercise the Licensed Rights, but not otherwise.
+
+2. Patent and trademark rights are not licensed under this Public License.
+
+3. To the extent possible, the Licensor waives any right to collect royalties
+from You for the exercise of the Licensed Rights, whether directly or through
+a collecting society under any voluntary or waivable statutory or compulsory
+licensing scheme. In all other cases the Licensor expressly reserves any right
+to collect such royalties.
+
+Section 3 – License Conditions.
+
+Your exercise of the Licensed Rights is expressly made subject to the following
+conditions.
+
+ a. Attribution.
+
+1. If You Share the Licensed Material (including in modified form), You must:
+
+A. retain the following if it is supplied by the Licensor with the Licensed
+Material:
+
+i. identification of the creator(s) of the Licensed Material and any others
+designated to receive attribution, in any reasonable manner requested by the
+Licensor (including by pseudonym if designated);
+
+ ii. a copyright notice;
+
+ iii. a notice that refers to this Public License;
+
+ iv. a notice that refers to the disclaimer of warranties;
+
+v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable;
+
+B. indicate if You modified the Licensed Material and retain an indication
+of any previous modifications; and
+
+C. indicate the Licensed Material is licensed under this Public License, and
+include the text of, or the URI or hyperlink to, this Public License.
+
+2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner
+based on the medium, means, and context in which You Share the Licensed Material.
+For example, it may be reasonable to satisfy the conditions by providing a
+URI or hyperlink to a resource that includes the required information.
+
+3. If requested by the Licensor, You must remove any of the information required
+by Section 3(a)(1)(A) to the extent reasonably practicable.
+
+4. If You Share Adapted Material You produce, the Adapter's License You apply
+must not prevent recipients of the Adapted Material from complying with this
+Public License.
+
+Section 4 – Sui Generis Database Rights.
+
+Where the Licensed Rights include Sui Generis Database Rights that apply to
+Your use of the Licensed Material:
+
+a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract,
+reuse, reproduce, and Share all or a substantial portion of the contents of
+the database;
+
+b. if You include all or a substantial portion of the database contents in
+a database in which You have Sui Generis Database Rights, then the database
+in which You have Sui Generis Database Rights (but not its individual contents)
+is Adapted Material; and
+
+c. You must comply with the conditions in Section 3(a) if You Share all or
+a substantial portion of the contents of the database.
+
+For the avoidance of doubt, this Section 4 supplements and does not replace
+Your obligations under this Public License where the Licensed Rights include
+other Copyright and Similar Rights.
+
+Section 5 – Disclaimer of Warranties and Limitation of Liability.
+
+a. Unless otherwise separately undertaken by the Licensor, to the extent possible,
+the Licensor offers the Licensed Material as-is and as-available, and makes
+no representations or warranties of any kind concerning the Licensed Material,
+whether express, implied, statutory, or other. This includes, without limitation,
+warranties of title, merchantability, fitness for a particular purpose, non-infringement,
+absence of latent or other defects, accuracy, or the presence or absence of
+errors, whether or not known or discoverable. Where disclaimers of warranties
+are not allowed in full or in part, this disclaimer may not apply to You.
+
+b. To the extent possible, in no event will the Licensor be liable to You
+on any legal theory (including, without limitation, negligence) or otherwise
+for any direct, special, indirect, incidental, consequential, punitive, exemplary,
+or other losses, costs, expenses, or damages arising out of this Public License
+or use of the Licensed Material, even if the Licensor has been advised of
+the possibility of such losses, costs, expenses, or damages. Where a limitation
+of liability is not allowed in full or in part, this limitation may not apply
+to You.
+
+c. The disclaimer of warranties and limitation of liability provided above
+shall be interpreted in a manner that, to the extent possible, most closely
+approximates an absolute disclaimer and waiver of all liability.
+
+Section 6 – Term and Termination.
+
+a. This Public License applies for the term of the Copyright and Similar Rights
+licensed here. However, if You fail to comply with this Public License, then
+Your rights under this Public License terminate automatically.
+
+b. Where Your right to use the Licensed Material has terminated under Section
+6(a), it reinstates:
+
+1. automatically as of the date the violation is cured, provided it is cured
+within 30 days of Your discovery of the violation; or
+
+ 2. upon express reinstatement by the Licensor.
+
+c. For the avoidance of doubt, this Section 6(b) does not affect any right
+the Licensor may have to seek remedies for Your violations of this Public
+License.
+
+d. For the avoidance of doubt, the Licensor may also offer the Licensed Material
+under separate terms or conditions or stop distributing the Licensed Material
+at any time; however, doing so will not terminate this Public License.
+
+ e. Sections 1, 5, 6, 7, and 8 survive termination of this Public License.
+
+Section 7 – Other Terms and Conditions.
+
+a. The Licensor shall not be bound by any additional or different terms or
+conditions communicated by You unless expressly agreed.
+
+b. Any arrangements, understandings, or agreements regarding the Licensed
+Material not stated herein are separate from and independent of the terms
+and conditions of this Public License.
+
+Section 8 – Interpretation.
+
+a. For the avoidance of doubt, this Public License does not, and shall not
+be interpreted to, reduce, limit, restrict, or impose conditions on any use
+of the Licensed Material that could lawfully be made without permission under
+this Public License.
+
+b. To the extent possible, if any provision of this Public License is deemed
+unenforceable, it shall be automatically reformed to the minimum extent necessary
+to make it enforceable. If the provision cannot be reformed, it shall be severed
+from this Public License without affecting the enforceability of the remaining
+terms and conditions.
+
+c. No term or condition of this Public License will be waived and no failure
+to comply consented to unless expressly agreed to by the Licensor.
+
+d. Nothing in this Public License constitutes or may be interpreted as a limitation
+upon, or waiver of, any privileges and immunities that apply to the Licensor
+or You, including from the legal processes of any jurisdiction or authority.
+
+Creative Commons is not a party to its public licenses. Notwithstanding, Creative
+Commons may elect to apply one of its public licenses to material it publishes
+and in those instances will be considered the "Licensor." The text of the
+Creative Commons public licenses is dedicated to the public domain under the
+CC0 Public Domain Dedication. Except for the limited purpose of indicating
+that material is shared under a Creative Commons public license or as otherwise
+permitted by the Creative Commons policies published at creativecommons.org/policies,
+Creative Commons does not authorize the use of the trademark "Creative Commons"
+or any other trademark or logo of Creative Commons without its prior written
+consent including, without limitation, in connection with any unauthorized
+modifications to any of its public licenses or any other arrangements, understandings,
+or agreements concerning use of licensed material. For the avoidance of doubt,
+this paragraph does not form part of the public licenses.
+
+Creative Commons may be contacted at creativecommons.org.
--- /dev/null
+MIT License Copyright (c) <year> <copyright holders>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
+OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--- /dev/null
+This is free and unencumbered software released into the public domain.
+
+Anyone is free to copy, modify, publish, use, compile, sell, or distribute
+this software, either in source code form or as a compiled binary, for any
+purpose, commercial or non-commercial, and by any means.
+
+In jurisdictions that recognize copyright laws, the author or authors of this
+software dedicate any and all copyright interest in the software to the public
+domain. We make this dedication for the benefit of the public at large and
+to the detriment of our heirs and successors. We intend this dedication to
+be an overt act of relinquishment in perpetuity of all present and future
+rights to this software under copyright law.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
+BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH
+THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. For more information,
+please refer to <https://unlicense.org/>
--- /dev/null
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+
--- /dev/null
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+
--- /dev/null
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+
# -*- coding: utf-8 -*-
+# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+
import os
import sys
--- /dev/null
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+
--- /dev/null
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+
--- /dev/null
+# SPDX-FileCopyrightText: 2021 Kattni Rembor for Adafruit Industries
+#
+# SPDX-License-Identifier: Unlicense
+
+sphinx>=4.0.0
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Analog in demo"""
import time
import board
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+
# Example of blinking LED on BeagleBone Black
# https://www.adafruit.com/product/1876
#
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
import time
import hid
import busio
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+
# Example of blinking LED on PocketBeagle
# https://www.adafruit.com/product/4179
#
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
import time
import sys
import board
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
import time
import board
import busio
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
import time
import board
import digitalio
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
import sys
import time
-import adafruit_blinka.agnostic as agnostic
+from adafruit_blinka import agnostic
import board
import digitalio
--- /dev/null
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+
#!/usr/bin/env python
# -*- coding: utf-8 -*-
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+
# Note: To use the 'upload' functionality of this file, you must:
# $ pip install twine
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Return the current version"""
VERSION = (1, 0, 0)
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""
`adafruit_blinka` - Runtime utility objects for re-implementation of CircuitPython API
======================================================================================
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Allows useful indirection to test Pin naming logic by switching platform in testing
or provide bootstrapping logic for board identification where auto-detection is not
feasible (e.g. multiple ESP8266 boards architecturally identical). Once runtime
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Platform agnostic time implementation"""
from adafruit_blinka import agnostic
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Boards definition from Banana Pi"""
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the Banana Pi M2 Zero."""
# The Banana Pi M2 Zero uses the AllWinner H2 SoC, but pins
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Boards definition from BeagleBoard"""
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the Beaglebone Black."""
from adafruit_blinka.microcontroller.dra74x import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the Beaglebone Black."""
from adafruit_blinka.microcontroller.am335x import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""
Pin definitions for the Beaglebone PocketBeagle.
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the BeagleV StarLight."""
from adafruit_blinka.microcontroller.starfive.JH71x0 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the Binho Nova"""
from adafruit_blinka.microcontroller.nova import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the Clockwork Pi (CPI3) board."""
from adafruit_blinka.microcontroller.allwinner.a33 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the Coral Dev Board."""
from adafruit_blinka.microcontroller.nxp_imx8m import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the Coral Dev Board Mini."""
from adafruit_blinka.microcontroller.mt8167 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the Dragonboard 410c."""
from adafruit_blinka.microcontroller.snapdragon.apq8016 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the Feather Huzzah."""
from adafruit_blinka.microcontroller.esp8266 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""
Pin definitions for the Feather RP2040 with u2if firmware.
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the FTDI FT2232H"""
from adafruit_blinka.microcontroller.ftdi_mpsse.ft2232h import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the FTDI FT232H"""
from adafruit_blinka.microcontroller.ftdi_mpsse.ft232h import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the Giant Board"""
from adafruit_blinka.microcontroller.sama5 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the GreatFET One"""
from adafruit_blinka.microcontroller.nxp_lpc4330 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Boards definition from HardKernel"""
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the Odroid C2."""
from adafruit_blinka.microcontroller.amlogic.s905 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the Odroid C4."""
from adafruit_blinka.microcontroller.amlogic.s905x3 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the Odroid N2."""
from adafruit_blinka.microcontroller.amlogic.s922x import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the Odroid XU4."""
from adafruit_blinka.microcontroller.samsung.exynos5422 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the Hifive Unleashed."""
from adafruit_blinka.microcontroller.hfu540 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""
Pin definitions for the ItsyBitsy RP2040 with u2if firmware.
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Boards definition from LubanCat"""
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the LubanCat IMX6ULL."""
from adafruit_blinka.microcontroller.nxp_imx6ull import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the LubanCat STM32MP157."""
from adafruit_blinka.microcontroller.stm32.stm32mp157 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""
Pin definitions for the MacroPad RP2040 with u2if firmware.
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the MicroChip MCP2221"""
from adafruit_blinka.microcontroller.mcp2221 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Board definitions from NanoPi"""
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the NanoPi Duo2."""
# Enable I2C0, UART1, and SPI by adding the following lines to /boot/armbianEnv.txt
# overlays=usbhost2 usbhost3 spi-spidev uart1 i2c0
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the NanoPi NEO Air."""
# Enable I2C0, UART1, and SPI by adding the following lines to /boot/armbianEnv.txt
# overlays=usbhost2 usbhost3 spi-spidev uart1 i2c0
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the NanoPi NEO Air."""
# Enable I2C0, UART1, and SPI by adding the following lines to /boot/armbianEnv.txt
# overlays=usbhost2 usbhost3 spi-spidev uart1 i2c0
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""NodeMCU pin names"""
from adafruit_blinka.microcontroller.esp8266 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Boards definition from NVIDIA"""
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for Clara AGX Xavier."""
from adafruit_blinka.microcontroller.tegra.t194 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for Jetson Nano."""
from adafruit_blinka.microcontroller.tegra.t210 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for Jetson NX."""
from adafruit_blinka.microcontroller.tegra.t194 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for Jetson TX1."""
from adafruit_blinka.microcontroller.tegra.t210 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for Jetson TX2."""
from adafruit_blinka.microcontroller.tegra.t186 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for Jetson TX2 NX."""
from adafruit_blinka.microcontroller.tegra.t186 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for Jetson XAVIER."""
from adafruit_blinka.microcontroller.tegra.t194 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Boards definition from Onion"""
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the Onion Omega2+ Expansion Dock."""
from adafruit_blinka.microcontroller.mips24kec import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Boards definition from Xunlong Orange Pi"""
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the Orange Pi 3."""
from adafruit_blinka.microcontroller.allwinner.h6 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the Orange Pi PC."""
from adafruit_blinka.microcontroller.allwinner.h3 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the Orange Pi R1."""
from adafruit_blinka.microcontroller.allwinner.h3 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the Orange Pi Zero."""
# The Orange Pi Zero uses the AllWinner H2 SoC, but pins
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the Orange Pi Zero 2."""
from adafruit_blinka.microcontroller.allwinner.h616 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the Orange Pi Zero Plus."""
from adafruit_blinka.microcontroller.allwinner.h5 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the Orange Pi Zero Plus 2 H5."""
from adafruit_blinka.microcontroller.allwinner.h5 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the Raspberry Pi Pico running u2if firmware"""
from adafruit_blinka.microcontroller.rp2040_u2if import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the Pine64."""
from adafruit_blinka.microcontroller.allwinner.a64 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the PineH64."""
from adafruit_blinka.microcontroller.allwinner.h6 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""PyBoard pin names"""
from adafruit_blinka.microcontroller.stm32.stm32f405 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the QT2040 Trinkey with u2if firmware."""
from adafruit_blinka.microcontroller.rp2040_u2if import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""
Pin definitions for the QT Py RP2040 with u2if firmware.
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Rock Pi Boards definition from Radxa"""
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the Rock Pi 4."""
from adafruit_blinka.microcontroller.rockchip.rk3399 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the Rock Pi E."""
from adafruit_blinka.microcontroller.rockchip.rk3328 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the Rock Pi S."""
from adafruit_blinka.microcontroller.rockchip.rk3308 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Boards definition from Raspberry Pi"""
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Raspberry Pi Pico pin names"""
from adafruit_blinka.microcontroller.rp2040 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the Raspberry Pi Model B Revision 1."""
from adafruit_blinka.microcontroller.bcm283x import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the Raspberry Pi Model B Revision 2."""
from adafruit_blinka.microcontroller.bcm283x import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for 40-pin Raspberry Pi models."""
from adafruit_blinka.microcontroller.bcm283x import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for Raspberry Pi 4 models using the BCM2711."""
from adafruit_blinka.microcontroller.bcm2711 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for Raspberry Pi Compute Modules."""
from adafruit_blinka.microcontroller.bcm283x import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the SoPine."""
from adafruit_blinka.microcontroller.allwinner.a64 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Boards definition from STM32"""
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the Octavo OSD32MP1 BRK board."""
# See: https://octavosystems.com/octavosystems.com/wp-content/uploads/2020/05/Default-Pin-Mapping.pdf # pylint: disable=line-too-long
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the Octavo OSD32MP1 RED board."""
from adafruit_blinka.microcontroller.stm32.stm32mp157 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the STM32MP157C Development Kit 2."""
from adafruit_blinka.microcontroller.stm32.stm32mp157 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for the Tritium H3."""
from adafruit_blinka.microcontroller.allwinner.h3 import pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pin definitions for Udoo x86 Ultra
(should work for Ultra and Ultra II)
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Definition of all Allwinner chips"""
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Definition for the AllWinner A33 chip"""
-from .pin import *
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Allwinner A33 pin names"""
from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Definition for the AllWinner A64 chip"""
-from .pin import *
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Allwinner A64 pin names"""
from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Definition for the AllWinner H3 chip"""
-from .pin import *
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Allwinner H3 pin names"""
from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Definition for the AllWinner H5 chip"""
-from .pin import *
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Allwinner H5 pin names"""
from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Definition for the AllWinner H6 chip"""
-from .pin import *
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Allwinner H6 Pin Names"""
from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Definition for the AllWinner H616 chip"""
-from .pin import *
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Allwinner H616 Pin Names"""
from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""AM335x pin names"""
-import Adafruit_BBIO.GPIO as GPIO
+from Adafruit_BBIO import GPIO
class Pin:
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""
Much code from https://github.com/vsergeev/python-periphery/blob/master/periphery/pwm.py
Copyright (c) 2015-2016 vsergeev / Ivan (Vanya) A. Sergeev
if not os.path.isdir(pin_path):
try:
with open(
- os.path.join(channel_path, self._export_path), "w"
+ os.path.join(channel_path, self._export_path), "w", encoding="utf-8"
) as f_export:
f_export.write("%d\n" % self._pwmpin)
except IOError as e:
try:
# unexport_path = os.path.join(channel_path, self._unexport_path)
with open(
- os.path.join(channel_path, self._unexport_path), "w"
+ os.path.join(channel_path, self._unexport_path),
+ "w",
+ encoding="utf-8",
) as f_unexport:
f_unexport.write("%d\n" % self._pwmpin)
except IOError as e:
attr,
)
- with open(path, "w") as f_attr:
+ with open(path, "w", encoding="utf-8") as f_attr:
f_attr.write(value + "\n")
def _read_pin_attr(self, attr):
attr,
)
- with open(path, "r") as f_attr:
+ with open(path, "r", encoding="utf-8") as f_attr:
return f_attr.read().strip()
# Mutable properties
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""
G12A, G12B, and SM1 Common Definitions
Ref:
def get_dts_alias(device: str) -> str:
"""Get the Device Tree Alias"""
uevent_path = "/sys/bus/platform/devices/" + device + "/uevent"
- with open(uevent_path, "r") as fd:
+ with open(uevent_path, "r", encoding="utf-8") as fd:
pattern = r"^OF_ALIAS_0=(.*)$"
uevent = fd.read().split("\n")
for line in uevent:
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""AmLogic s905 pin names"""
from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""AmLogic s905x3 pin names"""
# pylint: disable=wildcard-import,unused-wildcard-import
from adafruit_blinka.microcontroller.amlogic.meson_g12_common.pin import *
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""AmLogic s922x pin names"""
# pylint: disable=wildcard-import,unused-wildcard-import
from adafruit_blinka.microcontroller.amlogic.meson_g12_common.pin import *
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Atheros AR9331 pin names"""
from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Broadcom BCM2711 pin names"""
-import RPi.GPIO as GPIO
+from RPi import GPIO
from adafruit_blinka.microcontroller.bcm283x.pin import Pin
GPIO.setmode(GPIO.BCM) # Use BCM pins D4 = GPIO #4
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""BCM283x NeoPixel Driver Class"""
import time
import atexit
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Broadcom BCM283x pin names"""
-import RPi.GPIO as GPIO
+from RPi import GPIO
GPIO.setmode(GPIO.BCM) # Use BCM pins D4 = GPIO #4
GPIO.setwarnings(False) # shh!
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Custom PulseIn Class to read PWM signals"""
import time
import subprocess
) from sysv_ipc.ExistentialError
# Check if OS is 64-bit
- if struct.calcsize("P") * 8 == 64:
+ if struct.calcsize("P") * 8 == 64: # pylint: disable=no-member
libgpiod_filename = "libgpiod_pulsein64"
else:
libgpiod_filename = "libgpiod_pulsein"
if DEBUG:
print(cmd)
- self._process = subprocess.Popen(cmd)
+ self._process = subprocess.Popen(cmd) # pylint: disable=consider-using-with
procs.append(self._process)
# wait for it to start up
--- /dev/null
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+
--- /dev/null
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Custom PWMOut Wrapper for Rpi.GPIO PWM Class"""
-import RPi.GPIO as GPIO
+from RPi import GPIO
GPIO.setmode(GPIO.BCM) # Use BCM pins D4 = GPIO #4
GPIO.setwarnings(False) # shh!
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""DRA74x pin names"""
from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""ESP8266 pin names"""
from microcontroller import Pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""FT2232H pin names"""
from adafruit_blinka.microcontroller.ftdi_mpsse.mpsse.pin import Pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""FT232H pin names"""
from adafruit_blinka.microcontroller.ftdi_mpsse.mpsse.pin import Pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""I2C Class for FTDI MPSSE"""
from adafruit_blinka.microcontroller.ftdi_mpsse.mpsse.pin import Pin
from adafruit_blinka.microcontroller.ftdi_mpsse.mpsse.url import (
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""MPSSE pin names"""
from adafruit_blinka.microcontroller.ftdi_mpsse.mpsse.url import (
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""SPI Class for FTDI MPSSE"""
from adafruit_blinka.microcontroller.ftdi_mpsse.mpsse.pin import Pin
from adafruit_blinka.microcontroller.ftdi_mpsse.mpsse.url import (
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""
Support for getting the URL from the BLINKA_FT232H
and BLINKA_FT2232H_{} environment variables.
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Generic Linux I2C class using PureIO's smbus class"""
-import Adafruit_PureIO.smbus as smbus
+from Adafruit_PureIO import smbus
class I2C:
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""A Pin class for use with libgpiod."""
try:
import gpiod
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""A Pin class for use with periphery."""
try:
from periphery import GPIO
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Generic Linux SPI class using PureIO's SPI class"""
-import Adafruit_PureIO.spi as spi
+from Adafruit_PureIO import spi
from adafruit_blinka.agnostic import detector
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""
`analogio` - Analog input control
=================================================
self._channel_path.format(self._channel),
)
- with open(path, "r") as analog_in:
+ with open(path, "r", encoding="utf-8") as analog_in:
return int(analog_in.read().strip())
# pylint: disable=no-self-use
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""
`analogio` - Analog output control
=================================================
self._channel_path.format(self._channel),
)
- with open(path, "w") as analog_out:
+ with open(path, "w", encoding="utf-8") as analog_out:
return analog_out.write(value + "\n")
def deinit(self):
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""
Much code from https://github.com/vsergeev/python-periphery/blob/master/periphery/gpio.py
Copyright (c) 2015-2019 vsergeev / Ivan (Vanya) A. Sergeev
if not os.path.isdir(gpio_path):
# Export the line
try:
- with open("/sys/class/gpio/export", "w") as f_export:
+ with open("/sys/class/gpio/export", "w", encoding="utf-8") as f_export:
f_export.write("{:d}\n".format(self.id))
except IOError as e:
raise GPIOError(e.errno, "Exporting GPIO: " + e.strerror) from IOError
# permission rule application after export
for i in range(self.GPIO_OPEN_RETRIES):
try:
- with open(os.path.join(gpio_path, "direction"), "w") as f_direction:
+ with open(
+ os.path.join(gpio_path, "direction"), "w", encoding="utf-8"
+ ) as f_direction:
f_direction.write(direction.lower() + "\n")
break
except IOError as e:
else:
# Write direction
try:
- with open(os.path.join(gpio_path, "direction"), "w") as f_direction:
+ with open(
+ os.path.join(gpio_path, "direction"), "w", encoding="utf-8"
+ ) as f_direction:
f_direction.write(direction.lower() + "\n")
except IOError as e:
raise GPIOError(
gpio_path = "/sys/class/gpio/{:s}/label".format(self.chip_name)
try:
- with open(gpio_path, "r") as f_label:
+ with open(gpio_path, "r", encoding="utf-8") as f_label:
label = f_label.read()
except (GPIOError, IOError) as e:
if isinstance(e, IOError):
def _get_direction(self):
# Read direction
try:
- with open(os.path.join(self._path, "direction"), "r") as f_direction:
+ with open(
+ os.path.join(self._path, "direction"), "r", encoding="utf-8"
+ ) as f_direction:
direction = f_direction.read()
except IOError as e:
raise GPIOError(
# Write direction
try:
- with open(os.path.join(self._path, "direction"), "w") as f_direction:
+ with open(
+ os.path.join(self._path, "direction"), "w", encoding="utf-8"
+ ) as f_direction:
f_direction.write(direction.lower() + "\n")
except IOError as e:
raise GPIOError(
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""
Much code from https://github.com/vsergeev/python-periphery/blob/master/periphery/pwm.py
Copyright (c) 2015-2016 vsergeev / Ivan (Vanya) A. Sergeev
try:
with open(
- os.path.join(channel_path, self._unexport_path), "w"
+ os.path.join(channel_path, self._unexport_path), "w", encoding="utf-8"
) as f_unexport:
f_unexport.write("%d\n" % self._pwmpin)
- except IOError as e:
+ except IOError:
pass # not unusual, it doesnt already exist
try:
- with open(os.path.join(channel_path, self._export_path), "w") as f_export:
+ with open(
+ os.path.join(channel_path, self._export_path), "w", encoding="utf-8"
+ ) as f_export:
f_export.write("%d\n" % self._pwmpin)
except IOError as e:
raise PWMError(e.errno, "Exporting PWM pin: " + e.strerror) from IOError
channel_path, self._pin_path.format(self._pwmpin), "period"
),
"w",
+ encoding="utf-8",
):
break
except IOError as e:
self._sysfs_path, self._channel_path.format(self._channel)
)
with open(
- os.path.join(channel_path, self._unexport_path), "w"
+ os.path.join(channel_path, self._unexport_path),
+ "w",
+ encoding="utf-8",
) as f_unexport:
f_unexport.write("%d\n" % self._pwmpin)
except IOError as e:
attr,
)
- with open(path, "w") as f_attr:
+ with open(path, "w", encoding="utf-8") as f_attr:
# print(value, path)
f_attr.write(value + "\n")
attr,
)
- with open(path, "r") as f_attr:
+ with open(path, "r", encoding="utf-8") as f_attr:
return f_attr.read().strip()
# Mutable properties
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""I2C Class for Generic MicroPython"""
from machine import I2C as _I2C
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""SPI Class for Generic MicroPython"""
from machine import SPI as _SPI
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Hifive Unleashed pin names"""
from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""
`analogio` - Analog input and output control
=================================================
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""I2C Class for MCP2221"""
from .mcp2221 import mcp2221
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Chip Definition for MCP2221"""
import os
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""MCP2221 pin names"""
from .mcp2221 import mcp2221
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""MIPS 24kec pin names"""
from adafruit_blinka.microcontroller.generic_linux.periphery_pin import Pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""MediaTek MT8167 pin names"""
from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Generic Connection class for Binho Nova to keep track of connection"""
-from .pin import *
class Connection:
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""I2C Class for Binho Nova"""
from adafruit_blinka.microcontroller.nova import Connection
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Binho Nova pin names"""
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""PWMOut Class for Binho Nova"""
try:
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""SPI Class for Binho Nova"""
from adafruit_blinka.microcontroller.nova import Connection
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""UART Class for Binho Nova"""
from adafruit_blinka.microcontroller.nova import Connection
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""NXP IMX6ULL pin names"""
from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""NXP IMX8M pin names"""
from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""
`analogio` - Analog input and output control
=================================================
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""I2C Class for NXP LPC4330"""
from greatfet import GreatFET
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""NXP LPC4330 pin names"""
try:
from greatfet import GreatFET
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""PWMOut Class for NXP LPC4330"""
from greatfet import GreatFET
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""SPI Class for NXP LPC4330"""
from greatfet import GreatFET
to the found value
"""
closest_preset = None
- for frequency in self._presets:
- preset = self._presets[frequency]
+ for frequency, preset in self._presets.items():
if self._frequency is None or abs(frequency - target_frequency) < abs(
self._frequency - target_frequency
):
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""UART Class for NXP LPC4330"""
from greatfet import GreatFET
from greatfet.interfaces.uart import UART as _UART
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""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(<sdl, sda>) calls.
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""
Much code from https://github.com/vsergeev/python-periphery/blob/master/periphery/pwm.py
Copyright (c) 2015-2016 vsergeev / Ivan (Vanya) A. Sergeev
if not os.path.isdir(self._channel_path):
# Exporting the PWM.
try:
- with open(os.path.join(self._chip_path, "export"), "w") as f_export:
+ with open(
+ os.path.join(self._chip_path, "export"), "w", encoding="utf-8"
+ ) as f_export:
f_export.write("{:d}\n".format(self._channel))
except IOError as e:
raise PWMError(
with open(
os.path.join(self._channel_path, "period"),
"w",
+ encoding="utf-8",
):
break
except IOError as e:
self._channel = None
def _write_channel_attr(self, attr, value):
- with open(os.path.join(self._channel_path, attr), "w") as f_attr:
+ with open(
+ os.path.join(self._channel_path, attr), "w", encoding="utf-8"
+ ) as f_attr:
f_attr.write(value + "\n")
def _read_channel_attr(self, attr):
- with open(os.path.join(self._channel_path, attr), "r") as f_attr:
+ with open(
+ os.path.join(self._channel_path, attr), "r", encoding="utf-8"
+ ) as f_attr:
return f_attr.read().strip()
# Methods
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""A Pin class for use with Rockchip RK3308."""
from adafruit_blinka.microcontroller.generic_linux.sysfs_pin import Pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Definition for the Rockchip RK3328 chip"""
-from .pin import *
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""A Pin class for use with Rockchip RK3328."""
from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""A Pin class for use with Rockchip RK3399."""
from adafruit_blinka.microcontroller.generic_linux.sysfs_pin import Pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""I2C Class for RP2040"""
from machine import I2C as _I2C
from machine import Pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""RP2040 pins"""
from microcontroller import Pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""SPI Class for RP2040"""
from machine import SPI as _SPI
from machine import Pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""UART Class for RP2040"""
from machine import UART as _UART
from machine import Pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""
`analogio` - Analog input and output control
=================================================
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""I2C Classes for RP2040s with u2if firmware"""
from .rp2040_u2if import rp2040_u2if
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""NeoPixel write for Pico u2if."""
from .rp2040_u2if import rp2040_u2if
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Generic RP2040 pin names"""
from .rp2040_u2if import rp2040_u2if
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""PWMOut Class for RP2040s with u2if"""
from .rp2040_u2if import rp2040_u2if
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Helper class for use with RP2040 running u2if firmware"""
# https://github.com/execuc/u2if
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""SPI Classes for RP2040s with u2if firmware"""
from .rp2040_u2if import rp2040_u2if
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Atmel SAMA5 pin names"""
from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""
-Samsum Exynos5422
+Samsung Exynos5422
Ref:
Linux kernel 4.14.y (hardkernel)
"""
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""SnapDragon APQ8016 pin names"""
from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Definition for the StarFive JH71x0 chip"""
-from .pin import *
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""A Pin class for use with StarFive JH71x0."""
from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""STM32F405 pins"""
from microcontroller import Pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""STM32MP157 pins"""
from adafruit_blinka.microcontroller.generic_linux.periphery_pin import Pin
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Tegra T186 pin names"""
import atexit
-import Jetson.GPIO as GPIO
+from Jetson import GPIO
GPIO.setmode(GPIO.TEGRA_SOC)
GPIO.setwarnings(False) # shh!
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Tegra T194 pin names"""
import atexit
-import Jetson.GPIO as GPIO
+from Jetson import GPIO
GPIO.setmode(GPIO.TEGRA_SOC)
GPIO.setwarnings(False) # shh!
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Tegra T210 pin names"""
import atexit
-import Jetson.GPIO as GPIO
+from Jetson import GPIO
GPIO.setmode(GPIO.TEGRA_SOC)
GPIO.setwarnings(False) # shh!
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""
`analogio` - Analog input and output control
============================================
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""
`bitbangio` - Bitbanged bus protocols
==============================================================
-# The MIT License (MIT)
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
#
-# Copyright (c) 2017 cefn for adafruit industries
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
+# SPDX-License-Identifier: MIT
"""
`board` - Define ids for available pins
=================================================
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""
`busio` - Bus protocol support like I2C and SPI
=================================================
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""
`digitalio` - Digital input and output control (GPIO)
=====================================================
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""
`keypad` - Support for scanning keys and key matrices
===========================================================
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""
`microcontroller` - Pin references and cpu functionality
========================================================
--- /dev/null
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+from adafruit_blinka import Enum
+import microcontroller.pin
+
+class Pin(Enum):
+ """
+ Identifies an IO pin on the microcontroller.
+
+ They are fixed by the hardware so they cannot be constructed on demand. Instead, use board or
+ microcontroller.pin to reference the desired pin.
+ """
+
+ def __init__(self, pin_id):
+ """Identifier for pin, referencing platform-specific pin id"""
+ self.id = pin_id
+
+ def __repr__(self):
+ # pylint: disable=import-outside-toplevel, cyclic-import
+ import board
+
+ for key in dir(board):
+ if getattr(board, key) is self:
+ return "board.{}".format(key)
+ # pylint: enable=import-outside-toplevel, cyclic-import
+
+ for key in dir(microcontroller.pin):
+ if getattr(microcontroller.pin, key) is self:
+ return "microcontroller.pin.{}".format(key)
+ return repr(self)
+
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Pins named after their chip name."""
from adafruit_platformdetect.constants import chips as ap_chip
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""
`micropython` - MicroPython Specific Decorator Functions
========================================================
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""
`neopixel_write` - NeoPixel precision timed writing support
===========================================================
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""
`pulseio` - Pulse Width Modulation input and output control
===========================================================
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""
`pwmio` - Support for PWM based protocols
===========================================================
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""
`rainbowio` - Provides the `colorwheel()` function
===========================================================
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""
`usb_hid` - support for usb hid devices via usb_gadget driver
===========================================================
import sys
for module in ["dwc2", "libcomposite"]:
- if Path("/proc/modules").read_text().find(module) == -1:
+ if Path("/proc/modules").read_text(encoding="utf-8").find(module) == -1:
raise Exception(
"%s module not present in your kernel. did you insmod it?" % module
)
"""
report_id = report_id or self.report_ids[0]
device_path = self.get_device_path(report_id)
- with open(device_path, "rb+") as fd:
+ with open(device_path, "rb+", encoding="utf-8") as fd:
if report_id > 0:
report = bytearray(report_id.to_bytes(1, "big")) + report
fd.write(report)
Return `None` if nothing received.
"""
device_path = self.get_device_path(report_id or self.report_ids[0])
- with open(device_path, "rb+") as fd:
+ with open(device_path, "rb+", encoding="utf-8") as fd:
os.set_blocking(fd.fileno(), False)
report = fd.read(self.out_report_lengths[0])
if report is not None:
"%s/functions/hid.usb%s/dev"
% (this.gadget_root, report_id or self.report_ids[0])
)
- .read_text()
+ .read_text(encoding="utf-8")
.strip()
.split(":")[1]
)
as `usb_cdc` or `storage` to free up endpoints for use by `usb_hid`.
"""
try:
- Path("%s/UDC" % this.gadget_root).write_text("")
+ Path("%s/UDC" % this.gadget_root).write_text("", encoding="utf-8")
except FileNotFoundError:
pass
for symlink in Path(this.gadget_root).glob("configs/**/hid.usb*"):
# """
Path("%s/functions" % this.gadget_root).mkdir(parents=True, exist_ok=True)
Path("%s/configs" % this.gadget_root).mkdir(parents=True, exist_ok=True)
- Path("%s/bcdDevice" % this.gadget_root).write_text("%s" % 1) # Version 1.0.0
- Path("%s/bcdUSB" % this.gadget_root).write_text("%s" % 0x0200) # USB 2.0
+ Path("%s/bcdDevice" % this.gadget_root).write_text(
+ "%s" % 1, encoding="utf-8"
+ ) # Version 1.0.0
+ Path("%s/bcdUSB" % this.gadget_root).write_text(
+ "%s" % 0x0200, encoding="utf-8"
+ ) # USB 2.0
Path("%s/bDeviceClass" % this.gadget_root).write_text(
- "%s" % 0x00
+ "%s" % 0x00, encoding="utf-8"
) # multipurpose i guess?
- Path("%s/bDeviceProtocol" % this.gadget_root).write_text("%s" % 0x00)
- Path("%s/bDeviceSubClass" % this.gadget_root).write_text("%s" % 0x00)
- Path("%s/bMaxPacketSize0" % this.gadget_root).write_text("%s" % 0x08)
+ Path("%s/bDeviceProtocol" % this.gadget_root).write_text(
+ "%s" % 0x00, encoding="utf-8"
+ )
+ Path("%s/bDeviceSubClass" % this.gadget_root).write_text(
+ "%s" % 0x00, encoding="utf-8"
+ )
+ Path("%s/bMaxPacketSize0" % this.gadget_root).write_text(
+ "%s" % 0x08, encoding="utf-8"
+ )
Path("%s/idProduct" % this.gadget_root).write_text(
- "%s" % 0x0104
+ "%s" % 0x0104, encoding="utf-8"
) # Multifunction Composite Gadget
- Path("%s/idVendor" % this.gadget_root).write_text("%s" % 0x1D6B) # Linux Foundation
+ Path("%s/idVendor" % this.gadget_root).write_text(
+ "%s" % 0x1D6B, encoding="utf-8"
+ ) # Linux Foundation
# """
# 2. Creating the configurations
# ------------------------------
Path("%s/" % config_root).mkdir(parents=True, exist_ok=True)
Path("%s/strings/0x409" % config_root).mkdir(parents=True, exist_ok=True)
Path("%s/strings/0x409/configuration" % config_root).write_text(
- "my configuration"
+ "my configuration", encoding="utf-8"
)
- Path("%s/MaxPower" % config_root).write_text("150")
- Path("%s/bmAttributes" % config_root).write_text("%s" % 0x080)
+ Path("%s/MaxPower" % config_root).write_text("150", encoding="utf-8")
+ Path("%s/bmAttributes" % config_root).write_text("%s" % 0x080, encoding="utf-8")
this.devices.append(device)
# """
# 3. Creating the functions
Path("%s/" % function_root).mkdir(parents=True)
except FileExistsError:
continue
- Path("%s/protocol" % function_root).write_text("%s" % report_id)
+ Path("%s/protocol" % function_root).write_text(
+ "%s" % report_id, encoding="utf-8"
+ )
Path("%s/report_length" % function_root).write_text(
- "%s" % device.in_report_lengths[report_index]
+ "%s" % device.in_report_lengths[report_index], encoding="utf-8"
)
- Path("%s/subclass" % function_root).write_text("%s" % 1)
+ Path("%s/subclass" % function_root).write_text("%s" % 1, encoding="utf-8")
Path("%s/report_desc" % function_root).write_bytes(device.descriptor)
# """
# 4. Associating the functions with their configurations
#
# $ echo s3c-hsotg > UDC """
udc = next(Path("/sys/class/udc/").glob("*"))
- Path("%s/UDC" % this.gadget_root).write_text("%s" % udc.name)
+ Path("%s/UDC" % this.gadget_root).write_text("%s" % udc.name, encoding="utf-8")
#!/bin/sh
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
PORT=/dev/ttyUSB0
export MPYCROSS=`realpath ../../../circuitpython_2.2.3/mpy-cross/mpy-cross`
#!/bin/sh
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
PORT=/dev/ttyUSB0
export MPYCROSS=`realpath ../../../micropython/mpy-cross/mpy-cross`
#!/bin/sh
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
export PORT="/dev/ttyUSB0"
export MPYCROSS=`realpath ../../../micropython/mpy-cross/mpy-cross`
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+
# mitigate heap fragmentation issues by pre-loading major libraries
import gc
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
import unittest
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Configuration of testing fixtures depending on the board layout"""
from adafruit_blinka import agnostic
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
from adafruit_blinka import agnostic
if agnostic.board in ("feather_m0_express", "feather_huzzah"):
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
from adafruit_blinka.agnostic import microcontroller
if microcontroller == "esp8266":
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
import unittest
from testing import yes_no, await_true
from testing.board import led_pin, default_pin, led_hardwired, led_inverted
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
import gc
from testing import yes_no
sensor = adafruit_mma8451.MMA8451(i2c)
x, y, z = sensor.acceleration
- absolute = math.sqrt(x**2 + y**2 + z**2)
+ absolute = math.sqrt(x ** 2 + y ** 2 + z ** 2)
self.assertTrue(9 <= absolute <= 11, "Not earth gravity")
orientation = sensor.orientation
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
import unittest
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
import gc
from unittest import TestCase
from testing import await_true
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Based on https://raw.githubusercontent.com/micropython/micropython-lib/cfa1b9cce0c93a3115bbff3886c9bbcddd9e8047/unittest/unittest.py """
import sys