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

From: Hoan Tran
Date: Tue Aug 16 2016 - 13:39:53 EST


On Mon, Aug 15, 2016 at 5:14 PM, Stephen Boyd <sboyd@xxxxxxxxxxxxxx> wrote:
> 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@xxxxxxx> wrote:
>> > On Fri, Jul 1, 2016 at 5:09 PM, Hoan Tran <hotran@xxxxxxx> wrote:
>> >>
>> >> Hi Stephen,
>> >>
>> >> On Fri, Jul 1, 2016 at 11:38 AM, Stephen Boyd <sboyd@xxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxx> 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".

Yes, I'll move it into our clk-xgene driver.

Thanks
Hoan

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