| 
					
				 | 
			
			
				@@ -730,3 +730,105 @@ static int usbhs1_hardware_init(struct platform_device *pdev) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		dev_err(&pdev->dev, "request_irq err\n"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return ret; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/* enable USB phy interrupt */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	__raw_writew(USB_PHY_MODE | USB_PHY_INT_EN, priv->usbphyaddr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static void usbhs1_hardware_exit(struct platform_device *pdev) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	struct usbhs_private *priv = usbhs_get_priv(pdev); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/* clear interrupt status */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	__raw_writew(USB_PHY_MODE | USB_PHY_INT_CLR, priv->usbphyaddr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	free_irq(IRQ8, pdev); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static int usbhs1_get_id(struct platform_device *pdev) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return USBHS_HOST; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static u32 usbhs1_pipe_cfg[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	USB_ENDPOINT_XFER_CONTROL, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	USB_ENDPOINT_XFER_ISOC, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	USB_ENDPOINT_XFER_ISOC, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	USB_ENDPOINT_XFER_BULK, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	USB_ENDPOINT_XFER_BULK, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	USB_ENDPOINT_XFER_BULK, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	USB_ENDPOINT_XFER_INT, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	USB_ENDPOINT_XFER_INT, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	USB_ENDPOINT_XFER_INT, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	USB_ENDPOINT_XFER_BULK, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	USB_ENDPOINT_XFER_BULK, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	USB_ENDPOINT_XFER_BULK, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	USB_ENDPOINT_XFER_BULK, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	USB_ENDPOINT_XFER_BULK, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	USB_ENDPOINT_XFER_BULK, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	USB_ENDPOINT_XFER_BULK, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct usbhs_private usbhs1_private = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.usbphyaddr	= IOMEM(0xe60581e2),	/* USBPHY1INTAP */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.usbcrcaddr	= IOMEM(0xe6058130),	/* USBCR4 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.info = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.platform_callback = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			.hardware_init	= usbhs1_hardware_init, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			.hardware_exit	= usbhs1_hardware_exit, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			.get_id		= usbhs1_get_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			.phy_reset	= usbhs_phy_reset, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.driver_param = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			.buswait_bwait	= 4, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			.has_otg	= 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			.pipe_type	= usbhs1_pipe_cfg, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			.pipe_size	= ARRAY_SIZE(usbhs1_pipe_cfg), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			.d0_tx_id	= SHDMA_SLAVE_USB1_TX, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			.d1_rx_id	= SHDMA_SLAVE_USB1_RX, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct resource usbhs1_resources[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	[0] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.name	= "USBHS1", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.start	= 0xe68b0000, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.end	= 0xe68b00e6 - 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.flags	= IORESOURCE_MEM, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	[1] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.start	= evt2irq(0x1ce0) /* USB1_USB1I0 */, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.flags	= IORESOURCE_IRQ, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct platform_device usbhs1_device = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.name	= "renesas_usbhs", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.id	= 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.dev = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.platform_data		= &usbhs1_private.info, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.dma_mask		= &usbhs1_device.dev.coherent_dma_mask, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.coherent_dma_mask	= DMA_BIT_MASK(32), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.num_resources	= ARRAY_SIZE(usbhs1_resources), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.resource	= usbhs1_resources, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* LED */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct gpio_led mackerel_leds[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.name		= "led0", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.gpio		= GPIO_PORT0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.default_state	= LEDS_GPIO_DEFSTATE_ON, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.name		= "led1", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.gpio		= GPIO_PORT1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.default_state	= LEDS_GPIO_DEFSTATE_ON, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.name		= "led2", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.gpio		= GPIO_PORT2, 
			 |