Exemple #1
0
int udc_init(void)
{
	int ret;
	int ep_loop;

	ret = musb_platform_init();
	if (ret < 0)
		goto end;

	/* Configure all the endpoint FIFO's and start usb controller */
	musbr = musb_cfg.regs;

	/* Initialize the endpoints */
	for (ep_loop = 0; ep_loop < MAX_ENDPOINT * 2; ep_loop++) {
		epinfo[ep_loop].epnum = (ep_loop / 2) + 1;
		epinfo[ep_loop].epdir = ep_loop % 2; /* OUT, IN */
		epinfo[ep_loop].epsize = 0;
	}

	musb_peri_softconnect();

	ret = 0;
end:

	return ret;
}
	/*Clear OTG bit of CLKGR0,0:device can be accessed*/
	REG_CPM_CLKGR0 &= (~(CPM_CLKGR0_OTG));
#ifdef DEBUG
	serial_puts_info("**************************MUSB REG INFO*******************************\n");
	serial_puts_info("CPCCR : ");
	serial_put_hex(REG_CPM_CPCCR);
	serial_puts_info("USBCDR : ");
	serial_put_hex(REG_CPM_USBCDR);
	serial_puts_info("CPCCR : ");
	serial_put_hex(REG_CPM_CPCCR);
	serial_puts_info("CLKGR0 : ");
	serial_put_hex(REG_CPM_CLKGR0);
#endif
        jz_musb_init();

	return;
}
#endif	/*CONFIG_JZ4760*/
void usbloader_init(void)
{
#if	defined(CONFIG_JZ4760) || defined(CONFIG_JZ4760B) || defined(CONFIG_JZ4770)
	musb_platform_init();
#endif
	usb_init();
	boot_register_poll_func(usb_poll);
}