static void usbh2_clock_gate(bool on)
{
	pr_debug("%s: on is %d\n", __func__, on);
	if (on) {
		clk_enable(usb_oh3_clk);
		clk_enable(usb_phy3_clk);
		usbh2_internal_phy_clock_gate(true);
	} else {
		usbh2_internal_phy_clock_gate(false);
		clk_disable(usb_phy3_clk);
		clk_disable(usb_oh3_clk);
	}
}
Esempio n. 2
0
static void fsl_usb_host_uninit_ext(struct platform_device *pdev)
{
	struct fsl_usb2_platform_data *pdata = pdev->dev.platform_data;

	fsl_usb_host_uninit(pdata);

	usbh2_internal_phy_clock_gate(false);

	clk_disable(usb_phy3_clk);
	clk_put(usb_phy3_clk);

	clk_disable(usb_oh3_clk);
	clk_put(usb_oh3_clk);

}
static int fsl_usb_host_init_ext(struct platform_device *pdev)
{
	int ret;
	struct clk *usb_clk;
	usb_clk = clk_get(NULL, "usboh3_clk");
	clk_enable(usb_clk);
	usb_oh3_clk = usb_clk;

	usb_clk = clk_get(NULL, "usb_phy3_clk");
	clk_enable(usb_clk);
	usb_phy3_clk = usb_clk;

	ret = fsl_usb_host_init(pdev);
	if (ret) {
		printk(KERN_ERR "host1 init fails......\n");
		return ret;
	}
	usbh2_internal_phy_clock_gate(true);
	 /* Host2 HSIC enable */
	USB_UH2_HSIC_CTRL |= HSIC_EN;

	return 0;
}