@ -1,4 +1,7 @@
/*
/*
* Copyright ( C ) 2017 Weidmüller Interface GmbH & Co . KG
* Stefan Herbrechtsmeier < stefan . herbrechtsmeier @ weidmueller . com >
*
* Copyright ( C ) 2012 Michal Simek < monstr @ monstr . eu >
* Copyright ( C ) 2012 Michal Simek < monstr @ monstr . eu >
* Copyright ( C ) 2011 - 2012 Xilinx , Inc . All rights reserved .
* Copyright ( C ) 2011 - 2012 Xilinx , Inc . All rights reserved .
*
*
@ -25,8 +28,10 @@
* SPDX - License - Identifier : GPL - 2.0 +
* SPDX - License - Identifier : GPL - 2.0 +
*/
*/
# include <clk.h>
# include <common.h>
# include <common.h>
# include <div64.h>
# include <div64.h>
# include <dm.h>
# include <asm/io.h>
# include <asm/io.h>
# include <asm/arch/hardware.h>
# include <asm/arch/hardware.h>
# include <asm/arch/clk.h>
# include <asm/arch/clk.h>
@ -56,6 +61,26 @@ int timer_init(void)
( TIMER_PRESCALE < < SCUTIMER_CONTROL_PRESCALER_SHIFT ) |
( TIMER_PRESCALE < < SCUTIMER_CONTROL_PRESCALER_SHIFT ) |
SCUTIMER_CONTROL_ENABLE_MASK ;
SCUTIMER_CONTROL_ENABLE_MASK ;
# if defined(CONFIG_CLK) || defined(CONFIG_SPL_CLK)
struct udevice * dev ;
struct clk clk ;
int ret ;
ret = uclass_get_device_by_driver ( UCLASS_CLK ,
DM_GET_DRIVER ( zynq_clk ) , & dev ) ;
if ( ret )
return ret ;
clk . id = cpu_6or4x_clk ;
ret = clk_request ( dev , & clk ) ;
if ( ret < 0 )
return ret ;
gd - > cpu_clk = clk_get_rate ( & clk ) ;
clk_free ( & clk ) ;
# endif
gd - > arch . timer_rate_hz = ( gd - > cpu_clk / 2 ) / ( TIMER_PRESCALE + 1 ) ;
gd - > arch . timer_rate_hz = ( gd - > cpu_clk / 2 ) / ( TIMER_PRESCALE + 1 ) ;
/* Load the timer counter register */
/* Load the timer counter register */