[PATCH v3 2/2] clk: sunxi: Refactor A31 PLL6 so that it can be reused

Chen-Yu Tsai wens at csie.org
Fri Jan 29 02:14:48 PST 2016


On Fri, Jan 29, 2016 at 6:02 PM, Jens Kuske <jenskuske at gmail.com> wrote:
> Hi,
>
> On 28/01/16 20:22, Maxime Ripard wrote:
>> Remove the fixed dividers from the PLL6 driver to be able to have a
>> reusable driver that can be used across several SoCs that share the same
>> controller, but don't have the same set of dividers for this clock, and to
>> also be reused multiple times in the same SoC, since we're droping the
>> clock name.
>>
>> Signed-off-by: Maxime Ripard <maxime.ripard at free-electrons.com>
>> ---
>> Changes from v2
>>   - Rebased and converted over to the new factors refactoring. Fixed the
>>     retrieved rate
>>
>>  arch/arm/boot/dts/sun6i-a31.dtsi     | 36 ++++++++++++++++++------------------
>>  arch/arm/boot/dts/sun8i-a23-a33.dtsi | 25 +++++++++++++++++--------
>>  arch/arm/boot/dts/sun8i-a23.dtsi     |  2 +-
>>  arch/arm/boot/dts/sun8i-a33.dtsi     |  4 ++--
>>  arch/arm/boot/dts/sun8i-h3.dtsi      | 36 ++++++++++++++++++------------------
>>  drivers/clk/sunxi/clk-sunxi.c        | 32 ++++++++++++++++----------------
>>  6 files changed, 72 insertions(+), 63 deletions(-)
>>
> [...]
>> diff --git a/arch/arm/boot/dts/sun8i-h3.dtsi b/arch/arm/boot/dts/sun8i-h3.dtsi
>> index 1524130e43c9..19aadf47027d 100644
>> --- a/arch/arm/boot/dts/sun8i-h3.dtsi
>> +++ b/arch/arm/boot/dts/sun8i-h3.dtsi
>> @@ -121,27 +121,27 @@
>>               };
>>
>>               pll6: clk at 01c20028 {
>> -                     #clock-cells = <1>;
>> +                     #clock-cells = <0>;
>>                       compatible = "allwinner,sun6i-a31-pll6-clk";
>>                       reg = <0x01c20028 0x4>;
>>                       clocks = <&osc24M>;
>> -                     clock-output-names = "pll6", "pll6x2";
>> +                     clock-output-names = "pll6";
>>               };
>>
>> -             pll6d2: pll6d2_clk {
>> +             pll6x2: pll6x2_clk {
>>                       #clock-cells = <0>;
>>                       compatible = "fixed-factor-clock";
>> -                     clock-div = <2>;
>> -                     clock-mult = <1>;
>> -                     clocks = <&pll6 0>;
>> -                     clock-output-names = "pll6d2";
>> +                     clock-div = <1>;
>> +                     clock-mult = <2>;
>> +                     clocks = <&pll6>;
>> +                     clock-output-names = "pll6-2x";
>>               };
>>
>> -             /* dummy clock until pll6 can be reused */
>> -             pll8: pll8_clk {
>> +             pll8: clk at 01c20044 {
>>                       #clock-cells = <0>;
>> -                     compatible = "fixed-clock";
>> -                     clock-frequency = <1>;
>> +                     compatible = "allwinner,sun6i-a31-pll6-clk";
>> +                     reg = <0x01c20044 0x4>;
>> +                     clocks = <&osc24M>;
>>                       clock-output-names = "pll8";
>>               };
>>
>> @@ -165,7 +165,7 @@
>>                       #clock-cells = <0>;
>>                       compatible = "allwinner,sun6i-a31-ahb1-clk";
>>                       reg = <0x01c20054 0x4>;
>> -                     clocks = <&osc32k>, <&osc24M>, <&axi>, <&pll6 0>;
>> +                     clocks = <&osc32k>, <&osc24M>, <&axi>, <&pll6>;
>>                       clock-output-names = "ahb1";
>>               };
>>
>> @@ -173,7 +173,7 @@
>>                       #clock-cells = <0>;
>>                       compatible = "allwinner,sun8i-h3-ahb2-clk";
>>                       reg = <0x01c2005c 0x4>;
>> -                     clocks = <&ahb1>, <&pll6d2>;
>> +                     clocks = <&ahb1>, <&pll6>;
>
> According to the datasheet AHB2 really has PLL6 / 2 as parent, not PLL6
> directly.

Thanks for the save. So we should keep pll6d2_clk.

ChenYu



More information about the linux-arm-kernel mailing list