1 // SPDX-License-Identifier: GPL-2.0+
4 * DENX Software Engineering <mk@denx.de>
9 #if defined(CONFIG_USB_OHCI_NEW) && defined(CONFIG_SYS_USB_OHCI_CPU_INIT)
11 #include <asm/arch/clk.h>
13 int usb_cpu_init(void)
15 #ifdef CONFIG_USB_ATMEL_CLK_SEL_PLLB
16 if (at91_pllb_clk_enable(get_pllb_init()))
19 #ifdef CONFIG_AT91SAM9N12
20 at91_usb_clk_init(AT91_PMC_USBS_USB_PLLB | AT91_PMC_USB_DIV_2);
22 #elif defined(CONFIG_USB_ATMEL_CLK_SEL_UPLL)
23 if (at91_upll_clk_enable())
26 at91_usb_clk_init(AT91_PMC_USBS_USB_UPLL | AT91_PMC_USBDIV_10);
29 at91_periph_clk_enable(ATMEL_ID_UHP);
31 at91_system_clk_enable(ATMEL_PMC_UHP);
32 #if defined(CONFIG_AT91SAM9261) || defined(CONFIG_AT91SAM9G10)
33 at91_system_clk_enable(AT91_PMC_HCK0);
39 int usb_cpu_stop(void)
41 at91_periph_clk_disable(ATMEL_ID_UHP);
43 at91_system_clk_disable(ATMEL_PMC_UHP);
44 #if defined(CONFIG_AT91SAM9261) || defined(CONFIG_AT91SAM9G10)
45 at91_system_clk_disable(AT91_PMC_HCK0);
48 #ifdef CONFIG_USB_ATMEL_CLK_SEL_PLLB
49 #ifdef CONFIG_AT91SAM9N12
53 if (at91_pllb_clk_disable())
56 #elif defined(CONFIG_USB_ATMEL_CLK_SEL_UPLL)
57 if (at91_upll_clk_disable())
64 int usb_cpu_init_fail(void)
66 return usb_cpu_stop();
69 #endif /* defined(CONFIG_USB_OHCI) && defined(CONFIG_SYS_USB_OHCI_CPU_INIT) */