qmod eeprom/i2c: Re-start watchdog while slow bit-banging
diff --git a/firmware/libboard/qmod/include/board.h b/firmware/libboard/qmod/include/board.h
index 106d5d0..0f6343e 100644
--- a/firmware/libboard/qmod/include/board.h
+++ b/firmware/libboard/qmod/include/board.h
@@ -57,10 +57,10 @@
#define BOARD_USB_BMATTRIBUTES USBConfigurationDescriptor_SELFPOWERED_NORWAKEUP
-#define SIMTRACE_VENDOR_ID 0x1d50
-#define SIMTRACE_PRODUCT_ID 0x60e3 /* FIXME */
-#define USB_VENDOR_ID SIMTRACE_VENDOR_ID
-#define USB_PRODUCT_ID SIMTRACE_PRODUCT_ID
+#define BOARD_USB_VENDOR_ID USB_VENDOR_OPENMOKO
+#define BOARD_USB_PRODUCT_ID USB_PRODUCT_QMOD_SAM3
+#define BOARD_DFU_USB_PRODUCT_ID USB_PRODUCT_QMOD_SAM3_DFU
+#define BOARD_USB_RELEASE 0x010
#define CARDEMU_SECOND_UART
#define DETECT_VCC_BY_ADC
diff --git a/firmware/libboard/qmod/source/board_qmod.c b/firmware/libboard/qmod/source/board_qmod.c
index e05a454..3e6ec52 100644
--- a/firmware/libboard/qmod/source/board_qmod.c
+++ b/firmware/libboard/qmod/source/board_qmod.c
@@ -26,7 +26,11 @@
}
const unsigned char __eeprom_bin[256] = {
- 0x23, 0x42, 0x17, 0x25, 0x00, 0x00, 0x9b, 0x20, 0x01, 0x00, 0x00, 0x00, 0x32, 0x32, 0x32, 0x32, /* 0x00 - 0x0f */
+ USB_VENDOR_OPENMOKO & 0xff,
+ USB_VENDOR_OPENMOKO >> 8,
+ USB_PRODUCT_QMOD_HUB & 0xff,
+ USB_PRODUCT_QMOD_HUB >> 8,
+ 0x00, 0x00, 0x9b, 0x20, 0x01, 0x00, 0x00, 0x00, 0x32, 0x32, 0x32, 0x32, /* 0x00 - 0x0f */
0x32, 0x04, 0x09, 0x18, 0x0d, 0x00, 0x73, 0x00, 0x79, 0x00, 0x73, 0x00, 0x6d, 0x00, 0x6f, 0x00, /* 0x10 - 0x1f */
0x63, 0x00, 0x6f, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x2d, 0x00, 0x20, 0x00, 0x73, 0x00, 0x2e, 0x00, /* 0x20 - 0x2f */
0x66, 0x00, 0x2e, 0x00, 0x6d, 0x00, 0x2e, 0x00, 0x63, 0x00, 0x2e, 0x00, 0x20, 0x00, 0x47, 0x00, /* 0x30 - 0x3f */
diff --git a/firmware/libboard/qmod/source/i2c.c b/firmware/libboard/qmod/source/i2c.c
index 0549da1..607f247 100644
--- a/firmware/libboard/qmod/source/i2c.c
+++ b/firmware/libboard/qmod/source/i2c.c
@@ -157,6 +157,8 @@
{
bool nack;
+ WDT_Restart(WDT);
+
/* Write slave address */
nack = i2c_write_byte(true, false, slave << 1);
if (nack)
@@ -180,6 +182,8 @@
{
bool nack;
+ WDT_Restart(WDT);
+
/* dummy write cycle */
nack = i2c_write_byte(true, false, slave << 1);
if (nack)