예제 #1
0
static void usb_startup(void)
{
	usb_enable_module(1);
	mdelay(10);
	//usb_ldo_switch(0);
	sprd_greg_clear_bits(REG_TYPE_AHB_GLOBAL,BIT(1)|BIT(2),AHB_CTL3);
	usb_ldo_switch(1);
	sprd_greg_set_bits(REG_TYPE_AHB_GLOBAL,BIT(6),AHB_CTL3);

//	sprd_greg_set_bits(REG_TYPE_AHB_GLOBAL,BIT(8)|BIT(14)|BIT(15)|BIT(17),AHB_CTL3);
//	sprd_greg_clear_bits(REG_TYPE_AHB_GLOBAL,BIT(12)|BIT(13)|BIT(16),AHB_CTL3);

	sprd_greg_set_bits(REG_TYPE_AHB_GLOBAL,BIT(6)|BIT(7),AHB_SOFT_RST);
	mdelay(5);
	sprd_greg_clear_bits(REG_TYPE_AHB_GLOBAL,BIT(6)|BIT(7),AHB_SOFT_RST);
	sprd_greg_set_bits(REG_TYPE_AHB_GLOBAL,AHB_CTL0_USBD_EN,AHB_CTL0);
}
예제 #2
0
void main() {

uns16 tick_marker = 0;
uns16 test_tick;

		
	configure_system();
	delay_ms(100);
    #ifdef USB_SERIAL_DEBUG
		serial_print_str("USB here we go...");
    #endif
    delay_ms(100);
	usb_enable_module();
	while (usb_configured == 0) {
		#ifdef USB_SERIAL_DEBUG
			serial_print_str("<wait>");
		#endif
		delay_ms(250);
		delay_ms(250);
		delay_ms(250);
		delay_ms(250);
	}
	#ifdef USB_SERIAL_DEBUG
		serial_print_str("\nGreat! Now trying to print\n");
	#endif
	usb_cdc_print_str("\n\nPIC USB Serial demo\n");
	usb_cdc_print_str( "\n<");
	usb_cdc_print_str(__TIME__);
	usb_cdc_putc(' ');
	usb_cdc_print_str(__DATE__);
	usb_cdc_print_str(">\n");

	usb_cdc_print_str("Commands: a attach to USB bus\n");
	

	while(1) {

		if (usb_cdc_rx_avail()) {
			process_rx();
		}
		handle_tasks();	
		
	}	// while (1)
	// main
}
예제 #3
0
static void usb_startup(void)
{
        usb_enable_module(1);
        dwc_mdelay(10);
        usb_ldo_switch(0);
        __raw_bits_and(~BIT_1, AHB_CTL3);
        __raw_bits_and(~BIT_2, AHB_CTL3);
        usb_ldo_switch(1);
        __raw_bits_or(BIT_6, AHB_CTL3);


	//__raw_bits_or(BIT_7, AHB_SOFT_RST);
	//dwc_mdelay(10);
	//__raw_bits_and(~BIT_7, AHB_SOFT_RST);

	__raw_bits_or(BIT_5, AHB_CTL0);
        dwc_mdelay(30);
}
예제 #4
0
static void usb_startup(void)
{
	usb_ldo_switch(1);
	mdelay(10);
	usb_enable_module(1);
	mdelay(2);
#if defined(CONFIG_ARCH_SCX35)
	sci_glb_set(REG_AP_AHB_AHB_RST,BIT(5)|BIT(6)|BIT(7));
	mdelay(5);
	sci_glb_clr(REG_AP_AHB_AHB_RST,BIT(5)|BIT(6)|BIT(7));
#else	
	sprd_greg_clear_bits(REG_TYPE_AHB_GLOBAL,BIT(1)|BIT(2),AHB_CTL3);
	sprd_greg_set_bits(REG_TYPE_AHB_GLOBAL,BIT(6),AHB_CTL3);

	sprd_greg_set_bits(REG_TYPE_AHB_GLOBAL,BIT(6)|BIT(7),AHB_SOFT_RST);
	mdelay(5);
	sprd_greg_clear_bits(REG_TYPE_AHB_GLOBAL,BIT(6)|BIT(7),AHB_SOFT_RST);
	sprd_greg_set_bits(REG_TYPE_AHB_GLOBAL,AHB_CTL0_USBD_EN,AHB_CTL0);
#endif
	mdelay(3);
}
예제 #5
0
파일: usb_hw.c 프로젝트: ShinySide/SM-G361H
static void usb_startup(void)
{
	usb_ldo_switch(1);
	mdelay(10);
	usb_enable_module(1);
	mdelay(2);
#if (defined(CONFIG_ARCH_SCX35)||defined(CONFIG_ARCH_SCX35L64)||defined(CONFIG_ARCH_SCX35LT8))
#if defined(CONFIG_ARCH_SCX30G)
#if defined(CONFIG_ARCH_SCX20)
	sci_glb_set(REG_AP_AHB_AHB_RST, BIT(5)|BIT(6));
	mdelay(5);
	sci_glb_clr(REG_AP_AHB_AHB_RST, BIT(5)|BIT(6));

	sprd_usb_phy_rst();
#else
	sci_glb_set(REG_AP_AHB_AHB_RST,BIT(5)|BIT(6)|BIT(7));
	mdelay(5);
	sci_glb_clr(REG_AP_AHB_AHB_RST,BIT(5)|BIT(6)|BIT(7));
#endif
#else
	sci_glb_set(REG_AP_AHB_AHB_RST,BIT_OTG_SOFT_RST|BIT_OTG_UTMI_SOFT_RST|BIT_OTG_PHY_SOFT_RST);
	mdelay(5);
	sci_glb_clr(REG_AP_AHB_AHB_RST,BIT_OTG_SOFT_RST|BIT_OTG_UTMI_SOFT_RST|BIT_OTG_PHY_SOFT_RST);
	sci_glb_set(REG_AP_AHB_AHB_EB,BIT_USB_EB);
#endif
#else
	sprd_greg_clear_bits(REG_TYPE_AHB_GLOBAL,BIT_USB_S_HBIGEIDIAN|BIT_USB_M_HBIGENDIAN,REG_AHB_AHB_CTL3);
	sprd_greg_set_bits(REG_TYPE_AHB_GLOBAL,BIT_CLK_USB_REF_EN,REG_AHB_AHB_CTL3);

	sprd_greg_set_bits(REG_TYPE_AHB_GLOBAL,BIT_USBD_UTMI_SOFT_RST|BIT_USBPHY_SOFT_RST ,REG_AHB_SOFT_RST);
	mdelay(5);
	sprd_greg_clear_bits(REG_TYPE_AHB_GLOBAL,BIT_USBD_UTMI_SOFT_RST|BIT_USBPHY_SOFT_RST,REG_AHB_SOFT_RST);
	sprd_greg_set_bits(REG_TYPE_AHB_GLOBAL,BIT_USBD_EB,REG_AHB_AHB_CTL0);
#endif
	mdelay(3);
}
예제 #6
0
void udc_disable(void)
{
        pr_info("%s \n", __func__);
        usb_enable_module(0);
        usb_ldo_switch(0);
}
예제 #7
0
static void udc_disable(void)
{
        usb_enable_module(0);
        usb_ldo_switch(0);
}