/*----------------------------------------------------------------------------- * SmiSetRegs -- *----------------------------------------------------------------------------- */ static void SmiSetRegs (void) { /* * The content of the chipset register depends on the board (clocks, * ...) */ const SMI_REGS *preg = board_get_regs (); while (preg->Index) { write_reg32 (preg->Index, preg->Value); /* * Insert a delay between */ udelay (1000); preg ++; } }
/******************************************************************************* Routine Name: main Form: int main(void) Parameters: なし Return value: 常に0 Description: テスト用メイン関数 ******************************************************************************/ int main(void) { uint loop; cpu_init(); /* リトルエンディアン設定 */ write_reg32(Endian, 0x00000000); /*割り込みの初期化*/ write_reg32(SttTrnsCnt, read_reg32(SttTrnsCnt)); write_reg32(OTGIntMask, 0x00000000); write_reg32(INTENBL, 0); write_reg32(HostCtl, B_DMAIRQ_MASK|B_OHCIIRQ_MASK); /*ペリフェラル機能に切換え*/ write_reg32(HostPeriSel, B_PERI_SEL); /*ビジー解除待ち*/ loop=0; while(read_reg32(HostPeriSel) & B_OPERATION){ loop++; } write_reg32(RstClkCtl, 0x00000000); /*ペリフェラル部リセット*/ write_reg32(RstClkCtl, B_PRST); /*ビジー解除待ち*/ loop=0; while(read_reg32(HostPeriSel) & B_OPERATION){ loop++; } write_reg32(OTGCtl, (read_reg32(OTGCtl) & ~(B_PDCTLDP | B_PDCTLDM | B_PUCTLDP)) | B_ABSESSVLDENB ); IRQ_Install(EIRQ3, IRQ_LV_EXUSB, usbp_interrupt); usbperi_init(); usbp_main(); return 0; }