- /*
- u32 i = 0;
- for(; i <= 0x200; i+=4) {
- gecko_printf("0x0d050000 + %X: %X\n", i, read32(0x0d050000+i));
- udelay(10000); //'cause usb gecko is lame
- }
- * see output in ohci.default
- */
+
+ /* disable hc interrupts */
+ set32(OHCI0_HC_INT_DISABLE, OHCI_INTR_MIE);
+
+ /* save fmInterval and calculate FSMPS */
+#define FSMP(fi) (0x7fff & ((6 * ((fi) - 210)) / 7))
+#define FI 0x2edf /* 12000 bits per frame (-1) */
+ u32 fmint = read32(OHCI0_HC_FM_INTERVAL) & 0x3fff;
+ if(fmint != FI)
+ gecko_printf("ohci-- fminterval delta: %d\n", fmint - FI);
+ fmint |= FSMP (fmint) << 16;