+"""
+`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
+"""
+
+import sys
+
from adafruit_blinka.agnostic import detector
+# pylint: disable=unused-import
+
if detector.board.any_raspberry_pi:
from adafruit_blinka.microcontroller.bcm283x.pulseio.PulseIn import PulseIn
-if detector.board.any_coral_board:
+ 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
-if detector.board.any_giant_board:
+elif detector.board.any_giant_board:
from adafruit_blinka.microcontroller.generic_linux.sysfs_pwmout import PWMOut
-if detector.board.any_beaglebone:
+elif detector.board.any_beaglebone:
from adafruit_blinka.microcontroller.am335x.sysfs_pwmout import PWMOut
-if detector.board.any_rock_pi_board:
+elif detector.board.any_rock_pi_board:
from adafruit_blinka.microcontroller.generic_linux.sysfs_pwmout import PWMOut
-if detector.board.binho_nova:
+elif detector.board.binho_nova:
from adafruit_blinka.microcontroller.nova.pwmout import PWMOut
-if detector.board.greatfet_one:
+elif detector.board.greatfet_one:
from adafruit_blinka.microcontroller.nxp_lpc4330.pwmout import PWMOut
+elif "sphinx" in sys.modules:
+ pass
+else:
+ raise NotImplementedError("pulseio not supported for this board.")