From 44121ed5eb8782196163db2fbcf5c687fa3c7944 Mon Sep 17 00:00:00 2001 From: Robert Wolterman Date: Sat, 16 Jul 2016 15:23:43 -0500 Subject: [PATCH] Fixed SPI dtbo and verification. i2c-1 is still off, waiting to hear back from NTC crew on that. Added test case for the OverlayManager. Fof feature #10 --- CHIP_IO/OverlayManager.py | 20 +++++++++++----- overlays/chip-spi2.dtbo | Bin 973 -> 1063 bytes test/omtest.py | 49 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 63 insertions(+), 6 deletions(-) create mode 100755 test/omtest.py diff --git a/CHIP_IO/OverlayManager.py b/CHIP_IO/OverlayManager.py index 7a144a3..c8cf38f 100644 --- a/CHIP_IO/OverlayManager.py +++ b/CHIP_IO/OverlayManager.py @@ -10,6 +10,8 @@ CUSTOMOVERLAYFILEPATH = "" PWMSYSFSPATH = "/sys/class/pwm/pwmchip0" I2C1SYSFSPATH = "/sys/class/i2c-dev/i2c-1" +# USING THE BASE DIRECTORY FOR SPI AS THE DEVICE NUMBER CHANGES ON LOAD/UNLOAD +SPI2SYSFSPATH = "/sys/class/spi_master/" # LOADED VARIABLES # DO NOT MODIFY BY HAND WHEN USING @@ -108,6 +110,15 @@ def _set_overlay_verify(name, overlay_path, config_path): if DEBUG: print("ERROR LOADING I2C-1") return 1 + elif name == "SPI2": + if os.listdir(SPI2SYSFSPATH) != "": + if DEBUG: + print("SPI2 IS LOADED!") + return 0 + else: + if DEBUG: + print("ERROR LOADING SPI2") + return 0 def load(overlay, path=""): """ @@ -125,9 +136,7 @@ def load(overlay, path=""): global DEBUG global _LOADED if DEBUG: - print("LOAD OVERLAY") - print("OVERLAY: {0}".format(overlay)) - print("PATH: {0}".format(path)) + print("LOAD OVERLAY: {0} @ {1}".format(overlay,path)) # SEE IF OUR OVERLAY NAME IS IN THE KEYS if overlay.upper() in _OVERLAYS.keys(): cpath = OVERLAYCONFIGPATH + "/" + _FOLDERS[overlay.upper()] @@ -168,7 +177,7 @@ def load(overlay, path=""): # LOAD THE OVERLAY errc = _set_overlay_verify(overlay.upper(), opath, cpath) if DEBUG: - print("ERRC: {0}".format(errc)) + print("_SET_OVERLAY_VERIFY ERRC: {0}".format(errc)) if errc == 0: _LOADED[overlay.upper()] = True @@ -179,8 +188,7 @@ def unload(overlay): global DEBUG global _LOADED if DEBUG: - print("UNLOAD OVERLAY") - print(overlay) + print("UNLOAD OVERLAY: {0}".format(overlay)) # SEE IF OUR OVERLAY NAME IS IN THE KEYS if overlay.upper() in _OVERLAYS.keys(): # BRUTE FORCE REMOVE AS THE DIRECTORY CONTAINS FILES diff --git a/overlays/chip-spi2.dtbo b/overlays/chip-spi2.dtbo index 2f6b18ac6f4fe7086f45ff407b56190ea9ed9b60..1935261465ee7e563f4534213c73408dc130ef39 100644 GIT binary patch delta 173 zcmX@hzMMnj0`I@K3=Ayl3=9kw3=GUEKw1Nc1%X%qh(X{mP+VuD#$iTB#^QoZqj&?b zC^L{`2eE)+DXC>}F%}@J1IzB%WNtwwrnCcmqOqO6)XIwGafqBhjCKgoy2fGtK diff --git a/test/omtest.py b/test/omtest.py new file mode 100755 index 0000000..c680ecb --- /dev/null +++ b/test/omtest.py @@ -0,0 +1,49 @@ +#!/usr/bin/python + +import CHIP_IO.OverlayManager as OM +import os + +# ENABLE DEBUG +print("ENABLING OVERLAY MANAGER DEBUG") +OM.enable_debug() + +# **************** PWM ******************* +print("\nIS PWM ENABLED: {0}".format(OM.get_pwm_loaded())) +OM.load("PWM0") +print("IS PWM ENABLED: {0}".format(OM.get_pwm_loaded())) +# VERIFY PWM0 EXISTS +if os.path.exists('/sys/class/pwm/pwmchip0'): + print("PWM DEVICE EXISTS") +else: + print("PWM DEVICE DID NOT LOAD PROPERLY") +print("UNLOADING PWM0") +OM.unload("PWM0") +print("IS PWM ENABLED: {0}".format(OM.get_pwm_loaded())) + +# **************** I2C-1 ******************* +print("\nIS I2C ENABLED: {0}".format(OM.get_i2c_loaded())) +OM.load("I2C1") +print("IS I2C ENABLED: {0}".format(OM.get_i2c_loaded())) +# VERIFY I2C-1 EXISTS +if os.path.exists('/sys/class/i2c-dev/i2c-1'): + print("I2C1 DEVICE EXISTS") +else: + print("I2C1 DEVICE DID NOT LOAD PROPERLY") +print("UNLOADING I2C1") +OM.unload("I2C1") +print("IS I2C ENABLED: {0}".format(OM.get_i2c_loaded())) + +# **************** SPI2 ******************* +print("\nIS SPI ENABLED: {0}".format(OM.get_spi_loaded())) +OM.load("SPI2") +print("IS SPI ENABLED: {0}".format(OM.get_spi_loaded())) +# VERIFY SPI2 EXISTS +if os.listdir('/sys/class/spi_master') != "": + print("SPI DEVICE EXISTS") +else: + print("SPI DEVICE DID NOT LOAD PROPERLY") +print("UNLOADING SPI") +OM.unload("SPI2") +print("IS SPI ENABLED: {0}".format(OM.get_spi_loaded())) + +