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 | _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox