[PATCH 6/7] tegra: add proper timer driver
Sascha Hauer
s.hauer at pengutronix.de
Fri Mar 1 12:23:53 EST 2013
On Fri, Mar 01, 2013 at 10:22:52AM +0100, Lucas Stach wrote:
> Replace the ad-hoc clocksource implementation with a proper driver for
> the Tegra 20 timer. This driver is able to do the required hardware
> initialisation itself.
>
> +
> +static int tegra20_timer_probe(struct device_d *dev)
> +{
> + struct clk *timer_clk;
> + unsigned long rate;
> +
> + /* use only one timer */
> + if (timer_base)
> + return -EBUSY;
> +
> + timer_base = dev_request_mem_region(dev, 0);
> + if (!timer_base) {
> + dev_err(dev, "could not get memory region\n");
> + return -ENODEV;
> + }
> +
> + timer_clk = clk_get(dev, NULL);
> + if (!timer_clk) {
> + dev_err(dev, "could not get clock\n");
> + return -ENODEV;
> + }
> +
> + clk_enable(timer_clk);
> +
> + /*
> + * calibrate timer to run at 1MHz
We don't need the timer to be running at a certain frequency, you can
just use clocks_calc_mult_shift to calculate the correct values from
whatever frequency.
Sascha
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list