Re: [PATCH v2] clk: Add fractional scale clock support

Stephen Boyd
2016-08-16T00:14:31Z

Sorry I was away for some time.

On 08/08, Hoan Tran wrote:
> On Wed, Jul 20, 2016 at 11:36 AM, Hoan Tran <hotran@apm.com> wrote:
> > On Fri, Jul 1, 2016 at 5:09 PM, Hoan Tran <hotran@apm.com> wrote:
> >>
> >> Hi Stephen,
> >>
> >> On Fri, Jul 1, 2016 at 11:38 AM, Stephen Boyd <sboyd@codeaurora.org> wrote:
> >> > Sorry I replied offlist before. Pressed the wrong key.
> >> >
> >> > On 06/30, Hoan Tran wrote:
> >> >> On Thu, Jun 30, 2016 at 1:23 PM, Stephen Boyd <sboyd@codeaurora.org> wrote:
> >> >> >
> >> >> > How is this different from clk-fractional-divider.c?
> >> >> >
> >> >>
> >> >> This is a driver which clock output is multiplied with a fixed fractional
> >> >> scale (denominator).
> >> >> A field inside a register is used to configure the multiplier.
> >> >>
> >> >> Example: With fractional scale is 1/8.
> >> >> Freq_out = Freq_parent * multiplier * (1/8)
> >> >>
> >> >> For fractional-divider, there are 2 fields of a register are used which
> >> >> - A field for numerator
> >> >> - A field for denominator
> >> >> Freq_out = Freq_parent * numerator / denominator
> >> >>
> >> >
> >> > Ok so the difference is that the denominator is a fixed value?
> >>
> >> The major difference is a fixed denominator.
> >> Another difference is:
> >> In case CLK_FRACTIONAL_SCALE_INVERTED=1, the freq_out is calculated as below
> >>
> >> Freq_out = Freq_parent * (fixed_denominator - multiplier) / fixed_denominator.
> >>
> >> > Perhaps that can be modeled as a clk-multiplier that is used as
> >> > the only parent of a fixed divider?
> >>
> >> Because of CLK_FRACTIONAL_SCALE_INVERTED flag, I don't know how to
> >> model as a clk-multiplier. And how to pass the fixed denominator into
> >> a clk-multiplier.

Would it be possible to add a flag to clk-multiplier to handle
the inverted case? I haven't seen anyone else with hardware like
that though, so perhaps the implementation should just go into
the vendor specific clk driver instead of being written
as a "basic clk type".

--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project