-import sys
-from adafruit_blinka.agnostic import board_id
+"""
+`pulseio` - Pulse Width Modulation input and output control
+===========================================================
+See `CircuitPython:pulseio` in CircuitPython for more details.
+Not supported by all boards.
+* Author(s): Melissa LeBlanc-Williams
+"""
-if board_id == "raspi_2" or board_id == "raspi_3":
- from adafruit_blinka.microcontroller.raspi_23.pulseio.PulseIn import PulseIn as PulseIn
+import sys
-"""
-class PulseIn:
- def __init__(self, pin, maxlen=2, idle_state=False):
- self.pulsein = _PulseIn.PulseIn(pin, maxlen, idle_state=idle_state)
+from adafruit_blinka.agnostic import detector
- def deinit(self):
- self.pulsein.deinit()
- def pause(self):
- self.pulsein.pause()
-
- def resume(self, trigger_duration=0):
- self.pulsein(trigger_duration)
-"""
+# pylint: disable=unused-import
+
+if detector.board.any_raspberry_pi:
+ from adafruit_blinka.microcontroller.bcm283x.pulseio.PulseIn import PulseIn
+elif "sphinx" in sys.modules:
+ pass
+else:
+ raise NotImplementedError("pulseio not supported for this board.")