"""
`analogio` - Analog input and output control
-=================================================
+============================================
See `CircuitPython:analogio` in CircuitPython for more details.
-* Author(s): Carter Nelson
-"""
-
-from adafruit_blinka.agnostic import board_id, detector
-
-# pylint: disable=ungrouped-imports,wrong-import-position
-
-if detector.board.microchip_mcp2221:
- from adafruit_blinka.microcontroller.mcp2221.pin import Pin
-else:
- raise NotImplementedError("analogio not supported for this board.")
+Not supported by all boards.
-from adafruit_blinka import ContextManaged
-
-
-class AnalogIn(ContextManaged):
- def __init__(self, pin):
- self._pin = Pin(pin.id)
- self._pin.init(mode=Pin.ADC)
-
- @property
- def value(self):
- return self._pin.value()
+* Author(s): Carter Nelson, Melissa LeBlanc-Williams
+"""
- @value.setter
- def value(self, value):
- # emulate what CircuitPython does
- raise AttributeError("'AnalogIn' object has no attribute 'value'")
- def deinit(self):
- del self._pin
+__version__ = "0.0.0-auto.0"
+__repo__ = "https://github.com/adafruit/Adafruit_Blinka.git"
-class AnalogOut(ContextManaged):
- def __init__(self, pin):
- self._pin = Pin(pin.id)
- self._pin.init(mode=Pin.DAC)
+import sys
- @property
- def value(self):
- # emulate what CircuitPython does
- raise AttributeError("unreadable attribute")
+from adafruit_blinka.agnostic import detector
- @value.setter
- def value(self, value):
- self._pin.value(value)
+# pylint: disable=ungrouped-imports,wrong-import-position,unused-import
- def deinit(self):
- del self._pin
+if detector.board.microchip_mcp2221:
+ from adafruit_blinka.microcontroller.mcp2221.analogio import AnalogIn
+ from adafruit_blinka.microcontroller.mcp2221.analogio import AnalogOut
+elif detector.board.greatfet_one:
+ from adafruit_blinka.microcontroller.nxp_lpc4330.analogio import AnalogIn
+ from adafruit_blinka.microcontroller.nxp_lpc4330.analogio import AnalogOut
+elif detector.chip.RK3308:
+ from adafruit_blinka.microcontroller.generic_linux.sysfs_analogin import AnalogIn
+elif detector.chip.RK3399:
+ from adafruit_blinka.microcontroller.generic_linux.sysfs_analogin import AnalogIn
+elif detector.chip.IMX6ULL:
+ from adafruit_blinka.microcontroller.generic_linux.sysfs_analogin import AnalogIn
+elif detector.chip.STM32MP157:
+ from adafruit_blinka.microcontroller.generic_linux.sysfs_analogin import AnalogIn
+elif "sphinx" in sys.modules:
+ pass
+elif detector.board.pico_u2if:
+ from adafruit_blinka.microcontroller.rp2040_u2if.analogio import (
+ AnalogIn_Pico as AnalogIn,
+ )
+elif detector.board.feather_u2if:
+ from adafruit_blinka.microcontroller.rp2040_u2if.analogio import (
+ AnalogIn_Feather as AnalogIn,
+ )
+elif detector.board.qtpy_u2if:
+ from adafruit_blinka.microcontroller.rp2040_u2if.analogio import (
+ AnalogIn_QTPY as AnalogIn,
+ )
+elif detector.board.itsybitsy_u2if:
+ from adafruit_blinka.microcontroller.rp2040_u2if.analogio import (
+ AnalogIn_ItsyBitsy as AnalogIn,
+ )
+else:
+ raise NotImplementedError("analogio not supported for this board.")