]> Repositories - Adafruit_Blinka-hackapet.git/blobdiff - src/adafruit_blinka/microcontroller/amlogic/meson_g12_common/pin.py
Merge pull request #597 from djhedges/main
[Adafruit_Blinka-hackapet.git] / src / adafruit_blinka / microcontroller / amlogic / meson_g12_common / pin.py
index 635d816a32f0ec01b91afac0510a9a533287cb6a..41cf8f2e5918b3f560fc1c054d3ac41ca9545ca8 100644 (file)
@@ -1,14 +1,21 @@
-from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin
-import gpiod
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+"""
+G12A, G12B, and SM1 Common Definitions
+Ref:
+Linux kernel 4.9.y (hardkernel)
+    linux/include/dt-bindings/gpio/meson-g12a-gpio.h
+Linux kernel 5.4.y (mainline)
+    linux/include/dt-bindings/gpio/meson-g12a-gpio.h
+    linux/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
+"""
+
+from typing import Optional
+import os
 import re
-
-# G12A, G12B, and SM1
-# Ref:
-# Linux kernel 4.9.y (hardkernel)
-#     linux/include/dt-bindings/gpio/meson-g12a-gpio.h
-# Linux kernel 5.4.y (mainline)
-#     linux/include/dt-bindings/gpio/meson-g12a-gpio.h
-#     linux/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
+import gpiod
+from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin
 
 chip0 = gpiod.Chip("0")
 chip1 = gpiod.Chip("1")
@@ -96,26 +103,27 @@ SPI0_MOSI = GPIOX_8
 SPI0_CS0 = GPIOX_10
 
 # ordered as spiId, sckId, mosiId, misoId
-spiPorts = ((0, SPI0_SCLK, SPI0_MOSI, SPI0_MISO), )
+spiPorts = ((0, SPI0_SCLK, SPI0_MOSI, SPI0_MISO),)
 
 UART1_TX = GPIOX_12
 UART1_RX = GPIOX_13
 
 # ordered as uartId, txId, rxId
-uartPorts = ((1, UART1_TX, UART1_RX), )
+uartPorts = ((1, UART1_TX, UART1_RX),)
 
 
-def get_dts_alias(device: str) -> str:
+def get_dts_alias(device: str) -> Optional[str]:
+    """Get the Device Tree Alias"""
     uevent_path = "/sys/bus/platform/devices/" + device + "/uevent"
-    with open(uevent_path, 'r') as fd:
-        pattern = r"^OF_ALIAS_0=(.*)$"
-        uevent = fd.read().split('\n')
-        for line in uevent:
-            match = re.search(pattern, line)
-            if match:
-                return match.group(1).upper()
-
-        return None
+    if os.path.exists(uevent_path):
+        with open(uevent_path, "r", encoding="utf-8") as fd:
+            pattern = r"^OF_ALIAS_0=(.*)$"
+            uevent = fd.read().split("\n")
+            for line in uevent:
+                match = re.search(pattern, line)
+                if match:
+                    return match.group(1).upper()
+    return None
 
 
 # ordered as i2cId, sclId, sdaId