diff --git a/model/arch/msp430fr5969lp/driver/gpio.dfa b/model/arch/msp430fr5969lp/driver/gpio.dfa
new file mode 100644
index 0000000000000000000000000000000000000000..b1f07081a7e7589c6dd29babb207140627d68012
--- /dev/null
+++ b/model/arch/msp430fr5969lp/driver/gpio.dfa
@@ -0,0 +1,13 @@
+states:
+  - UNINITIALIZED
+  - P0_INPUT
+  - P0_INPUT_PULLUP
+  - P0_OUTPUT_LOW
+  - P0_OUTPUT_HIGH
+
+transition:
+  setup:
+    src: [UNINITIALIZED]
+    dst: P0_OUTPUT
+  input:
+    src: [P0_INPUT, P0_INPUT_PULLUP, P0_OUTPUT_LOW, P0_OUTPUT_HIGH]
diff --git a/model/arch/posix/driver/gpio.dfa b/model/arch/posix/driver/gpio.dfa
new file mode 100644
index 0000000000000000000000000000000000000000..84c78e4bb8f8d913854775b7437084d5f0c43412
--- /dev/null
+++ b/model/arch/posix/driver/gpio.dfa
@@ -0,0 +1,31 @@
+codegen:
+  instance: gpio
+  includes: ['driver/gpio.h']
+
+states:
+  - UNINITIALIZED
+  - P0_INPUT
+  - P0_OUTPUT
+
+parameters:
+  - px00_status
+
+transition:
+  setup:
+    src: [UNINITIALIZED]
+    dst: P0_OUTPUT
+  input:
+    src: [P0_INPUT, P0_OUTPUT]
+    dst: P0_INPUT
+    arguments:
+      - name: pin
+        values: ['GPIO::px00']
+  output:
+    src: [P0_INPUT, P0_OUTPUT]
+    dst: P0_OUTPUT
+    arguments:
+      - name: pin
+        values: ['GPIO::px00']
+      - name: value
+        values: [0, 1]
+        parameter: px00_status
diff --git a/model/driver/lm75.dfa b/model/driver/lm75.dfa
index 2c136f96626783e7c8d9a1fdd313156b17437a6d..4f47afdfe8d962b464e1cac44b85053c12c8d177 100644
--- a/model/driver/lm75.dfa
+++ b/model/driver/lm75.dfa
@@ -1,6 +1,7 @@
 codegen:
   instance: lm75
   includes: ['driver/lm75.h']
+  flags: ['drivers=lm75', 'arch_drivers=i2c']
 
 parameters:
   - os
diff --git a/model/driver/sharp96.dfa b/model/driver/sharp96.dfa
index 9b356dbe06ba96b4a05ab197762670d79d4a4f10..9ea510ded5e0cd8a740f26edd0ad6346e475aad6 100644
--- a/model/driver/sharp96.dfa
+++ b/model/driver/sharp96.dfa
@@ -2,6 +2,7 @@ codegen:
   instance: sharp96
   includes: ['driver/spi_b.h', 'driver/sharp96.h']
   setup: ['spi.setup();', 'sharp96.setup();']
+  flags: ['drivers=sharp96', 'arch_drivers=spi_b,counter']
 
 states:
   - UNINITIALIZED