diff options
author | Tom Rini <trini@konsulko.com> | 2017-03-16 16:44:23 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2017-03-16 16:44:23 -0400 |
commit | b504ff9f6bbdd4d3700595f64f3c30c5c9f70d35 (patch) | |
tree | 1fc53c2ec5242469cceb80a059b3ce8f55bf5b4d /arch/arm/mach-zynq/timer.c | |
parent | ce38ebb6f7f0e2111b7d457651ae0a76bc5a2636 (diff) | |
parent | 61e745d1311532a90de537cc470da12d306ee193 (diff) |
Merge tag 'xilinx-for-v2017.05' of git://www.denx.de/git/u-boot-microblaze
Xilinx changes for v2017.05
- Move to DM clk driver
- Add clk support for zynq_sdhci
Diffstat (limited to 'arch/arm/mach-zynq/timer.c')
-rw-r--r-- | arch/arm/mach-zynq/timer.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/arch/arm/mach-zynq/timer.c b/arch/arm/mach-zynq/timer.c index 8ff82dc930..b1bb3b80e1 100644 --- a/arch/arm/mach-zynq/timer.c +++ b/arch/arm/mach-zynq/timer.c @@ -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) 2011-2012 Xilinx, Inc. All rights reserved. * @@ -25,8 +28,10 @@ * SPDX-License-Identifier: GPL-2.0+ */ +#include <clk.h> #include <common.h> #include <div64.h> +#include <dm.h> #include <asm/io.h> #include <asm/arch/hardware.h> #include <asm/arch/clk.h> @@ -56,6 +61,24 @@ int timer_init(void) (TIMER_PRESCALE << SCUTIMER_CONTROL_PRESCALER_SHIFT) | SCUTIMER_CONTROL_ENABLE_MASK; + 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); + gd->arch.timer_rate_hz = (gd->cpu_clk / 2) / (TIMER_PRESCALE + 1); /* Load the timer counter register */ |