|
@@ -870,8 +870,8 @@ static void clk_on(struct at91_udc *udc)
|
|
|
if (udc->clocked)
|
|
|
return;
|
|
|
udc->clocked = 1;
|
|
|
- clk_enable(udc->iclk);
|
|
|
- clk_enable(udc->fclk);
|
|
|
+ clk_prepare_enable(udc->iclk);
|
|
|
+ clk_prepare_enable(udc->fclk);
|
|
|
}
|
|
|
|
|
|
static void clk_off(struct at91_udc *udc)
|
|
@@ -880,8 +880,8 @@ static void clk_off(struct at91_udc *udc)
|
|
|
return;
|
|
|
udc->clocked = 0;
|
|
|
udc->gadget.speed = USB_SPEED_UNKNOWN;
|
|
|
- clk_disable(udc->fclk);
|
|
|
- clk_disable(udc->iclk);
|
|
|
+ clk_disable_unprepare(udc->fclk);
|
|
|
+ clk_disable_unprepare(udc->iclk);
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -1725,7 +1725,7 @@ static int at91udc_probe(struct platform_device *pdev)
|
|
|
/* init software state */
|
|
|
udc = &controller;
|
|
|
udc->gadget.dev.parent = dev;
|
|
|
- if (pdev->dev.of_node)
|
|
|
+ if (IS_ENABLED(CONFIG_OF) && pdev->dev.of_node)
|
|
|
at91udc_of_init(udc, pdev->dev.of_node);
|
|
|
else
|
|
|
memcpy(&udc->board, dev->platform_data,
|
|
@@ -1782,12 +1782,14 @@ static int at91udc_probe(struct platform_device *pdev)
|
|
|
}
|
|
|
|
|
|
/* don't do anything until we have both gadget driver and VBUS */
|
|
|
- clk_enable(udc->iclk);
|
|
|
+ retval = clk_prepare_enable(udc->iclk);
|
|
|
+ if (retval)
|
|
|
+ goto fail1;
|
|
|
at91_udp_write(udc, AT91_UDP_TXVC, AT91_UDP_TXVC_TXVDIS);
|
|
|
at91_udp_write(udc, AT91_UDP_IDR, 0xffffffff);
|
|
|
/* Clear all pending interrupts - UDP may be used by bootloader. */
|
|
|
at91_udp_write(udc, AT91_UDP_ICR, 0xffffffff);
|
|
|
- clk_disable(udc->iclk);
|
|
|
+ clk_disable_unprepare(udc->iclk);
|
|
|
|
|
|
/* request UDC and maybe VBUS irqs */
|
|
|
udc->udp_irq = platform_get_irq(pdev, 0);
|