diff options
Diffstat (limited to 'Adafruit_Python_GPIO/Adafruit_GPIO/Platform.py')
-rw-r--r-- | Adafruit_Python_GPIO/Adafruit_GPIO/Platform.py | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/Adafruit_Python_GPIO/Adafruit_GPIO/Platform.py b/Adafruit_Python_GPIO/Adafruit_GPIO/Platform.py deleted file mode 100644 index 2c041a8..0000000 --- a/Adafruit_Python_GPIO/Adafruit_GPIO/Platform.py +++ /dev/null @@ -1,110 +0,0 @@ -# Copyright (c) 2014 Adafruit Industries -# Author: Tony DiCola - -# 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. -import platform -import re - -# Platform identification constants. -UNKNOWN = 0 -RASPBERRY_PI = 1 -BEAGLEBONE_BLACK = 2 -MINNOWBOARD = 3 - -def platform_detect(): - """Detect if running on the Raspberry Pi or Beaglebone Black and return the - platform type. Will return RASPBERRY_PI, BEAGLEBONE_BLACK, or UNKNOWN.""" - # Handle Raspberry Pi - pi = pi_version() - if pi is not None: - return RASPBERRY_PI - - # Handle Beaglebone Black - # TODO: Check the Beaglebone Black /proc/cpuinfo value instead of reading - # the platform. - plat = platform.platform() - if plat.lower().find('armv7l-with-debian') > -1: - return BEAGLEBONE_BLACK - elif plat.lower().find('armv7l-with-ubuntu') > -1: - return BEAGLEBONE_BLACK - elif plat.lower().find('armv7l-with-glibc2.4') > -1: - return BEAGLEBONE_BLACK - - # Handle Minnowboard - # Assumption is that mraa is installed - try: - import mraa - if mraa.getPlatformName()=='MinnowBoard MAX': - return MINNOWBOARD - except ImportError: - pass - - # Couldn't figure out the platform, just return unknown. - return UNKNOWN - - -def pi_revision(): - """Detect the revision number of a Raspberry Pi, useful for changing - functionality like default I2C bus based on revision.""" - # Revision list available at: http://elinux.org/RPi_HardwareHistory#Board_Revision_History - with open('/proc/cpuinfo', 'r') as infile: - for line in infile: - # Match a line of the form "Revision : 0002" while ignoring extra - # info in front of the revsion (like 1000 when the Pi was over-volted). - match = re.match('Revision\s+:\s+.*(\w{4})$', line, flags=re.IGNORECASE) - if match and match.group(1) in ['0000', '0002', '0003']: - # Return revision 1 if revision ends with 0000, 0002 or 0003. - return 1 - elif match: - # Assume revision 2 if revision ends with any other 4 chars. - return 2 - # Couldn't find the revision, throw an exception. - raise RuntimeError('Could not determine Raspberry Pi revision.') - - -def pi_version(): - """Detect the version of the Raspberry Pi. Returns either 1, 2 or - None depending on if it's a Raspberry Pi 1 (model A, B, A+, B+), - Raspberry Pi 2 (model B+), or not a Raspberry Pi. - """ - # Check /proc/cpuinfo for the Hardware field value. - # 2708 is pi 1 - # 2709 is pi 2 - # 2835 is pi 3 on 4.9.x kernel - # Anything else is not a pi. - with open('/proc/cpuinfo', 'r') as infile: - cpuinfo = infile.read() - # Match a line like 'Hardware : BCM2709' - match = re.search('^Hardware\s+:\s+(\w+)$', cpuinfo, - flags=re.MULTILINE | re.IGNORECASE) - if not match: - # Couldn't find the hardware, assume it isn't a pi. - return None - if match.group(1) == 'BCM2708': - # Pi 1 - return 1 - elif match.group(1) == 'BCM2709': - # Pi 2 - return 2 - elif match.group(1) == 'BCM2835': - # Pi 3 / Pi on 4.9.x kernel - return 3 - else: - # Something else, not a pi. - return None |