Ejemplo n.º 1
0
/*-----------------------------------------------------------------------------
 * 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 ++;
	}
}
Ejemplo n.º 2
0
/*******************************************************************************
	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;
}