Exemplo n.º 1
0
static ssize_t soft_switch_state(struct switch_dev *sdev, char *buf)
{
	if (soft_switch.state == 0) {
		s3c_udc_soft_disconnect();
		udelay(20);
		s3c_udc_soft_connect();
		soft_switch.state = 1;
	}
	else {
		s3c_udc_soft_disconnect();
		udelay(20);
		s3c_udc_soft_connect();
		soft_switch.state = 0;
	}
	return sprintf(buf, "%s\n", (soft_switch.state ? "1" : "0"));
}
/*
 * usb_gadget_ops pullup
 */ 
static int s3c_udc_pullup(struct usb_gadget *gadget, int is_on)
{
	if (is_on)
		s3c_udc_soft_connect();
	else
		s3c_udc_soft_disconnect();
	return 0;
}
Exemplo n.º 3
0
/*
 * usb_gadget_ops pullup
 */ 
static int s3c_udc_pullup(struct usb_gadget *gadget, int is_on)
{
//#ifdef CONFIG_PM
#if 0
	//logical 
	if (is_on)
	{
		s3c_udc_soft_connect();
	}
	else
	{
		s3c_udc_soft_disconnect();
	}
#else
	struct s3c_udc *dev = the_controller;
	unsigned long flags;

	//UDC power on/off
	if (is_on)
	{
		DEBUG_PM("[%s] is_on[%d]\n", __func__, is_on);
	/*
	 * if early s3c_udc_power_up make 
	 * fsa9480_check_usb_connection failed to detect USB connection
	 */
#if NO_USING_USB_SWITCH 
		s3c_udc_power_up();
#else
		fsa9480_check_usb_connection();
#endif
	}
	else
	{	
		DEBUG_PM("[%s] is_on[%d]\n", __func__, is_on);

		S3C_UDC_LOCK_IRQSAVE(&dev->lock, flags);
		s3c_udc_stop_activity(dev, dev->driver);
		s3c_udc_power_down();
		S3C_UDC_UNLOCK_IRQRESTORE(&dev->lock, flags);
	}
#endif
	return 0;
}