1 # SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
 
   3 # SPDX-License-Identifier: MIT
 
   5 `pwmio` - Support for PWM based protocols
 
   6 ===========================================================
 
   7 See `CircuitPython:pwmio` in CircuitPython for more details.
 
   8 Not supported by all boards.
 
  10 * Author(s): Melissa LeBlanc-Williams
 
  12 # pylint: disable=too-many-boolean-expressions
 
  15 from adafruit_blinka.agnostic import detector
 
  17 # pylint: disable=unused-import
 
  19 if detector.board.any_raspberry_pi:
 
  20     from adafruit_blinka.microcontroller.bcm283x.pwmio.PWMOut import PWMOut
 
  21 elif detector.board.any_bananapi:
 
  22     from adafruit_blinka.microcontroller.generic_linux.sysfs_pwmout import PWMOut
 
  23 elif detector.board.any_coral_board:
 
  24     from adafruit_blinka.microcontroller.generic_linux.sysfs_pwmout import PWMOut
 
  25 elif detector.board.any_giant_board:
 
  26     from adafruit_blinka.microcontroller.generic_linux.sysfs_pwmout import PWMOut
 
  27 elif detector.board.any_pcduino_board:
 
  28     from adafruit_blinka.microcontroller.generic_linux.sysfs_pwmout import PWMOut
 
  29 elif detector.board.any_beaglebone:
 
  30     from adafruit_blinka.microcontroller.am335x.sysfs_pwmout import PWMOut
 
  31 elif detector.board.any_lemaker:
 
  32     from adafruit_blinka.microcontroller.generic_linux.sysfs_pwmout import PWMOut
 
  33 elif detector.board.any_siemens_simatic_iot2000:
 
  34     from adafruit_blinka.microcontroller.am65xx.pwmout import PWMOut
 
  35 elif detector.board.any_odroid_40_pin:
 
  36     from adafruit_blinka.microcontroller.generic_linux.sysfs_pwmout import PWMOut
 
  37 elif detector.board.any_rock_pi_board:
 
  38     from adafruit_blinka.microcontroller.rockchip.PWMOut import PWMOut
 
  39 elif detector.board.binho_nova:
 
  40     from adafruit_blinka.microcontroller.nova.pwmout import PWMOut
 
  41 elif detector.board.greatfet_one:
 
  42     from adafruit_blinka.microcontroller.nxp_lpc4330.pwmout import PWMOut
 
  43 elif detector.board.any_lubancat:
 
  44     from adafruit_blinka.microcontroller.generic_linux.sysfs_pwmout import PWMOut
 
  45 elif detector.board.pico_u2if:
 
  46     from adafruit_blinka.microcontroller.rp2040_u2if.pwmio import PWMOut
 
  47 elif detector.board.any_jetson_board:
 
  48     from adafruit_blinka.microcontroller.tegra.PWMOut import PWMOut
 
  49 elif detector.board.any_luckfox_pico_board:
 
  50     from adafruit_blinka.microcontroller.generic_linux.sysfs_pwmout import PWMOut
 
  51 elif detector.board.any_starfive_id:
 
  52     from adafruit_blinka.microcontroller.starfive.JH7110.pwmio import PWMOut
 
  53 elif detector.board.OS_AGNOSTIC_BOARD:
 
  54     from adafruit_blinka.microcontroller.generic_agnostic_board.PWMOut import PWMOut
 
  56     detector.board.feather_u2if
 
  57     or detector.board.feather_can_u2if
 
  58     or detector.board.feather_epd_u2if
 
  59     or detector.board.feather_rfm_u2if
 
  60     or detector.board.qtpy_u2if
 
  61     or detector.board.itsybitsy_u2if
 
  62     or detector.board.macropad_u2if
 
  63     or detector.board.qt2040_trinkey_u2if
 
  64     or detector.board.kb2040_u2if
 
  66     from adafruit_blinka.microcontroller.rp2040_u2if.pwmio import PWMOut
 
  67 elif "sphinx" in sys.modules:
 
  70     raise NotImplementedError("pwmio not supported for this board.")