diff --git a/data/registers/timer_v2.json b/data/registers/timer_v2.json
index 7a81ff9..7b864f9 100644
--- a/data/registers/timer_v2.json
+++ b/data/registers/timer_v2.json
@@ -1748,8 +1748,17 @@
       {
         "name": "MMS",
         "description": "Master mode selection",
-        "bit_offset": 4,
-        "bit_size": 3,
+        "bit_offset": [
+          {
+            "start": 4,
+            "end": 6
+          },
+          {
+            "start": 25,
+            "end": 25
+          }
+        ],
+        "bit_size": 4,
         "enum": "MMS"
       },
       {
@@ -1768,8 +1777,17 @@
       {
         "name": "MMS",
         "description": "Master mode selection",
-        "bit_offset": 4,
-        "bit_size": 3,
+        "bit_offset": [
+          {
+            "start": 4,
+            "end": 6
+          },
+          {
+            "start": 25,
+            "end": 25
+          }
+        ],
+        "bit_size": 4,
         "enum": "MMS"
       },
       {
@@ -1830,8 +1848,17 @@
       {
         "name": "MMS",
         "description": "Master mode selection",
-        "bit_offset": 4,
-        "bit_size": 3,
+        "bit_offset": [
+          {
+            "start": 4,
+            "end": 6
+          },
+          {
+            "start": 25,
+            "end": 25
+          }
+        ],
+        "bit_size": 4,
         "enum": "MMS"
       }
     ]
@@ -2376,15 +2403,33 @@
       {
         "name": "SMS",
         "description": "Slave mode selection",
-        "bit_offset": 0,
-        "bit_size": 3,
+        "bit_offset": [
+          {
+            "start": 0,
+            "end": 2
+          },
+          {
+            "start": 16,
+            "end": 16
+          }
+        ],
+        "bit_size": 4,
         "enum": "SMS"
       },
       {
         "name": "TS",
         "description": "Trigger selection",
-        "bit_offset": 4,
-        "bit_size": 3,
+        "bit_offset": [
+          {
+            "start": 4,
+            "end": 6
+          },
+          {
+            "start": 20,
+            "end": 21
+          }
+        ],
+        "bit_size": 5,
         "enum": "TS"
       },
       {
@@ -3245,7 +3290,7 @@
     ]
   },
   "enum/MMS": {
-    "bit_size": 3,
+    "bit_size": 4,
     "variants": [
       {
         "name": "Reset",
@@ -3286,6 +3331,11 @@
         "name": "CompareOC4",
         "description": "OC4REF signal is used as trigger output",
         "value": 7
+      },
+      {
+        "name": "EncoderClockOutput",
+        "description": "The encoder clock signal is used as trigger output",
+        "value": 8
       }
     ]
   },
@@ -3480,11 +3530,11 @@
     ]
   },
   "enum/SMS": {
-    "bit_size": 3,
+    "bit_size": 4,
     "variants": [
       {
         "name": "Disabled",
-        "description": "Slave mode disabled - if CEN = ‘1 then the prescaler is clocked directly by the internal clock.",
+        "description": "Slave mode disabled - if CEN = '1' then the prescaler is clocked directly by the internal clock.",
         "value": 0
       },
       {
@@ -3521,6 +3571,46 @@
         "name": "Ext_Clock_Mode",
         "description": "External Clock Mode 1 - Rising edges of the selected trigger (TRGI) clock the counter.",
         "value": 7
+      },
+      {
+        "name": "Combined_Reset_Trigger",
+        "description": "Rising edge of the selected trigger input (tim_trgi) reinitializes the counter, generates an update of the registers and starts the counter.",
+        "value": 8
+      },
+      {
+        "name": "Combined_Gated_Trigger",
+        "description": "The counter clock is enabled when the trigger input (tim_trgi) is high. The counter stops and is reset) as soon as the trigger becomes low. Both start and stop of the counter are controlled.",
+        "value": 9
+      },
+      {
+        "name": "Encoder_Up_X2",
+        "description": "Encoder mode, Clock plus direction, x2 mode.",
+        "value": 10
+      },
+      {
+        "name": "Encoder_Up_X1",
+        "description": "Encoder mode, Clock plus direction, x1 mode, tim_ti2fp2 edge sensitivity is set by CC2P",
+        "value": 11
+      },
+      {
+        "name": "Encoder_Dir_X2",
+        "description": "Encoder mode, Directional Clock, x2 mode.",
+        "value": 12
+      },
+      {
+        "name": "Encoder_Dir_X1",
+        "description": "Encoder mode, Directional Clock, x1 mode, tim_ti1fp1 and tim_ti2fp2 edge sensitivity is set by CC1P and CC2P.",
+        "value": 13
+      },
+      {
+        "name": "Quadrature_Encoder_Mode_X1_TI1PF1",
+        "description": "Quadrature encoder mode, x1 mode, counting on tim_ti1fp1 edges only, edge sensitivity is set by CC1P.",
+        "value": 14
+      },
+      {
+        "name": "Quadrature_Encoder_Mode_X1_TI2PF2",
+        "description": "Quadrature encoder mode, x1 mode, counting on tim_ti2fp2 edges only, edge sensitivity is set by CC2P.",
+        "value": 15
       }
     ]
   },
@@ -3555,47 +3645,107 @@
     ]
   },
   "enum/TS": {
-    "bit_size": 3,
+    "bit_size": 5,
     "variants": [
       {
         "name": "ITR0",
-        "description": "Internal Trigger 0 (ITR0)",
+        "description": "Internal Trigger 0",
         "value": 0
       },
       {
         "name": "ITR1",
-        "description": "Internal Trigger 1 (ITR1)",
+        "description": "Internal Trigger 1",
         "value": 1
       },
       {
         "name": "ITR2",
-        "description": "Internal Trigger 2 (ITR2)",
+        "description": "Internal Trigger 2",
         "value": 2
       },
       {
         "name": "ITR3",
-        "description": "Internal Trigger 3 (ITR3)",
+        "description": "Internal Trigger 3",
         "value": 3
       },
       {
         "name": "TI1F_ED",
-        "description": "TI1 Edge Detector (TI1F_ED)",
+        "description": "TI1 Edge Detector",
         "value": 4
       },
       {
         "name": "TI1FP1",
-        "description": "Filtered Timer Input 1 (TI1FP1)",
+        "description": "Filtered Timer Input 1",
         "value": 5
       },
       {
         "name": "TI2FP2",
-        "description": "Filtered Timer Input 2 (TI2FP2)",
+        "description": "Filtered Timer Input 2",
         "value": 6
       },
       {
         "name": "ETRF",
-        "description": "External Trigger input (ETRF)",
+        "description": "External Trigger input",
         "value": 7
+      },
+      {
+        "name": "ITR4",
+        "description": "Internal Trigger 4",
+        "value": 8
+      },
+      {
+        "name": "ITR5",
+        "description": "Internal Trigger 5",
+        "value": 9
+      },
+      {
+        "name": "ITR6",
+        "description": "Internal Trigger 6",
+        "value": 10
+      },
+      {
+        "name": "ITR7",
+        "description": "Internal Trigger 7",
+        "value": 11
+      },
+      {
+        "name": "ITR8",
+        "description": "Internal Trigger 8",
+        "value": 12
+      },
+      {
+        "name": "ITR9",
+        "description": "Internal Trigger 9",
+        "value": 13
+      },
+      {
+        "name": "ITR10",
+        "description": "Internal Trigger 10",
+        "value": 14
+      },
+      {
+        "name": "ITR11",
+        "description": "Internal Trigger 11",
+        "value": 15
+      },
+      {
+        "name": "ITR12",
+        "description": "Internal Trigger 12",
+        "value": 16
+      },
+      {
+        "name": "ITR13",
+        "description": "Internal Trigger 13",
+        "value": 17
+      },
+      {
+        "name": "ITR14",
+        "description": "Internal Trigger 14",
+        "value": 18
+      },
+      {
+        "name": "ITR15",
+        "description": "Internal Trigger 15",
+        "value": 19
       }
     ]
   },