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_5_board:
20 from adafruit_blinka.microcontroller.generic_linux.lgpio_pwmout import PWMOut
21 elif detector.board.any_raspberry_pi:
23 from adafruit_blinka.microcontroller.generic_linux.rpi_gpio_pwmout import PWMOut
24 elif detector.board.any_bananapi:
25 from adafruit_blinka.microcontroller.generic_linux.sysfs_pwmout import PWMOut
26 elif detector.board.any_coral_board:
27 from adafruit_blinka.microcontroller.generic_linux.sysfs_pwmout import PWMOut
28 elif detector.board.any_giant_board:
29 from adafruit_blinka.microcontroller.generic_linux.sysfs_pwmout import PWMOut
30 elif detector.board.any_pcduino_board:
31 from adafruit_blinka.microcontroller.generic_linux.sysfs_pwmout import PWMOut
32 elif detector.board.any_beaglebone:
33 from adafruit_blinka.microcontroller.am335x.sysfs_pwmout import PWMOut
34 elif detector.board.any_lemaker:
35 from adafruit_blinka.microcontroller.generic_linux.sysfs_pwmout import PWMOut
36 elif detector.board.any_siemens_simatic_iot2000:
37 from adafruit_blinka.microcontroller.am65xx.pwmout import PWMOut
38 elif detector.board.any_odroid_40_pin:
39 from adafruit_blinka.microcontroller.generic_linux.sysfs_pwmout import PWMOut
40 elif detector.board.any_rock_pi_board:
41 from adafruit_blinka.microcontroller.rockchip.PWMOut import PWMOut
42 elif detector.board.binho_nova:
43 from adafruit_blinka.microcontroller.nova.pwmout import PWMOut
44 elif detector.board.greatfet_one:
45 from adafruit_blinka.microcontroller.nxp_lpc4330.pwmout import PWMOut
46 elif detector.board.any_lubancat:
47 from adafruit_blinka.microcontroller.generic_linux.sysfs_pwmout import PWMOut
48 elif detector.board.pico_u2if:
49 from adafruit_blinka.microcontroller.rp2040_u2if.pwmio import PWMOut
50 elif detector.board.any_jetson_board:
51 from adafruit_blinka.microcontroller.tegra.PWMOut import PWMOut
52 elif detector.board.any_luckfox_pico_board:
53 from adafruit_blinka.microcontroller.generic_linux.sysfs_pwmout import PWMOut
54 elif detector.board.any_starfive_id:
55 from adafruit_blinka.microcontroller.starfive.JH7110.pwmio import PWMOut
56 elif detector.board.any_horizon_board:
57 from adafruit_blinka.microcontroller.horizon.pwmio.PWMOut import PWMOut
58 elif detector.board.OS_AGNOSTIC_BOARD:
59 from adafruit_blinka.microcontroller.generic_agnostic_board.PWMOut import PWMOut
61 detector.board.feather_u2if
62 or detector.board.feather_can_u2if
63 or detector.board.feather_epd_u2if
64 or detector.board.feather_rfm_u2if
65 or detector.board.qtpy_u2if
66 or detector.board.itsybitsy_u2if
67 or detector.board.macropad_u2if
68 or detector.board.qt2040_trinkey_u2if
69 or detector.board.kb2040_u2if
71 from adafruit_blinka.microcontroller.rp2040_u2if.pwmio import PWMOut
72 elif "sphinx" in sys.modules:
75 raise NotImplementedError("pwmio not supported for this board.")