From: Carter Nelson Date: Fri, 11 Mar 2022 02:12:02 +0000 (-0800) Subject: Merge pull request #540 from ezio-melotti/close-mcp2221 X-Git-Tag: 7.1.2~1 X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/commitdiff_plain/1b0742ea4dd827c3f9217dab1dca35fbec100dce?hp=5690811c80a734fba26476512d82f3f69b13e816 Merge pull request #540 from ezio-melotti/close-mcp2221 Close the mcp2221 device before exit. --- diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 79c2575..c955ed0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries +# +# SPDX-License-Identifier: Unlicense name: Build CI on: [pull_request, push] @@ -33,18 +36,14 @@ jobs: # (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=py35 . - - 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 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ce2635b..9aa3d4c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries +# +# SPDX-License-Identifier: Unlicense name: Release Actions on: diff --git a/.gitignore b/.gitignore index e7e0f2d..5fb597b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries +# +# SPDX-License-Identifier: Unlicense + *.mpy .idea __pycache__ diff --git a/.gitmodules b/.gitmodules index 41bbf17..b23b276 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ +# 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 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..bf33d62 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,42 @@ +# 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 diff --git a/.pylintrc b/.pylintrc index 35b40b5..0267cf0 100644 --- a/.pylintrc +++ b/.pylintrc @@ -1,3 +1,6 @@ +# 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 diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 0000000..b7f9208 --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,15 @@ + +# 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 diff --git a/.readthedocs.yml b/.readthedocs.yml deleted file mode 100644 index f4243ad..0000000 --- a/.readthedocs.yml +++ /dev/null @@ -1,3 +0,0 @@ -python: - version: 3 -requirements_file: requirements.txt diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 1617586..a5f7ed2 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -1,3 +1,9 @@ + + # Contributor Covenant Code of Conduct ## Our Pledge diff --git a/LICENSE b/LICENSE index b3c1ecf..794a9d8 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ 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 diff --git a/LICENSES/CC-BY-4.0.txt b/LICENSES/CC-BY-4.0.txt new file mode 100644 index 0000000..3f92dfc --- /dev/null +++ b/LICENSES/CC-BY-4.0.txt @@ -0,0 +1,324 @@ +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. diff --git a/LICENSES/MIT.txt b/LICENSES/MIT.txt new file mode 100644 index 0000000..204b93d --- /dev/null +++ b/LICENSES/MIT.txt @@ -0,0 +1,19 @@ +MIT License Copyright (c) + +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. diff --git a/LICENSES/Unlicense.txt b/LICENSES/Unlicense.txt new file mode 100644 index 0000000..24a8f90 --- /dev/null +++ b/LICENSES/Unlicense.txt @@ -0,0 +1,20 @@ +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 diff --git a/README.rst b/README.rst index 8f3aa29..3e21f93 100755 --- a/README.rst +++ b/README.rst @@ -32,6 +32,7 @@ for devices or hosts running CPython or MicroPython. Working code exists to emul * **pulseio** - contains classes that provide access to basic pulse IO (PWM) * **pwmio** - contains classes that provide access to basic pulse IO (PWM) * **rainbowio** - provides the colorwheel() function +* **usb_hid** - act as a hid-device using usb_gadget kernel driver For details, see the `Blinka API reference `_. diff --git a/README.rst.license b/README.rst.license new file mode 100644 index 0000000..cc69330 --- /dev/null +++ b/README.rst.license @@ -0,0 +1,3 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT diff --git a/docs/_static/favicon.ico.license b/docs/_static/favicon.ico.license new file mode 100644 index 0000000..cc69330 --- /dev/null +++ b/docs/_static/favicon.ico.license @@ -0,0 +1,3 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT diff --git a/docs/api.rst b/docs/api.rst index dc0aeb6..b28e684 100755 --- a/docs/api.rst +++ b/docs/api.rst @@ -5,7 +5,7 @@ .. use this format as the module name: "adafruit_foo.foo" .. automodule:: adafruit_blinka - :members: + :members: .. automodule:: adafruit_blinka.agnostic :members: diff --git a/docs/api.rst.license b/docs/api.rst.license new file mode 100644 index 0000000..cc69330 --- /dev/null +++ b/docs/api.rst.license @@ -0,0 +1,3 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT diff --git a/docs/conf.py b/docs/conf.py index 2e54ac7..84be265 100755 --- a/docs/conf.py +++ b/docs/conf.py @@ -1,5 +1,9 @@ # -*- coding: utf-8 -*- +# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries +# +# SPDX-License-Identifier: MIT + import os import sys diff --git a/docs/examples.rst.license b/docs/examples.rst.license new file mode 100644 index 0000000..cc69330 --- /dev/null +++ b/docs/examples.rst.license @@ -0,0 +1,3 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT diff --git a/docs/index.rst.license b/docs/index.rst.license new file mode 100644 index 0000000..cc69330 --- /dev/null +++ b/docs/index.rst.license @@ -0,0 +1,3 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 0000000..88e6733 --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1,5 @@ +# SPDX-FileCopyrightText: 2021 Kattni Rembor for Adafruit Industries +# +# SPDX-License-Identifier: Unlicense + +sphinx>=4.0.0 diff --git a/examples/analog_in.py b/examples/analog_in.py index d72fbdc..af936d1 100644 --- a/examples/analog_in.py +++ b/examples/analog_in.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """Analog in demo""" import time import board diff --git a/examples/bbb_digitalio.py b/examples/bbb_digitalio.py index 9d8af71..8cb7c64 100755 --- a/examples/bbb_digitalio.py +++ b/examples/bbb_digitalio.py @@ -1,6 +1,10 @@ #!/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 # diff --git a/examples/mcps_busio_i2c.py b/examples/mcps_busio_i2c.py index 4729e3e..e4da0f1 100644 --- a/examples/mcps_busio_i2c.py +++ b/examples/mcps_busio_i2c.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT import time import hid import busio diff --git a/examples/pb_digitalio.py b/examples/pb_digitalio.py index 0eb3a2b..89ae347 100755 --- a/examples/pb_digitalio.py +++ b/examples/pb_digitalio.py @@ -1,6 +1,10 @@ #!/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 # diff --git a/examples/pi_busio_i2c.py b/examples/pi_busio_i2c.py index f3b4eea..e2b3ce2 100644 --- a/examples/pi_busio_i2c.py +++ b/examples/pi_busio_i2c.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT import time import sys import board diff --git a/examples/pi_busio_spi.py b/examples/pi_busio_spi.py index 1f845b2..f8899e1 100644 --- a/examples/pi_busio_spi.py +++ b/examples/pi_busio_spi.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT import time import board import busio diff --git a/examples/pi_digitalio.py b/examples/pi_digitalio.py index 7c6a622..96f964c 100644 --- a/examples/pi_digitalio.py +++ b/examples/pi_digitalio.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT import time import board import digitalio diff --git a/examples/piblinka.py b/examples/piblinka.py index 471715e..6728b6d 100644 --- a/examples/piblinka.py +++ b/examples/piblinka.py @@ -1,6 +1,9 @@ +# 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 diff --git a/requirements.txt b/requirements.txt index 013f2dc..851141c 100755 --- a/requirements.txt +++ b/requirements.txt @@ -6,3 +6,4 @@ rpi_ws281x>=4.0.0; platform_machine=='armv7l' or platform_machine=='armv6l' sysv_ipc>=1.1.0; sys_platform == 'linux' and platform_machine!='mips' pyftdi>=0.40.0 binho-host-adapter>=0.1.6 +numpy>=1.21.5 diff --git a/requirements.txt.license b/requirements.txt.license new file mode 100644 index 0000000..cc69330 --- /dev/null +++ b/requirements.txt.license @@ -0,0 +1,3 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT diff --git a/setup.py b/setup.py index 7d0264a..fc2a39b 100755 --- a/setup.py +++ b/setup.py @@ -1,6 +1,10 @@ #!/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 @@ -65,7 +69,10 @@ setup( "rainbowio", ], package_data={ - "adafruit_blinka.microcontroller.bcm283x.pulseio": ["libgpiod_pulsein"] + "adafruit_blinka.microcontroller.bcm283x.pulseio": [ + "libgpiod_pulsein", + "libgpiod_pulsein64", + ] }, install_requires=[ "Adafruit-PlatformDetect>=3.13.0", diff --git a/src/__version__.py b/src/__version__.py index 4a384b3..49f0aeb 100644 --- a/src/__version__.py +++ b/src/__version__.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """Return the current version""" VERSION = (1, 0, 0) diff --git a/src/adafruit_blinka/__init__.py b/src/adafruit_blinka/__init__.py index 69e9178..5bdb2a5 100755 --- a/src/adafruit_blinka/__init__.py +++ b/src/adafruit_blinka/__init__.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """ `adafruit_blinka` - Runtime utility objects for re-implementation of CircuitPython API ====================================================================================== diff --git a/src/adafruit_blinka/agnostic/__init__.py b/src/adafruit_blinka/agnostic/__init__.py index 1f6eb4c..14121d3 100755 --- a/src/adafruit_blinka/agnostic/__init__.py +++ b/src/adafruit_blinka/agnostic/__init__.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/agnostic/time.py b/src/adafruit_blinka/agnostic/time.py index 46cb837..c0eca3c 100755 --- a/src/adafruit_blinka/agnostic/time.py +++ b/src/adafruit_blinka/agnostic/time.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """Platform agnostic time implementation""" from adafruit_blinka import agnostic diff --git a/src/adafruit_blinka/board/bananapi/__init__.py b/src/adafruit_blinka/board/bananapi/__init__.py index 8d40623..6bc6884 100644 --- a/src/adafruit_blinka/board/bananapi/__init__.py +++ b/src/adafruit_blinka/board/bananapi/__init__.py @@ -1 +1,4 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """Boards definition from Banana Pi""" diff --git a/src/adafruit_blinka/board/bananapi/bpim2zero.py b/src/adafruit_blinka/board/bananapi/bpim2zero.py index 10da54b..bd720e2 100644 --- a/src/adafruit_blinka/board/bananapi/bpim2zero.py +++ b/src/adafruit_blinka/board/bananapi/bpim2zero.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/beagleboard/__init__.py b/src/adafruit_blinka/board/beagleboard/__init__.py index 139ec8d..b55eef2 100644 --- a/src/adafruit_blinka/board/beagleboard/__init__.py +++ b/src/adafruit_blinka/board/beagleboard/__init__.py @@ -1 +1,4 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """Boards definition from BeagleBoard""" diff --git a/src/adafruit_blinka/board/beagleboard/beaglebone_ai.py b/src/adafruit_blinka/board/beagleboard/beaglebone_ai.py index d88111f..5c5d78d 100644 --- a/src/adafruit_blinka/board/beagleboard/beaglebone_ai.py +++ b/src/adafruit_blinka/board/beagleboard/beaglebone_ai.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/beagleboard/beaglebone_black.py b/src/adafruit_blinka/board/beagleboard/beaglebone_black.py index b3a301c..de58a1b 100644 --- a/src/adafruit_blinka/board/beagleboard/beaglebone_black.py +++ b/src/adafruit_blinka/board/beagleboard/beaglebone_black.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/beagleboard/beaglebone_pocketbeagle.py b/src/adafruit_blinka/board/beagleboard/beaglebone_pocketbeagle.py index 43c20f9..a24fd6b 100644 --- a/src/adafruit_blinka/board/beagleboard/beaglebone_pocketbeagle.py +++ b/src/adafruit_blinka/board/beagleboard/beaglebone_pocketbeagle.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """ Pin definitions for the Beaglebone PocketBeagle. diff --git a/src/adafruit_blinka/board/beagleboard/beaglev_starlight.py b/src/adafruit_blinka/board/beagleboard/beaglev_starlight.py index 0240464..95bb922 100644 --- a/src/adafruit_blinka/board/beagleboard/beaglev_starlight.py +++ b/src/adafruit_blinka/board/beagleboard/beaglev_starlight.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/binho_nova.py b/src/adafruit_blinka/board/binho_nova.py index 1e01f61..cffb616 100644 --- a/src/adafruit_blinka/board/binho_nova.py +++ b/src/adafruit_blinka/board/binho_nova.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/clockworkcpi3.py b/src/adafruit_blinka/board/clockworkcpi3.py index 2e8a00b..a93ffeb 100644 --- a/src/adafruit_blinka/board/clockworkcpi3.py +++ b/src/adafruit_blinka/board/clockworkcpi3.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/coral_dev_board.py b/src/adafruit_blinka/board/coral_dev_board.py index fd860d2..04fcbde 100644 --- a/src/adafruit_blinka/board/coral_dev_board.py +++ b/src/adafruit_blinka/board/coral_dev_board.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/coral_dev_board_mini.py b/src/adafruit_blinka/board/coral_dev_board_mini.py index b0b425c..79e7fa6 100644 --- a/src/adafruit_blinka/board/coral_dev_board_mini.py +++ b/src/adafruit_blinka/board/coral_dev_board_mini.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/dragonboard_410c.py b/src/adafruit_blinka/board/dragonboard_410c.py index aa42ce0..a627309 100644 --- a/src/adafruit_blinka/board/dragonboard_410c.py +++ b/src/adafruit_blinka/board/dragonboard_410c.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/feather_huzzah.py b/src/adafruit_blinka/board/feather_huzzah.py index 70cc186..32bbce1 100755 --- a/src/adafruit_blinka/board/feather_huzzah.py +++ b/src/adafruit_blinka/board/feather_huzzah.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/feather_u2if.py b/src/adafruit_blinka/board/feather_u2if.py index 23fe99e..d4e6581 100644 --- a/src/adafruit_blinka/board/feather_u2if.py +++ b/src/adafruit_blinka/board/feather_u2if.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """ Pin definitions for the Feather RP2040 with u2if firmware. diff --git a/src/adafruit_blinka/board/ftdi_ft2232h.py b/src/adafruit_blinka/board/ftdi_ft2232h.py index 6849127..fcb5b1c 100644 --- a/src/adafruit_blinka/board/ftdi_ft2232h.py +++ b/src/adafruit_blinka/board/ftdi_ft2232h.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/ftdi_ft232h.py b/src/adafruit_blinka/board/ftdi_ft232h.py index 1d6a867..11bbce5 100644 --- a/src/adafruit_blinka/board/ftdi_ft232h.py +++ b/src/adafruit_blinka/board/ftdi_ft232h.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/giantboard.py b/src/adafruit_blinka/board/giantboard.py index 82fc925..dfbe1c2 100644 --- a/src/adafruit_blinka/board/giantboard.py +++ b/src/adafruit_blinka/board/giantboard.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/greatfet_one.py b/src/adafruit_blinka/board/greatfet_one.py index 87a5173..0279c30 100644 --- a/src/adafruit_blinka/board/greatfet_one.py +++ b/src/adafruit_blinka/board/greatfet_one.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/hardkernel/__init__.py b/src/adafruit_blinka/board/hardkernel/__init__.py index 4828ef7..a413031 100644 --- a/src/adafruit_blinka/board/hardkernel/__init__.py +++ b/src/adafruit_blinka/board/hardkernel/__init__.py @@ -1 +1,4 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """Boards definition from HardKernel""" diff --git a/src/adafruit_blinka/board/hardkernel/odroidc2.py b/src/adafruit_blinka/board/hardkernel/odroidc2.py index 75596ed..0064545 100644 --- a/src/adafruit_blinka/board/hardkernel/odroidc2.py +++ b/src/adafruit_blinka/board/hardkernel/odroidc2.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/hardkernel/odroidc4.py b/src/adafruit_blinka/board/hardkernel/odroidc4.py index 27ccae8..2191013 100644 --- a/src/adafruit_blinka/board/hardkernel/odroidc4.py +++ b/src/adafruit_blinka/board/hardkernel/odroidc4.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/hardkernel/odroidn2.py b/src/adafruit_blinka/board/hardkernel/odroidn2.py index a533958..4abce5b 100644 --- a/src/adafruit_blinka/board/hardkernel/odroidn2.py +++ b/src/adafruit_blinka/board/hardkernel/odroidn2.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/hardkernel/odroidxu4.py b/src/adafruit_blinka/board/hardkernel/odroidxu4.py index b052f7e..b53d1d8 100644 --- a/src/adafruit_blinka/board/hardkernel/odroidxu4.py +++ b/src/adafruit_blinka/board/hardkernel/odroidxu4.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/hifive_unleashed.py b/src/adafruit_blinka/board/hifive_unleashed.py index 4a04046..50fc12e 100644 --- a/src/adafruit_blinka/board/hifive_unleashed.py +++ b/src/adafruit_blinka/board/hifive_unleashed.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/itsybitsy_u2if.py b/src/adafruit_blinka/board/itsybitsy_u2if.py index c13d24c..f049078 100644 --- a/src/adafruit_blinka/board/itsybitsy_u2if.py +++ b/src/adafruit_blinka/board/itsybitsy_u2if.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """ Pin definitions for the ItsyBitsy RP2040 with u2if firmware. diff --git a/src/adafruit_blinka/board/lubancat/__init__.py b/src/adafruit_blinka/board/lubancat/__init__.py index d56e3ea..7c66a93 100644 --- a/src/adafruit_blinka/board/lubancat/__init__.py +++ b/src/adafruit_blinka/board/lubancat/__init__.py @@ -1 +1,4 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """Boards definition from LubanCat""" diff --git a/src/adafruit_blinka/board/lubancat/lubancat_imx6ull.py b/src/adafruit_blinka/board/lubancat/lubancat_imx6ull.py index 26a3221..d1cb16a 100644 --- a/src/adafruit_blinka/board/lubancat/lubancat_imx6ull.py +++ b/src/adafruit_blinka/board/lubancat/lubancat_imx6ull.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/lubancat/lubancat_stm32mp157.py b/src/adafruit_blinka/board/lubancat/lubancat_stm32mp157.py index 33dfdcd..1439b84 100644 --- a/src/adafruit_blinka/board/lubancat/lubancat_stm32mp157.py +++ b/src/adafruit_blinka/board/lubancat/lubancat_stm32mp157.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/macropad_u2if.py b/src/adafruit_blinka/board/macropad_u2if.py index 64b671b..314daf9 100644 --- a/src/adafruit_blinka/board/macropad_u2if.py +++ b/src/adafruit_blinka/board/macropad_u2if.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """ Pin definitions for the MacroPad RP2040 with u2if firmware. diff --git a/src/adafruit_blinka/board/microchip_mcp2221.py b/src/adafruit_blinka/board/microchip_mcp2221.py index b9580b6..bbfcc50 100644 --- a/src/adafruit_blinka/board/microchip_mcp2221.py +++ b/src/adafruit_blinka/board/microchip_mcp2221.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/nanopi/__init__.py b/src/adafruit_blinka/board/nanopi/__init__.py index 64e3b6c..5fe7ee9 100644 --- a/src/adafruit_blinka/board/nanopi/__init__.py +++ b/src/adafruit_blinka/board/nanopi/__init__.py @@ -1 +1,4 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """Board definitions from NanoPi""" diff --git a/src/adafruit_blinka/board/nanopi/duo2.py b/src/adafruit_blinka/board/nanopi/duo2.py index 368c939..6e4dae5 100644 --- a/src/adafruit_blinka/board/nanopi/duo2.py +++ b/src/adafruit_blinka/board/nanopi/duo2.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/nanopi/neo.py b/src/adafruit_blinka/board/nanopi/neo.py new file mode 100644 index 0000000..35100d0 --- /dev/null +++ b/src/adafruit_blinka/board/nanopi/neo.py @@ -0,0 +1,52 @@ +# 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 +# param_spidev_spi_bus=0 + +from adafruit_blinka.microcontroller.allwinner.h3 import pin + +# Left GPIOs +D2 = pin.PA12 +D3 = pin.PA11 +D4 = pin.PG11 +D17 = pin.PA0 +D27 = pin.PA2 +D22 = pin.PA3 +D10 = pin.PC0 +D9 = pin.PC1 +D11 = pin.PC2 + +# Right GPIOs +D14 = pin.PG6 +D15 = pin.PG7 +D18 = pin.PA6 +D23 = pin.PG8 +D24 = pin.PG9 +D25 = pin.PA1 +D8 = pin.PC3 + +# I2C +SDA = D2 +SCL = D3 + +# SPI +SCLK = D11 +MOSI = D10 +MISO = D9 +CE0 = D8 +SCK = SCLK + +# Serial UART +UART1_TX = D14 +UART1_RX = D15 + +UART2_RX = D8 +UART2_TX = D17 +UART2_RTS = D27 +UART2_CTS = D22 + +# PWM +PWM1 = D4 diff --git a/src/adafruit_blinka/board/nanopi/neoair.py b/src/adafruit_blinka/board/nanopi/neoair.py index 68b5cbe..35100d0 100644 --- a/src/adafruit_blinka/board/nanopi/neoair.py +++ b/src/adafruit_blinka/board/nanopi/neoair.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/nodemcu.py b/src/adafruit_blinka/board/nodemcu.py index 256e836..a6fceca 100755 --- a/src/adafruit_blinka/board/nodemcu.py +++ b/src/adafruit_blinka/board/nodemcu.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """NodeMCU pin names""" from adafruit_blinka.microcontroller.esp8266 import pin diff --git a/src/adafruit_blinka/board/nvidia/__init__.py b/src/adafruit_blinka/board/nvidia/__init__.py index 69cb70e..7e58d0d 100644 --- a/src/adafruit_blinka/board/nvidia/__init__.py +++ b/src/adafruit_blinka/board/nvidia/__init__.py @@ -1 +1,4 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """Boards definition from NVIDIA""" diff --git a/src/adafruit_blinka/board/nvidia/clara_agx_xavier.py b/src/adafruit_blinka/board/nvidia/clara_agx_xavier.py index d65e95a..420247e 100644 --- a/src/adafruit_blinka/board/nvidia/clara_agx_xavier.py +++ b/src/adafruit_blinka/board/nvidia/clara_agx_xavier.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/nvidia/jetson_nano.py b/src/adafruit_blinka/board/nvidia/jetson_nano.py index 8b9b77c..d4e03ac 100644 --- a/src/adafruit_blinka/board/nvidia/jetson_nano.py +++ b/src/adafruit_blinka/board/nvidia/jetson_nano.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/nvidia/jetson_nx.py b/src/adafruit_blinka/board/nvidia/jetson_nx.py index fad7c41..0323f6b 100644 --- a/src/adafruit_blinka/board/nvidia/jetson_nx.py +++ b/src/adafruit_blinka/board/nvidia/jetson_nx.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/nvidia/jetson_tx1.py b/src/adafruit_blinka/board/nvidia/jetson_tx1.py index cfa70dc..77efaec 100644 --- a/src/adafruit_blinka/board/nvidia/jetson_tx1.py +++ b/src/adafruit_blinka/board/nvidia/jetson_tx1.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/nvidia/jetson_tx2.py b/src/adafruit_blinka/board/nvidia/jetson_tx2.py index d043176..9597610 100644 --- a/src/adafruit_blinka/board/nvidia/jetson_tx2.py +++ b/src/adafruit_blinka/board/nvidia/jetson_tx2.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/nvidia/jetson_tx2_nx.py b/src/adafruit_blinka/board/nvidia/jetson_tx2_nx.py index ff5c154..0f1698c 100644 --- a/src/adafruit_blinka/board/nvidia/jetson_tx2_nx.py +++ b/src/adafruit_blinka/board/nvidia/jetson_tx2_nx.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/nvidia/jetson_xavier.py b/src/adafruit_blinka/board/nvidia/jetson_xavier.py index 2910582..d55bb82 100644 --- a/src/adafruit_blinka/board/nvidia/jetson_xavier.py +++ b/src/adafruit_blinka/board/nvidia/jetson_xavier.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/onion/__init__.py b/src/adafruit_blinka/board/onion/__init__.py index ab79770..19abbb3 100644 --- a/src/adafruit_blinka/board/onion/__init__.py +++ b/src/adafruit_blinka/board/onion/__init__.py @@ -1 +1,4 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """Boards definition from Onion""" diff --git a/src/adafruit_blinka/board/onion/omega2.py b/src/adafruit_blinka/board/onion/omega2.py index 6754d35..3574eb5 100644 --- a/src/adafruit_blinka/board/onion/omega2.py +++ b/src/adafruit_blinka/board/onion/omega2.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/orangepi/__init__.py b/src/adafruit_blinka/board/orangepi/__init__.py index 640a5b3..0333f98 100644 --- a/src/adafruit_blinka/board/orangepi/__init__.py +++ b/src/adafruit_blinka/board/orangepi/__init__.py @@ -1 +1,4 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """Boards definition from Xunlong Orange Pi""" diff --git a/src/adafruit_blinka/board/orangepi/orangepi3.py b/src/adafruit_blinka/board/orangepi/orangepi3.py new file mode 100644 index 0000000..ea3acd7 --- /dev/null +++ b/src/adafruit_blinka/board/orangepi/orangepi3.py @@ -0,0 +1,34 @@ +# 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 + +PD26 = pin.PD26 +SDA = pin.PD26 +PD25 = pin.PD25 +SCL = pin.PD25 +PD22 = pin.PD22 +PL2 = pin.PL2 +PL3 = pin.PL3 +PD24 = pin.PD24 +UART3_RX = pin.PD24 +PD18 = pin.PD18 +PD23 = pin.PD23 +UART3_TX = pin.PD23 +PL10 = pin.PL10 +PD15 = pin.PD15 +PD16 = pin.PD16 +PH5 = pin.PH5 +PH6 = pin.PH6 +PD21 = pin.PD21 +PH4 = pin.PH4 +SPI1_CLK = pin.PH4 +PH3 = pin.PH3 +SPI1_CS = pin.PH3 +PL8 = pin.PL8 + +SCLK = pin.PH4 +MOSI = pin.PH5 +MISO = pin.PH6 diff --git a/src/adafruit_blinka/board/orangepi/orangepipc.py b/src/adafruit_blinka/board/orangepi/orangepipc.py index e7c4fda..58830a0 100644 --- a/src/adafruit_blinka/board/orangepi/orangepipc.py +++ b/src/adafruit_blinka/board/orangepi/orangepipc.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/orangepi/orangepir1.py b/src/adafruit_blinka/board/orangepi/orangepir1.py index 0752c51..27b3ce8 100644 --- a/src/adafruit_blinka/board/orangepi/orangepir1.py +++ b/src/adafruit_blinka/board/orangepi/orangepir1.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/orangepi/orangepizero.py b/src/adafruit_blinka/board/orangepi/orangepizero.py index b0dadee..6e4155a 100644 --- a/src/adafruit_blinka/board/orangepi/orangepizero.py +++ b/src/adafruit_blinka/board/orangepi/orangepizero.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/orangepi/orangepizero2.py b/src/adafruit_blinka/board/orangepi/orangepizero2.py index 79f5d8e..662e2ce 100644 --- a/src/adafruit_blinka/board/orangepi/orangepizero2.py +++ b/src/adafruit_blinka/board/orangepi/orangepizero2.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/orangepi/orangepizeroplus.py b/src/adafruit_blinka/board/orangepi/orangepizeroplus.py index 36ed7f3..d8fcd3b 100644 --- a/src/adafruit_blinka/board/orangepi/orangepizeroplus.py +++ b/src/adafruit_blinka/board/orangepi/orangepizeroplus.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/orangepi/orangepizeroplus2h5.py b/src/adafruit_blinka/board/orangepi/orangepizeroplus2h5.py index c82b692..507b021 100644 --- a/src/adafruit_blinka/board/orangepi/orangepizeroplus2h5.py +++ b/src/adafruit_blinka/board/orangepi/orangepizeroplus2h5.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/pico_u2if.py b/src/adafruit_blinka/board/pico_u2if.py index 6564ed3..bf131b4 100644 --- a/src/adafruit_blinka/board/pico_u2if.py +++ b/src/adafruit_blinka/board/pico_u2if.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/pine64.py b/src/adafruit_blinka/board/pine64.py index 5a66f97..2ed3024 100644 --- a/src/adafruit_blinka/board/pine64.py +++ b/src/adafruit_blinka/board/pine64.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/pineH64.py b/src/adafruit_blinka/board/pineH64.py index 9a51362..54e2871 100644 --- a/src/adafruit_blinka/board/pineH64.py +++ b/src/adafruit_blinka/board/pineH64.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/pyboard.py b/src/adafruit_blinka/board/pyboard.py index 14ed957..d645953 100755 --- a/src/adafruit_blinka/board/pyboard.py +++ b/src/adafruit_blinka/board/pyboard.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """PyBoard pin names""" from adafruit_blinka.microcontroller.stm32.stm32f405 import pin diff --git a/src/adafruit_blinka/board/qt2040_trinkey_u2if.py b/src/adafruit_blinka/board/qt2040_trinkey_u2if.py index d71bea8..c80b67b 100644 --- a/src/adafruit_blinka/board/qt2040_trinkey_u2if.py +++ b/src/adafruit_blinka/board/qt2040_trinkey_u2if.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/qtpy_u2if.py b/src/adafruit_blinka/board/qtpy_u2if.py index 569ace2..1958777 100644 --- a/src/adafruit_blinka/board/qtpy_u2if.py +++ b/src/adafruit_blinka/board/qtpy_u2if.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """ Pin definitions for the QT Py RP2040 with u2if firmware. diff --git a/src/adafruit_blinka/board/radxa/__init__.py b/src/adafruit_blinka/board/radxa/__init__.py index b1b4b8c..a7b5c74 100644 --- a/src/adafruit_blinka/board/radxa/__init__.py +++ b/src/adafruit_blinka/board/radxa/__init__.py @@ -1 +1,4 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """Rock Pi Boards definition from Radxa""" diff --git a/src/adafruit_blinka/board/radxa/rockpi4.py b/src/adafruit_blinka/board/radxa/rockpi4.py index e327ff3..9c04670 100644 --- a/src/adafruit_blinka/board/radxa/rockpi4.py +++ b/src/adafruit_blinka/board/radxa/rockpi4.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/radxa/rockpie.py b/src/adafruit_blinka/board/radxa/rockpie.py index f5a5a74..3233d47 100644 --- a/src/adafruit_blinka/board/radxa/rockpie.py +++ b/src/adafruit_blinka/board/radxa/rockpie.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/radxa/rockpis.py b/src/adafruit_blinka/board/radxa/rockpis.py index bf147d7..c967d97 100644 --- a/src/adafruit_blinka/board/radxa/rockpis.py +++ b/src/adafruit_blinka/board/radxa/rockpis.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/raspberrypi/__init__.py b/src/adafruit_blinka/board/raspberrypi/__init__.py index 0969dbf..a39c1db 100644 --- a/src/adafruit_blinka/board/raspberrypi/__init__.py +++ b/src/adafruit_blinka/board/raspberrypi/__init__.py @@ -1 +1,4 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """Boards definition from Raspberry Pi""" diff --git a/src/adafruit_blinka/board/raspberrypi/pico.py b/src/adafruit_blinka/board/raspberrypi/pico.py index e554ad1..9885d43 100755 --- a/src/adafruit_blinka/board/raspberrypi/pico.py +++ b/src/adafruit_blinka/board/raspberrypi/pico.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/raspberrypi/raspi_1b_rev1.py b/src/adafruit_blinka/board/raspberrypi/raspi_1b_rev1.py index 59168dc..71b390f 100644 --- a/src/adafruit_blinka/board/raspberrypi/raspi_1b_rev1.py +++ b/src/adafruit_blinka/board/raspberrypi/raspi_1b_rev1.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/raspberrypi/raspi_1b_rev2.py b/src/adafruit_blinka/board/raspberrypi/raspi_1b_rev2.py index 47fc39b..51efd0f 100644 --- a/src/adafruit_blinka/board/raspberrypi/raspi_1b_rev2.py +++ b/src/adafruit_blinka/board/raspberrypi/raspi_1b_rev2.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/raspberrypi/raspi_40pin.py b/src/adafruit_blinka/board/raspberrypi/raspi_40pin.py index 91347e0..9541476 100644 --- a/src/adafruit_blinka/board/raspberrypi/raspi_40pin.py +++ b/src/adafruit_blinka/board/raspberrypi/raspi_40pin.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/raspberrypi/raspi_4b.py b/src/adafruit_blinka/board/raspberrypi/raspi_4b.py index 9fbb6ca..ffd4979 100644 --- a/src/adafruit_blinka/board/raspberrypi/raspi_4b.py +++ b/src/adafruit_blinka/board/raspberrypi/raspi_4b.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/raspberrypi/raspi_cm.py b/src/adafruit_blinka/board/raspberrypi/raspi_cm.py index 3380178..dbe7ccf 100644 --- a/src/adafruit_blinka/board/raspberrypi/raspi_cm.py +++ b/src/adafruit_blinka/board/raspberrypi/raspi_cm.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/soPine.py b/src/adafruit_blinka/board/soPine.py index 00ba5b6..fbd5e59 100644 --- a/src/adafruit_blinka/board/soPine.py +++ b/src/adafruit_blinka/board/soPine.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/stm32/__init__.py b/src/adafruit_blinka/board/stm32/__init__.py index d0e9d45..b1036dc 100644 --- a/src/adafruit_blinka/board/stm32/__init__.py +++ b/src/adafruit_blinka/board/stm32/__init__.py @@ -1 +1,4 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """Boards definition from STM32""" diff --git a/src/adafruit_blinka/board/stm32/osd32mp1_brk.py b/src/adafruit_blinka/board/stm32/osd32mp1_brk.py index 3fa9e46..6687f18 100644 --- a/src/adafruit_blinka/board/stm32/osd32mp1_brk.py +++ b/src/adafruit_blinka/board/stm32/osd32mp1_brk.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/stm32/osd32mp1_red.py b/src/adafruit_blinka/board/stm32/osd32mp1_red.py index 67395f9..6879c62 100644 --- a/src/adafruit_blinka/board/stm32/osd32mp1_red.py +++ b/src/adafruit_blinka/board/stm32/osd32mp1_red.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/stm32/stm32mp157c_dk2.py b/src/adafruit_blinka/board/stm32/stm32mp157c_dk2.py index 2f8cde1..dd42787 100644 --- a/src/adafruit_blinka/board/stm32/stm32mp157c_dk2.py +++ b/src/adafruit_blinka/board/stm32/stm32mp157c_dk2.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/tritium-h3.py b/src/adafruit_blinka/board/tritium-h3.py index 516528a..ce25dc9 100644 --- a/src/adafruit_blinka/board/tritium-h3.py +++ b/src/adafruit_blinka/board/tritium-h3.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/board/udoo_x86ultra.py b/src/adafruit_blinka/board/udoo_x86ultra.py index 744d774..a4bf1ce 100644 --- a/src/adafruit_blinka/board/udoo_x86ultra.py +++ b/src/adafruit_blinka/board/udoo_x86ultra.py @@ -1,3 +1,6 @@ +# 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) diff --git a/src/adafruit_blinka/microcontroller/allwinner/__init__.py b/src/adafruit_blinka/microcontroller/allwinner/__init__.py index a086f84..b95dd93 100644 --- a/src/adafruit_blinka/microcontroller/allwinner/__init__.py +++ b/src/adafruit_blinka/microcontroller/allwinner/__init__.py @@ -1 +1,4 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """Definition of all Allwinner chips""" diff --git a/src/adafruit_blinka/microcontroller/allwinner/a33/__init__.py b/src/adafruit_blinka/microcontroller/allwinner/a33/__init__.py index bd5f1fe..79724d0 100644 --- a/src/adafruit_blinka/microcontroller/allwinner/a33/__init__.py +++ b/src/adafruit_blinka/microcontroller/allwinner/a33/__init__.py @@ -1 +1,4 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """Definition for the AllWinner A33 chip""" diff --git a/src/adafruit_blinka/microcontroller/allwinner/a33/pin.py b/src/adafruit_blinka/microcontroller/allwinner/a33/pin.py index fc88401..87200af 100644 --- a/src/adafruit_blinka/microcontroller/allwinner/a33/pin.py +++ b/src/adafruit_blinka/microcontroller/allwinner/a33/pin.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/microcontroller/allwinner/a64/__init__.py b/src/adafruit_blinka/microcontroller/allwinner/a64/__init__.py index 7dbcd8c..3ee166a 100644 --- a/src/adafruit_blinka/microcontroller/allwinner/a64/__init__.py +++ b/src/adafruit_blinka/microcontroller/allwinner/a64/__init__.py @@ -1 +1,4 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """Definition for the AllWinner A64 chip""" diff --git a/src/adafruit_blinka/microcontroller/allwinner/a64/pin.py b/src/adafruit_blinka/microcontroller/allwinner/a64/pin.py index e362728..7742811 100644 --- a/src/adafruit_blinka/microcontroller/allwinner/a64/pin.py +++ b/src/adafruit_blinka/microcontroller/allwinner/a64/pin.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/microcontroller/allwinner/h3/__init__.py b/src/adafruit_blinka/microcontroller/allwinner/h3/__init__.py index 80bc28f..d50b214 100644 --- a/src/adafruit_blinka/microcontroller/allwinner/h3/__init__.py +++ b/src/adafruit_blinka/microcontroller/allwinner/h3/__init__.py @@ -1 +1,4 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """Definition for the AllWinner H3 chip""" diff --git a/src/adafruit_blinka/microcontroller/allwinner/h3/pin.py b/src/adafruit_blinka/microcontroller/allwinner/h3/pin.py index 0bed051..b81c743 100644 --- a/src/adafruit_blinka/microcontroller/allwinner/h3/pin.py +++ b/src/adafruit_blinka/microcontroller/allwinner/h3/pin.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/microcontroller/allwinner/h5/__init__.py b/src/adafruit_blinka/microcontroller/allwinner/h5/__init__.py index d5658ba..09cd491 100644 --- a/src/adafruit_blinka/microcontroller/allwinner/h5/__init__.py +++ b/src/adafruit_blinka/microcontroller/allwinner/h5/__init__.py @@ -1 +1,4 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """Definition for the AllWinner H5 chip""" diff --git a/src/adafruit_blinka/microcontroller/allwinner/h5/pin.py b/src/adafruit_blinka/microcontroller/allwinner/h5/pin.py index 5ab66e8..16b035d 100644 --- a/src/adafruit_blinka/microcontroller/allwinner/h5/pin.py +++ b/src/adafruit_blinka/microcontroller/allwinner/h5/pin.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/microcontroller/allwinner/h6/__init__.py b/src/adafruit_blinka/microcontroller/allwinner/h6/__init__.py index 0eabf00..e6b43a7 100644 --- a/src/adafruit_blinka/microcontroller/allwinner/h6/__init__.py +++ b/src/adafruit_blinka/microcontroller/allwinner/h6/__init__.py @@ -1 +1,4 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """Definition for the AllWinner H6 chip""" diff --git a/src/adafruit_blinka/microcontroller/allwinner/h6/pin.py b/src/adafruit_blinka/microcontroller/allwinner/h6/pin.py index 53c469f..5e183a2 100644 --- a/src/adafruit_blinka/microcontroller/allwinner/h6/pin.py +++ b/src/adafruit_blinka/microcontroller/allwinner/h6/pin.py @@ -1,3 +1,6 @@ +# 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 @@ -39,8 +42,11 @@ SPI1_MISO = PH6 PH8 = Pin((1, 230)) PH9 = Pin((1, 231)) +PL2 = Pin((0, 2)) +PL3 = Pin((0, 3)) PL8 = Pin((0, 8)) PL9 = Pin((0, 9)) +PL10 = Pin((0, 10)) i2cPorts = ((0, TWI0_SCL, TWI0_SDA),) spiPorts = ((1, SPI1_SCLK, SPI1_MOSI, SPI1_MISO),) diff --git a/src/adafruit_blinka/microcontroller/allwinner/h616/__init__.py b/src/adafruit_blinka/microcontroller/allwinner/h616/__init__.py index 82e66ce..1064977 100644 --- a/src/adafruit_blinka/microcontroller/allwinner/h616/__init__.py +++ b/src/adafruit_blinka/microcontroller/allwinner/h616/__init__.py @@ -1 +1,4 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """Definition for the AllWinner H616 chip""" diff --git a/src/adafruit_blinka/microcontroller/allwinner/h616/pin.py b/src/adafruit_blinka/microcontroller/allwinner/h616/pin.py index 5c046d1..3ee5a9c 100644 --- a/src/adafruit_blinka/microcontroller/allwinner/h616/pin.py +++ b/src/adafruit_blinka/microcontroller/allwinner/h616/pin.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/microcontroller/am335x/pin.py b/src/adafruit_blinka/microcontroller/am335x/pin.py index 1553ff2..0986849 100644 --- a/src/adafruit_blinka/microcontroller/am335x/pin.py +++ b/src/adafruit_blinka/microcontroller/am335x/pin.py @@ -1,5 +1,8 @@ +# 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: diff --git a/src/adafruit_blinka/microcontroller/am335x/sysfs_pwmout.py b/src/adafruit_blinka/microcontroller/am335x/sysfs_pwmout.py index b99e1cc..776f9bb 100644 --- a/src/adafruit_blinka/microcontroller/am335x/sysfs_pwmout.py +++ b/src/adafruit_blinka/microcontroller/am335x/sysfs_pwmout.py @@ -1,3 +1,6 @@ +# 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 @@ -101,7 +104,7 @@ class PWMOut: 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: @@ -131,7 +134,9 @@ class PWMOut: 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: @@ -170,7 +175,7 @@ class PWMOut: 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): @@ -184,7 +189,7 @@ class PWMOut: 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 diff --git a/src/adafruit_blinka/microcontroller/amlogic/meson_g12_common/pin.py b/src/adafruit_blinka/microcontroller/amlogic/meson_g12_common/pin.py index 82fa6ea..d920b1f 100644 --- a/src/adafruit_blinka/microcontroller/amlogic/meson_g12_common/pin.py +++ b/src/adafruit_blinka/microcontroller/amlogic/meson_g12_common/pin.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """ G12A, G12B, and SM1 Common Definitions Ref: @@ -110,7 +113,7 @@ uartPorts = ((1, UART1_TX, UART1_RX),) 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: diff --git a/src/adafruit_blinka/microcontroller/amlogic/s905/pin.py b/src/adafruit_blinka/microcontroller/amlogic/s905/pin.py index 346a808..f82435d 100644 --- a/src/adafruit_blinka/microcontroller/amlogic/s905/pin.py +++ b/src/adafruit_blinka/microcontroller/amlogic/s905/pin.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/microcontroller/amlogic/s905x3/pin.py b/src/adafruit_blinka/microcontroller/amlogic/s905x3/pin.py index 378fa60..861c72b 100644 --- a/src/adafruit_blinka/microcontroller/amlogic/s905x3/pin.py +++ b/src/adafruit_blinka/microcontroller/amlogic/s905x3/pin.py @@ -1,3 +1,6 @@ +# 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 * diff --git a/src/adafruit_blinka/microcontroller/amlogic/s922x/pin.py b/src/adafruit_blinka/microcontroller/amlogic/s922x/pin.py index b9198ae..5e2ac18 100644 --- a/src/adafruit_blinka/microcontroller/amlogic/s922x/pin.py +++ b/src/adafruit_blinka/microcontroller/amlogic/s922x/pin.py @@ -1,3 +1,6 @@ +# 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 * diff --git a/src/adafruit_blinka/microcontroller/atheros/ar9331/pin.py b/src/adafruit_blinka/microcontroller/atheros/ar9331/pin.py index 9b563ff..1373c92 100644 --- a/src/adafruit_blinka/microcontroller/atheros/ar9331/pin.py +++ b/src/adafruit_blinka/microcontroller/atheros/ar9331/pin.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/microcontroller/bcm2711/pin.py b/src/adafruit_blinka/microcontroller/bcm2711/pin.py index f56d585..91b4030 100644 --- a/src/adafruit_blinka/microcontroller/bcm2711/pin.py +++ b/src/adafruit_blinka/microcontroller/bcm2711/pin.py @@ -1,5 +1,8 @@ +# 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 diff --git a/src/adafruit_blinka/microcontroller/bcm283x/neopixel.py b/src/adafruit_blinka/microcontroller/bcm283x/neopixel.py index 6c0726f..c743220 100644 --- a/src/adafruit_blinka/microcontroller/bcm283x/neopixel.py +++ b/src/adafruit_blinka/microcontroller/bcm283x/neopixel.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """BCM283x NeoPixel Driver Class""" import time import atexit diff --git a/src/adafruit_blinka/microcontroller/bcm283x/pin.py b/src/adafruit_blinka/microcontroller/bcm283x/pin.py index 5022366..a24ed22 100644 --- a/src/adafruit_blinka/microcontroller/bcm283x/pin.py +++ b/src/adafruit_blinka/microcontroller/bcm283x/pin.py @@ -1,5 +1,8 @@ +# 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! diff --git a/src/adafruit_blinka/microcontroller/bcm283x/pulseio/PulseIn.py b/src/adafruit_blinka/microcontroller/bcm283x/pulseio/PulseIn.py index 700d8de..caf0d62 100644 --- a/src/adafruit_blinka/microcontroller/bcm283x/pulseio/PulseIn.py +++ b/src/adafruit_blinka/microcontroller/bcm283x/pulseio/PulseIn.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """Custom PulseIn Class to read PWM signals""" import time import subprocess @@ -51,7 +54,7 @@ class PulseIn: ) 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" @@ -71,7 +74,7 @@ class 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 diff --git a/src/adafruit_blinka/microcontroller/bcm283x/pulseio/libgpiod_pulsein.license b/src/adafruit_blinka/microcontroller/bcm283x/pulseio/libgpiod_pulsein.license new file mode 100644 index 0000000..cc69330 --- /dev/null +++ b/src/adafruit_blinka/microcontroller/bcm283x/pulseio/libgpiod_pulsein.license @@ -0,0 +1,3 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT diff --git a/src/adafruit_blinka/microcontroller/bcm283x/pulseio/libgpiod_pulsein64 b/src/adafruit_blinka/microcontroller/bcm283x/pulseio/libgpiod_pulsein64 old mode 100644 new mode 100755 diff --git a/src/adafruit_blinka/microcontroller/bcm283x/pulseio/libgpiod_pulsein64.license b/src/adafruit_blinka/microcontroller/bcm283x/pulseio/libgpiod_pulsein64.license new file mode 100644 index 0000000..cc69330 --- /dev/null +++ b/src/adafruit_blinka/microcontroller/bcm283x/pulseio/libgpiod_pulsein64.license @@ -0,0 +1,3 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT diff --git a/src/adafruit_blinka/microcontroller/bcm283x/pulseio/PWMOut.py b/src/adafruit_blinka/microcontroller/bcm283x/pwmio/PWMOut.py similarity index 97% rename from src/adafruit_blinka/microcontroller/bcm283x/pulseio/PWMOut.py rename to src/adafruit_blinka/microcontroller/bcm283x/pwmio/PWMOut.py index 65f269f..3b7b57f 100644 --- a/src/adafruit_blinka/microcontroller/bcm283x/pulseio/PWMOut.py +++ b/src/adafruit_blinka/microcontroller/bcm283x/pwmio/PWMOut.py @@ -1,5 +1,8 @@ +# 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! diff --git a/src/adafruit_blinka/microcontroller/bcm283x/pwmio/__init__.py b/src/adafruit_blinka/microcontroller/bcm283x/pwmio/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/adafruit_blinka/microcontroller/dra74x/pin.py b/src/adafruit_blinka/microcontroller/dra74x/pin.py index 28738c1..3894bb6 100644 --- a/src/adafruit_blinka/microcontroller/dra74x/pin.py +++ b/src/adafruit_blinka/microcontroller/dra74x/pin.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/microcontroller/esp8266/pin.py b/src/adafruit_blinka/microcontroller/esp8266/pin.py index 5ba9884..5f57036 100755 --- a/src/adafruit_blinka/microcontroller/esp8266/pin.py +++ b/src/adafruit_blinka/microcontroller/esp8266/pin.py @@ -1,6 +1,9 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """ESP8266 pin names""" -from microcontroller import Pin +from ..generic_micropython import Pin GPIO0 = Pin(0) GPIO1 = Pin(1) diff --git a/src/adafruit_blinka/microcontroller/ftdi_mpsse/ft2232h/pin.py b/src/adafruit_blinka/microcontroller/ftdi_mpsse/ft2232h/pin.py index 4fa8440..d81caff 100644 --- a/src/adafruit_blinka/microcontroller/ftdi_mpsse/ft2232h/pin.py +++ b/src/adafruit_blinka/microcontroller/ftdi_mpsse/ft2232h/pin.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/microcontroller/ftdi_mpsse/ft232h/pin.py b/src/adafruit_blinka/microcontroller/ftdi_mpsse/ft232h/pin.py index 178979e..2cc0337 100644 --- a/src/adafruit_blinka/microcontroller/ftdi_mpsse/ft232h/pin.py +++ b/src/adafruit_blinka/microcontroller/ftdi_mpsse/ft232h/pin.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/microcontroller/ftdi_mpsse/mpsse/i2c.py b/src/adafruit_blinka/microcontroller/ftdi_mpsse/mpsse/i2c.py index f9539fb..b98c59b 100644 --- a/src/adafruit_blinka/microcontroller/ftdi_mpsse/mpsse/i2c.py +++ b/src/adafruit_blinka/microcontroller/ftdi_mpsse/mpsse/i2c.py @@ -1,3 +1,6 @@ +# 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 ( diff --git a/src/adafruit_blinka/microcontroller/ftdi_mpsse/mpsse/pin.py b/src/adafruit_blinka/microcontroller/ftdi_mpsse/mpsse/pin.py index 1460bd5..cf93161 100644 --- a/src/adafruit_blinka/microcontroller/ftdi_mpsse/mpsse/pin.py +++ b/src/adafruit_blinka/microcontroller/ftdi_mpsse/mpsse/pin.py @@ -1,3 +1,6 @@ +# 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 ( diff --git a/src/adafruit_blinka/microcontroller/ftdi_mpsse/mpsse/spi.py b/src/adafruit_blinka/microcontroller/ftdi_mpsse/mpsse/spi.py index 0b76c08..66bb8fd 100644 --- a/src/adafruit_blinka/microcontroller/ftdi_mpsse/mpsse/spi.py +++ b/src/adafruit_blinka/microcontroller/ftdi_mpsse/mpsse/spi.py @@ -1,3 +1,6 @@ +# 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 ( diff --git a/src/adafruit_blinka/microcontroller/ftdi_mpsse/mpsse/url.py b/src/adafruit_blinka/microcontroller/ftdi_mpsse/mpsse/url.py index a3923ca..e264b94 100644 --- a/src/adafruit_blinka/microcontroller/ftdi_mpsse/mpsse/url.py +++ b/src/adafruit_blinka/microcontroller/ftdi_mpsse/mpsse/url.py @@ -1,3 +1,6 @@ +# 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. diff --git a/src/adafruit_blinka/microcontroller/generic_linux/i2c.py b/src/adafruit_blinka/microcontroller/generic_linux/i2c.py index bb912a5..f6bee20 100644 --- a/src/adafruit_blinka/microcontroller/generic_linux/i2c.py +++ b/src/adafruit_blinka/microcontroller/generic_linux/i2c.py @@ -1,5 +1,8 @@ +# 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: diff --git a/src/adafruit_blinka/microcontroller/generic_linux/libgpiod_pin.py b/src/adafruit_blinka/microcontroller/generic_linux/libgpiod_pin.py index db9007a..4ed6135 100644 --- a/src/adafruit_blinka/microcontroller/generic_linux/libgpiod_pin.py +++ b/src/adafruit_blinka/microcontroller/generic_linux/libgpiod_pin.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """A Pin class for use with libgpiod.""" try: import gpiod diff --git a/src/adafruit_blinka/microcontroller/generic_linux/periphery_pin.py b/src/adafruit_blinka/microcontroller/generic_linux/periphery_pin.py index 0986d01..2a5464d 100644 --- a/src/adafruit_blinka/microcontroller/generic_linux/periphery_pin.py +++ b/src/adafruit_blinka/microcontroller/generic_linux/periphery_pin.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/microcontroller/generic_linux/spi.py b/src/adafruit_blinka/microcontroller/generic_linux/spi.py index 4549092..50ad8c1 100755 --- a/src/adafruit_blinka/microcontroller/generic_linux/spi.py +++ b/src/adafruit_blinka/microcontroller/generic_linux/spi.py @@ -1,5 +1,8 @@ +# 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 diff --git a/src/adafruit_blinka/microcontroller/generic_linux/sysfs_analogin.py b/src/adafruit_blinka/microcontroller/generic_linux/sysfs_analogin.py index e8a7376..1b725b9 100644 --- a/src/adafruit_blinka/microcontroller/generic_linux/sysfs_analogin.py +++ b/src/adafruit_blinka/microcontroller/generic_linux/sysfs_analogin.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """ `analogio` - Analog input control ================================================= @@ -79,7 +82,7 @@ class AnalogIn(ContextManaged): 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 diff --git a/src/adafruit_blinka/microcontroller/generic_linux/sysfs_analogout.py b/src/adafruit_blinka/microcontroller/generic_linux/sysfs_analogout.py index 56263d3..0b2d857 100644 --- a/src/adafruit_blinka/microcontroller/generic_linux/sysfs_analogout.py +++ b/src/adafruit_blinka/microcontroller/generic_linux/sysfs_analogout.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """ `analogio` - Analog output control ================================================= @@ -85,7 +88,7 @@ class AnalogOut(ContextManaged): 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): diff --git a/src/adafruit_blinka/microcontroller/generic_linux/sysfs_pin.py b/src/adafruit_blinka/microcontroller/generic_linux/sysfs_pin.py index 50c27a7..8ce1a65 100644 --- a/src/adafruit_blinka/microcontroller/generic_linux/sysfs_pin.py +++ b/src/adafruit_blinka/microcontroller/generic_linux/sysfs_pin.py @@ -1,3 +1,6 @@ +# 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 @@ -132,7 +135,7 @@ class Pin: 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 @@ -155,7 +158,9 @@ class Pin: # 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: @@ -170,7 +175,9 @@ class Pin: 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( @@ -268,7 +275,7 @@ class Pin: 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): @@ -287,7 +294,9 @@ class Pin: 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( @@ -304,7 +313,9 @@ class Pin: # 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( diff --git a/src/adafruit_blinka/microcontroller/generic_linux/sysfs_pwmout.py b/src/adafruit_blinka/microcontroller/generic_linux/sysfs_pwmout.py index f751b71..4aca0a2 100644 --- a/src/adafruit_blinka/microcontroller/generic_linux/sysfs_pwmout.py +++ b/src/adafruit_blinka/microcontroller/generic_linux/sysfs_pwmout.py @@ -1,3 +1,6 @@ +# 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 @@ -105,13 +108,15 @@ class PWMOut: 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 @@ -126,6 +131,7 @@ class PWMOut: channel_path, self._pin_path.format(self._pwmpin), "period" ), "w", + encoding="utf-8", ): break except IOError as e: @@ -158,7 +164,9 @@ class PWMOut: 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: @@ -187,7 +195,7 @@ class PWMOut: 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") @@ -202,7 +210,7 @@ class PWMOut: 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 diff --git a/src/adafruit_blinka/microcontroller/generic_micropython/__init__.py b/src/adafruit_blinka/microcontroller/generic_micropython/__init__.py index e69de29..cb3683c 100644 --- a/src/adafruit_blinka/microcontroller/generic_micropython/__init__.py +++ b/src/adafruit_blinka/microcontroller/generic_micropython/__init__.py @@ -0,0 +1,33 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT +"""Genereic Pin class for use with MicroPython boards""" +from adafruit_blinka import Enum + + +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 + import microcontroller.pin + + 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) diff --git a/src/adafruit_blinka/microcontroller/generic_micropython/i2c.py b/src/adafruit_blinka/microcontroller/generic_micropython/i2c.py index 3ace77a..2036233 100755 --- a/src/adafruit_blinka/microcontroller/generic_micropython/i2c.py +++ b/src/adafruit_blinka/microcontroller/generic_micropython/i2c.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """I2C Class for Generic MicroPython""" from machine import I2C as _I2C @@ -33,7 +36,7 @@ class I2C: out_end=None, in_start=0, in_end=None, - stop=False + stop=False, ): """Write data from buffer_out to an address and then read data from an address and into buffer_in diff --git a/src/adafruit_blinka/microcontroller/generic_micropython/spi.py b/src/adafruit_blinka/microcontroller/generic_micropython/spi.py index 7842a19..b897951 100755 --- a/src/adafruit_blinka/microcontroller/generic_micropython/spi.py +++ b/src/adafruit_blinka/microcontroller/generic_micropython/spi.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """SPI Class for Generic MicroPython""" from machine import SPI as _SPI diff --git a/src/adafruit_blinka/microcontroller/hfu540/pin.py b/src/adafruit_blinka/microcontroller/hfu540/pin.py index 954b44b..63c85bd 100644 --- a/src/adafruit_blinka/microcontroller/hfu540/pin.py +++ b/src/adafruit_blinka/microcontroller/hfu540/pin.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/microcontroller/mcp2221/analogio.py b/src/adafruit_blinka/microcontroller/mcp2221/analogio.py index 3025202..03e7b66 100644 --- a/src/adafruit_blinka/microcontroller/mcp2221/analogio.py +++ b/src/adafruit_blinka/microcontroller/mcp2221/analogio.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """ `analogio` - Analog input and output control ================================================= diff --git a/src/adafruit_blinka/microcontroller/mcp2221/i2c.py b/src/adafruit_blinka/microcontroller/mcp2221/i2c.py index e320ac1..d8e40c2 100644 --- a/src/adafruit_blinka/microcontroller/mcp2221/i2c.py +++ b/src/adafruit_blinka/microcontroller/mcp2221/i2c.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """I2C Class for MCP2221""" from .mcp2221 import mcp2221 diff --git a/src/adafruit_blinka/microcontroller/mcp2221/mcp2221.py b/src/adafruit_blinka/microcontroller/mcp2221/mcp2221.py index 665be7f..5ff027a 100644 --- a/src/adafruit_blinka/microcontroller/mcp2221/mcp2221.py +++ b/src/adafruit_blinka/microcontroller/mcp2221/mcp2221.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """Chip Definition for MCP2221""" import os diff --git a/src/adafruit_blinka/microcontroller/mcp2221/pin.py b/src/adafruit_blinka/microcontroller/mcp2221/pin.py index f5e73bb..bf4ba97 100644 --- a/src/adafruit_blinka/microcontroller/mcp2221/pin.py +++ b/src/adafruit_blinka/microcontroller/mcp2221/pin.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """MCP2221 pin names""" from .mcp2221 import mcp2221 diff --git a/src/adafruit_blinka/microcontroller/mips24kec/pin.py b/src/adafruit_blinka/microcontroller/mips24kec/pin.py index 8181a0f..246aa0d 100644 --- a/src/adafruit_blinka/microcontroller/mips24kec/pin.py +++ b/src/adafruit_blinka/microcontroller/mips24kec/pin.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/microcontroller/mt8167/pin.py b/src/adafruit_blinka/microcontroller/mt8167/pin.py index ff5e0e5..91e1ba6 100644 --- a/src/adafruit_blinka/microcontroller/mt8167/pin.py +++ b/src/adafruit_blinka/microcontroller/mt8167/pin.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/microcontroller/nova/__init__.py b/src/adafruit_blinka/microcontroller/nova/__init__.py index d9b7f75..4846370 100644 --- a/src/adafruit_blinka/microcontroller/nova/__init__.py +++ b/src/adafruit_blinka/microcontroller/nova/__init__.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """Generic Connection class for Binho Nova to keep track of connection""" diff --git a/src/adafruit_blinka/microcontroller/nova/i2c.py b/src/adafruit_blinka/microcontroller/nova/i2c.py index e87c942..4bbde4a 100644 --- a/src/adafruit_blinka/microcontroller/nova/i2c.py +++ b/src/adafruit_blinka/microcontroller/nova/i2c.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/microcontroller/nova/pin.py b/src/adafruit_blinka/microcontroller/nova/pin.py index 590ebc6..1fb4c9a 100644 --- a/src/adafruit_blinka/microcontroller/nova/pin.py +++ b/src/adafruit_blinka/microcontroller/nova/pin.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """Binho Nova pin names""" diff --git a/src/adafruit_blinka/microcontroller/nova/pwmout.py b/src/adafruit_blinka/microcontroller/nova/pwmout.py index 2ff0c25..5c9083d 100644 --- a/src/adafruit_blinka/microcontroller/nova/pwmout.py +++ b/src/adafruit_blinka/microcontroller/nova/pwmout.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """PWMOut Class for Binho Nova""" try: diff --git a/src/adafruit_blinka/microcontroller/nova/spi.py b/src/adafruit_blinka/microcontroller/nova/spi.py index e03853d..7f46def 100644 --- a/src/adafruit_blinka/microcontroller/nova/spi.py +++ b/src/adafruit_blinka/microcontroller/nova/spi.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/microcontroller/nova/uart.py b/src/adafruit_blinka/microcontroller/nova/uart.py index 5d698f8..ff4dc60 100644 --- a/src/adafruit_blinka/microcontroller/nova/uart.py +++ b/src/adafruit_blinka/microcontroller/nova/uart.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/microcontroller/nxp_imx6ull/pin.py b/src/adafruit_blinka/microcontroller/nxp_imx6ull/pin.py index 7ffa331..020d9af 100644 --- a/src/adafruit_blinka/microcontroller/nxp_imx6ull/pin.py +++ b/src/adafruit_blinka/microcontroller/nxp_imx6ull/pin.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/microcontroller/nxp_imx8m/pin.py b/src/adafruit_blinka/microcontroller/nxp_imx8m/pin.py index 0d364e4..0202042 100644 --- a/src/adafruit_blinka/microcontroller/nxp_imx8m/pin.py +++ b/src/adafruit_blinka/microcontroller/nxp_imx8m/pin.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/microcontroller/nxp_lpc4330/analogio.py b/src/adafruit_blinka/microcontroller/nxp_lpc4330/analogio.py index e45e8d2..e9ef6e4 100644 --- a/src/adafruit_blinka/microcontroller/nxp_lpc4330/analogio.py +++ b/src/adafruit_blinka/microcontroller/nxp_lpc4330/analogio.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """ `analogio` - Analog input and output control ================================================= diff --git a/src/adafruit_blinka/microcontroller/nxp_lpc4330/i2c.py b/src/adafruit_blinka/microcontroller/nxp_lpc4330/i2c.py index 4c63111..53e18e8 100644 --- a/src/adafruit_blinka/microcontroller/nxp_lpc4330/i2c.py +++ b/src/adafruit_blinka/microcontroller/nxp_lpc4330/i2c.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """I2C Class for NXP LPC4330""" from greatfet import GreatFET diff --git a/src/adafruit_blinka/microcontroller/nxp_lpc4330/pin.py b/src/adafruit_blinka/microcontroller/nxp_lpc4330/pin.py index 24d542d..187a4d3 100644 --- a/src/adafruit_blinka/microcontroller/nxp_lpc4330/pin.py +++ b/src/adafruit_blinka/microcontroller/nxp_lpc4330/pin.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """NXP LPC4330 pin names""" try: from greatfet import GreatFET diff --git a/src/adafruit_blinka/microcontroller/nxp_lpc4330/pwmout.py b/src/adafruit_blinka/microcontroller/nxp_lpc4330/pwmout.py index 91c3ede..cab1258 100644 --- a/src/adafruit_blinka/microcontroller/nxp_lpc4330/pwmout.py +++ b/src/adafruit_blinka/microcontroller/nxp_lpc4330/pwmout.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """PWMOut Class for NXP LPC4330""" from greatfet import GreatFET diff --git a/src/adafruit_blinka/microcontroller/nxp_lpc4330/spi.py b/src/adafruit_blinka/microcontroller/nxp_lpc4330/spi.py index 28b4fd2..29f4734 100644 --- a/src/adafruit_blinka/microcontroller/nxp_lpc4330/spi.py +++ b/src/adafruit_blinka/microcontroller/nxp_lpc4330/spi.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """SPI Class for NXP LPC4330""" from greatfet import GreatFET @@ -69,8 +72,7 @@ class SPI: 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 ): diff --git a/src/adafruit_blinka/microcontroller/nxp_lpc4330/uart.py b/src/adafruit_blinka/microcontroller/nxp_lpc4330/uart.py index 3f07700..f2c1c55 100644 --- a/src/adafruit_blinka/microcontroller/nxp_lpc4330/uart.py +++ b/src/adafruit_blinka/microcontroller/nxp_lpc4330/uart.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/microcontroller/pentium/n3710/.gitignore b/src/adafruit_blinka/microcontroller/pentium/n3710/.gitignore deleted file mode 100644 index 0e7f550..0000000 --- a/src/adafruit_blinka/microcontroller/pentium/n3710/.gitignore +++ /dev/null @@ -1 +0,0 @@ -pins diff --git a/src/adafruit_blinka/microcontroller/pentium/n3710/pin.py b/src/adafruit_blinka/microcontroller/pentium/n3710/pin.py index 3093a20..632e75a 100644 --- a/src/adafruit_blinka/microcontroller/pentium/n3710/pin.py +++ b/src/adafruit_blinka/microcontroller/pentium/n3710/pin.py @@ -1,3 +1,6 @@ +# 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() calls. diff --git a/src/adafruit_blinka/microcontroller/rockchip/PWMOut.py b/src/adafruit_blinka/microcontroller/rockchip/PWMOut.py index 09c4a8e..56dd280 100644 --- a/src/adafruit_blinka/microcontroller/rockchip/PWMOut.py +++ b/src/adafruit_blinka/microcontroller/rockchip/PWMOut.py @@ -1,3 +1,6 @@ +# 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 @@ -91,7 +94,9 @@ class PWMOut: 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( @@ -122,6 +127,7 @@ class PWMOut: with open( os.path.join(self._channel_path, "period"), "w", + encoding="utf-8", ): break except IOError as e: @@ -157,11 +163,15 @@ class PWMOut: 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 diff --git a/src/adafruit_blinka/microcontroller/rockchip/rk3308/pin.py b/src/adafruit_blinka/microcontroller/rockchip/rk3308/pin.py index 818c9dd..24b0c40 100644 --- a/src/adafruit_blinka/microcontroller/rockchip/rk3308/pin.py +++ b/src/adafruit_blinka/microcontroller/rockchip/rk3308/pin.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/microcontroller/rockchip/rk3328/__init__.py b/src/adafruit_blinka/microcontroller/rockchip/rk3328/__init__.py index 83fc22c..83bd2db 100644 --- a/src/adafruit_blinka/microcontroller/rockchip/rk3328/__init__.py +++ b/src/adafruit_blinka/microcontroller/rockchip/rk3328/__init__.py @@ -1 +1,4 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """Definition for the Rockchip RK3328 chip""" diff --git a/src/adafruit_blinka/microcontroller/rockchip/rk3328/pin.py b/src/adafruit_blinka/microcontroller/rockchip/rk3328/pin.py index b9cc3d7..e41ac2f 100644 --- a/src/adafruit_blinka/microcontroller/rockchip/rk3328/pin.py +++ b/src/adafruit_blinka/microcontroller/rockchip/rk3328/pin.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/microcontroller/rockchip/rk3399/pin.py b/src/adafruit_blinka/microcontroller/rockchip/rk3399/pin.py index 4419861..9d6de08 100644 --- a/src/adafruit_blinka/microcontroller/rockchip/rk3399/pin.py +++ b/src/adafruit_blinka/microcontroller/rockchip/rk3399/pin.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/microcontroller/rp2040/i2c.py b/src/adafruit_blinka/microcontroller/rp2040/i2c.py index 2a6c6a0..8daf249 100644 --- a/src/adafruit_blinka/microcontroller/rp2040/i2c.py +++ b/src/adafruit_blinka/microcontroller/rp2040/i2c.py @@ -1,3 +1,6 @@ +# 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 @@ -46,7 +49,7 @@ class I2C: out_end=None, in_start=0, in_end=None, - stop=False + stop=False, ): """Write data from buffer_out to an address and then read data from an address and into buffer_in diff --git a/src/adafruit_blinka/microcontroller/rp2040/pin.py b/src/adafruit_blinka/microcontroller/rp2040/pin.py index bc086c9..518090d 100755 --- a/src/adafruit_blinka/microcontroller/rp2040/pin.py +++ b/src/adafruit_blinka/microcontroller/rp2040/pin.py @@ -1,6 +1,9 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """RP2040 pins""" -from microcontroller import Pin +from ..generic_micropython import Pin GP0 = Pin(0) GP1 = Pin(1) diff --git a/src/adafruit_blinka/microcontroller/rp2040/spi.py b/src/adafruit_blinka/microcontroller/rp2040/spi.py index f3801a0..4480a88 100644 --- a/src/adafruit_blinka/microcontroller/rp2040/spi.py +++ b/src/adafruit_blinka/microcontroller/rp2040/spi.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/microcontroller/rp2040/uart.py b/src/adafruit_blinka/microcontroller/rp2040/uart.py index a233b8e..61c93ce 100644 --- a/src/adafruit_blinka/microcontroller/rp2040/uart.py +++ b/src/adafruit_blinka/microcontroller/rp2040/uart.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/microcontroller/rp2040_u2if/analogio.py b/src/adafruit_blinka/microcontroller/rp2040_u2if/analogio.py index e4db746..08e36c3 100644 --- a/src/adafruit_blinka/microcontroller/rp2040_u2if/analogio.py +++ b/src/adafruit_blinka/microcontroller/rp2040_u2if/analogio.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """ `analogio` - Analog input and output control ================================================= diff --git a/src/adafruit_blinka/microcontroller/rp2040_u2if/i2c.py b/src/adafruit_blinka/microcontroller/rp2040_u2if/i2c.py index 0cfcc05..f4a1a61 100644 --- a/src/adafruit_blinka/microcontroller/rp2040_u2if/i2c.py +++ b/src/adafruit_blinka/microcontroller/rp2040_u2if/i2c.py @@ -1,3 +1,6 @@ +# 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 @@ -36,7 +39,7 @@ class I2C: out_end=None, in_start=0, in_end=None, - stop=False + stop=False, ): """Write data from buffer_out to an address and then read data from an address and into buffer_in diff --git a/src/adafruit_blinka/microcontroller/rp2040_u2if/neopixel.py b/src/adafruit_blinka/microcontroller/rp2040_u2if/neopixel.py index f0177ae..c87d2c7 100644 --- a/src/adafruit_blinka/microcontroller/rp2040_u2if/neopixel.py +++ b/src/adafruit_blinka/microcontroller/rp2040_u2if/neopixel.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """NeoPixel write for Pico u2if.""" from .rp2040_u2if import rp2040_u2if diff --git a/src/adafruit_blinka/microcontroller/rp2040_u2if/pin.py b/src/adafruit_blinka/microcontroller/rp2040_u2if/pin.py index 37a5ed5..c42f623 100644 --- a/src/adafruit_blinka/microcontroller/rp2040_u2if/pin.py +++ b/src/adafruit_blinka/microcontroller/rp2040_u2if/pin.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """Generic RP2040 pin names""" from .rp2040_u2if import rp2040_u2if diff --git a/src/adafruit_blinka/microcontroller/rp2040_u2if/pwmio.py b/src/adafruit_blinka/microcontroller/rp2040_u2if/pwmio.py index 3cbf5e4..afcaf54 100644 --- a/src/adafruit_blinka/microcontroller/rp2040_u2if/pwmio.py +++ b/src/adafruit_blinka/microcontroller/rp2040_u2if/pwmio.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/microcontroller/rp2040_u2if/rp2040_u2if.py b/src/adafruit_blinka/microcontroller/rp2040_u2if/rp2040_u2if.py index 6431f94..8dfda5b 100644 --- a/src/adafruit_blinka/microcontroller/rp2040_u2if/rp2040_u2if.py +++ b/src/adafruit_blinka/microcontroller/rp2040_u2if/rp2040_u2if.py @@ -1,3 +1,6 @@ +# 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 @@ -272,7 +275,7 @@ class RP2040_u2if: out_start=0, out_end=None, in_start=0, - in_end=None + in_end=None, ): """Write data from buffer_out to an address and then read data from an address and into buffer_in @@ -365,7 +368,7 @@ class RP2040_u2if: out_start=0, out_end=None, in_start=0, - in_end=None + in_end=None, ): """SPI write and readinto.""" raise NotImplementedError("SPI write_readinto Not implemented") diff --git a/src/adafruit_blinka/microcontroller/rp2040_u2if/spi.py b/src/adafruit_blinka/microcontroller/rp2040_u2if/spi.py index 4cad9be..435baba 100644 --- a/src/adafruit_blinka/microcontroller/rp2040_u2if/spi.py +++ b/src/adafruit_blinka/microcontroller/rp2040_u2if/spi.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/microcontroller/sama5/pin.py b/src/adafruit_blinka/microcontroller/sama5/pin.py index f3aa1a7..1fdee5b 100644 --- a/src/adafruit_blinka/microcontroller/sama5/pin.py +++ b/src/adafruit_blinka/microcontroller/sama5/pin.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/microcontroller/samsung/exynos5422/pin.py b/src/adafruit_blinka/microcontroller/samsung/exynos5422/pin.py index c06eb31..8e70ed2 100644 --- a/src/adafruit_blinka/microcontroller/samsung/exynos5422/pin.py +++ b/src/adafruit_blinka/microcontroller/samsung/exynos5422/pin.py @@ -1,5 +1,8 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """ -Samsum Exynos5422 +Samsung Exynos5422 Ref: Linux kernel 4.14.y (hardkernel) """ diff --git a/src/adafruit_blinka/microcontroller/snapdragon/apq8016/pin.py b/src/adafruit_blinka/microcontroller/snapdragon/apq8016/pin.py index 7b3d140..f482e5f 100644 --- a/src/adafruit_blinka/microcontroller/snapdragon/apq8016/pin.py +++ b/src/adafruit_blinka/microcontroller/snapdragon/apq8016/pin.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/microcontroller/starfive/JH71x0/__init__.py b/src/adafruit_blinka/microcontroller/starfive/JH71x0/__init__.py index 6f9f142..c848edc 100644 --- a/src/adafruit_blinka/microcontroller/starfive/JH71x0/__init__.py +++ b/src/adafruit_blinka/microcontroller/starfive/JH71x0/__init__.py @@ -1 +1,4 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """Definition for the StarFive JH71x0 chip""" diff --git a/src/adafruit_blinka/microcontroller/starfive/JH71x0/pin.py b/src/adafruit_blinka/microcontroller/starfive/JH71x0/pin.py index af705b6..dbd98a1 100644 --- a/src/adafruit_blinka/microcontroller/starfive/JH71x0/pin.py +++ b/src/adafruit_blinka/microcontroller/starfive/JH71x0/pin.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/microcontroller/stm32/stm32f405/pin.py b/src/adafruit_blinka/microcontroller/stm32/stm32f405/pin.py index 605015d..f967b2b 100755 --- a/src/adafruit_blinka/microcontroller/stm32/stm32f405/pin.py +++ b/src/adafruit_blinka/microcontroller/stm32/stm32f405/pin.py @@ -1,6 +1,9 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """STM32F405 pins""" -from microcontroller import Pin +from ...generic_micropython import Pin A0 = Pin("A0") A1 = Pin("A1") diff --git a/src/adafruit_blinka/microcontroller/stm32/stm32mp157/pin.py b/src/adafruit_blinka/microcontroller/stm32/stm32mp157/pin.py index c7ad756..bc8cd5d 100755 --- a/src/adafruit_blinka/microcontroller/stm32/stm32mp157/pin.py +++ b/src/adafruit_blinka/microcontroller/stm32/stm32mp157/pin.py @@ -1,3 +1,6 @@ +# 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 diff --git a/src/adafruit_blinka/microcontroller/tegra/t186/pin.py b/src/adafruit_blinka/microcontroller/tegra/t186/pin.py index 2191c26..91e87fd 100644 --- a/src/adafruit_blinka/microcontroller/tegra/t186/pin.py +++ b/src/adafruit_blinka/microcontroller/tegra/t186/pin.py @@ -1,7 +1,10 @@ +# 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! diff --git a/src/adafruit_blinka/microcontroller/tegra/t194/pin.py b/src/adafruit_blinka/microcontroller/tegra/t194/pin.py index 4bcfff9..a63a799 100644 --- a/src/adafruit_blinka/microcontroller/tegra/t194/pin.py +++ b/src/adafruit_blinka/microcontroller/tegra/t194/pin.py @@ -1,6 +1,9 @@ +# 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! diff --git a/src/adafruit_blinka/microcontroller/tegra/t210/pin.py b/src/adafruit_blinka/microcontroller/tegra/t210/pin.py index e8c4c9e..dafe810 100644 --- a/src/adafruit_blinka/microcontroller/tegra/t210/pin.py +++ b/src/adafruit_blinka/microcontroller/tegra/t210/pin.py @@ -1,7 +1,10 @@ +# 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! diff --git a/src/analogio.py b/src/analogio.py index 0016505..23dfb0d 100644 --- a/src/analogio.py +++ b/src/analogio.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """ `analogio` - Analog input and output control ============================================ diff --git a/src/bitbangio.py b/src/bitbangio.py index d13b743..fd0c844 100755 --- a/src/bitbangio.py +++ b/src/bitbangio.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """ `bitbangio` - Bitbanged bus protocols ============================================================== diff --git a/src/board.py b/src/board.py index 53d60b5..b3150ed 100755 --- a/src/board.py +++ b/src/board.py @@ -1,24 +1,6 @@ -# 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 ================================================= @@ -136,6 +118,9 @@ elif board_id == ap_board.ORANGE_PI_ZERO_PLUS: elif board_id == ap_board.ORANGE_PI_ZERO_2: from adafruit_blinka.board.orangepi.orangepizero2 import * +elif board_id == ap_board.ORANGE_PI_3: + from adafruit_blinka.board.orangepi.orangepi3 import * + elif board_id == ap_board.BANANA_PI_M2_ZERO: from adafruit_blinka.board.bananapi.bpim2zero import * @@ -250,6 +235,9 @@ elif board_id == ap_board.NANOPI_NEO_AIR: elif board_id == ap_board.NANOPI_DUO2: from adafruit_blinka.board.nanopi.duo2 import * +elif board_id == ap_board.NANOPI_NEO: + from adafruit_blinka.board.nanopi.neo import * + elif board_id == ap_board.PICO_U2IF: from adafruit_blinka.board.pico_u2if import * diff --git a/src/busio.py b/src/busio.py index 1fd1532..0605ee9 100755 --- a/src/busio.py +++ b/src/busio.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """ `busio` - Bus protocol support like I2C and SPI ================================================= diff --git a/src/digitalio.py b/src/digitalio.py index 3aea4c6..99f0a08 100755 --- a/src/digitalio.py +++ b/src/digitalio.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """ `digitalio` - Digital input and output control (GPIO) ===================================================== @@ -77,6 +80,8 @@ 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 +elif detector.chip.H3: + from adafruit_blinka.microcontroller.allwinner.h3.pin import Pin elif detector.chip.H5: from adafruit_blinka.microcontroller.allwinner.h5.pin import Pin elif detector.chip.H6: diff --git a/src/keypad.py b/src/keypad.py index a156d6e..b379c20 100644 --- a/src/keypad.py +++ b/src/keypad.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """ `keypad` - Support for scanning keys and key matrices =========================================================== @@ -384,7 +387,7 @@ class ShiftRegisterKeys(_KeysBase): key_count, value_when_pressed, interval=0.02, - max_events=64 + max_events=64, ): """ Create a `Keys` object that will scan keys attached to a parallel-in serial-out diff --git a/src/microcontroller/__init__.py b/src/microcontroller/__init__.py index e1fe7fc..3d71f8a 100755 --- a/src/microcontroller/__init__.py +++ b/src/microcontroller/__init__.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """ `microcontroller` - Pin references and cpu functionality ======================================================== @@ -9,8 +12,9 @@ import sys import time from adafruit_platformdetect.constants import chips as ap_chip -from adafruit_blinka import Enum from adafruit_blinka.agnostic import board_id, chip_id +from microcontroller import pin # pylint: disable=unused-import +from microcontroller.pin import Pin # pylint: disable=unused-import def delay_us(delay): @@ -18,35 +22,6 @@ def delay_us(delay): time.sleep(delay / 1e6) -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) - import microcontroller.pin as pin - - # pylint: enable=import-outside-toplevel, cyclic-import - - for key in dir(pin): - if getattr(pin, key) is self: - return "microcontroller.pin.{}".format(key) - return repr(self) - - # We intentionally are patching into this namespace so skip the wildcard check. # pylint: disable=unused-wildcard-import,wildcard-import,ungrouped-imports @@ -62,11 +37,11 @@ elif chip_id == ap_chip.BCM2XXX: "RASPBERRY_PI_400", "RASPBERRY_PI_CM4", ]: - from adafruit_blinka.microcontroller.bcm2711.pin import * + from adafruit_blinka.microcontroller.bcm2711 import * else: - from adafruit_blinka.microcontroller.bcm283x.pin import * + from adafruit_blinka.microcontroller.bcm283x import * elif chip_id == ap_chip.DRA74X: - from adafruit_blinka.microcontroller.dra74x.pin import * + from adafruit_blinka.microcontroller.dra74x import * elif chip_id == ap_chip.AM33XX: from adafruit_blinka.microcontroller.am335x import * elif chip_id == ap_chip.JH71x0: @@ -74,11 +49,11 @@ elif chip_id == ap_chip.JH71x0: elif chip_id == ap_chip.SUN8I: from adafruit_blinka.microcontroller.allwinner.h3 import * elif chip_id == ap_chip.H5: - from adafruit_blinka.microcontroller.allwinner.h5.pin import * + from adafruit_blinka.microcontroller.allwinner.h5 import * elif chip_id == ap_chip.H6: - from adafruit_blinka.microcontroller.allwinner.h6.pin import * + from adafruit_blinka.microcontroller.allwinner.h6 import * elif chip_id == ap_chip.H616: - from adafruit_blinka.microcontroller.allwinner.h616.pin import * + from adafruit_blinka.microcontroller.allwinner.h616 import * elif chip_id == ap_chip.SAMA5: from adafruit_blinka.microcontroller.sama5 import * elif chip_id == ap_chip.T210: @@ -88,53 +63,57 @@ elif chip_id == ap_chip.T186: elif chip_id == ap_chip.T194: from adafruit_blinka.microcontroller.tegra.t194 import * elif chip_id == ap_chip.S905: - from adafruit_blinka.microcontroller.amlogic.s905.pin import * + from adafruit_blinka.microcontroller.amlogic.s905 import * elif chip_id == ap_chip.S905X3: - from adafruit_blinka.microcontroller.amlogic.s905x3.pin import * + from adafruit_blinka.microcontroller.amlogic.s905x3 import * elif chip_id == ap_chip.S922X: - from adafruit_blinka.microcontroller.amlogic.s922x.pin import * + from adafruit_blinka.microcontroller.amlogic.s922x import * elif chip_id == ap_chip.EXYNOS5422: - from adafruit_blinka.microcontroller.samsung.exynos5422.pin import * + from adafruit_blinka.microcontroller.samsung.exynos5422 import * elif chip_id == ap_chip.APQ8016: - from adafruit_blinka.microcontroller.snapdragon.apq8016.pin import * + from adafruit_blinka.microcontroller.snapdragon.apq8016 import * elif chip_id == ap_chip.A64: - from adafruit_blinka.microcontroller.allwinner.a64.pin import * + from adafruit_blinka.microcontroller.allwinner.a64 import * elif chip_id == ap_chip.A33: - from adafruit_blinka.microcontroller.allwinner.a33.pin import * + from adafruit_blinka.microcontroller.allwinner.a33 import * elif chip_id == ap_chip.RK3308: - from adafruit_blinka.microcontroller.rockchip.rk3308.pin import * + from adafruit_blinka.microcontroller.rockchip.rk3308 import * elif chip_id == ap_chip.RK3399: - from adafruit_blinka.microcontroller.rockchip.rk3399.pin import * + from adafruit_blinka.microcontroller.rockchip.rk3399 import * elif chip_id == ap_chip.RK3328: - from adafruit_blinka.microcontroller.rockchip.rk3328.pin import * + from adafruit_blinka.microcontroller.rockchip.rk3328 import * +elif chip_id == ap_chip.H3: + from adafruit_blinka.microcontroller.allwinner.h3 import * elif chip_id == ap_chip.H5: - from adafruit_blinka.microcontroller.allwinner.h5.pin import * + from adafruit_blinka.microcontroller.allwinner.h5 import * elif chip_id == ap_chip.IMX8MX: from adafruit_blinka.microcontroller.nxp_imx8m import * elif chip_id == ap_chip.IMX6ULL: from adafruit_blinka.microcontroller.nxp_imx6ull import * elif chip_id == ap_chip.HFU540: - from adafruit_blinka.microcontroller.hfu540.pin import * + from adafruit_blinka.microcontroller.hfu540 import * elif chip_id == ap_chip.BINHO: from adafruit_blinka.microcontroller.nova import * elif chip_id == ap_chip.LPC4330: from adafruit_blinka.microcontroller.nxp_lpc4330 import * +elif chip_id == ap_chip.MCP2221: + from adafruit_blinka.microcontroller.mcp2221 import * elif chip_id == ap_chip.MIPS24KC: from adafruit_blinka.microcontroller.atheros.ar9331 import * elif chip_id == ap_chip.MIPS24KEC: from adafruit_blinka.microcontroller.mips24kec import * elif chip_id == ap_chip.FT232H: - from adafruit_blinka.microcontroller.ftdi_mpsse.ft232h.pin import * + from adafruit_blinka.microcontroller.ftdi_mpsse.ft232h import * elif chip_id == ap_chip.FT2232H: - from adafruit_blinka.microcontroller.ftdi_mpsse.ft2232h.pin import * + from adafruit_blinka.microcontroller.ftdi_mpsse.ft2232h import * elif chip_id == ap_chip.PENTIUM_N3710: - from adafruit_blinka.microcontroller.pentium.n3710.pin import * + from adafruit_blinka.microcontroller.pentium.n3710 import * elif chip_id == ap_chip.STM32MP157: - from adafruit_blinka.microcontroller.stm32.stm32mp157.pin import * + from adafruit_blinka.microcontroller.stm32.stm32mp157 import * elif chip_id == ap_chip.MT8167: - from adafruit_blinka.microcontroller.mt8167.pin import * + from adafruit_blinka.microcontroller.mt8167 import * elif chip_id == ap_chip.RP2040_U2IF: - from adafruit_blinka.microcontroller.rp2040_u2if.pin import * + from adafruit_blinka.microcontroller.rp2040_u2if import * elif chip_id == ap_chip.GENERIC_X86: print("WARNING: GENERIC_X86 is not fully supported. Some features may not work.") elif "sphinx" in sys.modules: diff --git a/src/microcontroller/pin.py b/src/microcontroller/pin.py index 149c342..dd912fb 100755 --- a/src/microcontroller/pin.py +++ b/src/microcontroller/pin.py @@ -1,5 +1,9 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """Pins named after their chip name.""" +import sys from adafruit_platformdetect.constants import chips as ap_chip from adafruit_blinka.agnostic import board_id, chip_id @@ -29,6 +33,8 @@ elif chip_id == ap_chip.JH71x0: from adafruit_blinka.microcontroller.starfive.JH71x0.pin import * elif chip_id == ap_chip.SUN8I: from adafruit_blinka.microcontroller.allwinner.h3.pin import * +elif chip_id == ap_chip.H3: + from adafruit_blinka.microcontroller.allwinner.h3.pin import * elif chip_id == ap_chip.H5: from adafruit_blinka.microcontroller.allwinner.h5.pin import * elif chip_id == ap_chip.H6: @@ -91,5 +97,8 @@ elif chip_id == ap_chip.MT8167: from adafruit_blinka.microcontroller.mt8167.pin import * elif chip_id == ap_chip.RP2040_U2IF: from adafruit_blinka.microcontroller.rp2040_u2if.pin import * +elif "sphinx" in sys.modules: + # pylint: disable=unused-import + from adafruit_blinka.microcontroller.generic_micropython import Pin else: raise NotImplementedError("Microcontroller not supported: ", chip_id) diff --git a/src/micropython.py b/src/micropython.py index 843d5a5..4f88543 100755 --- a/src/micropython.py +++ b/src/micropython.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """ `micropython` - MicroPython Specific Decorator Functions ======================================================== diff --git a/src/neopixel_write.py b/src/neopixel_write.py index 38feca5..2bc5f81 100644 --- a/src/neopixel_write.py +++ b/src/neopixel_write.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """ `neopixel_write` - NeoPixel precision timed writing support =========================================================== diff --git a/src/pulseio.py b/src/pulseio.py index dc20e3d..f80459e 100644 --- a/src/pulseio.py +++ b/src/pulseio.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """ `pulseio` - Pulse Width Modulation input and output control =========================================================== @@ -15,21 +18,6 @@ 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 -elif detector.board.any_coral_board: - from adafruit_blinka.microcontroller.generic_linux.sysfs_pwmout import PWMOut -elif detector.board.any_giant_board: - from adafruit_blinka.microcontroller.generic_linux.sysfs_pwmout import PWMOut -elif detector.board.any_beaglebone: - from adafruit_blinka.microcontroller.am335x.sysfs_pwmout import PWMOut -elif detector.board.any_rock_pi_board: - from adafruit_blinka.microcontroller.generic_linux.sysfs_pwmout import PWMOut -elif detector.board.binho_nova: - from adafruit_blinka.microcontroller.nova.pwmout import PWMOut -elif detector.board.greatfet_one: - from adafruit_blinka.microcontroller.nxp_lpc4330.pwmout import PWMOut -elif detector.board.any_lubancat: - from adafruit_blinka.microcontroller.generic_linux.sysfs_pwmout import PWMOut elif "sphinx" in sys.modules: pass else: diff --git a/src/pwmio.py b/src/pwmio.py index f7075fe..f4d6a8c 100644 --- a/src/pwmio.py +++ b/src/pwmio.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """ `pwmio` - Support for PWM based protocols =========================================================== @@ -14,7 +17,7 @@ from adafruit_blinka.agnostic import detector # pylint: disable=unused-import if detector.board.any_raspberry_pi: - from adafruit_blinka.microcontroller.bcm283x.pulseio.PWMOut import PWMOut + from adafruit_blinka.microcontroller.bcm283x.pwmio.PWMOut import PWMOut elif detector.board.any_coral_board: from adafruit_blinka.microcontroller.generic_linux.sysfs_pwmout import PWMOut elif detector.board.any_giant_board: diff --git a/src/rainbowio.py b/src/rainbowio.py index e852d83..5ed5a3a 100644 --- a/src/rainbowio.py +++ b/src/rainbowio.py @@ -1,10 +1,13 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """ `rainbowio` - Provides the `colorwheel()` function =========================================================== See `CircuitPython:rainbowio` in CircuitPython for more details. Not supported by all boards. -* Author(s): Kattni Rembor +* Author(s): Kattni Rembor, Carter Nelson """ @@ -16,12 +19,23 @@ def colorwheel(color_value): :param int color_value: 0-255 of color value to return :return: tuple of RGB values """ + color_value = int(color_value) if color_value < 0 or color_value > 255: - return 0, 0, 0 - if color_value < 85: - return 255 - color_value * 3, color_value * 3, 0 - if color_value < 170: + r = 0 + g = 0 + b = 0 + elif color_value < 85: + r = int(255 - color_value * 3) + g = int(color_value * 3) + b = 0 + elif color_value < 170: color_value -= 85 - return 0, 255 - color_value * 3, color_value * 3 - color_value -= 170 - return color_value * 3, 0, 255 - color_value * 3 + r = 0 + g = int(255 - color_value * 3) + b = int(color_value * 3) + else: + color_value -= 170 + r = int(color_value * 3) + g = 0 + b = int(255 - color_value * 3) + return r << 16 | g << 8 | b diff --git a/src/usb_hid.py b/src/usb_hid.py new file mode 100644 index 0000000..113ac83 --- /dev/null +++ b/src/usb_hid.py @@ -0,0 +1,725 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT +""" +`usb_hid` - support for usb hid devices via usb_gadget driver +=========================================================== +See `CircuitPython:usb_hid` in CircuitPython for more details. +For now using report ids in the descriptor + +# regarding usb_gadget see https://www.kernel.org/doc/Documentation/usb/gadget_configfs.txt +* Author(s): Björn Bösel +""" + +from typing import Sequence +from pathlib import Path +import os +import atexit +import sys + +for module in ["dwc2", "libcomposite"]: + 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 + ) +this = sys.modules[__name__] + +this.gadget_root = "/sys/kernel/config/usb_gadget/adafruit-blinka" +this.boot_device = 0 +this.devices = [] + + +class Device: + """ + HID Device specification: see + https://github.com/adafruit/circuitpython/blob/main/shared-bindings/usb_hid/Device.c + """ + + def __init__( + self, + *, + descriptor: bytes, + usage_page: int, + usage: int, + report_ids: Sequence[int], + in_report_lengths: Sequence[int], + out_report_lengths: Sequence[int], + ) -> None: + self.out_report_lengths = out_report_lengths + self.in_report_lengths = in_report_lengths + self.report_ids = report_ids + self.usage = usage + self.usage_page = usage_page + self.descriptor = descriptor + self._last_received_report = None + + def send_report(self, report: bytearray, report_id: int = None): + """Send an HID report. If the device descriptor specifies zero or one report id's, + you can supply `None` (the default) as the value of ``report_id``. + Otherwise you must specify which report id to use when sending the report. + """ + report_id = report_id or self.report_ids[0] + device_path = self.get_device_path(report_id) + 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) + + @property + def last_received_report( + self, + ) -> bytes: + """The HID OUT report as a `bytes` (read-only). `None` if nothing received. + Same as `get_last_received_report()` with no argument. + + Deprecated: will be removed in CircutPython 8.0.0. Use `get_last_received_report()` instead. + """ + return self.get_last_received_report() + + def get_last_received_report(self, report_id=None) -> bytes: + """Get the last received HID OUT or feature report for the given report ID. + The report ID may be omitted if there is no report ID, or only one report ID. + Return `None` if nothing received. + """ + device_path = self.get_device_path(report_id or self.report_ids[0]) + 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: + self._last_received_report = report + return self._last_received_report + + def get_device_path(self, report_id): + """ + translates the /dev/hidg device from the report id + """ + device = ( + Path( + "%s/functions/hid.usb%s/dev" + % (this.gadget_root, report_id or self.report_ids[0]) + ) + .read_text(encoding="utf-8") + .strip() + .split(":")[1] + ) + device_path = "/dev/hidg%s" % device + return device_path + + KEYBOARD = None + MOUSE = None + CONSUMER_CONTROL = None + + +Device.KEYBOARD = Device( + descriptor=bytes( + ( + 0x05, + 0x01, # usage page (generic desktop ctrls) + 0x09, + 0x06, # usage (keyboard) + 0xA1, + 0x01, # collection (application) + 0x85, + 0x01, # Report ID (1) + 0x05, + 0x07, # usage page (kbrd/keypad) + 0x19, + 0xE0, # usage minimum (0xe0) + 0x29, + 0xE7, # usage maximum (0xe7) + 0x15, + 0x00, # logical minimum (0) + 0x25, + 0x01, # logical maximum (1) + 0x75, + 0x01, # report size (1) + 0x95, + 0x08, # report count (8) + 0x81, + 0x02, # input (data,var,abs,no wrap,linear,preferred state,no null position) + 0x95, + 0x01, # report count (1) + 0x75, + 0x08, # report size (8) + 0x81, + 0x01, # input (const,array,abs,no wrap,linear,preferred state,no null position) + 0x95, + 0x03, # report count (3) + 0x75, + 0x01, # report size (1) + 0x05, + 0x08, # usage page (leds) + 0x19, + 0x01, # usage minimum (num lock) + 0x29, + 0x05, # usage maximum (kana) + 0x91, + 0x02, # output + # (data,var,abs,no wrap,linear,preferred state,no null position,non-volatile) + 0x95, + 0x01, # report count (1) + 0x75, + 0x05, # report size (5) + 0x91, + 0x01, # output + # (const,array,abs,no wrap,linear,preferred state,no null position,non-volatile) + 0x95, + 0x06, # report count (6) + 0x75, + 0x08, # report size (8) + 0x15, + 0x00, # logical minimum (0) + 0x26, + 0xFF, + 0x00, # logical maximum (255) + 0x05, + 0x07, # usage page (kbrd/keypad) + 0x19, + 0x00, # usage minimum (0x00) + 0x2A, + 0xFF, + 0x00, # usage maximum (0xff) + 0x81, + 0x00, # input (data,array,abs,no wrap,linear,preferred state,no null position) + 0xC0, # end collection + ) + ), + usage_page=0x1, + usage=0x6, + report_ids=[0x1], + in_report_lengths=[8], + out_report_lengths=[1], +) +Device.MOUSE = Device( + descriptor=bytes( + ( + 0x05, + 0x01, # Usage Page (Generic Desktop Ctrls) + 0x09, + 0x02, # Usage (Mouse) + 0xA1, + 0x01, # Collection (Application) + 0x85, + 0x02, # Report ID (2) + 0x09, + 0x01, # Usage (Pointer) + 0xA1, + 0x00, # Collection (Physical) + 0x05, + 0x09, # Usage Page (Button) + 0x19, + 0x01, # Usage Minimum (0x01) + 0x29, + 0x05, # Usage Maximum (0x05) + 0x15, + 0x00, # Logical Minimum (0) + 0x25, + 0x01, # Logical Maximum (1) + 0x95, + 0x05, # Report Count (5) + 0x75, + 0x01, # Report Size (1) + 0x81, + 0x02, # Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) + 0x95, + 0x01, # Report Count (1) + 0x75, + 0x03, # Report Size (3) + 0x81, + 0x01, # Input (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position) + 0x05, + 0x01, # Usage Page (Generic Desktop Ctrls) + 0x09, + 0x30, # Usage (X) + 0x09, + 0x31, # Usage (Y) + 0x15, + 0x81, # Logical Minimum (-127) + 0x25, + 0x7F, # Logical Maximum (127) + 0x75, + 0x08, # Report Size (8) + 0x95, + 0x02, # Report Count (2) + 0x81, + 0x06, # Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position) + 0x09, + 0x38, # Usage (Wheel) + 0x15, + 0x81, # Logical Minimum (-127) + 0x25, + 0x7F, # Logical Maximum (127) + 0x75, + 0x08, # Report Size (8) + 0x95, + 0x01, # Report Count (1) + 0x81, + 0x06, # Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position) + 0xC0, # End Collection + 0xC0, # End Collection + ) + ), + usage_page=0x1, + usage=0x02, + report_ids=[0x02], + in_report_lengths=[4], + out_report_lengths=[0], +) + +Device.CONSUMER_CONTROL = Device( + descriptor=bytes( + ( + 0x05, + 0x0C, # Usage Page (Consumer) + 0x09, + 0x01, # Usage (Consumer Control) + 0xA1, + 0x01, # Collection (Application) + 0x85, + 0x03, # Report ID (3) + 0x75, + 0x10, # Report Size (16) + 0x95, + 0x01, # Report Count (1) + 0x15, + 0x01, # Logical Minimum (1) + 0x26, + 0x8C, + 0x02, # Logical Maximum (652) + 0x19, + 0x01, # Usage Minimum (Consumer Control) + 0x2A, + 0x8C, + 0x02, # Usage Maximum (AC Send) + 0x81, + 0x00, # Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position) + 0xC0, # End Collection + ) + ), + usage_page=0x0C, + usage=0x01, + report_ids=[3], + in_report_lengths=[2], + out_report_lengths=[0], +) + +Device.BOOT_KEYBOARD = Device( + descriptor=bytes( + ( + 0x05, + 0x01, # usage page (generic desktop ctrls) + 0x09, + 0x06, # usage (keyboard) + 0xA1, + 0x01, # collection (application) + 0x05, + 0x07, # usage page (kbrd/keypad) + 0x19, + 0xE0, # usage minimum (0xe0) + 0x29, + 0xE7, # usage maximum (0xe7) + 0x15, + 0x00, # logical minimum (0) + 0x25, + 0x01, # logical maximum (1) + 0x75, + 0x01, # report size (1) + 0x95, + 0x08, # report count (8) + 0x81, + 0x02, # input (data,var,abs,no wrap,linear,preferred state,no null position) + 0x95, + 0x01, # report count (1) + 0x75, + 0x08, # report size (8) + 0x81, + 0x01, # input (const,array,abs,no wrap,linear,preferred state,no null position) + 0x95, + 0x03, # report count (3) + 0x75, + 0x01, # report size (1) + 0x05, + 0x08, # usage page (leds) + 0x19, + 0x01, # usage minimum (num lock) + 0x29, + 0x05, # usage maximum (kana) + 0x91, + 0x02, # output + # (data,var,abs,no wrap,linear,preferred state,no null position,non-volatile) + 0x95, + 0x01, # report count (1) + 0x75, + 0x05, # report size (5) + 0x91, + 0x01, # output + # (const,array,abs,no wrap,linear,preferred state,no null position,non-volatile) + 0x95, + 0x06, # report count (6) + 0x75, + 0x08, # report size (8) + 0x15, + 0x00, # logical minimum (0) + 0x26, + 0xFF, + 0x00, # logical maximum (255) + 0x05, + 0x07, # usage page (kbrd/keypad) + 0x19, + 0x00, # usage minimum (0x00) + 0x2A, + 0xFF, + 0x00, # usage maximum (0xff) + 0x81, + 0x00, # input (data,array,abs,no wrap,linear,preferred state,no null position) + 0xC0, # end collection + ) + ), + usage_page=0x1, + usage=0x6, + report_ids=[0x0], + in_report_lengths=[8], + out_report_lengths=[1], +) +Device.BOOT_MOUSE = Device( + descriptor=bytes( + ( + 0x05, + 0x01, # Usage Page (Generic Desktop Ctrls) + 0x09, + 0x02, # Usage (Mouse) + 0xA1, + 0x01, # Collection (Application) + 0x09, + 0x01, # Usage (Pointer) + 0xA1, + 0x00, # Collection (Physical) + 0x05, + 0x09, # Usage Page (Button) + 0x19, + 0x01, # Usage Minimum (0x01) + 0x29, + 0x05, # Usage Maximum (0x05) + 0x15, + 0x00, # Logical Minimum (0) + 0x25, + 0x01, # Logical Maximum (1) + 0x95, + 0x05, # Report Count (5) + 0x75, + 0x01, # Report Size (1) + 0x81, + 0x02, # Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) + 0x95, + 0x01, # Report Count (1) + 0x75, + 0x03, # Report Size (3) + 0x81, + 0x01, # Input (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position) + 0x05, + 0x01, # Usage Page (Generic Desktop Ctrls) + 0x09, + 0x30, # Usage (X) + 0x09, + 0x31, # Usage (Y) + 0x15, + 0x81, # Logical Minimum (-127) + 0x25, + 0x7F, # Logical Maximum (127) + 0x75, + 0x08, # Report Size (8) + 0x95, + 0x02, # Report Count (2) + 0x81, + 0x06, # Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position) + 0x09, + 0x38, # Usage (Wheel) + 0x15, + 0x81, # Logical Minimum (-127) + 0x25, + 0x7F, # Logical Maximum (127) + 0x75, + 0x08, # Report Size (8) + 0x95, + 0x01, # Report Count (1) + 0x81, + 0x06, # Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position) + 0xC0, # End Collection + 0xC0, # End Collection + ) + ), + usage_page=0x1, + usage=0x02, + report_ids=[0], + in_report_lengths=[4], + out_report_lengths=[0], +) + + +def disable() -> None: + """Do not present any USB HID devices to the host computer. + Can be called in ``boot.py``, before USB is connected. + The HID composite device is normally enabled by default, + but on some boards with limited endpoints, including STM32F4, + it is disabled by default. You must turn off another USB device such + as `usb_cdc` or `storage` to free up endpoints for use by `usb_hid`. + """ + try: + 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*"): + symlink.unlink() + + for strings_file in Path(this.gadget_root).rglob("configs/*/strings/*/*"): + if strings_file.is_dir(): + strings_file.rmdir() + + for strings_file in Path(this.gadget_root).rglob("configs/*/strings/*"): + if strings_file.is_dir(): + strings_file.rmdir() + for config_dir in Path(this.gadget_root).rglob("configs/*"): + if config_dir.is_dir(): + config_dir.rmdir() + for function_dir in Path(this.gadget_root).rglob("functions/*"): + if function_dir.is_dir(): + function_dir.rmdir() + try: + Path(this.gadget_root).rmdir() + except FileNotFoundError: + pass + this.devices = [] + + +atexit.register(disable) + + +def enable(requested_devices: Sequence[Device], boot_device: int = 0) -> None: + """Specify which USB HID devices that will be available. + Can be called in ``boot.py``, before USB is connected. + + :param Sequence devices: `Device` objects. + If `devices` is empty, HID is disabled. The order of the ``Devices`` + may matter to the host. For instance, for MacOS, put the mouse device + before any Gamepad or Digitizer HID device or else it will not work. + :param int boot_device: If non-zero, inform the host that support for a + a boot HID device is available. + If ``boot_device=1``, a boot keyboard is available. + If ``boot_device=2``, a boot mouse is available. No other values are allowed. + See below. + + If you enable too many devices at once, you will run out of USB endpoints. + The number of available endpoints varies by microcontroller. + CircuitPython will go into safe mode after running ``boot.py`` to inform you if + not enough endpoints are available. + + **Boot Devices** + + Boot devices implement a fixed, predefined report descriptor, defined in + https://www.usb.org/sites/default/files/hid1_12.pdf, Appendix B. A USB host + can request to use the boot device if the USB device says it is available. + Usually only a BIOS or other kind of limited-functionality + host needs boot keyboard support. + + For example, to make a boot keyboard available, you can use this code:: + + usb_hid.enable((Device.KEYBOARD), boot_device=1) # 1 for a keyboard + + If the host requests the boot keyboard, the report descriptor provided by `Device.KEYBOARD` + will be ignored, and the predefined report descriptor will be used. + But if the host does not request the boot keyboard, + the descriptor provided by `Device.KEYBOARD` will be used. + + The HID boot device must usually be the first or only device presented by CircuitPython. + The HID device will be USB interface number 0. + To make sure it is the first device, disable other USB devices, including CDC and MSC + (CIRCUITPY). + If you specify a non-zero ``boot_device``, and it is not the first device, CircuitPython + will enter safe mode to report this error. + """ + this.boot_device = boot_device + + if len(requested_devices) == 0: + disable() + return + + if boot_device == 1: + requested_devices = [Device.BOOT_KEYBOARD] + if boot_device == 2: + requested_devices = [Device.BOOT_MOUSE] + + # """ + # 1. Creating the gadgets + # ----------------------- + # + # For each gadget to be created its corresponding directory must be created:: + # + # $ mkdir $CONFIGFS_HOME/usb_gadget/ + # + # e.g.:: + # + # $ mkdir $CONFIGFS_HOME/usb_gadget/g1 + # + # ... + # ... + # ... + # + # $ cd $CONFIGFS_HOME/usb_gadget/g1 + # + # Each gadget needs to have its vendor id and product id specified:: + # + # $ echo > idVendor + # $ echo > idProduct + # + # A gadget also needs its serial number, manufacturer and product strings. + # In order to have a place to store them, a strings subdirectory must be created + # for each language, e.g.:: + # + # $ mkdir strings/0x409 + # + # Then the strings can be specified:: + # + # $ echo > strings/0x409/serialnumber + # $ echo > strings/0x409/manufacturer + # $ echo > strings/0x409/product + # """ + 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, 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, encoding="utf-8" + ) # multipurpose i guess? + 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, encoding="utf-8" + ) # Multifunction Composite Gadget + Path("%s/idVendor" % this.gadget_root).write_text( + "%s" % 0x1D6B, encoding="utf-8" + ) # Linux Foundation + # """ + # 2. Creating the configurations + # ------------------------------ + # + # Each gadget will consist of a number of configurations, their corresponding + # directories must be created: + # + # $ mkdir configs/. + # + # where can be any string which is legal in a filesystem and the + # is the configuration's number, e.g.:: + # + # $ mkdir configs/c.1 + # + # ... + # ... + # ... + # + # Each configuration also needs its strings, so a subdirectory must be created + # for each language, e.g.:: + # + # $ mkdir configs/c.1/strings/0x409 + # + # Then the configuration string can be specified:: + # + # $ echo > configs/c.1/strings/0x409/configuration + # + # Some attributes can also be set for a configuration, e.g.:: + # + # $ echo 120 > configs/c.1/MaxPower + # """ + + for device in requested_devices: + config_root = "%s/configs/device.1" % this.gadget_root + 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", encoding="utf-8" + ) + 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 + # ------------------------- + # + # The gadget will provide some functions, for each function its corresponding + # directory must be created:: + # + # $ mkdir functions/. + # + # where corresponds to one of allowed function names and instance name + # is an arbitrary string allowed in a filesystem, e.g.:: + # + # $ mkdir functions/ncm.usb0 # usb_f_ncm.ko gets loaded with request_module() + # + # ... + # ... + # ... + # + # Each function provides its specific set of attributes, with either read-only + # or read-write access. Where applicable they need to be written to as + # appropriate. + # Please refer to Documentation/ABI/*/configfs-usb-gadget* for more information. """ + for report_index, report_id in enumerate(device.report_ids): + function_root = "%s/functions/hid.usb%s" % (this.gadget_root, report_id) + try: + Path("%s/" % function_root).mkdir(parents=True) + except FileExistsError: + continue + 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], encoding="utf-8" + ) + 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 + # ------------------------------------------------------ + # + # At this moment a number of gadgets is created, each of which has a number of + # configurations specified and a number of functions available. What remains + # is specifying which function is available in which configuration (the same + # function can be used in multiple configurations). This is achieved with + # creating symbolic links:: + # + # $ ln -s functions/. configs/. + # + # e.g.:: + # + # $ ln -s functions/ncm.usb0 configs/c.1 """ + try: + Path("%s/hid.usb%s" % (config_root, report_id)).symlink_to( + function_root + ) + except FileNotFoundError: + pass + # """ 5. Enabling the gadget + # ---------------------- + # Such a gadget must be finally enabled so that the USB host can enumerate it. + # + # In order to enable the gadget it must be bound to a UDC (USB Device + # Controller):: + # + # $ echo > UDC + # + # where is one of those found in /sys/class/udc/* + # e.g.:: + # + # $ echo s3c-hsotg > UDC """ + udc = next(Path("/sys/class/udc/").glob("*")) + Path("%s/UDC" % this.gadget_root).write_text("%s" % udc.name, encoding="utf-8") diff --git a/test/scripts/upload_feather_huzzah_circuitpython_put.sh b/test/scripts/upload_feather_huzzah_circuitpython_put.sh index 146dfb9..3f6f74c 100755 --- a/test/scripts/upload_feather_huzzah_circuitpython_put.sh +++ b/test/scripts/upload_feather_huzzah_circuitpython_put.sh @@ -1,4 +1,7 @@ #!/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` diff --git a/test/scripts/upload_feather_huzzah_micropython_put.sh b/test/scripts/upload_feather_huzzah_micropython_put.sh index 38ed597..8bfb8cc 100755 --- a/test/scripts/upload_feather_huzzah_micropython_put.sh +++ b/test/scripts/upload_feather_huzzah_micropython_put.sh @@ -1,4 +1,7 @@ #!/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` @@ -48,4 +51,4 @@ find . -type f -name '*.py' | \ xargs -n1 -I {} sh -c "echo compiling {} ...; ${MPYCROSS} {}" # upload adafruit blinka .mpy files find . -type f -name '*.mpy' | \ - xargs -n1 -I {} sh -c "echo uploading {} ...; ampy --port ${PORT} put {} {}" \ No newline at end of file + xargs -n1 -I {} sh -c "echo uploading {} ...; ampy --port ${PORT} put {} {}" diff --git a/test/scripts/upload_pyboard_micropython_cp.sh b/test/scripts/upload_pyboard_micropython_cp.sh index a565e6a..aff0824 100755 --- a/test/scripts/upload_pyboard_micropython_cp.sh +++ b/test/scripts/upload_pyboard_micropython_cp.sh @@ -1,4 +1,7 @@ #!/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` diff --git a/test/src/testing/__init__.py b/test/src/testing/__init__.py index e3173d1..fc941bb 100644 --- a/test/src/testing/__init__.py +++ b/test/src/testing/__init__.py @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT + # mitigate heap fragmentation issues by pre-loading major libraries import gc diff --git a/test/src/testing/adafruit_blinka.py b/test/src/testing/adafruit_blinka.py index 3fcecc3..13f3873 100644 --- a/test/src/testing/adafruit_blinka.py +++ b/test/src/testing/adafruit_blinka.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT import unittest diff --git a/test/src/testing/board/__init__.py b/test/src/testing/board/__init__.py index 73852ce..10dc6a8 100644 --- a/test/src/testing/board/__init__.py +++ b/test/src/testing/board/__init__.py @@ -1,3 +1,6 @@ +# 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 diff --git a/test/src/testing/board/i2c.py b/test/src/testing/board/i2c.py index 8d82470..e9d9702 100644 --- a/test/src/testing/board/i2c.py +++ b/test/src/testing/board/i2c.py @@ -1,3 +1,6 @@ +# 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"): diff --git a/test/src/testing/microcontroller/__init__.py b/test/src/testing/microcontroller/__init__.py index deb21aa..e74132e 100644 --- a/test/src/testing/microcontroller/__init__.py +++ b/test/src/testing/microcontroller/__init__.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT from adafruit_blinka.agnostic import microcontroller if microcontroller == "esp8266": diff --git a/test/src/testing/universal/digitalio.py b/test/src/testing/universal/digitalio.py index c6062fc..36eff5b 100644 --- a/test/src/testing/universal/digitalio.py +++ b/test/src/testing/universal/digitalio.py @@ -1,3 +1,6 @@ +# 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 diff --git a/test/src/testing/universal/i2c.py b/test/src/testing/universal/i2c.py index 184fee4..5c2331a 100644 --- a/test/src/testing/universal/i2c.py +++ b/test/src/testing/universal/i2c.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT import gc from testing import yes_no diff --git a/test/src/testing/universal/microcontroller.py b/test/src/testing/universal/microcontroller.py index be9394d..780f989 100644 --- a/test/src/testing/universal/microcontroller.py +++ b/test/src/testing/universal/microcontroller.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT import unittest diff --git a/test/src/testing/universal/uart.py b/test/src/testing/universal/uart.py index acd9840..74a9b45 100644 --- a/test/src/testing/universal/uart.py +++ b/test/src/testing/universal/uart.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT import gc from unittest import TestCase from testing import await_true diff --git a/test/src/unittest.py b/test/src/unittest.py index 45f92ec..278101f 100644 --- a/test/src/unittest.py +++ b/test/src/unittest.py @@ -1,3 +1,6 @@ +# 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