From e87a9b59b63bef109aea2784f7d4ae5b8ecc0231 Mon Sep 17 00:00:00 2001
From: Jan Egil Ruud <janegil.ruud@micrchip.com>
Date: Wed, 30 Nov 2022 23:08:55 +0100
Subject: [PATCH] #822 Added and tested TPI support for AtmelICE,
 PowerDebugger, PICkit4 and Snap.

---
 src/avrdude.conf.in | 68 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 68 insertions(+)

diff --git a/src/avrdude.conf.in b/src/avrdude.conf.in
index d96a31b8..e27aba0f 100644
--- a/src/avrdude.conf.in
+++ b/src/avrdude.conf.in
@@ -2177,6 +2177,19 @@ programmer
     usbpid                 = 0x2141;
 ;
 
+#------------------------------------------------------------
+# atmelice_tpi
+#------------------------------------------------------------
+
+programmer
+    id                     = "atmelice_tpi";
+    desc                   = "Atmel-ICE (ARM/AVR) in TPI mode";
+    type                   = "jtagice3_tpi";
+    prog_modes             = PM_TPI;
+    connection_type        = usb;
+    usbpid                 = 0x2141;
+;
+
 #------------------------------------------------------------
 # powerdebugger
 #------------------------------------------------------------
@@ -2243,6 +2256,19 @@ programmer
     usbpid                 = 0x2144;
 ;
 
+#------------------------------------------------------------
+# powerdebugger_tpi
+#------------------------------------------------------------
+
+programmer
+    id                     = "powerdebugger_tpi";
+    desc                   = "Atmel PowerDebugger (ARM/AVR) in TPI mode";
+    type                   = "jtagice3_tpi";
+    prog_modes             = PM_TPI;
+    connection_type        = usb;
+    usbpid                 = 0x2144;
+;
+
 #------------------------------------------------------------
 # pickit4_updi
 #------------------------------------------------------------
@@ -2283,6 +2309,19 @@ programmer
     usbpid                 = 0x2177, 0x2178, 0x2179;
 ;
 
+#------------------------------------------------------------
+# pickit4_tpi
+#------------------------------------------------------------
+
+programmer
+    id                     = "pickit4_tpi";
+    desc                   = "MPLAB(R) PICkit 4 in TPI mode";
+    type                   = "jtagice3_tpi";
+    prog_modes             = PM_TPI;
+    connection_type        = usb;
+    usbpid                 = 0x2177, 0x2178, 0x2179;
+;
+
 #------------------------------------------------------------
 # snap_updi
 #------------------------------------------------------------
@@ -2323,6 +2362,19 @@ programmer
     usbpid                 = 0x2180, 0x217f, 0x2181;
 ;
 
+#------------------------------------------------------------
+# snap_tpi
+#------------------------------------------------------------
+
+programmer
+    id                     = "snap_tpi";
+    desc                   = "MPLAB(R) SNAP in TPI mode";
+    type                   = "jtagice3_tpi";
+    prog_modes             = PM_TPI;
+    connection_type        = usb;
+    usbpid                 = 0x2180, 0x217f, 0x2181;
+;
+
 #------------------------------------------------------------
 # pkobn_updi
 #------------------------------------------------------------
@@ -13358,6 +13410,14 @@ part parent ".reduced_core_tiny"
         offset             = 0x4000;
         blocksize          = 128;
     ;
+
+    memory "fuse"
+        size               = 1;
+        page_size          = 16;
+        n_word_writes      = 2;
+        offset             = 0x3f40;
+        blocksize          = 4;
+    ;
 ;
 
 #------------------------------------------------------------
@@ -13378,6 +13438,14 @@ part parent ".reduced_core_tiny"
         offset             = 0x4000;
         blocksize          = 128;
     ;
+
+    memory "fuse"
+        size               = 1;
+        page_size          = 16;
+        n_word_writes      = 4;
+        offset             = 0x3f40;
+        blocksize          = 4;
+    ;
 ;
 
 #------------------------------------------------------------