"""
`board` - Define ids for available pins
=================================================
-Conditionally imports and re-exports a submodule, such as boards.esp8266 based on
-platform introspection
+
+See `CircuitPython:board` in CircuitPython for more details.
* Author(s): cefn
"""
+import sys
-import gc
-
-gc.collect()
-from adafruit_blinka.agnostic import board
-gc.collect()
-
-__version__ = "0.0.0-auto.0"
-__repo__ = "https://github.com/adafruit/Adafruit_Micropython_Blinka.git"
+from adafruit_blinka.agnostic import board_id, detector
+import adafruit_platformdetect.board as ap_board
+# pylint: disable=wildcard-import,unused-wildcard-import,ungrouped-imports
-if board == "feather_huzzah":
+if board_id == ap_board.FEATHER_HUZZAH:
from adafruit_blinka.board.feather_huzzah import *
-elif board == "nodemcu":
+
+elif board_id == ap_board.NODEMCU:
from adafruit_blinka.board.nodemcu import *
-elif board == "pyboard":
+
+elif board_id == ap_board.PYBOARD:
from adafruit_blinka.board.pyboard import *
+
+elif detector.board.any_raspberry_pi_40_pin:
+ from adafruit_blinka.board.raspi_40pin import *
+
+elif detector.board.RASPBERRY_PI_B_REV1:
+ from adafruit_blinka.board.raspi_1b_rev1 import *
+
+elif detector.board.RASPBERRY_PI_B_REV2:
+ from adafruit_blinka.board.raspi_1b_rev2 import *
+
+elif board_id == ap_board.BEAGLEBONE_BLACK:
+ from adafruit_blinka.board.beaglebone_black import *
+
+elif board_id == ap_board.ORANGE_PI_PC:
+ from adafruit_blinka.board.orangepipc import *
+
+elif board_id == ap_board.GIANT_BOARD:
+ from adafruit_blinka.board.giantboard import *
+
+elif board_id == ap_board.JETSON_TX1:
+ from adafruit_blinka.board.jetson_tx1 import *
+
+elif board_id == ap_board.JETSON_TX2:
+ from adafruit_blinka.board.jetson_tx2 import *
+
+elif board_id == ap_board.JETSON_XAVIER:
+ from adafruit_blinka.board.jetson_xavier import *
+
+elif board_id == ap_board.JETSON_TXX:
+ from adafruit_blinka.board.jetson_txx import *
+
+elif "sphinx" in sys.modules:
+ pass
+
else:
raise NotImplementedError("Board not supported")
-gc.collect()
\ No newline at end of file
+
+def I2C():
+ """The singleton I2C interface"""
+ import busio
+ return busio.I2C(SCL, SDA)
+
+def SPI():
+ """The singleton SPI interface"""
+ import busio
+ return busio.SPI(SCLK, MOSI, MISO)