Common/typical fractional divider HW API

Andy Shevchenko andriy.shevchenko at linux.intel.com
Fri Feb 5 08:12:09 PST 2016


On Fri, 2016-02-05 at 17:01 +0100, Mason wrote:

> So, do you agree that
> 
>   DIV = 2^I * (1 + F/256)
> 
> gives a more useful DIV distribution than
> 
>   DIV = I + F/16

If you can change hardware why not to use any existing approach which
suits better to your device?

I don't remember any existing, though I didn't check much, divider
register which takes something like that.

> > Also it's possible to convert clock providers for, e.g., UARTs to
> > use
> > this kind of divider.
> 
> I'm not sure how to parse that. I'm using the divider driver
> for a CPU clock, to do D(V)FS in cpufreq.

If you are using custom stuff for custom hardware, I hope it's okay.
But if we are talking about generic solutions (like clk-fractional-
divider), I would suggest to consider existing users / hardware.

What I saw is mostly about

I [0 .. 2^n - 1]
F [0 .. 2^k - 1]
n + k < 32

And I + 1 / (2^k - F) as a formula.

-- 
Andy Shevchenko <andriy.shevchenko at linux.intel.com>
Intel Finland Oy




More information about the linux-arm-kernel mailing list