diff options
Diffstat (limited to 'drivers/usb/gadget/at91_udc.c')
-rw-r--r-- | drivers/usb/gadget/at91_udc.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/usb/gadget/at91_udc.c b/drivers/usb/gadget/at91_udc.c index 073b938f9135..d9a6add0c852 100644 --- a/drivers/usb/gadget/at91_udc.c +++ b/drivers/usb/gadget/at91_udc.c | |||
@@ -870,8 +870,8 @@ static void clk_on(struct at91_udc *udc) | |||
870 | if (udc->clocked) | 870 | if (udc->clocked) |
871 | return; | 871 | return; |
872 | udc->clocked = 1; | 872 | udc->clocked = 1; |
873 | clk_enable(udc->iclk); | 873 | clk_prepare_enable(udc->iclk); |
874 | clk_enable(udc->fclk); | 874 | clk_prepare_enable(udc->fclk); |
875 | } | 875 | } |
876 | 876 | ||
877 | static void clk_off(struct at91_udc *udc) | 877 | static void clk_off(struct at91_udc *udc) |
@@ -880,8 +880,8 @@ static void clk_off(struct at91_udc *udc) | |||
880 | return; | 880 | return; |
881 | udc->clocked = 0; | 881 | udc->clocked = 0; |
882 | udc->gadget.speed = USB_SPEED_UNKNOWN; | 882 | udc->gadget.speed = USB_SPEED_UNKNOWN; |
883 | clk_disable(udc->fclk); | 883 | clk_disable_unprepare(udc->fclk); |
884 | clk_disable(udc->iclk); | 884 | clk_disable_unprepare(udc->iclk); |
885 | } | 885 | } |
886 | 886 | ||
887 | /* | 887 | /* |
@@ -1725,7 +1725,7 @@ static int at91udc_probe(struct platform_device *pdev) | |||
1725 | /* init software state */ | 1725 | /* init software state */ |
1726 | udc = &controller; | 1726 | udc = &controller; |
1727 | udc->gadget.dev.parent = dev; | 1727 | udc->gadget.dev.parent = dev; |
1728 | if (pdev->dev.of_node) | 1728 | if (IS_ENABLED(CONFIG_OF) && pdev->dev.of_node) |
1729 | at91udc_of_init(udc, pdev->dev.of_node); | 1729 | at91udc_of_init(udc, pdev->dev.of_node); |
1730 | else | 1730 | else |
1731 | memcpy(&udc->board, dev->platform_data, | 1731 | memcpy(&udc->board, dev->platform_data, |
@@ -1782,12 +1782,14 @@ static int at91udc_probe(struct platform_device *pdev) | |||
1782 | } | 1782 | } |
1783 | 1783 | ||
1784 | /* don't do anything until we have both gadget driver and VBUS */ | 1784 | /* don't do anything until we have both gadget driver and VBUS */ |
1785 | clk_enable(udc->iclk); | 1785 | retval = clk_prepare_enable(udc->iclk); |
1786 | if (retval) | ||
1787 | goto fail1; | ||
1786 | at91_udp_write(udc, AT91_UDP_TXVC, AT91_UDP_TXVC_TXVDIS); | 1788 | at91_udp_write(udc, AT91_UDP_TXVC, AT91_UDP_TXVC_TXVDIS); |
1787 | at91_udp_write(udc, AT91_UDP_IDR, 0xffffffff); | 1789 | at91_udp_write(udc, AT91_UDP_IDR, 0xffffffff); |
1788 | /* Clear all pending interrupts - UDP may be used by bootloader. */ | 1790 | /* Clear all pending interrupts - UDP may be used by bootloader. */ |
1789 | at91_udp_write(udc, AT91_UDP_ICR, 0xffffffff); | 1791 | at91_udp_write(udc, AT91_UDP_ICR, 0xffffffff); |
1790 | clk_disable(udc->iclk); | 1792 | clk_disable_unprepare(udc->iclk); |
1791 | 1793 | ||
1792 | /* request UDC and maybe VBUS irqs */ | 1794 | /* request UDC and maybe VBUS irqs */ |
1793 | udc->udp_irq = platform_get_irq(pdev, 0); | 1795 | udc->udp_irq = platform_get_irq(pdev, 0); |