Re: [U-Boot] [PATCH v2 2/3] drivers: usb: ohci-at91: clean up the PLLB code
On 27.01.2016 03:04, Wenyou Yang wrote: > Due to introducing the new PLLB clock handle functions, > use these functions to clean up the PLLB enable/disable code. > > Signed-off-by: Wenyou YangReviewed-by: Andreas Bießmann > --- > > Changes in v2: > - add return value for timeout checking at91_pllb_clk_enable/disable(). > > drivers/usb/host/ohci-at91.c | 22 +++--- > 1 file changed, 7 insertions(+), 15 deletions(-) > > diff --git a/drivers/usb/host/ohci-at91.c b/drivers/usb/host/ohci-at91.c > index 6ae6959..e030a0a 100644 > --- a/drivers/usb/host/ohci-at91.c > +++ b/drivers/usb/host/ohci-at91.c > @@ -9,20 +9,14 @@ > > #if defined(CONFIG_USB_OHCI_NEW) && defined(CONFIG_SYS_USB_OHCI_CPU_INIT) > > -#include > -#include > -#include > #include > > int usb_cpu_init(void) > { > - at91_pmc_t *pmc = (at91_pmc_t *)ATMEL_BASE_PMC; > - > #ifdef CONFIG_USB_ATMEL_CLK_SEL_PLLB > - /* Enable PLLB */ > - writel(get_pllb_init(), >pllbr); > - while ((readl(>sr) & AT91_PMC_LOCKB) != AT91_PMC_LOCKB) > - ; > + if (at91_pllb_clk_enable(get_pllb_init())) > + return -1; > + > #ifdef CONFIG_AT91SAM9N12 > at91_usb_clk_init(AT91_PMC_USBS_USB_PLLB | AT91_PMC_USB_DIV_2); > #endif > @@ -45,8 +39,6 @@ int usb_cpu_init(void) > > int usb_cpu_stop(void) > { > - at91_pmc_t *pmc = (at91_pmc_t *)ATMEL_BASE_PMC; > - > at91_periph_clk_disable(ATMEL_ID_UHP); > > at91_system_clk_disable(ATMEL_PMC_UHP); > @@ -58,10 +50,10 @@ int usb_cpu_stop(void) > #ifdef CONFIG_AT91SAM9N12 > at91_usb_clk_init(0); > #endif > - /* Disable PLLB */ > - writel(0, >pllbr); > - while ((readl(>sr) & AT91_PMC_LOCKB) != 0) > - ; > + > + if (at91_pllb_clk_disable()) > + return -1; > + > #elif defined(CONFIG_USB_ATMEL_CLK_SEL_UPLL) > if (at91_upll_clk_disable()) > return -1; > ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH v2 2/3] drivers: usb: ohci-at91: clean up the PLLB code
Hello Wenyou, Am 27.01.2016 um 03:04 schrieb Wenyou Yang: Due to introducing the new PLLB clock handle functions, use these functions to clean up the PLLB enable/disable code. Signed-off-by: Wenyou Yang--- Changes in v2: - add return value for timeout checking at91_pllb_clk_enable/disable(). drivers/usb/host/ohci-at91.c | 22 +++--- 1 file changed, 7 insertions(+), 15 deletions(-) Tested on the smartweb board, so: Tested-by: Heiko Schocher bye, Heiko [1] testlog http://xeidos.ddns.net/buildbot/builders/smartweb_dfu/builds/48/steps/shell/logs/tbotlog diff --git a/drivers/usb/host/ohci-at91.c b/drivers/usb/host/ohci-at91.c index 6ae6959..e030a0a 100644 --- a/drivers/usb/host/ohci-at91.c +++ b/drivers/usb/host/ohci-at91.c @@ -9,20 +9,14 @@ #if defined(CONFIG_USB_OHCI_NEW) && defined(CONFIG_SYS_USB_OHCI_CPU_INIT) -#include -#include -#include #include int usb_cpu_init(void) { - at91_pmc_t *pmc = (at91_pmc_t *)ATMEL_BASE_PMC; - #ifdef CONFIG_USB_ATMEL_CLK_SEL_PLLB - /* Enable PLLB */ - writel(get_pllb_init(), >pllbr); - while ((readl(>sr) & AT91_PMC_LOCKB) != AT91_PMC_LOCKB) - ; + if (at91_pllb_clk_enable(get_pllb_init())) + return -1; + #ifdef CONFIG_AT91SAM9N12 at91_usb_clk_init(AT91_PMC_USBS_USB_PLLB | AT91_PMC_USB_DIV_2); #endif @@ -45,8 +39,6 @@ int usb_cpu_init(void) int usb_cpu_stop(void) { - at91_pmc_t *pmc = (at91_pmc_t *)ATMEL_BASE_PMC; - at91_periph_clk_disable(ATMEL_ID_UHP); at91_system_clk_disable(ATMEL_PMC_UHP); @@ -58,10 +50,10 @@ int usb_cpu_stop(void) #ifdef CONFIG_AT91SAM9N12 at91_usb_clk_init(0); #endif - /* Disable PLLB */ - writel(0, >pllbr); - while ((readl(>sr) & AT91_PMC_LOCKB) != 0) - ; + + if (at91_pllb_clk_disable()) + return -1; + #elif defined(CONFIG_USB_ATMEL_CLK_SEL_UPLL) if (at91_upll_clk_disable()) return -1; -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH v2 2/3] drivers: usb: ohci-at91: clean up the PLLB code
Due to introducing the new PLLB clock handle functions, use these functions to clean up the PLLB enable/disable code. Signed-off-by: Wenyou Yang--- Changes in v2: - add return value for timeout checking at91_pllb_clk_enable/disable(). drivers/usb/host/ohci-at91.c | 22 +++--- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/drivers/usb/host/ohci-at91.c b/drivers/usb/host/ohci-at91.c index 6ae6959..e030a0a 100644 --- a/drivers/usb/host/ohci-at91.c +++ b/drivers/usb/host/ohci-at91.c @@ -9,20 +9,14 @@ #if defined(CONFIG_USB_OHCI_NEW) && defined(CONFIG_SYS_USB_OHCI_CPU_INIT) -#include -#include -#include #include int usb_cpu_init(void) { - at91_pmc_t *pmc = (at91_pmc_t *)ATMEL_BASE_PMC; - #ifdef CONFIG_USB_ATMEL_CLK_SEL_PLLB - /* Enable PLLB */ - writel(get_pllb_init(), >pllbr); - while ((readl(>sr) & AT91_PMC_LOCKB) != AT91_PMC_LOCKB) - ; + if (at91_pllb_clk_enable(get_pllb_init())) + return -1; + #ifdef CONFIG_AT91SAM9N12 at91_usb_clk_init(AT91_PMC_USBS_USB_PLLB | AT91_PMC_USB_DIV_2); #endif @@ -45,8 +39,6 @@ int usb_cpu_init(void) int usb_cpu_stop(void) { - at91_pmc_t *pmc = (at91_pmc_t *)ATMEL_BASE_PMC; - at91_periph_clk_disable(ATMEL_ID_UHP); at91_system_clk_disable(ATMEL_PMC_UHP); @@ -58,10 +50,10 @@ int usb_cpu_stop(void) #ifdef CONFIG_AT91SAM9N12 at91_usb_clk_init(0); #endif - /* Disable PLLB */ - writel(0, >pllbr); - while ((readl(>sr) & AT91_PMC_LOCKB) != 0) - ; + + if (at91_pllb_clk_disable()) + return -1; + #elif defined(CONFIG_USB_ATMEL_CLK_SEL_UPLL) if (at91_upll_clk_disable()) return -1; -- 1.7.9.5 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot