]> Repositories - Adafruit_Blinka-hackapet.git/commitdiff
fixes for libgpiod v2.1.3
authorTechnobly <technobly@gmail.com>
Tue, 29 Apr 2025 16:35:37 +0000 (11:35 -0500)
committerTechnobly <technobly@gmail.com>
Fri, 15 Aug 2025 20:38:17 +0000 (15:38 -0500)
src/adafruit_blinka/microcontroller/generic_linux/libgpiod/libgpiod_pin_2_x.py

index 9f12d9d427cd07baf730e2dfa2f770766b3a1852..aa1ee1861a25e86faf60aa68b505e91ffe8ee8d0 100644 (file)
@@ -48,14 +48,8 @@ class Pin:
         """Initialize the Pin"""
         # Input,
         if not self._line_request:
         """Initialize the Pin"""
         # Input,
         if not self._line_request:
-            self._line_request = self._chip.request_lines(
-                config={int(self._num): None},
-                consumer=self._CONSUMER,
-            )
-            # print("init line: ", self.id, self._line)
-
-        if mode is not None:
             line_config = gpiod.LineSettings()
             line_config = gpiod.LineSettings()
+
             if mode == self.IN:
                 line_config.direction = gpiod.line.Direction.INPUT
                 if pull is not None:
             if mode == self.IN:
                 line_config.direction = gpiod.line.Direction.INPUT
                 if pull is not None:
@@ -68,24 +62,18 @@ class Pin:
                     else:
                         raise RuntimeError(f"Invalid pull for pin: {self.id}")
 
                     else:
                         raise RuntimeError(f"Invalid pull for pin: {self.id}")
 
-                self._mode = self.IN
-                self._line_request.reconfigure_lines(
-                    {
-                        int(self._num): line_config,
-                    }
-                )
             elif mode == self.OUT:
                 if pull is not None:
                     raise RuntimeError("Cannot set pull resistor on output")
             elif mode == self.OUT:
                 if pull is not None:
                     raise RuntimeError("Cannot set pull resistor on output")
-                self._mode = self.OUT
                 line_config.direction = gpiod.line.Direction.OUTPUT
                 line_config.direction = gpiod.line.Direction.OUTPUT
-                self._line_request.reconfigure_lines(
-                    {
-                        int(self._num): line_config,
-                    }
-                )
+
             else:
             else:
-                raise RuntimeError("Invalid mode for pin: %s" % self.id)
+                raise RuntimeError(f"Invalid mode for pin: {self.id}")
+
+            self._line_request = self._chip.request_lines(
+                {int(self._num): line_config},
+                consumer=self._CONSUMER,
+            )
 
     def value(self, val=None):
         """Set or return the Pin Value"""
 
     def value(self, val=None):
         """Set or return the Pin Value"""