]> Repositories - Adafruit_Blinka-hackapet.git/blobdiff - src/adafruit_blinka/microcontroller/allwinner/h618/pin.py
fix Missing function or method docstring (missing-function-docstring)
[Adafruit_Blinka-hackapet.git] / src / adafruit_blinka / microcontroller / allwinner / h618 / pin.py
index 7eabaa27bd3d2a0481d0e92908aa703b1cf93a86..8f6c3888d794d4b64647249ab7f54937bd2da55f 100644 (file)
@@ -2,14 +2,32 @@
 #
 # SPDX-License-Identifier: MIT
 """Allwinner H618 Pin Names"""
+import re
 from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin
 
-# gpiochip select
-__chip_num = 0
-with open("/sys/class/gpio/gpiochip0/label", "r") as f:
-    label = f.read().strip()
-    if label == "300b000.pinctrl":
-        __chip_num = 1
+def find_gpiochip_number(target_label):
+    """Get correct gpiochip number, legacy kernel and mainline kernel are different"""
+    try:
+        with open('/sys/kernel/debug/gpio', 'r') as f:
+            lines = f.readlines()
+    except FileNotFoundError:
+        print("The file /sys/kernel/debug/gpio does not exist.")
+        return None
+
+    gpiochip_number = None
+    for line in lines:
+        if target_label in line:
+            match = re.search(r'gpiochip(\d+)', line)
+            if match:
+                gpiochip_number = match.group(1)
+                break
+
+    return gpiochip_number
+
+if find_gpiochip_number("300b000.pinctrl"):
+    __chip_num = 1
+else:
+    __chip_num = 0
 
 PC0 = Pin((__chip_num, 64))
 SPI0_SCLK = PC0
@@ -66,6 +84,7 @@ TWI3_SCL = PG17
 PG18 = Pin((__chip_num, 210))
 TWI3_SDA = PG18
 PG19 = Pin((__chip_num, 211))
+PWM1 = PG19
 
 PH0 = Pin((__chip_num, 224))
 PH1 = Pin((__chip_num, 225))
@@ -107,6 +126,7 @@ PI10 = Pin((__chip_num, 266))
 UART3_RX = PI10
 PI11 = Pin((__chip_num, 267))
 PI12 = Pin((__chip_num, 268))
+PWM2 = PI12
 PI13 = Pin((__chip_num, 269))
 UART4_TX = PI13
 PI14 = Pin((__chip_num, 270))
@@ -133,3 +153,9 @@ uartPorts = (
     (4, UART4_TX, UART4_RX),
     (5, UART5_TX, UART5_RX),
 )
+
+# SysFS pwm outputs, pwm channel and pin in first tuple
+pwmOuts = [
+    ((0, 1), PWM1),
+    ((0, 2), PWM2),
+]