diff --git a/ChangeLog b/ChangeLog
index 2c00d507..b8f2db27 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2021-11-27  Joerg Wunsch <j.gnu@uriah.heep.sax.de>
+
+	bug #58440: linuxgpio PIN limit too low
+	* libavrdude.h (PIN_MAX): bump (for HAVE_LINUXGPIO) to 400
+
 2021-11-27  Joerg Wunsch <j.gnu@uriah.heep.sax.de>
 
 	Submitted by David Mosberger-Tang:
diff --git a/NEWS b/NEWS
index cce22bfb..6e17c3a8 100644
--- a/NEWS
+++ b/NEWS
@@ -77,6 +77,7 @@ Current:
     bug #50630: Erase Cycle Counter options ( -y -Y n ) should be removed from usage Message
     bug #48767: ser_drain() for TCP on Windows doesn't work
     bug #46759: avrdude 6.1 -> 6.2 regression: lock byte verification error
+    bug #58440: linuxgpio PIN limit too low
 
   * Patches:
     patch #9482: Add support for UPDI and AVR8X
diff --git a/libavrdude.h b/libavrdude.h
index 1f0b7fcd..2431a218 100644
--- a/libavrdude.h
+++ b/libavrdude.h
@@ -369,7 +369,7 @@ enum {
 #ifdef HAVE_LINUXGPIO
 /* Embedded systems might have a lot more gpio than only 0-31 */
 #undef PIN_MAX
-#define PIN_MAX     255 /* largest allowed pin number */
+#define PIN_MAX     400 /* largest allowed pin number */
 #endif
 
 /** Number of pins in each element of the bitfield */