#include <stdint.h>
+enum mm_recstate {
+ MM_IDLE = 0,
+ MM_FIRST_FAST_SAMPLE,
+ MM_FIRST_SLOW_SAMPLE, /* If clock arrives, we stay on the fast path! */
+ MM_FAST_SAMPLE,
+ MM_FAST_WAIT_FOR_CLOCK,
+ MM_SLOW_SAMPLE,
+ MM_SLOW_WAIT_FOR_CLOCK,
+};
+
+#ifdef MM_USE_REGISTER_VARS
+
+uint8_t register shift_command asm("r2");
+uint8_t register shift_function asm("r3");
+uint8_t register shift_address asm("r4");
+uint8_t register recstate asm("r5");
+uint8_t register bitno asm("r6");
+
+static void inline __attribute((unused)) mm_init(void)
+{
+ bitno = 0;
+ recstate = MM_IDLE;
+}
+
+#else
+
+#define mm_init(...)
+
+#endif
+
/*
* mm_switch_command - Callback function!
*
void mm_pinchange_handler(void);
-void mm_init(void);
#endif